[PATCH] dw_mmc: Add Synopsys DesignWare mmc host driver.

Russell King - ARM Linux linux at arm.linux.org.uk
Sun Dec 12 03:41:36 EST 2010


On Sat, Dec 11, 2010 at 07:23:20PM +0000, Chris Ball wrote:
> Hi Will,
> 
> On Thu, Dec 09, 2010 at 05:24:26PM +0000, Will Newton wrote:
> > This adds the mmc host driver for the Synopsys DesignWare mmc
> > host controller, found in a number of embedded SoC designs.
> > 
> > Signed-off-by: Will Newton <will.newton at imgtec.com>
> > Reviewed-by: Matt Fleming <matt at console-pimps.org>
> 
> Running a test build on ARM fails:
> 
> drivers/mmc/host/dw_mmc.c: In function ‘dw_mci_push_data64’:
> drivers/mmc/host/dw_mmc.c:985: error: implicit declaration of function ‘__raw_writeq’
> drivers/mmc/host/dw_mmc.c: In function ‘dw_mci_pull_data64’:
> drivers/mmc/host/dw_mmc.c:998: error: implicit declaration of function ‘__raw_readq’
> 
> because arch/arm doesn't implement raw versions of these 64-bit accesses.
> I'm surprised that this driver hasn't been compiled on ARM before!  What
> kind of arch are you testing on?  Do you have any ARM hardware (lpc313x?)
> to verify the driver on?

What's the semantics of a 64-bit IO access?  Does the low 32-bit get
written before the high 32-bit, or is it the other way around?  Does
it depend on the endian-ness?  What if some hardware needs the low
32-bit first and other needs the high 32-bit first?

I don't think it's reasonable to expect 32-bit hardware to perform 64-bit
IO accesses.



More information about the linux-arm-kernel mailing list