diff mbox series

[2/3] mmc: tmio: use mmc_can_gpio_cd() instead of checking TMIO_MMC_USE_GPIO_CD

Message ID 1510136220-31853-3-git-send-email-yamada.masahiro@socionext.com
State Superseded
Headers show
Series mmc: tmio: fix card detection | expand

Commit Message

Masahiro Yamada Nov. 8, 2017, 10:16 a.m. UTC
To use a GPIO line for card detection, TMIO_MMC_USE_GPIO_CD is used
by a legacy board (arch/sh/boards/mach-ecovec24).

For DT platforms, the "cd-gpios" property is a legitimate way for that
in case the IP-builtin card detection can not be used for some reason.
mmc_of_parse() calls mmc_gpiod_request_cd() to set up ctx->cd_gpio if
the "cd-gpios" property is specified.

To cater to both cases, mmc_can_gpio_cd() is a correct way to check
which card detection logic is used.

Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

---

 drivers/mmc/host/tmio_mmc_core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

-- 
2.7.4

--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Wolfram Sang Nov. 19, 2017, 7:47 p.m. UTC | #1
On Wed, Nov 08, 2017 at 07:16:59PM +0900, Masahiro Yamada wrote:
> To use a GPIO line for card detection, TMIO_MMC_USE_GPIO_CD is used

> by a legacy board (arch/sh/boards/mach-ecovec24).

> 

> For DT platforms, the "cd-gpios" property is a legitimate way for that

> in case the IP-builtin card detection can not be used for some reason.

> mmc_of_parse() calls mmc_gpiod_request_cd() to set up ctx->cd_gpio if

> the "cd-gpios" property is specified.


So, it fixed the DT not recognized via TMIO_MMC_USE_GPIO_CD? Did I get
this right?

> 

> To cater to both cases, mmc_can_gpio_cd() is a correct way to check

> which card detection logic is used.

> 

> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

> ---

> 

>  drivers/mmc/host/tmio_mmc_core.c | 2 +-

>  1 file changed, 1 insertion(+), 1 deletion(-)

> 

> diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c

> index 7c0e952..9fd0874 100644

> --- a/drivers/mmc/host/tmio_mmc_core.c

> +++ b/drivers/mmc/host/tmio_mmc_core.c

> @@ -1228,7 +1228,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host,

>  	}

>  	mmc->max_seg_size = mmc->max_req_size;

>  

> -	_host->native_hotplug = !(pdata->flags & TMIO_MMC_USE_GPIO_CD ||

> +	_host->native_hotplug = !(mmc_can_gpio_cd(mmc) ||

>  				  mmc->caps & MMC_CAP_NEEDS_POLL ||

>  				  !mmc_card_is_removable(mmc));

>  

> -- 

> 2.7.4

>
Masahiro Yamada Nov. 20, 2017, 3:39 p.m. UTC | #2
2017-11-20 4:47 GMT+09:00 Wolfram Sang <wsa@the-dreams.de>:
> On Wed, Nov 08, 2017 at 07:16:59PM +0900, Masahiro Yamada wrote:

>> To use a GPIO line for card detection, TMIO_MMC_USE_GPIO_CD is used

>> by a legacy board (arch/sh/boards/mach-ecovec24).

>>

>> For DT platforms, the "cd-gpios" property is a legitimate way for that

>> in case the IP-builtin card detection can not be used for some reason.

>> mmc_of_parse() calls mmc_gpiod_request_cd() to set up ctx->cd_gpio if

>> the "cd-gpios" property is specified.

>

> So, it fixed the DT not recognized via TMIO_MMC_USE_GPIO_CD? Did I get

> this right?

>

>>

>> To cater to both cases, mmc_can_gpio_cd() is a correct way to check

>> which card detection logic is used.

>>

>> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>

>> ---

>>

>>  drivers/mmc/host/tmio_mmc_core.c | 2 +-

>>  1 file changed, 1 insertion(+), 1 deletion(-)

>>

>> diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c

>> index 7c0e952..9fd0874 100644

>> --- a/drivers/mmc/host/tmio_mmc_core.c

>> +++ b/drivers/mmc/host/tmio_mmc_core.c

>> @@ -1228,7 +1228,7 @@ int tmio_mmc_host_probe(struct tmio_mmc_host *_host,

>>       }

>>       mmc->max_seg_size = mmc->max_req_size;

>>

>> -     _host->native_hotplug = !(pdata->flags & TMIO_MMC_USE_GPIO_CD ||

>> +     _host->native_hotplug = !(mmc_can_gpio_cd(mmc) ||

>>                                 mmc->caps & MMC_CAP_NEEDS_POLL ||

>>                                 !mmc_card_is_removable(mmc));

>>


I do not think I fully understand
how TMIO / Renesas platforms detect the card removal/insertion.

I see TMIO_MMC_USE_GPIO_CD only in
arch/sh/boards/mach-ecovec24/setup.c


As far as I understood, ->native_hotplug flag
decides the interrupt (TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT).

If you use GPIO, enabling such IRQs is pointless.


However, currently only GPIO is supported for CD
as I addressed:
https://patchwork.kernel.org/patch/10048239/


I am puzzled by this driver.


-- 
Best Regards
Masahiro Yamada
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox series

Patch

diff --git a/drivers/mmc/host/tmio_mmc_core.c b/drivers/mmc/host/tmio_mmc_core.c
index 7c0e952..9fd0874 100644
--- a/drivers/mmc/host/tmio_mmc_core.c
+++ b/drivers/mmc/host/tmio_mmc_core.c
@@ -1228,7 +1228,7 @@  int tmio_mmc_host_probe(struct tmio_mmc_host *_host,
 	}
 	mmc->max_seg_size = mmc->max_req_size;
 
-	_host->native_hotplug = !(pdata->flags & TMIO_MMC_USE_GPIO_CD ||
+	_host->native_hotplug = !(mmc_can_gpio_cd(mmc) ||
 				  mmc->caps & MMC_CAP_NEEDS_POLL ||
 				  !mmc_card_is_removable(mmc));