From: linux@arm.linux.org.uk (Russell King - ARM Linux)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 04/12] mmci: allow the card detect status not to be inverted
Date: Thu, 29 Jul 2010 15:20:11 +0100 [thread overview]
Message-ID: <20100729142011.GG18923@n2100.arm.linux.org.uk> (raw)
In-Reply-To: <AANLkTikQi+SPpx8Wpvb0siSSsw0ZhusWaaKmqRnfHrnz@mail.gmail.com>
On Thu, Jul 29, 2010 at 03:53:19PM +0200, Linus Walleij wrote:
> 2010/7/29 Russell King - ARM Linux <linux@arm.linux.org.uk>:
>
> > What now needs to happen is the sense of the GPIOLIB support on platforms
> > needs to be checked - eg, I suspect the card detect via the GPIO primecell
> > is inverted on Realview - in which case we need a 'cd_invert' rather
> > than the negative 'cd_noinvert'.
>
> Doesn't seem so. I applied this patch and it works like a charm just
> like before on PB1176. (PL061 is compiled in, so it's not that other
> weird stuff being used.)
Well, as I said in the other thread which seems to be dealing with this,
I'm completely confused (as seems to be the case with this) as to what
sense the various card detect signals are on ARMs various hardware
platforms.
It seems to be a totally undocumented - and I've no idea whether the
behaviour I see on my platforms is what other people see (from some
suggestions in these threads, my platforms behave differently.)
So, for now I'm going to go with this patch, which fixes it across the
board for the non-GPIO cases.
When the right sense for the GPIO case can be _properly_ determined,
we can see about fixing that. What I don't want to get into is a "it
works this way on my realview revision X platform, but not revision Y."
If that's the case, we might as well stick with reading the status from
the reliable MCI register which always uses positive logic.
diff --git a/arch/arm/mach-realview/core.c b/arch/arm/mach-realview/core.c
index 595be19..02e9fde 100644
--- a/arch/arm/mach-realview/core.c
+++ b/arch/arm/mach-realview/core.c
@@ -237,7 +237,7 @@ static unsigned int realview_mmc_status(struct device *dev)
else
mask = 2;
- return !(readl(REALVIEW_SYSMCI) & mask);
+ return readl(REALVIEW_SYSMCI) & mask;
}
struct mmci_platform_data realview_mmc0_plat_data = {
diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
index d250711..c842397 100644
--- a/arch/arm/mach-vexpress/v2m.c
+++ b/arch/arm/mach-vexpress/v2m.c
@@ -241,7 +241,7 @@ static struct platform_device v2m_flash_device = {
static unsigned int v2m_mmci_status(struct device *dev)
{
- return !(readl(MMIO_P2V(V2M_SYS_MCI)) & (1 << 0));
+ return readl(MMIO_P2V(V2M_SYS_MCI)) & (1 << 0);
}
static struct mmci_platform_data v2m_mmci_data = {
diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
index 4917af9..8ca38d9 100644
--- a/drivers/mmc/host/mmci.c
+++ b/drivers/mmc/host/mmci.c
@@ -541,7 +541,11 @@ static int mmci_get_cd(struct mmc_host *mmc)
else
status = gpio_get_value(host->gpio_cd);
- return !status;
+ /*
+ * Use positive logic throughout - status is zero for no card,
+ * non-zero for card inserted.
+ */
+ return status;
}
static const struct mmc_host_ops mmci_ops = {
next prev parent reply other threads:[~2010-07-29 14:20 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-22 9:17 [PATCH 01/12] mmci: use sg_miter API to fix multi-page sg handling Rabin Vincent
2010-06-22 9:17 ` [PATCH 02/12] mmci: fix multi block transfers Rabin Vincent
2010-07-29 13:18 ` Russell King - ARM Linux
2010-07-29 13:31 ` Colin Tuckley
2010-07-29 13:36 ` Russell King - ARM Linux
2010-07-29 13:42 ` Colin Tuckley
2010-07-29 13:55 ` Russell King - ARM Linux
2010-07-29 14:14 ` Russell King - ARM Linux
2010-06-22 9:17 ` [PATCH 03/12] mmci: let core poll for card detection Rabin Vincent
2010-06-22 9:17 ` [PATCH 04/12] mmci: allow the card detect status not to be inverted Rabin Vincent
2010-07-29 12:34 ` Russell King - ARM Linux
2010-07-29 13:53 ` Linus Walleij
2010-07-29 14:20 ` Russell King - ARM Linux [this message]
2010-08-05 6:14 ` Rabin VINCENT
2010-08-05 9:25 ` Russell King - ARM Linux
2010-08-09 10:37 ` Rabin VINCENT
2010-08-09 11:25 ` Russell King - ARM Linux
2010-06-22 9:17 ` [PATCH 05/12] mmci: support card detection interrupts Rabin Vincent
2010-06-22 9:17 ` [PATCH 06/12] mmci: allow neither ->status nor gpio_cd to be specified Rabin Vincent
2010-06-22 9:17 ` [PATCH 07/12] mmci: pass power_mode to the translate_vdd callback Rabin Vincent
2010-06-22 22:03 ` Linus Walleij
2010-06-24 8:27 ` Rabin VINCENT
2010-06-24 8:56 ` Linus WALLEIJ
2010-07-19 12:57 ` [PATCHv2 " Rabin Vincent
2010-06-22 9:17 ` [PATCH 08/12] mmci: add variant data and default MCICLOCK support Rabin Vincent
2010-06-22 9:17 ` [PATCH 09/12] mmci: enable hardware flow control on Ux500 variants Rabin Vincent
2010-06-22 9:17 ` [PATCH 10/12] mmci: support larger MMCIDATALENGTH register Rabin Vincent
2010-06-22 9:17 ` [PATCH 11/12] mmci: support different FIFO sizes Rabin Vincent
2010-06-22 9:17 ` [PATCH 12/12] mmci: support variants with only one irq Rabin Vincent
2010-09-23 20:04 ` Linus Walleij
2010-10-11 0:06 ` [PATCHv2] mmci: work " Rabin Vincent
2010-10-11 9:13 ` Linus Walleij
2010-10-11 9:44 ` Russell King - ARM Linux
2010-10-11 11:10 ` Linus Walleij
2010-10-19 12:52 ` Linus Walleij
2010-07-07 20:34 ` [PATCH 01/12] mmci: use sg_miter API to fix multi-page sg handling Linus Walleij
2010-07-19 13:23 ` [PATCHv2 " Rabin Vincent
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=20100729142011.GG18923@n2100.arm.linux.org.uk \
--to=linux@arm.linux.org.uk \
--cc=linux-arm-kernel@lists.infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).