All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] mmc: core: Revert "skip card initialization if power class selection fails"
@ 2012-07-02  6:56 Venkatraman S
  2012-07-02  8:43 ` Saugata Das
  0 siblings, 1 reply; 9+ messages in thread
From: Venkatraman S @ 2012-07-02  6:56 UTC (permalink / raw)
  To: cjb
  Cc: linux-mmc, girish.shivananjappa, marvin24, Venkatraman S,
	Ulf Hansson, Subhash Jadavani, Saugata Das

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.

Reported-by: Marc Dietrich <marvin24@gmx.de>
Signed-Off-by: Venkatraman S <svenkatr@ti.com>
CC: Ulf Hansson <ulf.hansson@stericsson.com>
CC: Subhash Jadavani <subhashj@codeaurora.org>
CC: Saugata Das <saugata.das@linaro.org>
---
 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


^ permalink raw reply related	[flat|nested] 9+ messages in thread

* Re: [PATCH] mmc: core: Revert "skip card initialization if power class selection fails"
  2012-07-02  6:56 [PATCH] mmc: core: Revert "skip card initialization if power class selection fails" Venkatraman S
@ 2012-07-02  8:43 ` Saugata Das
  2012-07-02  8:53   ` Girish K S
  2012-07-02 11:17   ` [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
  0 siblings, 2 replies; 9+ messages in thread
From: Saugata Das @ 2012-07-02  8:43 UTC (permalink / raw)
  To: Venkatraman S
  Cc: cjb, linux-mmc, girish.shivananjappa, marvin24, Ulf Hansson,
	Subhash Jadavani

On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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 ?

> Reported-by: Marc Dietrich <marvin24@gmx.de>
> Signed-Off-by: Venkatraman S <svenkatr@ti.com>
> CC: Ulf Hansson <ulf.hansson@stericsson.com>
> CC: Subhash Jadavani <subhashj@codeaurora.org>
> CC: Saugata Das <saugata.das@linaro.org>
> ---
>  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
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] mmc: core: Revert "skip card initialization if power class selection fails"
  2012-07-02  8:43 ` Saugata Das
@ 2012-07-02  8:53   ` Girish K S
  2012-07-02  8:58     ` Girish K S
  2012-07-02 11:17   ` [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
  1 sibling, 1 reply; 9+ messages in thread
From: Girish K S @ 2012-07-02  8:53 UTC (permalink / raw)
  To: Saugata Das
  Cc: Venkatraman S, cjb, linux-mmc, marvin24, Ulf Hansson, Subhash Jadavani

On 2 July 2012 14:13, Saugata Das <saugata.das@linaro.org> wrote:
> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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@gmx.de>
>> Signed-Off-by: Venkatraman S <svenkatr@ti.com>
>> CC: Ulf Hansson <ulf.hansson@stericsson.com>
>> CC: Subhash Jadavani <subhashj@codeaurora.org>
>> CC: Saugata Das <saugata.das@linaro.org>
>> ---
>>  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
>>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] mmc: core: Revert "skip card initialization if power class selection fails"
  2012-07-02  8:53   ` Girish K S
@ 2012-07-02  8:58     ` Girish K S
  2012-07-02 11:20       ` Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
  0 siblings, 1 reply; 9+ messages in thread
From: Girish K S @ 2012-07-02  8:58 UTC (permalink / raw)
  To: Saugata Das
  Cc: Venkatraman S, cjb, linux-mmc, marvin24, Ulf Hansson, Subhash Jadavani

On 2 July 2012 14:23, Girish K S <girish.shivananjappa@linaro.org> wrote:
> On 2 July 2012 14:13, Saugata Das <saugata.das@linaro.org> wrote:
>> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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.
>
The MMC card spec has 2 max current values (power class) one for 4 bit
mode and another for 8 bit mode at supported voltages. But the SDHCI
spec has one MaxCur register for supported voltages but doesnt mention
for which bus width. Any input on this is very helpful to resolve the
powerclass issue that is pending
>>> Reported-by: Marc Dietrich <marvin24@gmx.de>
>>> Signed-Off-by: Venkatraman S <svenkatr@ti.com>
>>> CC: Ulf Hansson <ulf.hansson@stericsson.com>
>>> CC: Subhash Jadavani <subhashj@codeaurora.org>
>>> CC: Saugata Das <saugata.das@linaro.org>
>>> ---
>>>  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
>>>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass selection fails"
  2012-07-02  8:43 ` Saugata Das
  2012-07-02  8:53   ` Girish K S
@ 2012-07-02 11:17   ` Marc Dietrich
  2012-07-02 13:44     ` Saugata Das
  1 sibling, 1 reply; 9+ messages in thread
From: Marc Dietrich @ 2012-07-02 11:17 UTC (permalink / raw)
  To: Saugata Das
  Cc: Venkatraman S, cjb, linux-mmc, girish.shivananjappa, Ulf Hansson,
	Subhash Jadavani

Am Montag, 2. Juli 2012, 14:13:31 schrieb Saugata Das:
> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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 ?

Acording to the schematic, the emmc is "fused" with 150mA and 450mA. There are 
many supplies connected to it, so it is hard to tell what is the maximum, but 
certainly not 800 mA. Why do you think it should be such high? Powerclass "7" 
means 270 mA max and 160 mA RMS (dual voltage card). Btw, you may successfully 
google for the "schematic document" for this "paz00" board in question.

Marc


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass selection fails"
  2012-07-02  8:58     ` Girish K S
@ 2012-07-02 11:20       ` Marc Dietrich
  2012-07-03  3:55         ` Girish K S
  0 siblings, 1 reply; 9+ messages in thread
From: Marc Dietrich @ 2012-07-02 11:20 UTC (permalink / raw)
  To: Girish K S
  Cc: Saugata Das, Venkatraman S, cjb, linux-mmc, Ulf Hansson,
	Subhash Jadavani

Am Montag, 2. Juli 2012, 14:28:37 schrieb Girish K S:
> On 2 July 2012 14:23, Girish K S <girish.shivananjappa@linaro.org> wrote:
> > On 2 July 2012 14:13, Saugata Das <saugata.das@linaro.org> wrote:
> >> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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.
> 
> The MMC card spec has 2 max current values (power class) one for 4 bit
> mode and another for 8 bit mode at supported voltages. But the SDHCI
> spec has one MaxCur register for supported voltages but doesnt mention
> for which bus width. Any input on this is very helpful to resolve the
> powerclass issue that is pending

the higher nibble is for 8 bit and the lower one for 4 bit. The power class is 
same for both bus width on this toshiba device.

Marc


^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass selection fails"
  2012-07-02 11:17   ` [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
@ 2012-07-02 13:44     ` Saugata Das
  0 siblings, 0 replies; 9+ messages in thread
From: Saugata Das @ 2012-07-02 13:44 UTC (permalink / raw)
  To: Marc Dietrich
  Cc: Venkatraman S, cjb, linux-mmc, girish.shivananjappa, Ulf Hansson,
	Subhash Jadavani

On 2 July 2012 16:47, Marc Dietrich <marvin24@gmx.de> wrote:
> Am Montag, 2. Juli 2012, 14:13:31 schrieb Saugata Das:
>> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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 ?
>
> Acording to the schematic, the emmc is "fused" with 150mA and 450mA. There are
> many supplies connected to it, so it is hard to tell what is the maximum, but
> certainly not 800 mA. Why do you think it should be such high? Powerclass "7"
> means 270 mA max and 160 mA RMS (dual voltage card). Btw, you may successfully
> google for the "schematic document" for this "paz00" board in question.
>

I was referring to maximum current as per 4.5 spec (power class 15). I
saw the logs which you sent earlier and the driver is trying to set
power class 3 (=> 180mA RMS / 280mA peak). May be, you can check the
regulators, if 450mA supply is enabled.


> Marc
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass selection fails"
  2012-07-02 11:20       ` Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
@ 2012-07-03  3:55         ` Girish K S
  2012-07-03 20:19           ` [PATCH] mmc: core: Revert "skip card initialization ifpowerclass " Marc Dietrich
  0 siblings, 1 reply; 9+ messages in thread
From: Girish K S @ 2012-07-03  3:55 UTC (permalink / raw)
  To: Marc Dietrich
  Cc: Saugata Das, Venkatraman S, cjb, linux-mmc, Ulf Hansson,
	Subhash Jadavani

On 2 July 2012 16:50, Marc Dietrich <marvin24@gmx.de> wrote:
> Am Montag, 2. Juli 2012, 14:28:37 schrieb Girish K S:
>> On 2 July 2012 14:23, Girish K S <girish.shivananjappa@linaro.org> wrote:
>> > On 2 July 2012 14:13, Saugata Das <saugata.das@linaro.org> wrote:
>> >> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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.
>>
>> The MMC card spec has 2 max current values (power class) one for 4 bit
>> mode and another for 8 bit mode at supported voltages. But the SDHCI
>> spec has one MaxCur register for supported voltages but doesnt mention
>> for which bus width. Any input on this is very helpful to resolve the
>> powerclass issue that is pending
>
> the higher nibble is for 8 bit and the lower one for 4 bit. The power class is
> same for both bus width on this toshiba device.
This is true from device point of view. but my concern was with the
host controller register of SDHCI Spec MAXCURRn
where n is 1.8 / 3.3 /3.0. Each voltage supported is assigned 8 bits
(values ranging from 0-255). which means there is no split in nibbles
for 4-bit and 8-bit mode


>
> Marc
>

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: [PATCH] mmc: core: Revert "skip card initialization ifpowerclass selection fails"
  2012-07-03  3:55         ` Girish K S
@ 2012-07-03 20:19           ` Marc Dietrich
  0 siblings, 0 replies; 9+ messages in thread
From: Marc Dietrich @ 2012-07-03 20:19 UTC (permalink / raw)
  To: Girish K S
  Cc: Saugata Das, Venkatraman S, cjb, linux-mmc, Ulf Hansson,
	Subhash Jadavani

On Tuesday 03 July 2012 09:25:11 Girish K S wrote:
> On 2 July 2012 16:50, Marc Dietrich <marvin24@gmx.de> wrote:
> > Am Montag, 2. Juli 2012, 14:28:37 schrieb Girish K S:
> >> On 2 July 2012 14:23, Girish K S <girish.shivananjappa@linaro.org> wrote:
> >> > On 2 July 2012 14:13, Saugata Das <saugata.das@linaro.org> wrote:
> >> >> On 2 July 2012 12:26, Venkatraman S <svenkatr@ti.com> 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.
> >> 
> >> The MMC card spec has 2 max current values (power class) one for 4 bit
> >> mode and another for 8 bit mode at supported voltages. But the SDHCI
> >> spec has one MaxCur register for supported voltages but doesnt mention
> >> for which bus width. Any input on this is very helpful to resolve the
> >> powerclass issue that is pending
> > 
> > the higher nibble is for 8 bit and the lower one for 4 bit. The power
> > class is same for both bus width on this toshiba device.
> 
> This is true from device point of view. but my concern was with the
> host controller register of SDHCI Spec MAXCURRn
> where n is 1.8 / 3.3 /3.0. Each voltage supported is assigned 8 bits
> (values ranging from 0-255). which means there is no split in nibbles
> for 4-bit and 8-bit mode

I don't know if it matters but I just checked the TRMs and found that Tegra2 
only support MMC 4.3 standard while Tegra3 supports 4.41. If I understnad it 
right, v4.3 does not support the extented register yet (see changes from 4.3-
>4.4 in Annex B of the eMMC spec). But maybe this is irrelevant because it 
does not apply to the host controller.

Marc


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-07-03 20:20 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-02  6:56 [PATCH] mmc: core: Revert "skip card initialization if power class selection fails" Venkatraman S
2012-07-02  8:43 ` Saugata Das
2012-07-02  8:53   ` Girish K S
2012-07-02  8:58     ` Girish K S
2012-07-02 11:20       ` Re: [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
2012-07-03  3:55         ` Girish K S
2012-07-03 20:19           ` [PATCH] mmc: core: Revert "skip card initialization ifpowerclass " Marc Dietrich
2012-07-02 11:17   ` [PATCH] mmc: core: Revert "skip card initialization if powerclass " Marc Dietrich
2012-07-02 13:44     ` Saugata Das

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.