[U-Boot] [PATCH] mmc: Poll for broken card detection case

Jun Nie jun.nie at linaro.org
Tue Jan 23 03:10:41 UTC 2018


2018-01-23 10:00 GMT+08:00 Jaehoon Chung <jh80.chung at samsung.com>:
> On 01/22/2018 09:21 PM, Jun Nie wrote:
>> 2018-01-22 13:03 GMT+08:00 Jaehoon Chung <jh80.chung at samsung.com>:
>>> Hi,
>>>
>>> On 01/02/2018 01:25 PM, Jun Nie wrote:
>>>> Poll for broken card detection case instead of return
>>>> no card detected.
>>>
>>> Sorry for late. i didn't see this patch in my mailbox.
>>>
>>> Does it need to add the new config?
>>
>> Yes, a new config, CONFIG_MMC_BROKEN_CD is needed for board that does
>> not support card detection pin. Not sure whether you mean this.
>> Without this config, the logic is not changed so no board is impacted
>> by this config.
>
> Right, there is no impacted by this config.
> In Kernel, there is "broken-cd" property. So how about using 'broken-cd' property instead of adding config?
>
> Best Regards,
> Jaehoon Chung
>
Some platforms, if not all, do not support DTB in SPL. So a config is
better than dt node property.

Jun
>>
>> Jun
>>
>>>
>>> Best Regards,
>>> Jaehoon Chung
>>>
>>>>
>>>> Signed-off-by: Jun Nie <jun.nie at linaro.org>
>>>> ---
>>>>  drivers/mmc/Kconfig | 5 +++++
>>>>  drivers/mmc/mmc.c   | 4 ++++
>>>>  2 files changed, 9 insertions(+)
>>>>
>>>> diff --git a/drivers/mmc/Kconfig b/drivers/mmc/Kconfig
>>>> index 8fbeaa7..ed194a3 100644
>>>> --- a/drivers/mmc/Kconfig
>>>> +++ b/drivers/mmc/Kconfig
>>>> @@ -10,6 +10,11 @@ config MMC
>>>>         If you want MMC/SD/SDIO support, you should say Y here and
>>>>         also to your specific host controller driver.
>>>>
>>>> +config MMC_BROKEN_CD
>>>> +     bool "Poll for broken card detection case"
>>>> +     help
>>>> +       If card  detection feature is broken, just poll to detect.
>>>> +
>>>>  config DM_MMC
>>>>       bool "Enable MMC controllers using Driver Model"
>>>>       depends on DM
>>>> diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c
>>>> index 38d2e07..13c5bf5 100644
>>>> --- a/drivers/mmc/mmc.c
>>>> +++ b/drivers/mmc/mmc.c
>>>> @@ -1650,8 +1650,12 @@ int mmc_start_init(struct mmc *mmc)
>>>>       bool no_card;
>>>>       int err;
>>>>
>>>> +#if !defined(CONFIG_MMC_BROKEN_CD)
>>>>       /* we pretend there's no card when init is NULL */
>>>>       no_card = mmc_getcd(mmc) == 0;
>>>> +#else
>>>> +     no_card = 0;
>>>> +#endif
>>>>  #if !CONFIG_IS_ENABLED(DM_MMC)
>>>>       no_card = no_card || (mmc->cfg->ops->init == NULL);
>>>>  #endif
>>>>
>>>
>>
>>
>>
>


More information about the U-Boot mailing list