RE: Linux v3.1-rc8 : SDHC card do not switch to high speed mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> -----Original Message-----
> From: Nath, Arindam [mailto:Arindam.Nath@xxxxxxx]
> Sent: Monday, October 17, 2011 8:28 PM
> To: Subhash Jadavani; Hiremath, Vaibhav; Hebbar, Gururaja; linux-
> mmc@xxxxxxxxxxxxxxx
> Cc: linux-omap@xxxxxxxxxxxxxxx; prakity@xxxxxxxxxxx; prakity@xxxxxxxxxxx;
> zhangfei.gao@xxxxxxxxxxx; cjb@xxxxxxxxxx; Saxena, Parth
> Subject: RE: Linux v3.1-rc8 : SDHC card do not switch to high speed mode
> 
> +Subhash
> 
> Hi Subhash,
> 
> If I am not mistaken, there was patch by you couple of weeks back to fix
> the issue. Did you not post your final version of the patch to community?
> 
[Hiremath, Vaibhav] I could able to trace the patch, but not sure why it did not make it to the mainline -

http://www.mail-archive.com/linux-mmc@xxxxxxxxxxxxxxx/msg09358.html

Fortunately, it is exactly same as what I did.

Thanks,
Vaibhav

> Thanks,
> Arindam
> 
> > -----Original Message-----
> > From: Hiremath, Vaibhav [mailto:hvaibhav@xxxxxx]
> > Sent: Monday, October 17, 2011 8:19 PM
> > To: Hebbar, Gururaja; linux-mmc@xxxxxxxxxxxxxxx
> > Cc: linux-omap@xxxxxxxxxxxxxxx; Nath, Arindam; prakity@xxxxxxxxxxx;
> > prakity@xxxxxxxxxxx; zhangfei.gao@xxxxxxxxxxx; cjb@xxxxxxxxxx; Saxena,
> > Parth
> > Subject: RE: Linux v3.1-rc8 : SDHC card do not switch to high speed
> > mode
> >
> > > -----Original Message-----
> > > From: linux-omap-owner@xxxxxxxxxxxxxxx [mailto:linux-omap-
> > > owner@xxxxxxxxxxxxxxx] On Behalf Of Hebbar, Gururaja
> > > Sent: Thursday, October 13, 2011 8:19 PM
> > > To: linux-mmc@xxxxxxxxxxxxxxx
> > > Cc: linux-omap@xxxxxxxxxxxxxxx
> > > Subject: Linux v3.1-rc8 : SDHC card do not switch to high speed mode
> > >
> > > Hi all,
> > >
> > > We are porting existing OMAP HSMMC driver (omap_hsmmc.c) to an
> > upcoming
> > > SOC.
> > >
> > > When testing the driver with SanDisk 16GB SDHC Card (SanDisk Extreme
> > HD
> > > Video 16GB 20Mb/s), we observed that the card doesn't switch to High
> > Speed
> > > mode.
> > >
> > > The card shows that it is compatible with SDA spec3.
> > >
> > > We are testing on Linux v3.1-rc8
> > >
> > >
> > > In mmc_sd_init_card(), rocr received from card is 0xc0ff8000, (S18A
> > bit
> > > not set).
> > >
> > > During mmc_sd_setup_card() --> mmc_decode_scr(), when decoding scr,
> > the
> > > card specifies that it is sda spec3 compatible
> > >
> > > 	if (scr->sda_vsn == SCR_SPEC_VER_2)
> > > 		/* Check if Physical Layer Spec v3.0 is supported */
> > > 		scr->sda_spec3 = UNSTUFF_BITS(resp, 47, 1);
> > 	--
> > > > true
> > >
> > > Then during mmc_read_switch(), since it's a sda spec3 card, the code
> > goes
> > > to read sd3_drv_type & sd3_curr_limit and skips settings hs_max_dtr.
> > >
> > > mmc_sd_switch_hs() returns back since hs_max_dtr == 0
> > >
> > > 	if (card->sw_caps.hs_max_dtr == 0)
> > > 		return 0;
> > >
> > > Because of this Card isn't switched to High Speed mode.
> > >
> > [Hiremath, Vaibhav] After doing bisect, I could able to nail down the
> > commit which is leading to this issue.
> >
> >
> > psplinux060:/datalocal/omap-kernel>git bisect good
> > d6d50a15a2897d4133d536dd4343b5cf21163db3 is the first bad commit
> > commit d6d50a15a2897d4133d536dd4343b5cf21163db3
> > Author: Arindam Nath <arindam.nath@xxxxxxx>
> > Date:   Thu May 5 12:18:59 2011 +0530
> >
> >     mmc: sd: add support for driver type selection
> >
> >     This patch adds support for setting driver strength during UHS-I
> >     initialization procedure. Since UHS-I cards set S18A (bit 24) in
> >     response to ACMD41, we use this as a base for UHS-I initialization.
> >     We modify the parameter list of mmc_sd_get_cid() so that we can
> >     save the ROCR from ACMD41 to check whether bit 24 is set.
> >
> >     We decide whether the Host Controller supports A, C, or D driver
> >     type depending on the Capabilities register. Driver type B is
> >     suported by default. We then set the appropriate driver type for
> >     the card using CMD6 mode 1. As per Host Controller spec v3.00, we
> >     set driver type for the host only if Preset Value Enable in the
> >     Host Control2 register is not set. SDHCI_HOST_CONTROL has been
> >     renamed to SDHCI_HOST_CONTROL1 to conform to the spec.
> >
> >     Tested by Zhangfei Gao with a Toshiba uhs card and general hs card,
> >     on mmp2 in SDMA mode.
> >
> >     Signed-off-by: Arindam Nath <arindam.nath@xxxxxxx>
> >     Reviewed-by: Philip Rakity <prakity@xxxxxxxxxxx>
> >     Tested-by: Philip Rakity <prakity@xxxxxxxxxxx>
> >     Acked-by: Zhangfei Gao <zhangfei.gao@xxxxxxxxxxx>
> >     Signed-off-by: Chris Ball <cjb@xxxxxxxxxx>
> >
> >
> > I am not a MMC/SD expert, but looking at the logic I did change to code
> > to something like,
> >
> >
> > diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
> > index 0370e03..1a45059 100644
> > --- a/drivers/mmc/core/sd.c
> > +++ b/drivers/mmc/core/sd.c
> > @@ -348,10 +348,9 @@ static int mmc_read_switch(struct mmc_card *card)
> >                 }
> >
> >                 card->sw_caps.sd3_curr_limit = status[7];
> > -       } else {
> > -               if (status[13] & 0x02)
> > -                       card->sw_caps.hs_max_dtr = 50000000;
> >         }
> > +       if (status[13] & 0x02)
> > +               card->sw_caps.hs_max_dtr = 50000000;
> >
> >  out:
> >         kfree(status);
> >
> >
> > This resolves the issue, and now card is getting detected properly as a
> > high speed card.
> > May be I am wrong completely here, any pointers? Any comments?
> >
> > Thanks,
> > Vaibhav
> >
> > > Is there any solution for this? Has anyone seen this issue.
> > >
> > > Thanks in advance.
> > >
> > >
> > > I am also attaching the log I get from the sd dev attr
> > >
> > > Regards
> > > Gururaja
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > cid
> > > 0353445344313647800c03994400ac6f
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > csd
> > > 400e00325b59000076b27f800a404013
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > date
> > > 12/2010
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > erase_size
> > > 512
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > fwrev
> > > 0x0
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > hwrev
> > > 0x8
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > name
> > > SD16G
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > manfid
> > > 0x000003
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > oemid
> > > 0x5344
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > preferred_erase_size
> > > 4194304
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > scr
> > > 0235800000000000
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > serial
> > > 0x0c039944
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > type
> > > SD
> > >
> > > root@arago-
> > >
> > armv7:/sys/devices/platform/omap/omap_hsmmc.0/mmc_host/mmc0/mmc0:aaaa#
> > cat
> > > uevent
> > > DRIVER=mmcblk
> > > MMC_TYPE=SD
> > > MMC_NAME=SD16G
> > > MODALIAS=mmc:block
> > >
> > >
> > > --
> > > To unsubscribe from this list: send the line "unsubscribe linux-omap"
> > in
> > > the body of a message to majordomo@xxxxxxxxxxxxxxx
> > > More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux