Message ID | 1510136220-31853-3-git-send-email-yamada.masahiro@socionext.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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 >
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.
> I am puzzled by this driver.
And now imagine that it is already cleaned up :)
I will check these CD patches tomorrow. I need a fresh brain for that.
Thanks for the work!
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));
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(-)