]> git.baikalelectronics.ru Git - kernel.git/commit
dmaengine: bcm2835: Enforce control block alignment
authorLukas Wunner <lukas@wunner.de>
Wed, 23 Jan 2019 08:26:00 +0000 (09:26 +0100)
committerVinod Koul <vkoul@kernel.org>
Mon, 4 Feb 2019 07:11:28 +0000 (12:41 +0530)
commitb222bffe13199fbb5badbe3ebc1f388844c7c385
treebb185e31f2b241e5f3ef354a6621558e71764184
parentfe1928ff840be25e59badd4c4e4e18534ccc9626
dmaengine: bcm2835: Enforce control block alignment

Per section 4.2.1.1 of the BCM2835 ARM Peripherals spec, control blocks
"must start at a 256 bit aligned address":
https://www.raspberrypi.org/app/uploads/2012/02/BCM2835-ARM-Peripherals.pdf

This rule is currently satisfied only by accident because struct
bcm2835_dma_cb has a size of 256 bit and the DMA pool API happens to
allocate blocks consecutively.  It seems safer to be explicit and tell
the DMA pool allocator about the required alignment.

Signed-off-by: Lukas Wunner <lukas@wunner.de>
Cc: Frank Pavlic <f.pavlic@kunbus.de>
Cc: Martin Sperl <kernel@martin.sperl.org>
Cc: Florian Meier <florian.meier@koalo.de>
Tested-by: Stefan Wahren <stefan.wahren@i2se.com>
Acked-by: Florian Kauer <florian.kauer@koalo.de>
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/bcm2835-dma.c