Re: [PATCH V2] mmc: core: Add host capability check for power class

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

 



On 15 December 2011 11:33, amit kachhap <amit.kachhap@xxxxxxxxxx> wrote:
> On Thu, Dec 15, 2011 at 9:28 AM, Girish K S
> <girish.shivananjappa@xxxxxxxxxx> wrote:
>> This patch adds a check whether the host supports maximum current value
>> obtained from the device's extended csd register for a selected interface
>> voltage and frequency.
>>
>> cc: Chris Ball <cjb@xxxxxxxxxx>
>> Signed-off-by: Girish K S <girish.shivananjappa@xxxxxxxxxx>
>> ---
>> Changes in v2:
>>        deleted a unnecessary if else condition identified by subhash J
>> Changes in v1:
>>       reduced the number of comparisons as per Hein's suggestion
>>
>>  drivers/mmc/core/mmc.c   |   19 +++++++++++++++++++
>>  include/linux/mmc/card.h |    4 ++++
>>  2 files changed, 23 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
>> index 006e932..b9ef777 100644
>> --- a/drivers/mmc/core/mmc.c
>> +++ b/drivers/mmc/core/mmc.c
>> @@ -688,6 +688,25 @@ static int mmc_select_powerclass(struct mmc_card *card,
>>                pwrclass_val = (pwrclass_val & EXT_CSD_PWR_CL_4BIT_MASK) >>
>>                                EXT_CSD_PWR_CL_4BIT_SHIFT;
>>
>> +       if (pwrclass_val >= MMC_MAX_CURRENT_800)
> Hi girish,
>
> These checks can be made like ,
> if (pwrclass_val > MMC_MAX_CURRENT_800)
>        pwrclass_val = MMC_MAX_CURRENT_800;
> Applicable in all below conditional checks.

I feel that should be OK. Since there will be no significant
improvement or side effects with the current implementation.

>
> Thanks,
> Amit D
>
>> +               pwrclass_val = MMC_MAX_CURRENT_800;
>> +       else if (pwrclass_val >= MMC_MAX_CURRENT_600)
>> +               pwrclass_val = MMC_MAX_CURRENT_600;
>> +       else if (pwrclass_val >= MMC_MAX_CURRENT_400)
>> +               pwrclass_val = MMC_MAX_CURRENT_400;
>> +       else
>> +               pwrclass_val = MMC_MAX_CURRENT_200;
>> +
>> +       if ((pwrclass_val == MMC_MAX_CURRENT_800) &&
>> +           !(card->host->caps & MMC_CAP_MAX_CURRENT_800))
>> +               pwrclass_val = MMC_MAX_CURRENT_600;
>> +       if ((pwrclass_val == MMC_MAX_CURRENT_600) &&
>> +           !(card->host->caps & MMC_CAP_MAX_CURRENT_600))
>> +               pwrclass_val = MMC_MAX_CURRENT_400;
>> +       if ((pwrclass_val == MMC_MAX_CURRENT_400) &&
>> +           !(card->host->caps & MMC_CAP_MAX_CURRENT_400))
>> +               pwrclass_val = MMC_MAX_CURRENT_200;
>> +
>>        /* If the power class is different from the default value */
>>        if (pwrclass_val > 0) {
>>                err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
>> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
>> index 9478a6b..c5e031a 100644
>> --- a/include/linux/mmc/card.h
>> +++ b/include/linux/mmc/card.h
>> @@ -195,6 +195,10 @@ struct mmc_part {
>>  #define MMC_BLK_DATA_AREA_GP   (1<<2)
>>  };
>>
>> +#define MMC_MAX_CURRENT_200    (0)
>> +#define MMC_MAX_CURRENT_400    (7)
>> +#define MMC_MAX_CURRENT_600    (11)
>> +#define MMC_MAX_CURRENT_800    (13)
>>  /*
>>  * MMC device
>>  */
>> --
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" 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