On 02/09/2012 11:55 AM, ludovic.desroc...@atmel.com :
> From: Ludovic Desroches <ludovic.desroc...@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.desroc...@atmel.com>

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

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

Thanks, best regards,

> Cc: sta...@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
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to