[kernel] generic-2.6/2.6.30: refresh patches
[openwrt.git] / target / linux / s3c24xx / patches-2.6.28 / 001-merge-openmoko.patch
index 7976313..1092bc8 100644 (file)
@@ -96567,7 +96567,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
  }
  
  /*
-@@ -1027,6 +1043,7 @@ static void s3cmci_send_request(struct m
+@@ -1026,6 +1042,7 @@ static void s3cmci_send_request(struct m
                        dbg(host, dbg_err, "data prepare error %d\n", res);
                        cmd->error = res;
                        cmd->data->error = res;
@@ -96575,7 +96575,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
  
                        mmc_request_done(mmc, mrq);
                        return;
-@@ -1264,10 +1281,8 @@ static int __devinit s3cmci_probe(struct
+@@ -1263,10 +1280,8 @@ static int __devinit s3cmci_probe(struct
        host->is2440    = is2440;
  
        host->pdata = pdev->dev.platform_data;
@@ -96587,7 +96587,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
  
        spin_lock_init(&host->complete_lock);
        tasklet_init(&host->pio_tasklet, pio_tasklet, (unsigned long) host);
-@@ -1380,6 +1395,18 @@ static int __devinit s3cmci_probe(struct
+@@ -1379,6 +1394,18 @@ static int __devinit s3cmci_probe(struct
        mmc->f_min      = host->clk_rate / (host->clk_div * 256);
        mmc->f_max      = host->clk_rate / host->clk_div;
  
@@ -96606,7 +96606,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
        if (host->pdata->ocr_avail)
                mmc->ocr_avail = host->pdata->ocr_avail;
  
-@@ -1492,18 +1519,60 @@ static int __devinit s3cmci_2440_probe(s
+@@ -1491,18 +1518,60 @@ static int __devinit s3cmci_2440_probe(s
  
  #ifdef CONFIG_PM
  
@@ -96669,7 +96669,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
  }
  
  #else /* CONFIG_PM */
-@@ -1561,9 +1630,13 @@ static void __exit s3cmci_exit(void)
+@@ -1560,9 +1629,13 @@ static void __exit s3cmci_exit(void)
  module_init(s3cmci_init);
  module_exit(s3cmci_exit);
  
@@ -96830,33 +96830,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
        spin_unlock_irqrestore(&host->lock, flags);
  
        mmc_detect_change(host->mmc, msecs_to_jiffies(200));
-@@ -1283,11 +1318,24 @@ static void sdhci_cmd_irq(struct sdhci_h
-        *       controllers.
-        */
-       if (host->cmd->flags & MMC_RSP_BUSY) {
-+              u32 present;
-+
-               if (host->cmd->data)
-                       DBG("Cannot wait for busy signal when also "
-                               "doing a data transfer");
--              else
-+              else if (!(host->quirks & SDHCI_QUIRK_NO_TCIRQ_ON_NOT_BUSY))
-                       return;
-+
-+              /* The Samsung SDHCI does not seem to provide an INT_DATA_END
-+               * when the system goes non-busy, so check the state of the
-+               * transfer by reading SDHCI_PRESENT_STATE to see if the
-+               * controller is ready
-+               */
-+
-+              present = readl(host->ioaddr + SDHCI_PRESENT_STATE);
-+              DBG("busy? present %08x, intstat %08x\n", present, intmask);
-+
-+              /* fall through and take the SDHCI_INT_RESPONSE */
-       }
-       if (intmask & SDHCI_INT_RESPONSE)
-@@ -1604,17 +1652,23 @@ int sdhci_add_host(struct sdhci_host *ho
+@@ -1607,17 +1642,23 @@ int sdhci_add_host(struct sdhci_host *ho
                mmc_dev(host->mmc)->dma_mask = &host->dma_mask;
        }
  
@@ -96895,16 +96869,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
  
  #define SDHCI_HOST_CONTROL    0x28
  #define  SDHCI_CTRL_LED               0x01
-@@ -210,6 +211,8 @@ struct sdhci_host {
- #define SDHCI_QUIRK_BROKEN_SMALL_PIO                  (1<<13)
- /* Controller supports high speed but doesn't have the caps bit set */
- #define SDHCI_QUIRK_FORCE_HIGHSPEED                   (1<<14)
-+/* Controller does not provide transfer-complete interrupt when not busy */
-+#define SDHCI_QUIRK_NO_TCIRQ_ON_NOT_BUSY              (1<<15)
-       int                     irq;            /* Device IRQ */
-       void __iomem *          ioaddr;         /* Mapped address */
-@@ -267,6 +270,14 @@ struct sdhci_host {
+@@ -270,6 +271,14 @@ struct sdhci_host {
  
  struct sdhci_ops {
        int             (*enable_dma)(struct sdhci_host *host);
@@ -96919,7 +96884,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
  };
  
  
-@@ -274,6 +285,8 @@ extern struct sdhci_host *sdhci_alloc_ho
+@@ -277,6 +286,8 @@ extern struct sdhci_host *sdhci_alloc_ho
        size_t priv_size);
  extern void sdhci_free_host(struct sdhci_host *host);
  
@@ -96930,7 +96895,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
        return (void *)host->private;
 --- a/drivers/mmc/host/sdhci-pci.c
 +++ b/drivers/mmc/host/sdhci-pci.c
-@@ -391,6 +391,7 @@ static int sdhci_pci_enable_dma(struct s
+@@ -392,6 +392,7 @@ static int sdhci_pci_enable_dma(struct s
  
  static struct sdhci_ops sdhci_pci_ops = {
        .enable_dma     = sdhci_pci_enable_dma,
@@ -97271,7 +97236,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
 +      /* It seems we do not get an DATA transfer complete on non-busy
 +       * transfers, not sure if this is a problem with this specific
 +       * SDHCI block, or a missing configuration that needs to be set. */
-+      host->quirks |= SDHCI_QUIRK_NO_TCIRQ_ON_NOT_BUSY;
++      host->quirks |= SDHCI_QUIRK_NO_BUSY_IRQ;
 +
 +      host->quirks |= (SDHCI_QUIRK_32BIT_DMA_ADDR |
 +                       SDHCI_QUIRK_32BIT_DMA_SIZE);
@@ -148075,7 +148040,7 @@ mb@homer   Thu Jan  1 22:58:51 UTC 2009
        snd_soc_dapm_input = 0,         /* input pin */
 --- a/init/Kconfig
 +++ b/init/Kconfig
-@@ -732,6 +732,15 @@ config AIO
+@@ -720,6 +720,15 @@ config AIO
            by some high performance threaded applications. Disabling
            this option saves about 7k.
  
This page took 0.114691 seconds and 4 git commands to generate.