* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-08 17:22 ` ludovic.desroches at atmel.com
0 siblings, 0 replies; 14+ 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] 14+ messages in thread* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-08 17:22 ` ludovic.desroches at atmel.com
0 siblings, 0 replies; 14+ messages in thread
From: ludovic.desroches at atmel.com @ 2012-02-08 17:22 UTC (permalink / raw)
To: linux-arm-kernel
From: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Cc: stable at 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] 14+ messages in thread* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
2012-02-08 17:22 ` ludovic.desroches at atmel.com
@ 2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
-1 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 0 replies; 14+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-02-08 15:26 UTC (permalink / raw)
To: linux-arm-kernel
On 18:22 Wed 08 Feb , ludovic.desroches at atmel.com wrote:
> From: Ludovic Desroches <ludovic.desroches@atmel.com>
why do you need this?
Best Regards,
J.
^ permalink raw reply [flat|nested] 14+ 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
-1 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-08 15:45 ` Ludovic Desroches
0 siblings, 0 replies; 14+ messages in thread
From: Ludovic Desroches @ 2012-02-08 15:45 UTC (permalink / raw)
To: linux-arm-kernel
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 at atmel.com wrote:
> > From: Ludovic Desroches <ludovic.desroches@atmel.com>
>
> why do you need this?
>
> Best Regards,
> J.
>
^ permalink raw reply [flat|nested] 14+ 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
-1 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-08 16:17 ` Jean-Christophe PLAGNIOL-VILLARD
0 siblings, 0 replies; 14+ messages in thread
From: Jean-Christophe PLAGNIOL-VILLARD @ 2012-02-08 16:17 UTC (permalink / raw)
To: linux-arm-kernel
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] 14+ messages in thread
* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
2012-02-08 17:22 ` ludovic.desroches at atmel.com
@ 2012-02-09 10:55 ` ludovic.desroches at atmel.com
-1 siblings, 0 replies; 14+ 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] 14+ messages in thread* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-09 10:55 ` ludovic.desroches at atmel.com
0 siblings, 0 replies; 14+ messages in thread
From: ludovic.desroches at atmel.com @ 2012-02-09 10:55 UTC (permalink / raw)
To: linux-arm-kernel
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 at 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] 14+ messages in thread* Re: [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
2012-02-09 10:55 ` ludovic.desroches at atmel.com
@ 2012-02-09 9:05 ` Nicolas Ferre
-1 siblings, 0 replies; 14+ 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] 14+ messages in thread* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-09 9:05 ` Nicolas Ferre
0 siblings, 0 replies; 14+ messages in thread
From: Nicolas Ferre @ 2012-02-09 9:05 UTC (permalink / raw)
To: linux-arm-kernel
On 02/09/2012 11:55 AM, ludovic.desroches at 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 at 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] 14+ 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
-1 siblings, 0 replies; 14+ 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] 14+ messages in thread
* [PATCH] mmc: atmel-mci: save and restore sdioirq when soft reset is performed
@ 2012-02-11 21:26 ` Chris Ball
0 siblings, 0 replies; 14+ messages in thread
From: Chris Ball @ 2012-02-11 21:26 UTC (permalink / raw)
To: linux-arm-kernel
Hi,
On Thu, Feb 09 2012, Nicolas Ferre wrote:
> On 02/09/2012 11:55 AM, ludovic.desroches at 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] 14+ messages in thread
end of thread, other threads:[~2012-02-11 21:27 UTC | newest]
Thread overview: 14+ 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 17:22 ` ludovic.desroches at atmel.com
2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-08 15:26 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-08 15:45 ` Ludovic Desroches
2012-02-08 15:45 ` Ludovic Desroches
2012-02-08 16:17 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-08 16:17 ` Jean-Christophe PLAGNIOL-VILLARD
2012-02-09 10:55 ` ludovic.desroches
2012-02-09 10:55 ` ludovic.desroches at atmel.com
2012-02-09 9:05 ` Nicolas Ferre
2012-02-09 9:05 ` Nicolas Ferre
2012-02-11 21:26 ` Chris Ball
2012-02-11 21:26 ` Chris Ball
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.