mmc: sunxi: avoid invalid pointer calculation
authorArnd Bergmann <arnd@arndb.de>
Tue, 24 Feb 2015 09:47:27 +0000 (10:47 +0100)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 23 Mar 2015 13:13:42 +0000 (14:13 +0100)
commitd34712d2e3db9b241d0484a6e3839c6b7ef9df78
treeb1c6d620fdd4ecac2570fbbaea5d5e2ff7dd3e98
parent5f2e097ce0894c0882577cebf44f4e1db01d9f98
mmc: sunxi: avoid invalid pointer calculation

The sunxi mmc driver tries to calculate a dma address by using pointer
arithmetic, which causes a warning when dma_addr_t is wider than a pointer:

drivers/mmc/host/sunxi-mmc.c: In function 'sunxi_mmc_init_idma_des':
drivers/mmc/host/sunxi-mmc.c:296:35: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
  struct sunxi_idma_des *pdes_pa = (struct sunxi_idma_des *)host->sg_dma;
                                   ^

To avoid this warning and to simplify the logic, this changes
the code to avoid the cast and calculate the correct address
manually. The behavior should be unchanged.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: David Lanzendörfer <david.lanzendoerfer@o2s.ch>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sunxi-mmc.c