The at_dmac uses a lli structure with a mix of dma_addr_t and __le32 in it. As Russell King pointed out, dma_addr_t could be a non 32-bit size depending on the kernel configuration. Change all references of this to __le32 to better match the hardware representation. Note, this does nothing to fix the discussion of dma vs physical addresses also brought up during these discussions. This patch depends on the __le32 descriptor updates posted previously. Signed-off-by: Ben Dooks <ben.dooks@xxxxxxxxxxxxxxx> -- CC: Russell King <linux@xxxxxxxxxxxxxxxx> CC: Nicolas Ferre <nicolas.ferre@xxxxxxxxx> CC: Dan Williams <dan.j.williams@xxxxxxxxx> CC: Vinod Koul <vinod.koul@xxxxxxxxx> CC: linux-arm-kernel@xxxxxxxxxxxxxxxxxxx CC: dmaengine@xxxxxxxxxxxxxxx --- drivers/dma/at_hdmac_regs.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/dma/at_hdmac_regs.h b/drivers/dma/at_hdmac_regs.h index bd4d174..b246beb 100644 --- a/drivers/dma/at_hdmac_regs.h +++ b/drivers/dma/at_hdmac_regs.h @@ -167,13 +167,13 @@ /* LLI == Linked List Item; aka DMA buffer descriptor */ struct at_lli { /* values that are not changed by hardware */ - dma_addr_t saddr; - dma_addr_t daddr; + __le32 saddr; + __le32 daddr; /* value that may get written back: */ __le32 ctrla; /* more values that are not changed by hardware */ __le32 ctrlb; - dma_addr_t dscr; /* chain to next lli */ + __le32 dscr; /* chain to next lli */ }; /** -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe dmaengine" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html