Hi Subhash, Arindam,

On Wed, Aug 10 2011, Subhash Jadavani wrote:
> Here is Essential conditions to indicate Version 3.00 Card
> (SD_SPEC=2 and SD_SPEC3=1) :
> (1) The card shall support CMD6
> (2) The card shall support CMD8
> (3) The card shall support CMD42
> (4) User area capacity shall be up to 2GB (SDSC) or 32GB (SDHC)
>     User area capacity shall be more than or equal to 32GB and
>     up to 2TB (SDXC)
> (5) Speed Class shall be supported (SDHC or SDXC)
>
> So even if SD card doesn't support any of the newly defined
> UHS-I bus speed mode, it can advertise itself as SD3.0 cards
> as long as it supports all the essential conditions of
> SD3.0 cards. Given this, these type of cards should atleast
> run in High Speed mode @50MHZ if it supports HS.
>
> But current initialization sequence for SD3.0 cards is
> such that these non-UHS-I SD3.0 cards runs in Default
> Speed mode @25MHz.
>
> This patch makes sure that these non-UHS-I SD3.0 cards run
> in High Speed Mode @50MHz.
>
> Tested this patch with SanDisk Extreme SDHC 8GB Class 10 card.
>
> Signed-off-by: Subhash Jadavani <[email protected]>
> ---
>  drivers/mmc/core/sd.c |    6 +++---
>  1 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/mmc/core/sd.c b/drivers/mmc/core/sd.c
> index ff27741..e2dcf23 100644
> --- a/drivers/mmc/core/sd.c
> +++ b/drivers/mmc/core/sd.c
> @@ -306,6 +306,9 @@ static int mmc_read_switch(struct mmc_card *card)
>               goto out;
>       }
>  
> +     if (status[13] & 0x02)
> +             card->sw_caps.hs_max_dtr = 50000000;
> +
>       if (card->scr.sda_spec3) {
>               card->sw_caps.sd3_bus_mode = status[13];
>  
> @@ -348,9 +351,6 @@ 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;
>       }
>  
>  out:

The patch itself is fine, but please could one of you add some #defines
for the status response bit names and their possible values inside
mmc_read_switch()?  It's looking a bit opaque.

(I know that this patch doesn't introduce any of these magic numbers;
I just think that now is a good time to add documentation for them.)

Thanks very much,

- Chris.
-- 
Chris Ball   <[email protected]>   <http://printf.net/>
One Laptop Per Child
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to