All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christian Daudt" <csd@broadcom.com>
To: Christian Daudt <csd@broadcom.com>
Cc: Chris Ball <cjb@laptop.org>,
	Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Shawn Guo <shawn.guo@linaro.org>,
	linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] mmc: change mmc_gpio_get_cd to call non-sleep gpio
Date: Thu, 8 Aug 2013 13:47:34 -0700	[thread overview]
Message-ID: <1375994855-12472-1-git-send-email-csd@broadcom.com> (raw)

Given that mmc_gpio_get_cd can be called in softirq
context (by sdhci_tasklet_card -> sdhci_card_event ->
sdhci_do_get_cd -> mmc_gpio_get_cd ), it is necessary
for it to use gpio_get_value instead of
gpio_get_value_cansleep
Note that at present sdhci_card_event gets called both
from mmc_gpio_cd_irqt and sdhci_tasklet_card, and from
both it gets called immediately while the actual cd
processing is debounced to 200ms later. I think that
the better solution might be to move the sdhci_card_event
callback into mmc_rescan and remove it from its 2
present locations. That way the cd related callbacks
are aligned with the actual cd detection code. I can
submit a follow-up patch with these mods if that sounds
like a better way to solve this.

Signed-off-by: Christian Daudt <csd@broadcom.com>

diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c
index 3242351..897b298 100644
--- a/drivers/mmc/core/slot-gpio.c
+++ b/drivers/mmc/core/slot-gpio.c
@@ -87,7 +87,7 @@ int mmc_gpio_get_cd(struct mmc_host *host)
 	if (!ctx || !gpio_is_valid(ctx->cd_gpio))
 		return -ENOSYS;
 
-	return !gpio_get_value_cansleep(ctx->cd_gpio) ^
+	return !gpio_get_value(ctx->cd_gpio) ^
 		!!(host->caps2 & MMC_CAP2_CD_ACTIVE_HIGH);
 }
 EXPORT_SYMBOL(mmc_gpio_get_cd);
-- 
1.7.10.4



             reply	other threads:[~2013-08-08 20:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-08 20:47 Christian Daudt [this message]
2013-08-08 21:06 ` [PATCH] mmc: change mmc_gpio_get_cd to call non-sleep gpio Guennadi Liakhovetski
2013-08-08 21:10   ` Christian Daudt
2013-08-19 23:36     ` Christian Daudt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1375994855-12472-1-git-send-email-csd@broadcom.com \
    --to=csd@broadcom.com \
    --cc=cjb@laptop.org \
    --cc=g.liakhovetski@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=shawn.guo@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.