]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
2.6.39 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 1 Aug 2011 18:21:43 +0000 (11:21 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 1 Aug 2011 18:21:43 +0000 (11:21 -0700)
queue-2.6.39/mmc-added-quirks-for-ricoh-1180-e823-lower-base-clock.patch [new file with mode: 0644]
queue-2.6.39/mmc-sdhci-esdhc-imx-sdhci_card_present-does-not-get.patch [new file with mode: 0644]
queue-2.6.39/series

diff --git a/queue-2.6.39/mmc-added-quirks-for-ricoh-1180-e823-lower-base-clock.patch b/queue-2.6.39/mmc-added-quirks-for-ricoh-1180-e823-lower-base-clock.patch
new file mode 100644 (file)
index 0000000..d76030f
--- /dev/null
@@ -0,0 +1,62 @@
+From 15bed0f2fa8e1d7db201692532c210a7823d2d21 Mon Sep 17 00:00:00 2001
+From: Manoj Iyer <manoj.iyer@canonical.com>
+Date: Mon, 11 Jul 2011 16:28:35 -0500
+Subject: mmc: Added quirks for Ricoh 1180:e823 lower base clock
+ frequency
+
+From: Manoj Iyer <manoj.iyer@canonical.com>
+
+commit 15bed0f2fa8e1d7db201692532c210a7823d2d21 upstream.
+
+Ricoh 1180:e823 does not recognize certain types of SD/MMC cards,
+as reported at http://launchpad.net/bugs/773524.  Lowering the SD
+base clock frequency from 200Mhz to 50Mhz fixes this issue. This
+solution was suggest by Koji Matsumuro, Ricoh Company, Ltd.
+
+This change has no negative performance effect on standard SD
+cards, though it's quite possible that there will be one on
+UHS-1 cards.
+
+Signed-off-by: Manoj Iyer <manoj.iyer@canonical.com>
+Tested-by: Daniel Manrique <daniel.manrique@canonical.com>
+Cc: Koji Matsumuro <matsumur@nts.ricoh.co.jp>
+Acked-by: Jesse Barnes <jbarnes@virtuousgeek.org>
+Signed-off-by: Chris Ball <cjb@laptop.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/pci/quirks.c |   23 +++++++++++++++++++++++
+ 1 file changed, 23 insertions(+)
+
+--- a/drivers/pci/quirks.c
++++ b/drivers/pci/quirks.c
+@@ -2755,6 +2755,29 @@ static void ricoh_mmc_fixup_r5c832(struc
+       dev_notice(&dev->dev, "proprietary Ricoh MMC controller disabled (via firewire function)\n");
+       dev_notice(&dev->dev, "MMC cards are now supported by standard SDHCI controller\n");
++
++      /*
++       * RICOH 0xe823 SD/MMC card reader fails to recognize
++       * certain types of SD/MMC cards. Lowering the SD base
++       * clock frequency from 200Mhz to 50Mhz fixes this issue.
++       *
++       * 0x150 - SD2.0 mode enable for changing base clock
++       *         frequency to 50Mhz
++       * 0xe1  - Base clock frequency
++       * 0x32  - 50Mhz new clock frequency
++       * 0xf9  - Key register for 0x150
++       * 0xfc  - key register for 0xe1
++       */
++      if (dev->device == PCI_DEVICE_ID_RICOH_R5CE823) {
++              pci_write_config_byte(dev, 0xf9, 0xfc);
++              pci_write_config_byte(dev, 0x150, 0x10);
++              pci_write_config_byte(dev, 0xf9, 0x00);
++              pci_write_config_byte(dev, 0xfc, 0x01);
++              pci_write_config_byte(dev, 0xe1, 0x32);
++              pci_write_config_byte(dev, 0xfc, 0x00);
++
++              dev_notice(&dev->dev, "MMC controller base frequency changed to 50Mhz.\n");
++      }
+ }
+ DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
+ DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_R5C832, ricoh_mmc_fixup_r5c832);
diff --git a/queue-2.6.39/mmc-sdhci-esdhc-imx-sdhci_card_present-does-not-get.patch b/queue-2.6.39/mmc-sdhci-esdhc-imx-sdhci_card_present-does-not-get.patch
new file mode 100644 (file)
index 0000000..986721b
--- /dev/null
@@ -0,0 +1,34 @@
+From 803862a6f7de4939e0a557214e5e4b37e36f87ff Mon Sep 17 00:00:00 2001
+From: Shawn Guo <shawn.guo@linaro.org>
+Date: Tue, 21 Jun 2011 22:41:49 +0800
+Subject: mmc: sdhci-esdhc-imx: SDHCI_CARD_PRESENT does not get
+ cleared
+
+From: Shawn Guo <shawn.guo@linaro.org>
+
+commit 803862a6f7de4939e0a557214e5e4b37e36f87ff upstream.
+
+The function esdhc_readl_le intends to clear bit SDHCI_CARD_PRESENT,
+when the card detect gpio tells there is no card.  But it does not
+clear the bit actually.  The patch gives a fix on that.
+
+Signed-off-by: Shawn Guo <shawn.guo@linaro.org>
+Acked-by: Wolfram Sang <w.sang@pengutronix.de>
+Signed-off-by: Chris Ball <cjb@laptop.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/mmc/host/sdhci-esdhc-imx.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/mmc/host/sdhci-esdhc-imx.c
++++ b/drivers/mmc/host/sdhci-esdhc-imx.c
+@@ -74,7 +74,7 @@ static u32 esdhc_readl_le(struct sdhci_h
+               if (boarddata && gpio_is_valid(boarddata->cd_gpio)
+                               && gpio_get_value(boarddata->cd_gpio))
+                       /* no card, if a valid gpio says so... */
+-                      val &= SDHCI_CARD_PRESENT;
++                      val &= ~SDHCI_CARD_PRESENT;
+               else
+                       /* ... in all other cases assume card is present */
+                       val |= SDHCI_CARD_PRESENT;
index d890ce02cbef693820e62e2910dc71d74bf2b62a..c715eef6d8f750cde51109a94798c94ad1aab813 100644 (file)
@@ -48,3 +48,5 @@ asoc-fix-shift-in-wm8958-accessory-detection-default.patch
 hwmon-it87-fix-label-group-removal.patch
 hwmon-asus_atk0110-fix-memory-leak.patch
 hwmon-max1111-fix-race-condition-causing-null-pointer-exception.patch
+mmc-added-quirks-for-ricoh-1180-e823-lower-base-clock.patch
+mmc-sdhci-esdhc-imx-sdhci_card_present-does-not-get.patch