Message ID | 5003AD52.7070304@bluegiga.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Moin, Lauri, On Mon, 16 Jul 2012 08:57:38 +0300 Lauri Hintsala <lauri.hintsala@bluegiga.com> wrote: > > > Does this patch fix your issue? A preliminary test shows that it at least fixes the oops at module loading. I haven't had the chance yet to give it a full test, but i would say it fixes it enough to be workable. Thanks a lot! Attila Kinali
Shawn, Could you review this patch? Attila reported it fixes his SDIO initialization issue. Lauri On 07/16/2012 08:57 AM, Lauri Hintsala wrote: >> Any hints how to work around or fix this, would be appreciated > > > Does this patch fix your issue? > > >>>>>>> > --- a/drivers/mmc/host/mxs-mmc.c > +++ b/drivers/mmc/host/mxs-mmc.c > @@ -637,11 +637,6 @@ static void mxs_mmc_enable_sdio_irq(struct mmc_host > *mmc, int enable) > host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET); > writel(BM_SSP_CTRL1_SDIO_IRQ_EN, > host->base + HW_SSP_CTRL1(host) + STMP_OFFSET_REG_SET); > - > - if (readl(host->base + HW_SSP_STATUS(host)) & > - BM_SSP_STATUS_SDIO_IRQ) > - mmc_signal_sdio_irq(host->mmc); > - > } else { > writel(BM_SSP_CTRL0_SDIO_IRQ_CHECK, > host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_CLR); > @@ -650,6 +645,11 @@ static void mxs_mmc_enable_sdio_irq(struct mmc_host > *mmc, int enable) > } > > spin_unlock_irqrestore(&host->lock, flags); > + > + if (enable && readl(host->base + HW_SSP_STATUS(host)) & > + BM_SSP_STATUS_SDIO_IRQ) > + mmc_signal_sdio_irq(host->mmc); > + > } > > static const struct mmc_host_ops mxs_mmc_ops = { > <<<<<<< > > mxs_mmc_enable_sdio_irq was called by mmc_signal_sdio_irq. > mmc_signal_sdio_irq was called inside spin lock. So the lock was tried > to acquire before it was released. > > > Best regards, > Lauri Hintsala > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, Jul 17, 2012 at 07:54:39AM +0300, Lauri Hintsala wrote: > Shawn, > > Could you review this patch? Attila reported it fixes his SDIO > initialization issue. > Thanks for fixing it. Acked-by: Shawn Guo <shawn.guo@linaro.org> > Lauri > > > On 07/16/2012 08:57 AM, Lauri Hintsala wrote: > >>Any hints how to work around or fix this, would be appreciated > > > > > >Does this patch fix your issue? > > > > >>>>>>> > >--- a/drivers/mmc/host/mxs-mmc.c > >+++ b/drivers/mmc/host/mxs-mmc.c > >@@ -637,11 +637,6 @@ static void mxs_mmc_enable_sdio_irq(struct mmc_host > >*mmc, int enable) > > host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET); > > writel(BM_SSP_CTRL1_SDIO_IRQ_EN, > > host->base + HW_SSP_CTRL1(host) + STMP_OFFSET_REG_SET); > >- > >- if (readl(host->base + HW_SSP_STATUS(host)) & > >- BM_SSP_STATUS_SDIO_IRQ) > >- mmc_signal_sdio_irq(host->mmc); > >- > > } else { > > writel(BM_SSP_CTRL0_SDIO_IRQ_CHECK, > > host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_CLR); > >@@ -650,6 +645,11 @@ static void mxs_mmc_enable_sdio_irq(struct mmc_host > >*mmc, int enable) > > } > > > > spin_unlock_irqrestore(&host->lock, flags); > >+ > >+ if (enable && readl(host->base + HW_SSP_STATUS(host)) & > >+ BM_SSP_STATUS_SDIO_IRQ) > >+ mmc_signal_sdio_irq(host->mmc); > >+ > > } > > > > static const struct mmc_host_ops mxs_mmc_ops = { > ><<<<<<< > > > >mxs_mmc_enable_sdio_irq was called by mmc_signal_sdio_irq. > >mmc_signal_sdio_irq was called inside spin lock. So the lock was tried > >to acquire before it was released. > > > > > >Best regards, > >Lauri Hintsala > >-- > >To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > >the body of a message to majordomo@vger.kernel.org > >More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > To unsubscribe from this list: send the line "unsubscribe linux-mmc" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
On 07/17/2012 03:40 PM, Shawn Guo wrote: > On Tue, Jul 17, 2012 at 07:54:39AM +0300, Lauri Hintsala wrote: >> Shawn, >> >> Could you review this patch? Attila reported it fixes his SDIO >> initialization issue. >> > Thanks for fixing it. > > Acked-by: Shawn Guo <shawn.guo@linaro.org> Thanks. I'll send both this and previous patches to mailing lists. Lauri
--- a/drivers/mmc/host/mxs-mmc.c +++ b/drivers/mmc/host/mxs-mmc.c @@ -637,11 +637,6 @@ static void mxs_mmc_enable_sdio_irq(struct mmc_host *mmc, int enable) host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET); writel(BM_SSP_CTRL1_SDIO_IRQ_EN, host->base + HW_SSP_CTRL1(host) + STMP_OFFSET_REG_SET); - - if (readl(host->base + HW_SSP_STATUS(host)) & - BM_SSP_STATUS_SDIO_IRQ) - mmc_signal_sdio_irq(host->mmc); - } else { writel(BM_SSP_CTRL0_SDIO_IRQ_CHECK,