diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2021-06-28 20:44:54 +0300 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2021-06-28 20:44:54 +0300 |
commit | ef60eb0eb6e0aaf0aae302cb6362a81b2491e997 (patch) | |
tree | c7898a560884827f335dd2055a60a396d9349937 /include | |
parent | 43bd8a67cd10e9526656e2bc160e52920bd9e43c (diff) | |
parent | 98b5ce4c08ca85727888fdbd362d574bcfa18e3c (diff) | |
download | linux-ef60eb0eb6e0aaf0aae302cb6362a81b2491e997.tar.xz |
Merge tag 'mmc-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
Pull MMC and MEMSTICK updates from Ulf Hansson:
"MMC core:
- Add support for Cache Ctrl for SD cards
- Add support for Power Off Notification for SD cards
- Add support for read/write of the SD function extension registers
- Allow broken eMMC HS400 mode to be disabled via DT
- Allow UHS-I voltage switch for SDSC cards if supported
- Disable command queueing in the ioctl path
- Enable eMMC sleep commands to use HW busy polling to minimize delay
- Extend re-use of the common polling loop to standardize behaviour
- Take into account MMC_CAP_NEED_RSP_BUSY for eMMC HPI commands
MMC host:
- jz4740: Add support for the JZ4775 variant
- sdhci-acpi: Disable write protect detection on Toshiba Encore 2 WT8-B
- sdhci-esdhc-imx: Advertise HS400 support through MMC caps
- sdhci-esdhc-imx: Enable support for system wakeup for SDIO
- sdhci-iproc: Add support for the legacy sdhci controller on the BCM7211
- vub3000: Fix control-request direction
MEMSTICK:
- A couple of fixes/cleanups"
* tag 'mmc-v5.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (54 commits)
mmc: sdhci-iproc: Add support for the legacy sdhci controller on the BCM7211
dt-bindings: mmc: sdhci-iproc: Add brcm,bcm7211a0-sdhci
mmc: JZ4740: Add support for JZ4775
dt-bindings: mmc: JZ4740: Add bindings for JZ4775
mmc: sdhci-esdhc-imx: Enable support for system wakeup for SDIO
mmc: Improve function name when aborting a tuning cmd
mmc: sdhci-of-aspeed: Turn down a phase correction warning
mmc: debugfs: add description for module parameter
mmc: via-sdmmc: add a check against NULL pointer dereference
mmc: sdhci-sprd: use sdhci_sprd_writew
mmc: sdhci-esdhc-imx: remove unused is_imx6q_usdhc
mmc: core: Allow UHS-I voltage switch for SDSC cards if supported
mmc: mmc_spi: Imply container_of() to be no-op
mmc: mmc_spi: Drop duplicate 'mmc_spi' in the debug messages
mmc: dw_mmc-pltfm: Remove unused <linux/clk.h>
mmc: sdhci-of-aspeed: Configure the SDHCIs as specified by the devicetree.
mmc: core: Add a missing SPDX license header
mmc: vub3000: fix control-request direction
mmc: sdhci-omap: Use pm_runtime_resume_and_get() to replace open coding
mmc: sdhci_am654: Use pm_runtime_resume_and_get() to replace open coding
...
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/mmc/card.h | 23 | ||||
-rw-r--r-- | include/linux/mmc/host.h | 2 | ||||
-rw-r--r-- | include/linux/mmc/sd.h | 4 |
3 files changed, 28 insertions, 1 deletions
diff --git a/include/linux/mmc/card.h b/include/linux/mmc/card.h index f9ad35dd6012..74e6c0624d27 100644 --- a/include/linux/mmc/card.h +++ b/include/linux/mmc/card.h @@ -139,6 +139,8 @@ struct sd_scr { unsigned char cmds; #define SD_SCR_CMD20_SUPPORT (1<<0) #define SD_SCR_CMD23_SUPPORT (1<<1) +#define SD_SCR_CMD48_SUPPORT (1<<2) +#define SD_SCR_CMD58_SUPPORT (1<<3) }; struct sd_ssr { @@ -189,6 +191,25 @@ struct sd_switch_caps { #define SD_MAX_CURRENT_800 (1 << SD_SET_CURRENT_LIMIT_800) }; +struct sd_ext_reg { + u8 fno; + u8 page; + u16 offset; + u8 rev; + u8 feature_enabled; + u8 feature_support; +/* Power Management Function. */ +#define SD_EXT_POWER_OFF_NOTIFY (1<<0) +#define SD_EXT_POWER_SUSTENANCE (1<<1) +#define SD_EXT_POWER_DOWN_MODE (1<<2) +/* Performance Enhancement Function. */ +#define SD_EXT_PERF_FX_EVENT (1<<0) +#define SD_EXT_PERF_CARD_MAINT (1<<1) +#define SD_EXT_PERF_HOST_MAINT (1<<2) +#define SD_EXT_PERF_CACHE (1<<3) +#define SD_EXT_PERF_CMD_QUEUE (1<<4) +}; + struct sdio_cccr { unsigned int sdio_vsn; unsigned int sd_vsn; @@ -290,6 +311,8 @@ struct mmc_card { struct sd_scr scr; /* extra SD information */ struct sd_ssr ssr; /* yet more SD information */ struct sd_switch_caps sw_caps; /* switch (CMD6) caps */ + struct sd_ext_reg ext_power; /* SD extension reg for PM */ + struct sd_ext_reg ext_perf; /* SD extension reg for PERF */ unsigned int sdio_funcs; /* number of SDIO functions */ atomic_t sdio_funcs_probed; /* number of probed SDIO funcs */ diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index c7e7b43600e9..0abd47e9ef9b 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -632,6 +632,6 @@ static inline enum dma_data_direction mmc_get_dma_dir(struct mmc_data *data) } int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error); -int mmc_abort_tuning(struct mmc_host *host, u32 opcode); +int mmc_send_abort_tuning(struct mmc_host *host, u32 opcode); #endif /* LINUX_MMC_HOST_H */ diff --git a/include/linux/mmc/sd.h b/include/linux/mmc/sd.h index 2236aa540faa..6727576a8755 100644 --- a/include/linux/mmc/sd.h +++ b/include/linux/mmc/sd.h @@ -29,6 +29,10 @@ #define SD_APP_OP_COND 41 /* bcr [31:0] OCR R3 */ #define SD_APP_SEND_SCR 51 /* adtc R1 */ + /* class 11 */ +#define SD_READ_EXTR_SINGLE 48 /* adtc [31:0] R1 */ +#define SD_WRITE_EXTR_SINGLE 49 /* adtc [31:0] R1 */ + /* OCR bit definitions */ #define SD_OCR_S18R (1 << 24) /* 1.8V switching request */ #define SD_ROCR_S18A SD_OCR_S18R /* 1.8V switching accepted by card */ |