aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-03-28 23:59:45 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2012-03-28 23:59:45 -0400
commitb5174fa3a7f4f8f150bfa3b917c92608953dfa0f (patch)
tree5efd32dd52fe55f760094e78f18acd3ff869751d /arch
parentafb9bd704c7116076879352a2cc2c43aa12c1e14 (diff)
parent135111cc5595c6a24dd826d503e2d2bae92da1c4 (diff)
Merge tag 'mmc-merge-for-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc
Pull MMC updates from Chris Ball: Core: * Support for MMC 4.5 Data Tag feature -- we tag REQ_META, so devices that support Data Tag will provide increased throughput for metadata. * Faster detection of card removal on I/O errors. Drivers: * dw_mmc now supports eMMC Power Off Notify, has PCI support, and implements pre_req and post_req for asynchronous requests. * omap_hsmmc now supports device tree. * esdhc now has power management support. * sdhci-tegra now supports Tegra30 devices. * sdhci-spear now supports hibernation. * tmio_mmc now supports using a GPIO for card detection. * Intel PCH now supports 8-bit bus transfers. * tag 'mmc-merge-for-3.4-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (53 commits) mmc: sh_mmcif: simplify bitmask macros mmc: sh_mobile_sdhi: support modular mmc-core with non-standard hotplug mmc: sh_mobile_sdhi: add a callback for board specific init code mmc: tmio: cosmetic: prettify the tmio_mmc_set_ios() function mmc: sh_mobile_sdhi: do not manage PM clocks manually mmc: tmio_mmc: remove unused sdio_irq_enabled flag mmc: tmio_mmc: power status flag doesn't have to be exposed in platform data mmc: sh_mobile_sdhi: pass card hotplug GPIO number to TMIO MMC mmc: tmio_mmc: support the generic MMC GPIO card hotplug helper mmc: tmio: calculate the native hotplug condition only once mmc: simplify mmc_cd_gpio_request() by removing two parameters mmc: sdhci-pci: allow 8-bit bus width for Intel PCH mmc: sdhci: check interrupt flags in ISR again mmc: sdhci-pci: Add MSI support mmc: core: warn when card doesn't support HPI mmc: davinci: Poll status for small size transfers mmc: davinci: Eliminate spurious interrupts mmc: omap_hsmmc: Avoid a regulator voltage change with dt mmc: omap_hsmmc: Convert hsmmc driver to use device tree mmc: sdhci-pci: add SDHCI_QUIRK2_HOST_OFF_CARD_ON for Medfield SDIO ...
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-exynos/mach-nuri.c5
-rw-r--r--arch/arm/mach-exynos/mach-universal_c210.c9
-rw-r--r--arch/arm/mach-omap2/hsmmc.c1
-rw-r--r--arch/arm/mach-omap2/hsmmc.h2
-rw-r--r--arch/arm/plat-omap/include/plat/mmc.h2
5 files changed, 8 insertions, 11 deletions
diff --git a/arch/arm/mach-exynos/mach-nuri.c b/arch/arm/mach-exynos/mach-nuri.c
index 82ea6fccfb34..b3982c867c9c 100644
--- a/arch/arm/mach-exynos/mach-nuri.c
+++ b/arch/arm/mach-exynos/mach-nuri.c
@@ -111,7 +111,7 @@ static struct s3c_sdhci_platdata nuri_hsmmc0_data __initdata = {
111 .max_width = 8, 111 .max_width = 8,
112 .host_caps = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA | 112 .host_caps = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA |
113 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 113 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED |
114 MMC_CAP_DISABLE | MMC_CAP_ERASE), 114 MMC_CAP_ERASE),
115 .cd_type = S3C_SDHCI_CD_PERMANENT, 115 .cd_type = S3C_SDHCI_CD_PERMANENT,
116 .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, 116 .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL,
117}; 117};
@@ -150,8 +150,7 @@ static struct platform_device emmc_fixed_voltage = {
150static struct s3c_sdhci_platdata nuri_hsmmc2_data __initdata = { 150static struct s3c_sdhci_platdata nuri_hsmmc2_data __initdata = {
151 .max_width = 4, 151 .max_width = 4,
152 .host_caps = MMC_CAP_4_BIT_DATA | 152 .host_caps = MMC_CAP_4_BIT_DATA |
153 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 153 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
154 MMC_CAP_DISABLE,
155 .ext_cd_gpio = EXYNOS4_GPX3(3), /* XEINT_27 */ 154 .ext_cd_gpio = EXYNOS4_GPX3(3), /* XEINT_27 */
156 .ext_cd_gpio_invert = 1, 155 .ext_cd_gpio_invert = 1,
157 .cd_type = S3C_SDHCI_CD_GPIO, 156 .cd_type = S3C_SDHCI_CD_GPIO,
diff --git a/arch/arm/mach-exynos/mach-universal_c210.c b/arch/arm/mach-exynos/mach-universal_c210.c
index 28658da9f423..6bb9dbdd73fd 100644
--- a/arch/arm/mach-exynos/mach-universal_c210.c
+++ b/arch/arm/mach-exynos/mach-universal_c210.c
@@ -745,8 +745,7 @@ static struct platform_device universal_gpio_keys = {
745static struct s3c_sdhci_platdata universal_hsmmc0_data __initdata = { 745static struct s3c_sdhci_platdata universal_hsmmc0_data __initdata = {
746 .max_width = 8, 746 .max_width = 8,
747 .host_caps = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA | 747 .host_caps = (MMC_CAP_8_BIT_DATA | MMC_CAP_4_BIT_DATA |
748 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 748 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED),
749 MMC_CAP_DISABLE),
750 .cd_type = S3C_SDHCI_CD_PERMANENT, 749 .cd_type = S3C_SDHCI_CD_PERMANENT,
751 .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL, 750 .clk_type = S3C_SDHCI_CLK_DIV_EXTERNAL,
752}; 751};
@@ -784,8 +783,7 @@ static struct platform_device mmc0_fixed_voltage = {
784static struct s3c_sdhci_platdata universal_hsmmc2_data __initdata = { 783static struct s3c_sdhci_platdata universal_hsmmc2_data __initdata = {
785 .max_width = 4, 784 .max_width = 4,
786 .host_caps = MMC_CAP_4_BIT_DATA | 785 .host_caps = MMC_CAP_4_BIT_DATA |
787 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 786 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
788 MMC_CAP_DISABLE,
789 .ext_cd_gpio = EXYNOS4_GPX3(4), /* XEINT_28 */ 787 .ext_cd_gpio = EXYNOS4_GPX3(4), /* XEINT_28 */
790 .ext_cd_gpio_invert = 1, 788 .ext_cd_gpio_invert = 1,
791 .cd_type = S3C_SDHCI_CD_GPIO, 789 .cd_type = S3C_SDHCI_CD_GPIO,
@@ -796,8 +794,7 @@ static struct s3c_sdhci_platdata universal_hsmmc2_data __initdata = {
796static struct s3c_sdhci_platdata universal_hsmmc3_data __initdata = { 794static struct s3c_sdhci_platdata universal_hsmmc3_data __initdata = {
797 .max_width = 4, 795 .max_width = 4,
798 .host_caps = MMC_CAP_4_BIT_DATA | 796 .host_caps = MMC_CAP_4_BIT_DATA |
799 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED | 797 MMC_CAP_MMC_HIGHSPEED | MMC_CAP_SD_HIGHSPEED,
800 MMC_CAP_DISABLE,
801 .cd_type = S3C_SDHCI_CD_EXTERNAL, 798 .cd_type = S3C_SDHCI_CD_EXTERNAL,
802}; 799};
803 800
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c
index 8121720e942f..100db6217f39 100644
--- a/arch/arm/mach-omap2/hsmmc.c
+++ b/arch/arm/mach-omap2/hsmmc.c
@@ -316,6 +316,7 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
316 mmc->slots[0].pm_caps = c->pm_caps; 316 mmc->slots[0].pm_caps = c->pm_caps;
317 mmc->slots[0].internal_clock = !c->ext_clock; 317 mmc->slots[0].internal_clock = !c->ext_clock;
318 mmc->dma_mask = 0xffffffff; 318 mmc->dma_mask = 0xffffffff;
319 mmc->max_freq = c->max_freq;
319 if (cpu_is_omap44xx()) 320 if (cpu_is_omap44xx())
320 mmc->reg_offset = OMAP4_MMC_REG_OFFSET; 321 mmc->reg_offset = OMAP4_MMC_REG_OFFSET;
321 else 322 else
diff --git a/arch/arm/mach-omap2/hsmmc.h b/arch/arm/mach-omap2/hsmmc.h
index 07831cc3c171..7f2e790e0929 100644
--- a/arch/arm/mach-omap2/hsmmc.h
+++ b/arch/arm/mach-omap2/hsmmc.h
@@ -27,6 +27,8 @@ struct omap2_hsmmc_info {
27 char *name; /* or NULL for default */ 27 char *name; /* or NULL for default */
28 struct platform_device *pdev; /* mmc controller instance */ 28 struct platform_device *pdev; /* mmc controller instance */
29 int ocr_mask; /* temporary HACK */ 29 int ocr_mask; /* temporary HACK */
30 int max_freq; /* maximum clock, if constrained by external
31 * circuitry, or 0 for default */
30 /* Remux (pad configuration) when powering on/off */ 32 /* Remux (pad configuration) when powering on/off */
31 void (*remux)(struct device *dev, int slot, int power_on); 33 void (*remux)(struct device *dev, int slot, int power_on);
32 /* init some special card */ 34 /* init some special card */
diff --git a/arch/arm/plat-omap/include/plat/mmc.h b/arch/arm/plat-omap/include/plat/mmc.h
index f75946c3293d..7a38750c0079 100644
--- a/arch/arm/plat-omap/include/plat/mmc.h
+++ b/arch/arm/plat-omap/include/plat/mmc.h
@@ -137,8 +137,6 @@ struct omap_mmc_platform_data {
137 int (*set_power)(struct device *dev, int slot, 137 int (*set_power)(struct device *dev, int slot,
138 int power_on, int vdd); 138 int power_on, int vdd);
139 int (*get_ro)(struct device *dev, int slot); 139 int (*get_ro)(struct device *dev, int slot);
140 int (*set_sleep)(struct device *dev, int slot, int sleep,
141 int vdd, int cardsleep);
142 void (*remux)(struct device *dev, int slot, int power_on); 140 void (*remux)(struct device *dev, int slot, int power_on);
143 /* Call back before enabling / disabling regulators */ 141 /* Call back before enabling / disabling regulators */
144 void (*before_set_reg)(struct device *dev, int slot, 142 void (*before_set_reg)(struct device *dev, int slot,