Re: [PATCH] mmc: core: Revert "skip card initialization if power class selection fails"

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

 



On 2 July 2012 14:13, Saugata Das <saugata.das@xxxxxxxxxx> wrote:
> On 2 July 2012 12:26, Venkatraman S <svenkatr@xxxxxx> wrote:
>> This reverts commit 3d93576e(skip card initialization if
>> power class selection fails).
>> Problem has been reported when this is used with eMMC4.41
>> card with Tegra Platform. Till the issue is root caused,
>> bus width selection failure should not be treated as fatal.
>>
>
> According to me, we need to find the root issue (which could be either
> host not able to provide enough current or faulty eMMC). Do we know,
> what could be the side effect of working on eMMC  with less power than
> what it has requested in PWR_CL ?
>
> One known issue with the current power class selection is that we do
> not check the current requirement for a selected power class. It
> assumes that host is able to provide the maximum current needed at
> highest speed (> 800mA). Is it already checked on Tegra ?
>
and at the least bus width i.e 1 bit mode.

>> Reported-by: Marc Dietrich <marvin24@xxxxxx>
>> Signed-Off-by: Venkatraman S <svenkatr@xxxxxx>
>> CC: Ulf Hansson <ulf.hansson@xxxxxxxxxxxxxx>
>> CC: Subhash Jadavani <subhashj@xxxxxxxxxxxxxx>
>> CC: Saugata Das <saugata.das@xxxxxxxxxx>
>> ---
>>  drivers/mmc/core/mmc.c | 18 +++++++++++-------
>>  1 file changed, 11 insertions(+), 7 deletions(-)
>>
>> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
>> index 258b203..4f4489a 100644
>> --- a/drivers/mmc/core/mmc.c
>> +++ b/drivers/mmc/core/mmc.c
>> @@ -717,10 +717,6 @@ static int mmc_select_powerclass(struct mmc_card *card,
>>                                  card->ext_csd.generic_cmd6_time);
>>         }
>>
>> -       if (err)
>> -               pr_err("%s: power class selection for ext_csd_bus_width %d"
>> -                      " failed\n", mmc_hostname(card->host), bus_width);
>> -
>>         return err;
>>  }
>>
>> @@ -1104,7 +1100,9 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
>>                                 EXT_CSD_BUS_WIDTH_8 : EXT_CSD_BUS_WIDTH_4;
>>                 err = mmc_select_powerclass(card, ext_csd_bits, ext_csd);
>>                 if (err)
>> -                       goto err;
>> +                       pr_warning("%s: power class selection to bus width %d"
>> +                                  " failed\n", mmc_hostname(card->host),
>> +                                  1 << bus_width);
>>         }
>>
>>         /*
>> @@ -1136,7 +1134,10 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
>>                         err = mmc_select_powerclass(card, ext_csd_bits[idx][0],
>>                                                     ext_csd);
>>                         if (err)
>> -                               goto err;
>> +                               pr_warning("%s: power class selection to "
>> +                                          "bus width %d failed\n",
>> +                                          mmc_hostname(card->host),
>> +                                          1 << bus_width);
>>
>>                         err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
>>                                          EXT_CSD_BUS_WIDTH,
>> @@ -1164,7 +1165,10 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
>>                         err = mmc_select_powerclass(card, ext_csd_bits[idx][1],
>>                                                     ext_csd);
>>                         if (err)
>> -                               goto err;
>> +                               pr_warning("%s: power class selection to "
>> +                                          "bus width %d ddr %d failed\n",
>> +                                          mmc_hostname(card->host),
>> +                                          1 << bus_width, ddr);
>>
>>                         err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
>>                                          EXT_CSD_BUS_WIDTH,
>> --
>> 1.7.11.1.25.g0e18bef
>>
--
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