Loading drivers/dma/shdma.c +12 −2 Original line number Diff line number Diff line Loading @@ -70,12 +70,22 @@ static u32 sh_dmae_readl(struct sh_dmae_chan *sh_dc, u32 reg) static u16 dmaor_read(struct sh_dmae_device *shdev) { return __raw_readw(shdev->chan_reg + DMAOR / sizeof(u32)); u32 __iomem *addr = shdev->chan_reg + DMAOR / sizeof(u32); if (shdev->pdata->dmaor_is_32bit) return __raw_readl(addr); else return __raw_readw(addr); } static void dmaor_write(struct sh_dmae_device *shdev, u16 data) { __raw_writew(data, shdev->chan_reg + DMAOR / sizeof(u32)); u32 __iomem *addr = shdev->chan_reg + DMAOR / sizeof(u32); if (shdev->pdata->dmaor_is_32bit) __raw_writel(data, addr); else __raw_writew(data, addr); } static void chcr_write(struct sh_dmae_chan *sh_dc, u32 data) Loading include/linux/sh_dma.h +2 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ struct sh_dmae_pdata { u16 dmaor_init; unsigned int chcr_offset; u32 chcr_ie_bit; unsigned int dmaor_is_32bit:1; }; /* DMA register */ Loading Loading
drivers/dma/shdma.c +12 −2 Original line number Diff line number Diff line Loading @@ -70,12 +70,22 @@ static u32 sh_dmae_readl(struct sh_dmae_chan *sh_dc, u32 reg) static u16 dmaor_read(struct sh_dmae_device *shdev) { return __raw_readw(shdev->chan_reg + DMAOR / sizeof(u32)); u32 __iomem *addr = shdev->chan_reg + DMAOR / sizeof(u32); if (shdev->pdata->dmaor_is_32bit) return __raw_readl(addr); else return __raw_readw(addr); } static void dmaor_write(struct sh_dmae_device *shdev, u16 data) { __raw_writew(data, shdev->chan_reg + DMAOR / sizeof(u32)); u32 __iomem *addr = shdev->chan_reg + DMAOR / sizeof(u32); if (shdev->pdata->dmaor_is_32bit) __raw_writel(data, addr); else __raw_writew(data, addr); } static void chcr_write(struct sh_dmae_chan *sh_dc, u32 data) Loading
include/linux/sh_dma.h +2 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ struct sh_dmae_pdata { u16 dmaor_init; unsigned int chcr_offset; u32 chcr_ie_bit; unsigned int dmaor_is_32bit:1; }; /* DMA register */ Loading