diff options
67 files changed, 1995 insertions, 850 deletions
diff --git a/Documentation/mmc/mmc-dev-attrs.txt b/Documentation/mmc/mmc-dev-attrs.txt index 8898a95b41e5..22ae8441489f 100644 --- a/Documentation/mmc/mmc-dev-attrs.txt +++ b/Documentation/mmc/mmc-dev-attrs.txt | |||
| @@ -64,3 +64,13 @@ Note on Erase Size and Preferred Erase Size: | |||
| 64 | size specified by the card. | 64 | size specified by the card. |
| 65 | 65 | ||
| 66 | "preferred_erase_size" is in bytes. | 66 | "preferred_erase_size" is in bytes. |
| 67 | |||
| 68 | SD/MMC/SDIO Clock Gating Attribute | ||
| 69 | ================================== | ||
| 70 | |||
| 71 | Read and write access is provided to following attribute. | ||
| 72 | This attribute appears only if CONFIG_MMC_CLKGATE is enabled. | ||
| 73 | |||
| 74 | clkgate_delay Tune the clock gating delay with desired value in milliseconds. | ||
| 75 | |||
| 76 | echo <desired delay> > /sys/class/mmc_host/mmcX/clkgate_delay | ||
diff --git a/Documentation/mmc/mmc-dev-parts.txt b/Documentation/mmc/mmc-dev-parts.txt index 2db28b8e662f..f08d078d43cf 100644 --- a/Documentation/mmc/mmc-dev-parts.txt +++ b/Documentation/mmc/mmc-dev-parts.txt | |||
| @@ -25,3 +25,16 @@ echo 0 > /sys/block/mmcblkXbootY/force_ro | |||
| 25 | To re-enable read-only access: | 25 | To re-enable read-only access: |
| 26 | 26 | ||
| 27 | echo 1 > /sys/block/mmcblkXbootY/force_ro | 27 | echo 1 > /sys/block/mmcblkXbootY/force_ro |
| 28 | |||
| 29 | The boot partitions can also be locked read only until the next power on, | ||
| 30 | with: | ||
| 31 | |||
| 32 | echo 1 > /sys/block/mmcblkXbootY/ro_lock_until_next_power_on | ||
| 33 | |||
| 34 | This is a feature of the card and not of the kernel. If the card does | ||
| 35 | not support boot partition locking, the file will not exist. If the | ||
| 36 | feature has been disabled on the card, the file will be read-only. | ||
| 37 | |||
| 38 | The boot partitions can also be locked permanently, but this feature is | ||
| 39 | not accessible through sysfs in order to avoid accidental or malicious | ||
| 40 | bricking. | ||
diff --git a/arch/arm/plat-samsung/include/plat/sdhci.h b/arch/arm/plat-samsung/include/plat/sdhci.h index 656dc00d30ed..f82f888b91a9 100644 --- a/arch/arm/plat-samsung/include/plat/sdhci.h +++ b/arch/arm/plat-samsung/include/plat/sdhci.h | |||
| @@ -63,6 +63,7 @@ enum clk_types { | |||
| 63 | struct s3c_sdhci_platdata { | 63 | struct s3c_sdhci_platdata { |
| 64 | unsigned int max_width; | 64 | unsigned int max_width; |
| 65 | unsigned int host_caps; | 65 | unsigned int host_caps; |
| 66 | unsigned int pm_caps; | ||
| 66 | enum cd_types cd_type; | 67 | enum cd_types cd_type; |
| 67 | enum clk_types clk_type; | 68 | enum clk_types clk_type; |
| 68 | 69 | ||
diff --git a/arch/arm/plat-samsung/platformdata.c b/arch/arm/plat-samsung/platformdata.c index ceb9fa3a80c0..0f707184eae0 100644 --- a/arch/arm/plat-samsung/platformdata.c +++ b/arch/arm/plat-samsung/platformdata.c | |||
| @@ -53,6 +53,8 @@ void s3c_sdhci_set_platdata(struct s3c_sdhci_platdata *pd, | |||
| 53 | set->cfg_gpio = pd->cfg_gpio; | 53 | set->cfg_gpio = pd->cfg_gpio; |
| 54 | if (pd->host_caps) | 54 | if (pd->host_caps) |
| 55 | set->host_caps |= pd->host_caps; | 55 | set->host_caps |= pd->host_caps; |
| 56 | if (pd->pm_caps) | ||
| 57 | set->pm_caps |= pd->pm_caps; | ||
| 56 | if (pd->clk_type) | 58 | if (pd->clk_type) |
| 57 | set->clk_type = pd->clk_type; | 59 | set->clk_type = pd->clk_type; |
| 58 | } | 60 | } |
diff --git a/drivers/Makefile b/drivers/Makefile index 1b3142127bf5..c07be024b962 100644 --- a/drivers/Makefile +++ b/drivers/Makefile | |||
| @@ -97,7 +97,7 @@ obj-$(CONFIG_EISA) += eisa/ | |||
| 97 | obj-y += lguest/ | 97 | obj-y += lguest/ |
| 98 | obj-$(CONFIG_CPU_FREQ) += cpufreq/ | 98 | obj-$(CONFIG_CPU_FREQ) += cpufreq/ |
| 99 | obj-$(CONFIG_CPU_IDLE) += cpuidle/ | 99 | obj-$(CONFIG_CPU_IDLE) += cpuidle/ |
| 100 | obj-$(CONFIG_MMC) += mmc/ | 100 | obj-y += mmc/ |
| 101 | obj-$(CONFIG_MEMSTICK) += memstick/ | 101 | obj-$(CONFIG_MEMSTICK) += memstick/ |
| 102 | obj-y += leds/ | 102 | obj-y += leds/ |
| 103 | obj-$(CONFIG_INFINIBAND) += infiniband/ | 103 | obj-$(CONFIG_INFINIBAND) += infiniband/ |
diff --git a/drivers/mmc/Makefile b/drivers/mmc/Makefile index 12eef393e216..400756ec7c49 100644 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile | |||
| @@ -6,5 +6,4 @@ subdir-ccflags-$(CONFIG_MMC_DEBUG) := -DDEBUG | |||
| 6 | 6 | ||
| 7 | obj-$(CONFIG_MMC) += core/ | 7 | obj-$(CONFIG_MMC) += core/ |
| 8 | obj-$(CONFIG_MMC) += card/ | 8 | obj-$(CONFIG_MMC) += card/ |
| 9 | obj-$(CONFIG_MMC) += host/ | 9 | obj-$(subst m,y,$(CONFIG_MMC)) += host/ |
| 10 | |||
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c index 1e0e27cbe987..0cad48a284a8 100644 --- a/drivers/mmc/card/block.c +++ b/drivers/mmc/card/block.c | |||
| @@ -107,6 +107,8 @@ struct mmc_blk_data { | |||
| 107 | */ | 107 | */ |
| 108 | unsigned int part_curr; | 108 | unsigned int part_curr; |
| 109 | struct device_attribute force_ro; | 109 | |
