Message ID | 1435312810-23957-2-git-send-email-ivan.ivanov@linaro.org (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | Andy Gross |
Headers | show |
On 26/06/15 13:00, Ivan T. Ivanov wrote: > Controller could have BROKEN_CARD_DETECTION quirk set, but drivers > could use GPIO to detect card present state. Let, when defined, GPIO > take precedence, so drivers could properly detect card state and not > use polling. > > Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org> > --- > drivers/mmc/host/sdhci.c | 11 +++++++---- > 1 file changed, 7 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > index bc14452..8bafb9f 100644 > --- a/drivers/mmc/host/sdhci.c > +++ b/drivers/mmc/host/sdhci.c > @@ -1601,15 +1601,18 @@ static int sdhci_do_get_cd(struct sdhci_host *host) > if (host->flags & SDHCI_DEVICE_DEAD) > return 0; > > + /* > + * Try slot gpio detect, if defined it take precedence > + * over build in controller functionality > + */ > + if (!IS_ERR_VALUE(gpio_cd)) > + return !!gpio_cd; > + You've also put it above the MMC_CAP_NONREMOVABLE check which doesn't seem right. > /* If polling/nonremovable, assume that the card is always present. */ > if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) || > (host->mmc->caps & MMC_CAP_NONREMOVABLE)) > return 1; > > - /* Try slot gpio detect */ > - if (!IS_ERR_VALUE(gpio_cd)) > - return !!gpio_cd; > - > /* Host native card detect */ > return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); > } > -- > 1.9.1 > > > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2015-06-26 at 13:19 +0300, Adrian Hunter wrote: > On 26/06/15 13:00, Ivan T. Ivanov wrote: > > Controller could have BROKEN_CARD_DETECTION quirk set, but drivers > > could use GPIO to detect card present state. Let, when defined, GPIO > > take precedence, so drivers could properly detect card state and not > > use polling. > > > > Signed-off-by: Ivan T. Ivanov ivanov@linaro.org> > > --- > > drivers/mmc/host/sdhci.c | 11 +++++++---- > > 1 file changed, 7 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > > index bc14452..8bafb9f 100644 > > --- a/drivers/mmc/host/sdhci.c > > +++ b/drivers/mmc/host/sdhci.c > > @@ -1601,15 +1601,18 @@ static int sdhci_do_get_cd(struct sdhci_host *host) > > if (host->flags & SDHCI_DEVICE_DEAD) > > return 0; > > > > + /* > > + * Try slot gpio detect, if defined it take precedence > > + * over build in controller functionality > > + */ > > + if (!IS_ERR_VALUE(gpio_cd)) > > + return !!gpio_cd; > > + > > You've also put it above the MMC_CAP_NONREMOVABLE check which doesn't seem > right. > Probably, but what are the chances that this is valid GIO for non-removable cards. I could rework it if you insist. Thank you, Ivan > > /* If polling/nonremovable, assume that the card is always present. */ > > if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) || > > (host->mmc->caps & MMC_CAP_NONREMOVABLE)) > > return 1; > > > > - /* Try slot gpio detect */ > > - if (!IS_ERR_VALUE(gpio_cd)) > > - return !!gpio_cd; > > - > > /* Host native card detect */ > > return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); > > } > > -- > > 1.9.1 > > > > > > > > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 26/06/15 14:00, Ivan T. Ivanov wrote: > > On Fri, 2015-06-26 at 13:19 +0300, Adrian Hunter wrote: >> On 26/06/15 13:00, Ivan T. Ivanov wrote: >>> Controller could have BROKEN_CARD_DETECTION quirk set, but drivers >>> could use GPIO to detect card present state. Let, when defined, GPIO >>> take precedence, so drivers could properly detect card state and not >>> use polling. >>> >>> Signed-off-by: Ivan T. Ivanov ivanov@linaro.org> >>> --- >>> drivers/mmc/host/sdhci.c | 11 +++++++---- >>> 1 file changed, 7 insertions(+), 4 deletions(-) >>> >>> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c >>> index bc14452..8bafb9f 100644 >>> --- a/drivers/mmc/host/sdhci.c >>> +++ b/drivers/mmc/host/sdhci.c >>> @@ -1601,15 +1601,18 @@ static int sdhci_do_get_cd(struct sdhci_host *host) >>> if (host->flags & SDHCI_DEVICE_DEAD) >>> return 0; >>> >>> + /* >>> + * Try slot gpio detect, if defined it take precedence >>> + * over build in controller functionality >>> + */ >>> + if (!IS_ERR_VALUE(gpio_cd)) >>> + return !!gpio_cd; >>> + >> >> You've also put it above the MMC_CAP_NONREMOVABLE check which doesn't seem >> right. >> > > Probably, but what are the chances that this is valid GIO for non-removable cards. > I could rework it if you insist. It is nicer not to have to think "what are the chances", and nicer that the logic is strictly correct, so yes please. > > Thank you, > Ivan > >>> /* If polling/nonremovable, assume that the card is always present. */ >>> if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) || >>> (host->mmc->caps & MMC_CAP_NONREMOVABLE)) >>> return 1; >>> >>> - /* Try slot gpio detect */ >>> - if (!IS_ERR_VALUE(gpio_cd)) >>> - return !!gpio_cd; >>> - >>> /* Host native card detect */ >>> return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); >>> } >>> -- >>> 1.9.1 >>> >>> >>> >> >> > > -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Fri, 2015-06-26 at 14:09 +0300, Adrian Hunter wrote: > On 26/06/15 14:00, Ivan T. Ivanov wrote: > > On Fri, 2015-06-26 at 13:19 +0300, Adrian Hunter wrote: > > > On 26/06/15 13:00, Ivan T. Ivanov wrote: > > > > Controller could have BROKEN_CARD_DETECTION quirk set, but drivers > > > > could use GPIO to detect card present state. Let, when defined, GPIO > > > > take precedence, so drivers could properly detect card state and not > > > > use polling. > > > > > > > > Signed-off-by: Ivan T. Ivanov ivanov@linaro.org> > > > > --- > > > > drivers/mmc/host/sdhci.c | 11 +++++++---- > > > > 1 file changed, 7 insertions(+), 4 deletions(-) > > > > > > > > diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c > > > > index bc14452..8bafb9f 100644 > > > > --- a/drivers/mmc/host/sdhci.c > > > > +++ b/drivers/mmc/host/sdhci.c > > > > @@ -1601,15 +1601,18 @@ static int sdhci_do_get_cd(struct sdhci_host *host) > > > > if (host->flags & SDHCI_DEVICE_DEAD) > > > > return 0; > > > > > > > > + /* > > > > + * Try slot gpio detect, if defined it take precedence > > > > + * over build in controller functionality > > > > + */ > > > > + if (!IS_ERR_VALUE(gpio_cd)) > > > > + return !!gpio_cd; > > > > + > > > > > > You've also put it above the MMC_CAP_NONREMOVABLE check which doesn't seem > > > right. > > > > > > > Probably, but what are the chances that this is valid GIO for non-removable cards. > > I could rework it if you insist. > > It is nicer not to have to think "what are the chances", and nicer that the > logic is strictly correct, so yes please. > Sure, will do. Thanks, Ivan -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c index bc14452..8bafb9f 100644 --- a/drivers/mmc/host/sdhci.c +++ b/drivers/mmc/host/sdhci.c @@ -1601,15 +1601,18 @@ static int sdhci_do_get_cd(struct sdhci_host *host) if (host->flags & SDHCI_DEVICE_DEAD) return 0; + /* + * Try slot gpio detect, if defined it take precedence + * over build in controller functionality + */ + if (!IS_ERR_VALUE(gpio_cd)) + return !!gpio_cd; + /* If polling/nonremovable, assume that the card is always present. */ if ((host->quirks & SDHCI_QUIRK_BROKEN_CARD_DETECTION) || (host->mmc->caps & MMC_CAP_NONREMOVABLE)) return 1; - /* Try slot gpio detect */ - if (!IS_ERR_VALUE(gpio_cd)) - return !!gpio_cd; - /* Host native card detect */ return !!(sdhci_readl(host, SDHCI_PRESENT_STATE) & SDHCI_CARD_PRESENT); }
Controller could have BROKEN_CARD_DETECTION quirk set, but drivers could use GPIO to detect card present state. Let, when defined, GPIO take precedence, so drivers could properly detect card state and not use polling. Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org> --- drivers/mmc/host/sdhci.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) -- 1.9.1 -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html