diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-22 07:29:07 -1000 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2026-10-22 07:29:07 -1000 |
| commit | 03480653ddfd1b004dc622acb4fa913b05c3edaa (patch) | |
| tree | 5523a2d035f09a3dfbb57c09f359b13c0ddf026f /include/linux | |
| parent | 9aa54fb74ead1737b92a9dc2f7a5d9d5e48dc7b5 (diff) | |
| parent | fd9af27f6c2319713bb23832066585f8a59a1771 (diff) | |
| download | lwn-03480653ddfd1b004dc622acb4fa913b05c3edaa.tar.gz lwn-03480653ddfd1b004dc622acb4fa913b05c3edaa.zip | |
Merge tag 'mmc-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc
Pull MMC updates from Ulf Hansson:
"MMC core:
- Add a power-off-delay-us DT property to support HW specific delays
- Add mmc_send_tuning_timeout() to allow hosts to specify a timeout
- Enable hosts to control the re-programming of the crypto keys
MMC host:
- dw_mmc: Add a common watchdog and convert the various timeouts to use it
- dw_mmc: Expose the watchdog state in debugfs
- dw_mmc-rockchip: Use a tighter per command tuning timeout
- greybus-sdio: Convert to devm_mmc_alloc_host()
- meson-gx: Enable the bus pipeline clock on T7
- rtsx_usb_sdmmc: Start card power-up at 3.3V
- sdhci-cadence: Add Altera Agilex5 SD6HC support
- sdhci-cadence: Add Cadence SD6HC support
- sdhci-msm: Add support for the MSM8952 and Maili variants
- sdhci-msm: Use pm ops to better manage restoring of crypto keys
- sdhci-of-dwcmshc: Disable CQE error halt request for Rockchip
- sdhci-pxav3: Disable clock inversion for SD HS cards
- sunplus: Fixup initialization for DDR modes
- sunxi: Add support for Allwinner B288
- vub300: Remove the driver for the obsolete HW"
* tag 'mmc-v7.4' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc: (43 commits)
dt-bindings: mmc: sun4i-a10-mmc: add Allwinner B288
mmc: dw_mmc-rockchip: use a tighter per-command tuning timeout
mmc: core: add mmc_send_tuning_timeout()
mmc: sdhci-of-dwcmshc: Disable CQE error halt request for Rockchip
dt-bindings: mmc: sdhci-msm: Add MSM8952 compatible
mmc: use assign_bit() where applicable
mmc: sdhci-pci: Replace deprecated PCI functions
mmc: sunplus: initialise rd_crc_dly=1 for DDR modes
mmc: core: fix stale mmc_start_req() references in comments
docs: mmc: fix stale async request documentation
docs: mmc: document eMMC health status support in mmc-tools
mmc: cavium-thunderx: Drop redundant calls to get|put_device()
mmc: core: Turn mmc_alloc|free_host() into static functions
staging: greybus: sdio: Convert to devm_mmc_alloc_host()
mmc: vub300: Remove the driver for the obsolete HW
mmc: dw_mmc: remove unused slot member
mmc: sdhci-pxav3: avoid of_node
CREDITS: Add Pierre Ossman
mmc: fix typos in comments
mmc: meson-gx: enable the bus pipeline clock on T7
...
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/mmc/host.h | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h index ba84f02c2a10..032c018650e0 100644 --- a/include/linux/mmc/host.h +++ b/include/linux/mmc/host.h @@ -23,6 +23,7 @@ struct mmc_ios { unsigned int clock; /* clock rate */ unsigned short vdd; unsigned int power_delay_ms; /* waiting for stable power */ + unsigned int power_off_delay_us; /* waiting for power discharge */ /* vdd stores the bit number of the selected voltage range from below. */ @@ -463,6 +464,7 @@ struct mmc_host { #define MMC_CAP2_CRYPTO 0 #endif #define MMC_CAP2_ALT_GPT_TEGRA (1 << 28) /* Host with eMMC that has GPT entry at a non-standard location */ +#define MMC_CAP2_CRYPTO_NO_REPROG (1 << 29) /* Host handles inline crypto key reprogramming */ bool uhs2_sd_tran; /* UHS-II flag for SD_TRAN state */ bool uhs2_app_cmd; /* UHS-II flag for APP command */ @@ -583,11 +585,9 @@ struct mmc_host { struct device_node; -struct mmc_host *mmc_alloc_host(int extra, struct device *); struct mmc_host *devm_mmc_alloc_host(struct device *dev, int extra); int mmc_add_host(struct mmc_host *); void mmc_remove_host(struct mmc_host *); -void mmc_free_host(struct mmc_host *); void mmc_of_parse_clk_phase(struct device *dev, struct mmc_clk_phase_map *map); int mmc_of_parse(struct mmc_host *host); @@ -753,6 +753,8 @@ static inline int mmc_card_uhs2_hd_mode(struct mmc_host *host) int mmc_sd_switch(struct mmc_card *card, bool mode, int group, u8 value, u8 *resp); int mmc_send_status(struct mmc_card *card, u32 *status); +int mmc_send_tuning_timeout(struct mmc_host *host, u32 opcode, int *cmd_error, + u32 timeout_ms); int mmc_send_tuning(struct mmc_host *host, u32 opcode, int *cmd_error); int mmc_send_abort_tuning(struct mmc_host *host, u32 opcode); int mmc_get_ext_csd(struct mmc_card *card, u8 **new_ext_csd); |
