Re: [PATCH] tmio_mmc: keep card-detect interrupts enabled

Andrew Morton
2010-02-16T21:52:27Z

On Tue, 16 Feb 2010 10:34:55 +0100 (CET)
Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:

> On SuperH platforms the SDHI controller does not produce any command IRQs after
> a completed IO. This leads to card-detect interrupts staying disabled. Do not
> disable card-detect interrupts on DATA IRQs.
>

Why is the current code disabling card-detect interrupts on DATA IRQs?
Was that just a bug?

What effect will this change have for current users of this driver?

> ---
> On Thu, 17 Dec 2009, Andrew Morton wrote:
>
> > On Thu, 17 Dec 2009 21:25:52 +0100 (CET)
> > Guennadi Liakhovetski <g.liakhovetski@gmx.de> wrote:
> >
> > > I originally submitted this [1] patch on the 6th of November, then
> > > accidentally the MMC list got dropped from CC and the discussion moved to
> > > another irrelevant list, Ian's last reply is at [2]. Unfortunately, Ian
> > > hasn't replied to my reminders since then, and I don't see this patch
> > > anywhere upstream. Is there any way we could get it into 2.6.33?
> >
> > Please redo and retest it against curent mainline and do a full resend.
>
> Re-testing this patch has again become possible now, after Magnus has
> posted his INTC and the "tmio_mmc: use 100ms mmc_detect_change() delay"
> patches. Successfully tested on Migo-R (sh7722) and MS7724SE (sh7724).
> Andrew, please apply.
>
> drivers/mmc/host/tmio_mmc.h | 6 ++----
> 1 files changed, 2 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/mmc/host/tmio_mmc.h b/drivers/mmc/host/tmio_mmc.h
> index 692dc23..dafecfb 100644
> --- a/drivers/mmc/host/tmio_mmc.h
> +++ b/drivers/mmc/host/tmio_mmc.h
> @@ -55,10 +55,8 @@
> /* Define some IRQ masks */
> /* This is the mask used at reset by the chip */
> #define TMIO_MASK_ALL 0x837f031d
> -#define TMIO_MASK_READOP (TMIO_STAT_RXRDY | TMIO_STAT_DATAEND | \
> - TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT)
> -#define TMIO_MASK_WRITEOP (TMIO_STAT_TXRQ | TMIO_STAT_DATAEND | \
> - TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT)
> +#define TMIO_MASK_READOP (TMIO_STAT_RXRDY | TMIO_STAT_DATAEND)
> +#define TMIO_MASK_WRITEOP (TMIO_STAT_TXRQ | TMIO_STAT_DATAEND)
> #define TMIO_MASK_CMD (TMIO_STAT_CMDRESPEND | TMIO_STAT_CMDTIMEOUT | \
> TMIO_STAT_CARD_REMOVE | TMIO_STAT_CARD_INSERT)
> #define TMIO_MASK_IRQ (TMIO_MASK_READOP | TMIO_MASK_WRITEOP | TMIO_MASK_CMD)
> --
> 1.6.2.4