MMC: commit dba3c29 ruins mmc card data on beagle-xm revB
Ming Lei
ming.lei at canonical.com
Thu Jun 14 06:25:34 EDT 2012
Also attach my .config.
On Wed, Jun 13, 2012 at 11:28 PM, T Krishnamoorthy, Balaji
<balajitk at ti.com> wrote:
> On Mon, Jun 11, 2012 at 12:50 PM, Ming Lei <ming.lei at canonical.com> wrote:
>>
>> On Mon, Jun 11, 2012 at 2:21 PM, T Krishnamoorthy, Balaji
>> <balajitk at ti.com> wrote:
>> > Hi Ming Lei,
>> > Can you let me know if you noticed any write/timeout errors ?
>>
>> Nothing error logs found during writing.
> Hi,
>
> Couldn't reproduce the issue with BeagleXM rev C, Might be a combination
> of rev and SD card. How often do you see mis-match in file content?
>
> Can you please try the inlined patch to get more info?
>
> ---
> diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
> index 9a7a60a..77aabe6 100644
> --- a/drivers/mmc/host/omap_hsmmc.c
> +++ b/drivers/mmc/host/omap_hsmmc.c
> @@ -60,6 +60,7 @@
> #define OMAP_HSMMC_STAT 0x0130
> #define OMAP_HSMMC_IE 0x0134
> #define OMAP_HSMMC_ISE 0x0138
> +#define OMAP_HSMMC_AC12 0x013C
> #define OMAP_HSMMC_CAPA 0x0140
>
> #define VS18 (1 << 26)
> @@ -177,6 +178,7 @@ struct omap_hsmmc_host {
> int reqs_blocked;
> int use_reg;
> int req_in_progress;
> + int autocmd_err;
> unsigned int flags;
> struct omap_hsmmc_next next_data;
>
> @@ -983,6 +985,7 @@ static void omap_hsmmc_do_irq(struct
> omap_hsmmc_host *host, int status)
> {
> struct mmc_data *data;
> int end_cmd = 0, end_trans = 0;
> + u32 autocmd12;
>
> if (!host->req_in_progress) {
> do {
> @@ -998,6 +1001,13 @@ static void omap_hsmmc_do_irq(struct
> omap_hsmmc_host *host, int status)
>
> if (status & ERR) {
> omap_hsmmc_dbg_report_irq(host, status);
> + if (status & (1 << 24)) {
> + host->autocmd_err = 1;
> + dev_err(mmc_dev(host->mmc), "AutoCMD error STAT 0x%x\n", status);
> + autocmd12 = OMAP_HSMMC_READ(host->base, AC12);
> + dev_err(mmc_dev(host->mmc), "AutoCMD error 0x%x\n", autocmd12);
> + }
> +
> if ((status & CMD_TIMEOUT) ||
> (status & CMD_CRC)) {
> if (host->cmd) {
> ---
>>
>> Below is one of my test case.
>>
>> root at beagleboard:~# upk
>> updateing kernel...
>> flush storage...
>> root at beagleboard:~# cat bin/upk
>> #!/bin/sh
>>
>> echo "updateing kernel..."
>> cp -f /mnt/nfs/t/uImage /media/mmcblk0p1/
>>
>> echo "flush storage..."
>> sync
>> root at beagleboard:~# diff /mnt/nfs/t/uImage /media/mmcblk0p1/uImage
>> Binary files /mnt/nfs/t/uImage and /media/mmcblk0p1/uImage differ
>> root at beagleboard:~# umount /media/mmcblk0p1
>> root at beagleboard:~# mount -t vfat /dev/mmcblk0p1 /media/mmcblk0p1
>> root at beagleboard:~#
>> root at beagleboard:~#
>> root at beagleboard:~# diff /mnt/nfs/t/uImage /media/mmcblk0p1/uImage
>> Binary files /mnt/nfs/t/uImage and /media/mmcblk0p1/uImage differ
>>
>>
>> Thanks,
>> --
>> Ming Lei
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config
Type: application/octet-stream
Size: 69963 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120614/9b71a0e7/attachment-0001.obj>
More information about the linux-arm-kernel
mailing list