diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-11 22:39:09 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-01-11 22:39:09 -0500 |
| commit | fb591fbd0aee437faada42b0473835bcbaf0eb38 (patch) | |
| tree | fe5846bac472e42162caf24a43ab4eacf38f3bae /include/linux | |
| parent | 8c930204ce76eddeb2e1af66a75f0ab2506c76e2 (diff) | |
| parent | 01a999e48995a35faaa513f811c335bce72917d6 (diff) | |
Merge tag 'mmc-v4.5' of git://git.linaro.org/people/ulf.hansson/mmc
Pull MMC updates from Ulf Hansson:
"MMC core:
- Optimize boot time by detecting cards simultaneously
- Make runtime resume default behavior for MMC/SD
- Enable MMC/SD/SDIO devices to suspend/resume asynchronously
- Allow more than 8 partitions per card
- Introduce MMC_CAP2_NO_SDIO to prevent unsupported SDIO commands
- Support the standard DT wakeup-source property
- Fix driver strength switching for HS200 and HS400
- Fix switch command timeout
- Fix invalid vdd in voltage switch power cycle for SDIO
MMC host:
- sdhci: Restore behavior when setting VDD via external regulator
- sdhci: A couple of changes/fixes related to the dma support
- sdhci-tegra: Add Tegra210 support
- sdhci-tegra: Support for UHS-I cards including tuning support
- sdhci-of-at91: Add PM support
- sh_mmcif: Rework dma channel handling
- mvsdio: Delete platform data code path"
* tag 'mmc-v4.5' of git://git.linaro.org/people/ulf.hansson/mmc: (52 commits)
mmc: dw_mmc: remove the unused quirks
mmc: sdhci-pci: use to_pci_dev()
mmc: cb710: use to_platform_device()
mmc: tegra: use correct accessor for misc ctrl register
mmc: tegra: enable UHS-I modes
mmc: tegra: implement UHS tuning
mmc: tegra: disable SPI_MODE_CLKEN
mmc: tegra: implement module external clock change
mmc: sdhci: restore behavior when setting VDD via external regulator
mmc: It is not an error for the card to be removed while suspended
mmc: block: Allow more than 8 partitions per card
mmc: core: Optimize boot time by detecting cards simultaneously
mmc: dw_mmc: use resource_size_t to store physical address
mmc: core: fix __mmc_switch timeout caused by preempt
mmc: usdhi6rol0: handle NULL data in timeout
mmc: of_mmc_spi: Add IRQF_ONESHOT to interrupt flags
mmc: mediatek: change some dev_err to dev_dbg
mmc: enable MMC/SD/SDIO device to suspend/resume asynchronously
mmc: sdhci: Fix sdhci_runtime_pm_bus_on/off()
mmc: sdhci: 64-bit DMA actually has 4-byte alignment
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mmc/dw_mmc.h | 12 | ||||
| -rw-r--r-- | include/linux/mmc/host.h | 6 | ||||
| -rw-r--r-- | include/linux/platform_data/mmc-mvsdio.h | 18 |
3 files changed, 6 insertions, 30 deletions
diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h index f67b2ec18e6d..89df7abedd67 100644 --- a/include/linux/mmc/dw_mmc.h +++ b/include/linux/mmc/dw_mmc.h | |||
| @@ -172,7 +172,7 @@ struct dw_mci { | |||
| 172 | /* For edmac */ | 172 | /* For edmac */ |
| 173 | struct dw_mci_dma_slave *dms; | 173 | struct dw_mci_dma_slave *dms; |
| 174 | /* Registers's physical base address */ | 174 | /* Registers's physical base address */ |
| 175 | void *phy_regs; | 175 | resource_size_t phy_regs; |
| 176 | 176 | ||
| 177 | u32 cmd_status; | 177 | u32 cmd_status; |
| 178 | u32 data_status; | 178 | u32 data_status; |
| @@ -235,16 +235,10 @@ struct dw_mci_dma_ops { | |||
| 235 | }; | 235 | }; |
| 236 | 236 | ||
| 237 | /* IP Quirks/flags. */ | 237 | /* IP Quirks/flags. */ |
| 238 | /* DTO fix for command transmission with IDMAC configured */ | ||
| 239 | #define DW_MCI_QUIRK_IDMAC_DTO BIT(0) | ||
| 240 | /* delay needed between retries on some 2.11a implementations */ | ||
| 241 | #define DW_MCI_QUIRK_RETRY_DELAY BIT(1) | ||
| 242 | /* High Speed Capable - Supports HS cards (up to 50MHz) */ | ||
| 243 | #define DW_MCI_QUIRK_HIGHSPEED BIT(2) | ||
| 244 | /* Unreliable card detection */ | 238 | /* Unreliable card detection */ |
| 245 | #define DW_MCI_QUIRK_BROKEN_CARD_DETECTION BIT(3) | 239 | #define DW_MCI_QUIRK_BROKEN_CARD_DETECTION BIT(0) |
| 246 | /* Timer for broken data transfer over scheme */ | 240 | /* Timer for broken data transfer over scheme */ |
| 247 | #define DW_MCI_QUIRK_BROKEN_DTO BIT(4) | 241 | #define DW_MCI_QUIRK_BROKEN_DTO BIT(1) |
| 248 | 242 | ||
| 249 | struct dma_pdata; | 243 | struct dma_pdata; |
| 250 | 244 | ||
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index 8673ffe3d86e..8dd4d290ab0d 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h | |||
| @@ -212,7 +212,9 @@ struct mmc_host { | |||
| 212 | u32 ocr_avail_sdio; /* SDIO-specific OCR */ | 212 | u32 ocr_avail_sdio; /* SDIO-specific OCR */ |
| 213 | u32 ocr_avail_sd; /* SD-specific OCR */ | 213 | u32 ocr_avail_sd; /* SD-specific OCR */ |
| 214 | u32 ocr_avail_mmc; /* MMC-specific OCR */ | 214 | u32 ocr_avail_mmc; /* MMC-specific OCR */ |
| 215 | #ifdef CONFIG_PM_SLEEP | ||
| 215 | struct notifier_block pm_notify; | 216 | struct notifier_block pm_notify; |
| 217 | #endif | ||
| 216 | u32 max_current_330; | 218 | u32 max_current_330; |
| 217 | u32 max_current_300; | 219 | u32 max_current_300; |
| 218 | u32 max_current_180; | 220 | u32 max_current_180; |
| @@ -259,7 +261,6 @@ struct mmc_host { | |||
| 259 | #define MMC_CAP_UHS_SDR50 (1 << 17) /* Host supports UHS SDR50 mode */ | 261 | #define MMC_CAP_UHS_SDR50 (1 << 17) /* Host supports UHS SDR50 mode */ |
| 260 | #define MMC_CAP_UHS_SDR104 (1 << 18) /* Host supports UHS SDR104 mode */ | 262 | #define MMC_CAP_UHS_SDR104 (1 << 18) /* Host supports UHS SDR104 mode */ |
| 261 | #define MMC_CAP_UHS_DDR50 (1 << 19) /* Host supports UHS DDR50 mode */ | 263 | #define MMC_CAP_UHS_DDR50 (1 << 19) /* Host supports UHS DDR50 mode */ |
| 262 | #define MMC_CAP_RUNTIME_RESUME (1 << 20) /* Resume at runtime_resume. */ | ||
| 263 | #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */ | 264 | #define MMC_CAP_DRIVER_TYPE_A (1 << 23) /* Host supports Driver Type A */ |
| 264 | #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */ | 265 | #define MMC_CAP_DRIVER_TYPE_C (1 << 24) /* Host supports Driver Type C */ |
| 265 | #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */ | 266 | #define MMC_CAP_DRIVER_TYPE_D (1 << 25) /* Host supports Driver Type D */ |
| @@ -289,6 +290,7 @@ struct mmc_host { | |||
| 289 | #define MMC_CAP2_HSX00_1_2V (MMC_CAP2_HS200_1_2V_SDR | MMC_CAP2_HS400_1_2V) | 290 | #define MMC_CAP2_HSX00_1_2V (MMC_CAP2_HS200_1_2V_SDR | MMC_CAP2_HS400_1_2V) |
| 290 | #define MMC_CAP2_SDIO_IRQ_NOTHREAD (1 << 17) | 291 | #define MMC_CAP2_SDIO_IRQ_NOTHREAD (1 << 17) |
| 291 | #define MMC_CAP2_NO_WRITE_PROTECT (1 << 18) /* No physical write protect pin, assume that card is always read-write */ | 292 | #define MMC_CAP2_NO_WRITE_PROTECT (1 << 18) /* No physical write protect pin, assume that card is always read-write */ |
| 293 | #define MMC_CAP2_NO_SDIO (1 << 19) /* Do not send SDIO commands during initialization */ | ||
| 292 | 294 | ||
| 293 | mmc_pm_flag_t pm_caps; /* supported pm features */ | 295 | mmc_pm_flag_t pm_caps; /* supported pm features */ |
| 294 | 296 | ||
| @@ -434,8 +436,6 @@ static inline int mmc_regulator_set_vqmmc(struct mmc_host *mmc, | |||
| 434 | 436 | ||
| 435 | int mmc_regulator_get_supply(struct mmc_host *mmc); | 437 | int mmc_regulator_get_supply(struct mmc_host *mmc); |
| 436 | 438 | ||
| 437 | int mmc_pm_notify(struct notifier_block *notify_block, unsigned long, void *); | ||
| 438 | |||
| 439 | static inline int mmc_card_is_removable(struct mmc_host *host) | 439 | static inline int mmc_card_is_removable(struct mmc_host *host) |
| 440 | { | 440 | { |
| 441 | return !(host->caps & MMC_CAP_NONREMOVABLE); | 441 | return !(host->caps & MMC_CAP_NONREMOVABLE); |
diff --git a/include/linux/platform_data/mmc-mvsdio.h b/include/linux/platform_data/mmc-mvsdio.h deleted file mode 100644 index d02704cd3695..000000000000 --- a/include/linux/platform_data/mmc-mvsdio.h +++ /dev/null | |||
| @@ -1,18 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * This file is licensed under the terms of the GNU General Public | ||
| 3 | * License version 2. This program is licensed "as is" without any | ||
| 4 | * warranty of any kind, whether express or implied. | ||
| 5 | */ | ||
| 6 | |||
| 7 | #ifndef __MMC_MVSDIO_H | ||
| 8 | #define __MMC_MVSDIO_H | ||
| 9 | |||
| 10 | #include <linux/mbus.h> | ||
| 11 | |||
| 12 | struct mvsdio_platform_data { | ||
| 13 | unsigned int clock; | ||
| 14 | int gpio_card_detect; | ||
| 15 | int gpio_write_protect; | ||
| 16 | }; | ||
| 17 | |||
| 18 | #endif | ||
