All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
@ 2011-06-01  8:48 ` Per Forlin
  0 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-01  8:48 UTC (permalink / raw)
  To: linux-mmc, linux-arm-kernel, Nicolas Pitre, linaro-dev,
	Daniel Drake, Linus
  Cc: Chris Ball, Per Forlin

From: Per Forlin <per.forlin@linaro.org>

Daniel Drake reported an issue in the libertas sdio client that was
triggered by the sdio_single_irq functionality. His SDIO device seems to
raise an interrupt even though there are no bits set in the CCCR_INTx
register. This behaviour is not supported by the sdio_single_irq feature nor
the SDIO spec. The purpose of the sdio_single_irq feature is to avoid the
overhead of checking the CCCR_INTx registers, this result in no error
handling of the case if there is a pending IRQ with none CCCR_INTx bits set.

This patchset adds a quirk to support this spurious IRQ issue and also report
a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.

Changes since v1:
 * Replace public sdio function to enable disable SDIO single IRQ function
   with a quirk

Per Forlin (2):
  sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
  sdio: report error if pending IRQ but none CCCR_INTx bits

 drivers/mmc/core/sdio_irq.c |    9 +++++++--
 include/linux/mmc/card.h    |    1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

-- 
1.7.4.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
@ 2011-06-01  8:48 ` Per Forlin
  0 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-01  8:48 UTC (permalink / raw)
  To: linux-arm-kernel

From: Per Forlin <per.forlin@linaro.org>

Daniel Drake reported an issue in the libertas sdio client that was
triggered by the sdio_single_irq functionality. His SDIO device seems to
raise an interrupt even though there are no bits set in the CCCR_INTx
register. This behaviour is not supported by the sdio_single_irq feature nor
the SDIO spec. The purpose of the sdio_single_irq feature is to avoid the
overhead of checking the CCCR_INTx registers, this result in no error
handling of the case if there is a pending IRQ with none CCCR_INTx bits set.

This patchset adds a quirk to support this spurious IRQ issue and also report
a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.

Changes since v1:
 * Replace public sdio function to enable disable SDIO single IRQ function
   with a quirk

Per Forlin (2):
  sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
  sdio: report error if pending IRQ but none CCCR_INTx bits

 drivers/mmc/core/sdio_irq.c |    9 +++++++--
 include/linux/mmc/card.h    |    1 +
 2 files changed, 8 insertions(+), 2 deletions(-)

-- 
1.7.4.1

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
  2011-06-01  8:48 ` Per Forlin
@ 2011-06-01  8:48     ` Per Forlin
  -1 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-01  8:48 UTC (permalink / raw)
  To: linux-mmc-u79uwXL29TY76Z2rM5mHXA,
	linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Nicolas Pitre,
	linaro-dev-cunTk1MwBs8s++Sfvej+rw, Daniel Drake, Linus

From: Per Forlin <per.forlin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>

Add quirk MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 to handle SDIO device that may
have pending IRQ when none bits are set in CCCR_INTx.

This IRQ issue was identified in the libertas sdio driver where the
SDIO device seems to raise an interrupt even if there were none function
bits in CCCR_INTx set. SDIO single irq feature will call irq handler directly
in case of only one interrupt registered. It will not check the CCCR_INTx
register and miss if the register is 0 and call the irq handler anyway.
This IRQ issue is not defined by the SDIO spec.
Use this quirk to work around this SDIO IRQ issue for a specific device.

Signed-off-by: Per Forlin <per.forlin-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
---
 drivers/mmc/core/sdio_irq.c |    4 ++--
 include/linux/mmc/card.h    |    1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/core/sdio_irq.c b/drivers/mmc/core/sdio_irq.c
index 03ead02..df1e946 100644
--- a/drivers/mmc/core/sdio_irq.c
+++ b/drivers/mmc/core/sdio_irq.c
@@ -204,7 +204,8 @@ static void sdio_single_irq_set(struct mmc_card *card)
 	int i;
 
 	card->sdio_single_irq = NULL;
-	if ((card->host->caps & MMC_CAP_SDIO_IRQ) &&
+	if (!(card->quirks & MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0) &&
+	    (card->host->caps & MMC_CAP_SDIO_IRQ) &&
 	    card->host->sdio_irqs == 1)
 		for (i = 0; i < card->sdio_funcs; i++) {
 		       func = card->sdio_func[i];
@@ -301,4 +302,3 @@ int sdio_release_irq(struct sdio_func *func)
 	return 0;
 }
 EXPORT_SYMBOL_GPL(sdio_release_irq);
-
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 7b4fd7b..852021c 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -175,6 +175,7 @@ struct mmc_card {
 #define MMC_QUIRK_DISABLE_CD	(1<<5)		/* disconnect CD/DAT[3] resistor */
 #define MMC_QUIRK_INAND_CMD38	(1<<6)		/* iNAND devices have broken CMD38 */
 #define MMC_QUIRK_BLK_NO_CMD23	(1<<7)		/* Avoid CMD23 for regular multiblock */
+#define MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 (1<<7)	/* SDIO card has IRQ even if CCCR_INTx is 0 */
 
 	unsigned int		erase_size;	/* erase size in sectors */
  	unsigned int		erase_shift;	/* if erase unit is power 2 */
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
@ 2011-06-01  8:48     ` Per Forlin
  0 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-01  8:48 UTC (permalink / raw)
  To: linux-arm-kernel

From: Per Forlin <per.forlin@linaro.org>

Add quirk MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 to handle SDIO device that may
have pending IRQ when none bits are set in CCCR_INTx.

This IRQ issue was identified in the libertas sdio driver where the
SDIO device seems to raise an interrupt even if there were none function
bits in CCCR_INTx set. SDIO single irq feature will call irq handler directly
in case of only one interrupt registered. It will not check the CCCR_INTx
register and miss if the register is 0 and call the irq handler anyway.
This IRQ issue is not defined by the SDIO spec.
Use this quirk to work around this SDIO IRQ issue for a specific device.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
---
 drivers/mmc/core/sdio_irq.c |    4 ++--
 include/linux/mmc/card.h    |    1 +
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/core/sdio_irq.c b/drivers/mmc/core/sdio_irq.c
index 03ead02..df1e946 100644
--- a/drivers/mmc/core/sdio_irq.c
+++ b/drivers/mmc/core/sdio_irq.c
@@ -204,7 +204,8 @@ static void sdio_single_irq_set(struct mmc_card *card)
 	int i;
 
 	card->sdio_single_irq = NULL;
-	if ((card->host->caps & MMC_CAP_SDIO_IRQ) &&
+	if (!(card->quirks & MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0) &&
+	    (card->host->caps & MMC_CAP_SDIO_IRQ) &&
 	    card->host->sdio_irqs == 1)
 		for (i = 0; i < card->sdio_funcs; i++) {
 		       func = card->sdio_func[i];
@@ -301,4 +302,3 @@ int sdio_release_irq(struct sdio_func *func)
 	return 0;
 }
 EXPORT_SYMBOL_GPL(sdio_release_irq);
-
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
index 7b4fd7b..852021c 100644
--- a/include/linux/mmc/card.h
+++ b/include/linux/mmc/card.h
@@ -175,6 +175,7 @@ struct mmc_card {
 #define MMC_QUIRK_DISABLE_CD	(1<<5)		/* disconnect CD/DAT[3] resistor */
 #define MMC_QUIRK_INAND_CMD38	(1<<6)		/* iNAND devices have broken CMD38 */
 #define MMC_QUIRK_BLK_NO_CMD23	(1<<7)		/* Avoid CMD23 for regular multiblock */
+#define MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 (1<<7)	/* SDIO card has IRQ even if CCCR_INTx is 0 */
 
 	unsigned int		erase_size;	/* erase size in sectors */
  	unsigned int		erase_shift;	/* if erase unit is power 2 */
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 2/2] sdio: report error if pending IRQ but none CCCR_INTx bits
  2011-06-01  8:48     ` Per Forlin
@ 2011-06-01  8:48       ` Per Forlin
  -1 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-01  8:48 UTC (permalink / raw)
  To: linux-mmc, linux-arm-kernel, Nicolas Pitre, linaro-dev,
	Daniel Drake, Linus
  Cc: Chris Ball, Per Forlin

From: Per Forlin <per.forlin@linaro.org>

Return error in case of pending IRQ but none functions bits
in CCCR_INTx are set.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
---
 drivers/mmc/core/sdio_irq.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/core/sdio_irq.c b/drivers/mmc/core/sdio_irq.c
index df1e946..4288d92 100644
--- a/drivers/mmc/core/sdio_irq.c
+++ b/drivers/mmc/core/sdio_irq.c
@@ -50,6 +50,11 @@ static int process_sdio_pending_irqs(struct mmc_card *card)
 		return ret;
 	}
 
+	if (!pending) {
+		printk(KERN_WARNING "%s: pending IRQ but none function bits\n",
+		       mmc_card_id(card));
+		ret = -EINVAL;
+	}
 	count = 0;
 	for (i = 1; i <= 7; i++) {
 		if (pending & (1 << i)) {
-- 
1.7.4.1


^ permalink raw reply related	[flat|nested] 16+ messages in thread

* [PATCH v2 2/2] sdio: report error if pending IRQ but none CCCR_INTx bits
@ 2011-06-01  8:48       ` Per Forlin
  0 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-01  8:48 UTC (permalink / raw)
  To: linux-arm-kernel

From: Per Forlin <per.forlin@linaro.org>

Return error in case of pending IRQ but none functions bits
in CCCR_INTx are set.

Signed-off-by: Per Forlin <per.forlin@linaro.org>
---
 drivers/mmc/core/sdio_irq.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/core/sdio_irq.c b/drivers/mmc/core/sdio_irq.c
index df1e946..4288d92 100644
--- a/drivers/mmc/core/sdio_irq.c
+++ b/drivers/mmc/core/sdio_irq.c
@@ -50,6 +50,11 @@ static int process_sdio_pending_irqs(struct mmc_card *card)
 		return ret;
 	}
 
+	if (!pending) {
+		printk(KERN_WARNING "%s: pending IRQ but none function bits\n",
+		       mmc_card_id(card));
+		ret = -EINVAL;
+	}
 	count = 0;
 	for (i = 1; i <= 7; i++) {
 		if (pending & (1 << i)) {
-- 
1.7.4.1

^ permalink raw reply related	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
  2011-06-01  8:48 ` Per Forlin
@ 2011-06-01 15:59   ` Nicolas Pitre
  -1 siblings, 0 replies; 16+ messages in thread
From: Nicolas Pitre @ 2011-06-01 15:59 UTC (permalink / raw)
  To: Per Forlin
  Cc: linux-mmc, linux-arm-kernel, linaro-dev, Daniel Drake,
	Linus Walleij, Chris Ball, Per Forlin

On Wed, 1 Jun 2011, Per Forlin wrote:

> From: Per Forlin <per.forlin@linaro.org>
> 
> Daniel Drake reported an issue in the libertas sdio client that was
> triggered by the sdio_single_irq functionality. His SDIO device seems to
> raise an interrupt even though there are no bits set in the CCCR_INTx
> register. This behaviour is not supported by the sdio_single_irq feature nor
> the SDIO spec. The purpose of the sdio_single_irq feature is to avoid the
> overhead of checking the CCCR_INTx registers, this result in no error
> handling of the case if there is a pending IRQ with none CCCR_INTx bits set.
> 
> This patchset adds a quirk to support this spurious IRQ issue and also report
> a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.

Given that the issue can be fixed locally to the libertas driver, I'd 
suggest not merging this series until truly unfixable issues come up, as 
Daniel said.


Nicolas

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
@ 2011-06-01 15:59   ` Nicolas Pitre
  0 siblings, 0 replies; 16+ messages in thread
From: Nicolas Pitre @ 2011-06-01 15:59 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, 1 Jun 2011, Per Forlin wrote:

> From: Per Forlin <per.forlin@linaro.org>
> 
> Daniel Drake reported an issue in the libertas sdio client that was
> triggered by the sdio_single_irq functionality. His SDIO device seems to
> raise an interrupt even though there are no bits set in the CCCR_INTx
> register. This behaviour is not supported by the sdio_single_irq feature nor
> the SDIO spec. The purpose of the sdio_single_irq feature is to avoid the
> overhead of checking the CCCR_INTx registers, this result in no error
> handling of the case if there is a pending IRQ with none CCCR_INTx bits set.
> 
> This patchset adds a quirk to support this spurious IRQ issue and also report
> a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.

Given that the issue can be fixed locally to the libertas driver, I'd 
suggest not merging this series until truly unfixable issues come up, as 
Daniel said.


Nicolas

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
  2011-06-01 15:59   ` Nicolas Pitre
@ 2011-06-01 17:00     ` Chris Ball
  -1 siblings, 0 replies; 16+ messages in thread
From: Chris Ball @ 2011-06-01 17:00 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: Per Forlin, linux-mmc, linux-arm-kernel, linaro-dev,
	Daniel Drake, Linus Walleij, Per Forlin

Hi,

On Wed, Jun 01 2011, Nicolas Pitre wrote:
>> This patchset adds a quirk to support this spurious IRQ issue and also report
>> a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.
>
> Given that the issue can be fixed locally to the libertas driver, I'd 
> suggest not merging this series until truly unfixable issues come up, as 
> Daniel said.

Yep, agreed.  Dan, please go ahead and submit the libertas patch and
let us know if there are any problems getting it in for 3.0.  (Ideally
by the next -rc!)

Thanks very much, everyone,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
@ 2011-06-01 17:00     ` Chris Ball
  0 siblings, 0 replies; 16+ messages in thread
From: Chris Ball @ 2011-06-01 17:00 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Wed, Jun 01 2011, Nicolas Pitre wrote:
>> This patchset adds a quirk to support this spurious IRQ issue and also report
>> a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.
>
> Given that the issue can be fixed locally to the libertas driver, I'd 
> suggest not merging this series until truly unfixable issues come up, as 
> Daniel said.

Yep, agreed.  Dan, please go ahead and submit the libertas patch and
let us know if there are any problems getting it in for 3.0.  (Ideally
by the next -rc!)

Thanks very much, everyone,

- Chris.
-- 
Chris Ball   <cjb@laptop.org>   <http://printf.net/>
One Laptop Per Child

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
  2011-06-01  8:48     ` Per Forlin
@ 2011-06-01 21:36       ` Troy Kisky
  -1 siblings, 0 replies; 16+ messages in thread
From: Troy Kisky @ 2011-06-01 21:36 UTC (permalink / raw)
  To: Per Forlin
  Cc: Nicolas Pitre, linaro-dev, Daniel Drake, Linus Walleij,
	linux-mmc, Per Forlin, Chris Ball, linux-arm-kernel

On 6/1/2011 1:48 AM, Per Forlin wrote:
> From: Per Forlin <per.forlin@linaro.org>

> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
> index 7b4fd7b..852021c 100644
> --- a/include/linux/mmc/card.h
> +++ b/include/linux/mmc/card.h
> @@ -175,6 +175,7 @@ struct mmc_card {
>  #define MMC_QUIRK_DISABLE_CD	(1<<5)		/* disconnect CD/DAT[3] resistor */
>  #define MMC_QUIRK_INAND_CMD38	(1<<6)		/* iNAND devices have broken CMD38 */
>  #define MMC_QUIRK_BLK_NO_CMD23	(1<<7)		/* Avoid CMD23 for regular multiblock */
> +#define MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 (1<<7)	/* SDIO card has IRQ even if CCCR_INTx is 0 */

Using the same value as MMC_QUIRK_BLK_NO_CMD23 looks odd...

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
@ 2011-06-01 21:36       ` Troy Kisky
  0 siblings, 0 replies; 16+ messages in thread
From: Troy Kisky @ 2011-06-01 21:36 UTC (permalink / raw)
  To: linux-arm-kernel

On 6/1/2011 1:48 AM, Per Forlin wrote:
> From: Per Forlin <per.forlin@linaro.org>

> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
> index 7b4fd7b..852021c 100644
> --- a/include/linux/mmc/card.h
> +++ b/include/linux/mmc/card.h
> @@ -175,6 +175,7 @@ struct mmc_card {
>  #define MMC_QUIRK_DISABLE_CD	(1<<5)		/* disconnect CD/DAT[3] resistor */
>  #define MMC_QUIRK_INAND_CMD38	(1<<6)		/* iNAND devices have broken CMD38 */
>  #define MMC_QUIRK_BLK_NO_CMD23	(1<<7)		/* Avoid CMD23 for regular multiblock */
> +#define MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 (1<<7)	/* SDIO card has IRQ even if CCCR_INTx is 0 */

Using the same value as MMC_QUIRK_BLK_NO_CMD23 looks odd...

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
  2011-06-01 15:59   ` Nicolas Pitre
@ 2011-06-07  6:41     ` Per Forlin
  -1 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-07  6:41 UTC (permalink / raw)
  To: Nicolas Pitre
  Cc: Per Forlin, linux-mmc, linux-arm-kernel, linaro-dev,
	Daniel Drake, Linus Walleij, Chris Ball

On 1 June 2011 17:59, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> On Wed, 1 Jun 2011, Per Forlin wrote:
>
>> From: Per Forlin <per.forlin@linaro.org>
>>
>> Daniel Drake reported an issue in the libertas sdio client that was
>> triggered by the sdio_single_irq functionality. His SDIO device seems to
>> raise an interrupt even though there are no bits set in the CCCR_INTx
>> register. This behaviour is not supported by the sdio_single_irq feature nor
>> the SDIO spec. The purpose of the sdio_single_irq feature is to avoid the
>> overhead of checking the CCCR_INTx registers, this result in no error
>> handling of the case if there is a pending IRQ with none CCCR_INTx bits set.
>>
>> This patchset adds a quirk to support this spurious IRQ issue and also report
>> a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.
>
> Given that the issue can be fixed locally to the libertas driver, I'd
> suggest not merging this series until truly unfixable issues come up, as
> Daniel said.
>
I agree too.

Thanks,
Per

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ
@ 2011-06-07  6:41     ` Per Forlin
  0 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-07  6:41 UTC (permalink / raw)
  To: linux-arm-kernel

On 1 June 2011 17:59, Nicolas Pitre <nicolas.pitre@linaro.org> wrote:
> On Wed, 1 Jun 2011, Per Forlin wrote:
>
>> From: Per Forlin <per.forlin@linaro.org>
>>
>> Daniel Drake reported an issue in the libertas sdio client that was
>> triggered by the sdio_single_irq functionality. His SDIO device seems to
>> raise an interrupt even though there are no bits set in the CCCR_INTx
>> register. This behaviour is not supported by the sdio_single_irq feature nor
>> the SDIO spec. The purpose of the sdio_single_irq feature is to avoid the
>> overhead of checking the CCCR_INTx registers, this result in no error
>> handling of the case if there is a pending IRQ with none CCCR_INTx bits set.
>>
>> This patchset adds a quirk to support this spurious IRQ issue and also report
>> a warning if an SDIO interrupt is raised but none CCCR_INTx bits are set.
>
> Given that the issue can be fixed locally to the libertas driver, I'd
> suggest not merging this series until truly unfixable issues come up, as
> Daniel said.
>
I agree too.

Thanks,
Per

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
  2011-06-01 21:36       ` Troy Kisky
@ 2011-06-07  6:49         ` Per Forlin
  -1 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-07  6:49 UTC (permalink / raw)
  To: Troy Kisky
  Cc: Per Forlin, linux-mmc, linux-arm-kernel, Nicolas Pitre,
	linaro-dev, Daniel Drake, Linus Walleij, Chris Ball

On 1 June 2011 23:36, Troy Kisky <troy.kisky@boundarydevices.com> wrote:
> On 6/1/2011 1:48 AM, Per Forlin wrote:
>> From: Per Forlin <per.forlin@linaro.org>
>
>> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
>> index 7b4fd7b..852021c 100644
>> --- a/include/linux/mmc/card.h
>> +++ b/include/linux/mmc/card.h
>> @@ -175,6 +175,7 @@ struct mmc_card {
>>  #define MMC_QUIRK_DISABLE_CD (1<<5)          /* disconnect CD/DAT[3] resistor */
>>  #define MMC_QUIRK_INAND_CMD38        (1<<6)          /* iNAND devices have broken CMD38 */
>>  #define MMC_QUIRK_BLK_NO_CMD23       (1<<7)          /* Avoid CMD23 for regular multiblock */
>> +#define MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 (1<<7)        /* SDIO card has IRQ even if CCCR_INTx is 0 */
>
> Using the same value as MMC_QUIRK_BLK_NO_CMD23 looks odd...
>
Thanks for your observation.
Typo, it should be (1 << 8)
I'll update the patch but I don't plan post a new version yet. The
root cause issue in the libertas is resolved. If the fix turns out to
be needed later on I resend it.

Thanks,
Per

^ permalink raw reply	[flat|nested] 16+ messages in thread

* [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits
@ 2011-06-07  6:49         ` Per Forlin
  0 siblings, 0 replies; 16+ messages in thread
From: Per Forlin @ 2011-06-07  6:49 UTC (permalink / raw)
  To: linux-arm-kernel

On 1 June 2011 23:36, Troy Kisky <troy.kisky@boundarydevices.com> wrote:
> On 6/1/2011 1:48 AM, Per Forlin wrote:
>> From: Per Forlin <per.forlin@linaro.org>
>
>> diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h
>> index 7b4fd7b..852021c 100644
>> --- a/include/linux/mmc/card.h
>> +++ b/include/linux/mmc/card.h
>> @@ -175,6 +175,7 @@ struct mmc_card {
>> ?#define MMC_QUIRK_DISABLE_CD (1<<5) ? ? ? ? ?/* disconnect CD/DAT[3] resistor */
>> ?#define MMC_QUIRK_INAND_CMD38 ? ? ? ?(1<<6) ? ? ? ? ?/* iNAND devices have broken CMD38 */
>> ?#define MMC_QUIRK_BLK_NO_CMD23 ? ? ? (1<<7) ? ? ? ? ?/* Avoid CMD23 for regular multiblock */
>> +#define MMC_QUIRK_SDIO_IRQ_CCCR_INTX_0 (1<<7) ? ? ? ?/* SDIO card has IRQ even if CCCR_INTx is 0 */
>
> Using the same value as MMC_QUIRK_BLK_NO_CMD23 looks odd...
>
Thanks for your observation.
Typo, it should be (1 << 8)
I'll update the patch but I don't plan post a new version yet. The
root cause issue in the libertas is resolved. If the fix turns out to
be needed later on I resend it.

Thanks,
Per

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2011-06-07  6:49 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-01  8:48 [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ Per Forlin
2011-06-01  8:48 ` Per Forlin
     [not found] ` <1306918113-23872-1-git-send-email-per.forlin-0IS4wlFg1OjSUeElwK9/Pw@public.gmane.org>
2011-06-01  8:48   ` [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of none CCCR_INTx bits Per Forlin
2011-06-01  8:48     ` Per Forlin
2011-06-01  8:48     ` [PATCH v2 2/2] sdio: report error if pending IRQ but " Per Forlin
2011-06-01  8:48       ` Per Forlin
2011-06-01 21:36     ` [PATCH v2 1/2] sdio: add quirk to handle pending IRQ in case of " Troy Kisky
2011-06-01 21:36       ` Troy Kisky
2011-06-07  6:49       ` Per Forlin
2011-06-07  6:49         ` Per Forlin
2011-06-01 15:59 ` [PATCH v2 0/2] sdio: add quirk for spurious SDIO IRQ Nicolas Pitre
2011-06-01 15:59   ` Nicolas Pitre
2011-06-01 17:00   ` Chris Ball
2011-06-01 17:00     ` Chris Ball
2011-06-07  6:41   ` Per Forlin
2011-06-07  6:41     ` Per Forlin

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.