[PATCH 1/7] mmc: mxs-mmc: add mmc host driver for i.MX23/28

Shawn Guo shawn.guo at freescale.com
Fri Feb 11 18:48:44 EST 2011


On Fri, Feb 11, 2011 at 03:52:52PM +0100, Lothar Waßmann wrote:
> Hi,
> 
> Shawn Guo writes:
> > Hi Lothar,
> > 
> > On Wed, Feb 09, 2011 at 08:46:18AM +0100, Lothar Waßmann wrote:
> > > Hi Shawn,
> > > 
> > > Shawn Guo writes:
> > > > This adds the mmc host driver for Freescale MXS-based SoC i.MX23/28.
> > > > The driver calls into mxs-dma via generic dmaengine api for both pio
> > > > and data transfer.
> > > > 
> > > > Signed-off-by: Shawn Guo <shawn.guo at freescale.com>
> > > > ---
> > > >  arch/arm/mach-mxs/include/mach/mmc.h |   15 +
> > > >  drivers/mmc/host/Kconfig             |    9 +
> > > >  drivers/mmc/host/Makefile            |    1 +
> > > >  drivers/mmc/host/mxs-mmc.c           |  884 ++++++++++++++++++++++++++++++++++
> > > >  4 files changed, 909 insertions(+), 0 deletions(-)
> > > >  create mode 100644 arch/arm/mach-mxs/include/mach/mmc.h
> > > >  create mode 100644 drivers/mmc/host/mxs-mmc.c
> > > > 
> > > I've run the mmc-test kernel module with this driver on our TX28
> > > module which fails in the following tests:
> > > |mmc0: Test case 15. Correct xfer_size at write (start failure)...
> > > |mmc0: Result: ERROR (-110)
> > > |mmc0: Test case 16. Correct xfer_size at read (start failure)...
> > > |mmc0: Result: ERROR (-110)
> > > |mmc0: Test case 17. Correct xfer_size at write (midway failure)...
> > > |mmc0: Result: ERROR (-110)
> > > |mmc0: Test case 18. Correct xfer_size at read (midway failure)...
> > > |mmc0: Result: ERROR (-110)
> > > 
> > > Could you try the test on your hardware?
> > > 
> > I'm new to this test.  I enabled MMC_TEST but did not see "test"
> > under /sys for mmc.  Can you please elaborate how to launch this
> > test?  Thanks.
> > 
> You need debugfs mounted and the mmc-test module loaded.
> An inserted card will normally be grabbed by the mmc-block driver. You
> can 'unbind' the driver and 'bind' it to the mmc-test driver using the
> corresponding entries in sysfs. The mmc-test driver can be controlled
> via debugfs.
> 
> The following script steals an inserted card from the mmc-block driver
> and performs all mmc-test testcases (TRASHING THE CONTENTS OF THE
> CARD!).
> <--------
> #!/bin/bash
> drv_path=/sys/bus/mmc/drivers
> dbg_path=/sys/kernel/debug
> testdrv=mmc_test
> 
> shopt -s nullglob
> card=""
> 
> cleanup() {
>     if [ -n "$card" -a -n "$driver" -a "$driver" != "$testdrv" ];then
> 	echo "Restoring driver $driver"
> 	echo "$card" > "$drv_path/$testdrv/unbind"
> 	echo "$card" > "$drv_path/$driver/bind"
>     fi
> }
> 
> trap cleanup 0
> set -e
> cd "$drv_path"
> for d in *;do
>     for l in "$d/"*;do
> 	[ -h "$l" ] || continue
> 	card="$(basename "$l")"
> 	driver="$(dirname "$l")"
> 	break
>     done
>     [ -n "$card" ] && break
> done
> if [ -z "$card" ];then
>     echo "No MMC/SD card found"
>     exit 1
> fi
> if [ "$driver" != "$testdrv" ];then
>     echo "Trying to claim card $card from driver $driver"
>     echo "$card" > "$drv_path/$driver/unbind"
>     echo "$card" > "$drv_path/$testdrv/bind"
> fi
> echo "WARNING: Card $card will be overwritten!"
> echo "Hit <ENTER> to continue; <CTRL-C> to abort"
> read
> # perform all testcases (> 0 for individual tests)
> echo 0 > "$dbg_path/${card%:*}/$card/test"
> >--------
> 
Thanks a lot for the test script.  Yes, I'm seeing the same problem
here.  I will try to get it fixed in v2.

Regards,
Shawn




More information about the linux-arm-kernel mailing list