On Mon, 2018-12-24 at 03:42 +0000, Peng Ma wrote: > Hi Scott, > > You are right, we should support powerpc64, so could I changed it as > fallows: > > diff --git a/drivers/dma/fsldma.h b/drivers/dma/fsldma.h > index 88db939..057babf 100644 > --- a/drivers/dma/fsldma.h > +++ b/drivers/dma/fsldma.h > @@ -202,35 +202,10 @@ struct fsldma_chan { > #define fsl_iowrite32(v, p) out_le32(p, v) > #define fsl_iowrite32be(v, p) out_be32(p, v) > > -#ifndef __powerpc64__ > -static u64 fsl_ioread64(const u64 __iomem *addr) > -{ > - u32 fsl_addr = lower_32_bits(addr); > - u64 fsl_addr_hi = (u64)in_le32((u32 *)(fsl_addr + 1)) << 32; > - > - return fsl_addr_hi | in_le32((u32 *)fsl_addr); > -} > - > -static void fsl_iowrite64(u64 val, u64 __iomem *addr) > -{ > - out_le32((u32 __iomem *)addr + 1, val >> 32); > - out_le32((u32 __iomem *)addr, (u32)val); > -} > - > -static u64 fsl_ioread64be(const u64 __iomem *addr) > -{ > - u32 fsl_addr = lower_32_bits(addr); > - u64 fsl_addr_hi = (u64)in_be32((u32 *)fsl_addr) << 32; > - > - return fsl_addr_hi | in_be32((u32 *)(fsl_addr + 1)); > -} > - > -static void fsl_iowrite64be(u64 val, u64 __iomem *addr) > -{ > - out_be32((u32 __iomem *)addr, val >> 32); > - out_be32((u32 __iomem *)addr + 1, (u32)val); > -} > -#endif > +#define fsl_ioread64(p) in_le64(p) > +#define fsl_ioread64be(p) in_be64(p) > +#define fsl_iowrite64(v, p) out_le64(p, v) > +#define fsl_iowrite64be(v, p) out_be64(p, v) > #endif Then you'll break 32-bit, assuming those fake-it-with-two-32-bit-accesses were actually needed. -Scott