Merge tag 'v3.6-rc6' into spi-mxs
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 25 Sep 2012 12:41:02 +0000 (13:41 +0100)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Tue, 25 Sep 2012 12:41:02 +0000 (13:41 +0100)
Linux 3.6-rc6

Conflicts (overlap between moving code that accesses registers around
and factoring the register access out into a SSP layer):
drivers/mmc/host/mxs-mmc.c

1  2 
drivers/mmc/host/mxs-mmc.c

@@@ -193,10 -281,12 +193,12 @@@ static irqreturn_t mxs_mmc_irq_handler(
  
        spin_lock(&host->lock);
  
 -      stat = readl(host->base + HW_SSP_CTRL1(host));
 +      stat = readl(ssp->base + HW_SSP_CTRL1(ssp));
        writel(stat & MXS_MMC_IRQ_BITS,
 -             host->base + HW_SSP_CTRL1(host) + STMP_OFFSET_REG_CLR);
 +             ssp->base + HW_SSP_CTRL1(ssp) + STMP_OFFSET_REG_CLR);
  
+       spin_unlock(&host->lock);
        if ((stat & BM_SSP_CTRL1_SDIO_IRQ) && (stat & BM_SSP_CTRL1_SDIO_IRQ_EN))
                mmc_signal_sdio_irq(host->mmc);
  
@@@ -523,22 -641,22 +523,22 @@@ static void mxs_mmc_enable_sdio_irq(str
  
        if (enable) {
                writel(BM_SSP_CTRL0_SDIO_IRQ_CHECK,
 -                     host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET);
 +                     ssp->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_SET);
                writel(BM_SSP_CTRL1_SDIO_IRQ_EN,
-                      ssp->base + HW_SSP_CTRL1(ssp) + STMP_OFFSET_REG_SET);
-               if (readl(ssp->base + HW_SSP_STATUS(ssp)) &
-                               BM_SSP_STATUS_SDIO_IRQ)
-                       mmc_signal_sdio_irq(host->mmc);
+                      host->base + HW_SSP_CTRL1(host) + STMP_OFFSET_REG_SET);
        } else {
                writel(BM_SSP_CTRL0_SDIO_IRQ_CHECK,
 -                     host->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_CLR);
 +                     ssp->base + HW_SSP_CTRL0 + STMP_OFFSET_REG_CLR);
                writel(BM_SSP_CTRL1_SDIO_IRQ_EN,
 -                     host->base + HW_SSP_CTRL1(host) + STMP_OFFSET_REG_CLR);
 +                     ssp->base + HW_SSP_CTRL1(ssp) + STMP_OFFSET_REG_CLR);
        }
  
        spin_unlock_irqrestore(&host->lock, flags);
 -      if (enable && readl(host->base + HW_SSP_STATUS(host)) &
++      if (enable && readl(ssp->base + HW_SSP_STATUS(ssp)) &
+                       BM_SSP_STATUS_SDIO_IRQ)
+               mmc_signal_sdio_irq(host->mmc);
  }
  
  static const struct mmc_host_ops mxs_mmc_ops = {