public inbox for linux-mmc@vger.kernel.org
 help / color / mirror / Atom feed
* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
  2012-02-08 17:22 [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed ludovic.desroches
@ 2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
  2012-02-08 15:45   ` Ludovic Desroches
  2012-02-09 10:55 ` ludovic.desroches
  1 sibling, 1 reply; 7+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-02-08 15:26 UTC (permalink / raw)
  To: ludovic.desroches; +Cc: nicolas.ferre, cjb, linux-mmc, linux-arm-kernel

On 18:22 Wed 08 Feb     , ludovic.desroches@atmel.com wrote:
> From: Ludovic Desroches <ludovic.desroches@atmel.com>

why do you need this?

Best Regards,
J.

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

* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
  2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2012-02-08 15:45   ` Ludovic Desroches
  2012-02-08 16:17     ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 1 reply; 7+ messages in thread
From: Ludovic Desroches @ 2012-02-08 15:45 UTC (permalink / raw)
  To: Jean-Christophe PLAGNIOL-VILLARD
  Cc: ludovic.desroches, linux-mmc, linux-arm-kernel, cjb,
	nicolas.ferre

Hello Jean-Christophe,

A customer using an Atheros AR6103 SDIO WLAN adapter faces this issue.

Sometimes we perform a software reset and he noticed that after he didn't get
sdio irq. The interrupt mask register is also resetted when performing
software reset.

Regards

Ludovic

On Wed, Feb 08, 2012 at 04:26:21PM +0100, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 18:22 Wed 08 Feb     , ludovic.desroches@atmel.com wrote:
> > From: Ludovic Desroches <ludovic.desroches@atmel.com>
> 
> why do you need this?
> 
> Best Regards,
> J.
> 

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

* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
  2012-02-08 15:45   ` Ludovic Desroches
@ 2012-02-08 16:17     ` Jean-Christophe PLAGNIOL-VILLARD
  0 siblings, 0 replies; 7+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-02-08 16:17 UTC (permalink / raw)
  To: Ludovic Desroches; +Cc: linux-mmc, linux-arm-kernel, cjb, nicolas.ferre

On 16:45 Wed 08 Feb     , Ludovic Desroches wrote:
> Hello Jean-Christophe,
> 
> A customer using an Atheros AR6103 SDIO WLAN adapter faces this issue.
> 
> Sometimes we perform a software reset and he noticed that after he didn't get
> sdio irq. The interrupt mask register is also resetted when performing
> software reset.
so put this in the commit

Best Regards,
J.

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

* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-08 17:22 ludovic.desroches
  2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
  2012-02-09 10:55 ` ludovic.desroches
  0 siblings, 2 replies; 7+ messages in thread
From: ludovic.desroches @ 2012-02-08 17:22 UTC (permalink / raw)
  To: linux-mmc, linux-arm-kernel; +Cc: cjb, nicolas.ferre

From: Ludovic Desroches <ludovic.desroches@atmel.com>

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: stable@vger.kernel.org
---
 drivers/mmc/host/atmel-mci.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 09ac13b..dfa5dd9 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -965,11 +965,14 @@ static void atmci_start_request(struct atmel_mci *host,
 	host->data_status = 0;
 
 	if (host->need_reset) {
+		iflags = atmci_readl(host, ATMCI_IMR);
+		iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB);
 		atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST);
 		atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN);
 		atmci_writel(host, ATMCI_MR, host->mode_reg);
 		if (host->caps.has_cfg_reg)
 			atmci_writel(host, ATMCI_CFG, host->cfg_reg);
+		atmci_writel(host, ATMCI_IER, iflags);
 		host->need_reset = false;
 	}
 	atmci_writel(host, ATMCI_SDCR, slot->sdc_reg);
-- 
1.7.5.4


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

* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
  2012-02-09 10:55 ` ludovic.desroches
@ 2012-02-09  9:05   ` Nicolas Ferre
  2012-02-11 21:26     ` Chris Ball
  0 siblings, 1 reply; 7+ messages in thread
From: Nicolas Ferre @ 2012-02-09  9:05 UTC (permalink / raw)
  To: ludovic.desroches, cjb; +Cc: linux-mmc, linux-arm-kernel

On 02/09/2012 11:55 AM, ludovic.desroches@atmel.com :
> From: Ludovic Desroches <ludovic.desroches@atmel.com>
> 
> Sometimes a software reset is needed. Then some registers are saved and
> restored but the interrupt mask register is missing. It causes issues
> with sdio devices whose interrupts are masked after reset.
> 
> Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>

Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>

Chris, can you please queue this patch in a "fixes" branch?

Thanks, best regards,

> Cc: stable@vger.kernel.org
> ---
>  drivers/mmc/host/atmel-mci.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
> index 09ac13b..dfa5dd9 100644
> --- a/drivers/mmc/host/atmel-mci.c
> +++ b/drivers/mmc/host/atmel-mci.c
> @@ -965,11 +965,14 @@ static void atmci_start_request(struct atmel_mci *host,
>  	host->data_status = 0;
>  
>  	if (host->need_reset) {
> +		iflags = atmci_readl(host, ATMCI_IMR);
> +		iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB);
>  		atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST);
>  		atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN);
>  		atmci_writel(host, ATMCI_MR, host->mode_reg);
>  		if (host->caps.has_cfg_reg)
>  			atmci_writel(host, ATMCI_CFG, host->cfg_reg);
> +		atmci_writel(host, ATMCI_IER, iflags);
>  		host->need_reset = false;
>  	}
>  	atmci_writel(host, ATMCI_SDCR, slot->sdc_reg);


-- 
Nicolas Ferre

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

* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
  2012-02-08 17:22 [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed ludovic.desroches
  2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
@ 2012-02-09 10:55 ` ludovic.desroches
  2012-02-09  9:05   ` Nicolas Ferre
  1 sibling, 1 reply; 7+ messages in thread
From: ludovic.desroches @ 2012-02-09 10:55 UTC (permalink / raw)
  To: linux-mmc, linux-arm-kernel; +Cc: cjb, nicolas.ferre

From: Ludovic Desroches <ludovic.desroches@atmel.com>

Sometimes a software reset is needed. Then some registers are saved and
restored but the interrupt mask register is missing. It causes issues
with sdio devices whose interrupts are masked after reset.

Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: stable@vger.kernel.org
---
 drivers/mmc/host/atmel-mci.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
index 09ac13b..dfa5dd9 100644
--- a/drivers/mmc/host/atmel-mci.c
+++ b/drivers/mmc/host/atmel-mci.c
@@ -965,11 +965,14 @@ static void atmci_start_request(struct atmel_mci *host,
 	host->data_status = 0;
 
 	if (host->need_reset) {
+		iflags = atmci_readl(host, ATMCI_IMR);
+		iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB);
 		atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST);
 		atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN);
 		atmci_writel(host, ATMCI_MR, host->mode_reg);
 		if (host->caps.has_cfg_reg)
 			atmci_writel(host, ATMCI_CFG, host->cfg_reg);
+		atmci_writel(host, ATMCI_IER, iflags);
 		host->need_reset = false;
 	}
 	atmci_writel(host, ATMCI_SDCR, slot->sdc_reg);
-- 
1.7.5.4


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

* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
  2012-02-09  9:05   ` Nicolas Ferre
@ 2012-02-11 21:26     ` Chris Ball
  0 siblings, 0 replies; 7+ messages in thread
From: Chris Ball @ 2012-02-11 21:26 UTC (permalink / raw)
  To: Nicolas Ferre; +Cc: ludovic.desroches, linux-mmc, linux-arm-kernel

Hi,

On Thu, Feb 09 2012, Nicolas Ferre wrote:
> On 02/09/2012 11:55 AM, ludovic.desroches@atmel.com :
>> From: Ludovic Desroches <ludovic.desroches@atmel.com>
>> 
>> Sometimes a software reset is needed. Then some registers are saved and
>> restored but the interrupt mask register is missing. It causes issues
>> with sdio devices whose interrupts are masked after reset.
>> 
>> Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
>
> Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
>
> Chris, can you please queue this patch in a "fixes" branch?

Thanks, pushed to mmc-next for 3.3.

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

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

end of thread, other threads:[~2012-02-11 21:27 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-02-08 17:22 [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed ludovic.desroches
2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-08 15:45   ` Ludovic Desroches
2012-02-08 16:17     ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-09 10:55 ` ludovic.desroches
2012-02-09  9:05   ` Nicolas Ferre
2012-02-11 21:26     ` Chris Ball

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox