mmc: dw_mmc: fix fifo ordering in big endian
commit76184ac17edf3c640390b0eddc3aa7be1095fb9f
authorBen Dooks <ben.dooks@codethink.co.uk>
Wed, 25 Mar 2015 11:27:52 +0000 (25 11:27 +0000)
committerUlf Hansson <ulf.hansson@linaro.org>
Thu, 9 Apr 2015 07:08:15 +0000 (9 09:08 +0200)
tree6de305bc6530a70b743c2a9262c88628ff36da8f
parent6687c42fa71acd6ae39608c5af4146c82bd0c0ea
mmc: dw_mmc: fix fifo ordering in big endian

The dw_mmc driver changes to make the IO accesors endian agnostic did not
take into account the fifo accesses do not need to be swapped. To fix this
add a mmci_fifo_read/write wrapper to allow these to be passed through the
IO without being swapped.

Since these are now specific functions, it would be easier just to store
the pointer to the fifo registers in the host block instead of the offset
to them. So change the host->data_offset to host->fifo_reg (which also
means we catch all the places this is read or written).

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/dw_mmc.c
drivers/mmc/host/dw_mmc.h
include/linux/mmc/dw_mmc.h