Re: [PATCH v2] mmc: sdhci: update check code for cd-broken or nonremovable card

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

 



2013/3/1 Kevin Liu <keyuan.liu@xxxxxxxxx>:
> 2013/3/1 Philip Rakity <prakity@xxxxxxxxxx>:
>>
>> On Mar 1, 2013, at 9:40 AM, Kevin Liu <kliu5@xxxxxxxxxxx> wrote:
>>
>>> in function sdhci_request:
>>> 1. If quirk SDHCI_QUIRK_BROKEN_CARD_DETECTION is selected, there is no
>>> card detection available and polling must be used. Gpio detect must
>>> _not_ be supported under this case.
>>> Change the sequence to check SDHCI_QUIRK_BROKEN_CARD_DETECTION first,
>>> which make code more clear.
>>> 2. nonremovable card should be also assumed always present.
>>>
>>> in function sdhci_enable_irq_wakeups:
>>> 1. nonremovable card should be also assumed no insert/remove wakeup
>>> needed like some sdio cards which is nonremovable and can wakeup host
>>> only by card int.
>>>
>>> Signed-off-by: Kevin Liu <kliu5@xxxxxxxxxxx>
>>> ---
>>> drivers/mmc/host/sdhci.c |   30 ++++++++++++++++--------------
>>> 1 file changed, 16 insertions(+), 14 deletions(-)
>>>
>>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
>>> index c94fd6c..e4ada0d 100644
>>> --- a/drivers/mmc/host/sdhci.c
>>> +++ b/drivers/mmc/host/sdhci.c
>>> @@ -1337,19 +1337,20 @@ static void sdhci_request(struct mmc_host *mmc, struct mmc_request *mrq)
>>>
>>>       host->mrq = mrq;
>>>
>>> -     /*
>>> -      * Firstly check card presence from cd-gpio.  The return could
>>> -      * be one of the following possibilities:
>>> -      *     negative: cd-gpio is not available
>>> -      *     zero: cd-gpio is used, and card is removed
>>> -      *     one: cd-gpio is used, and card is present
>>> -      */
>>> -     present = mmc_gpio_get_cd(host->mmc);
>>> -     if (present < 0) {
>>> -             /* If polling, assume that the card is always present. */
>>> -             if (host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION)
>>> -                     present = 1;
>>> -             else
>>> +     /* If polling/nonremovable, assume that the card is always present. */
>>> +     if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) ||
>>> +                     (host->mmc->caps & MMC_CAP_NONREMOVABLE)) {
>>> +             present = 1;
>>> +     } else {
>>> +             /*
>>> +              * Firstly check card presence from cd-gpio.  The return could
>>> +              * be one of the following possibilities:
>>> +              *     negative: cd-gpio is not available
>>> +              *     zero: cd-gpio is used, and card is removed
>>> +              *     one: cd-gpio is used, and card is present
>>> +              */
>>> +             present = mmc_gpio_get_cd(host->mmc);
>>> +             if (IS_ERR_VALUE(present))
>>>                       present = sdhci_readl(host, SDHCI_PRESENT_STATE) &
>>>                                       SDHCI_CARD_PRESENT;
>>
>> Hi Kevin
>>
>> does it make sense to move this logic to a more generic function (static inline ?)
>> int sdhci_card_present ()
>>
>> and encapsulate all the logic there for gpio cd, present state (card is there) etc.
>>
>> Philip
>>
>
> Philip,
>
> Good idea...Will call the function "sdhci_do_get_cd" introdunced in my
> previous patch. Thanks!
>

This patch has been updated and added to below patchset.
[PATCH 0/3] mmc: core/sdhci: enhance card detect code ([PATCH v3 3/3]
mmc: sdhci: update check code for cd-broken or)
So it can be ignored.

Thanks
Kevin
--
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