linux/drivers/mmc/core
Kamal Dasu 5a52c5701a mmc: core: Fix host controller programming for fixed driver type
When using the fixed-emmc-driver-type device tree property, the MMC core
correctly selects the driver strength for the card but fails to program
the host controller accordingly. This causes a mismatch where the card
uses the specified driver type while the host controller defaults to
Type B (since ios->drv_type remains zero).

Split the driver type programming logic to handle both fixed and dynamic
driver type selection paths. For fixed driver types, program the host
controller with the selected drive_strength value. For dynamic selection,
use the existing drv_type as before.

This ensures both the eMMC device and host controller use matching driver
strengths, preventing potential signal integrity issues.

Fixes: 6186d06c51 ("mmc: parse new binding for eMMC fixed driver type")
Signed-off-by: Kamal Dasu <kamal.dasu@broadcom.com>
Reviewed-by: Shawn Lin <shawn.lin@rock-chips.com>
Cc: stable@vger.kernel.org
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
2026-05-11 16:45:48 +02:00
..
block.c mmc: block: Use MQRQ_XFER_SINGLE_BLOCK for both read and write recovery 2026-03-31 12:41:32 +02:00
block.h
bus.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
bus.h mmc: use octal file permissions instead of symbolic 2025-10-21 13:37:38 +02:00
card.h mmc: core: Optimize time for secure erase/trim for some Kingston eMMCs 2026-02-23 12:06:55 +01:00
core.c mmc: core: Replace the hard-coded shift value 9 with SECTOR_SHIFT 2026-03-31 12:41:31 +02:00
core.h mmc: core: Add infrastructure for undervoltage handling 2025-08-22 12:08:07 +02:00
crypto.c
crypto.h
debugfs.c mmc: core: Allow more host caps to be modified through debugfs 2025-11-11 17:59:17 +01:00
host.c mmc: core: Switch to use pm_ptr() for mmc_host_class_dev_pm_ops 2026-03-27 10:25:16 +01:00
host.h mmc: core: Remove checking MMC_CAP_4_BIT_DATA from mmc_host_can_uhs() 2026-03-16 15:46:58 +01:00
Kconfig mmc: block: add RPMB dependency 2024-09-03 14:34:44 +02:00
Makefile mmc: core: Prepare to support SD UHS-II cards 2024-10-14 12:40:10 +02:00
mmc_ops.c mmc: core: add mmc_read_tuning 2025-08-19 14:34:15 +02:00
mmc_ops.h mmc: rename mmc_can_ext_csd() to mmc_card_can_ext_csd() 2025-05-14 16:59:17 +02:00
mmc_test.c mmc: mmc_test: Replace hard-coded values with macros and consolidate test parameters 2026-03-31 12:41:31 +02:00
mmc.c mmc: core: Fix host controller programming for fixed driver type 2026-05-11 16:45:48 +02:00
pwrseq_emmc.c mmc: Switch back to struct platform_driver::remove() 2024-10-14 12:29:01 +02:00
pwrseq_sd8787.c mmc: Switch back to struct platform_driver::remove() 2024-10-14 12:29:01 +02:00
pwrseq_simple.c mmc: pwrseq_simple: use gpiod_multi_set_value_cansleep 2025-02-17 14:27:34 +01:00
pwrseq.c
pwrseq.h
queue.c mmc: core: Optimize time for secure erase/trim for some Kingston eMMCs 2026-02-23 12:06:55 +01:00
queue.h mmc: core: Optimize size of struct mmc_queue_req 2026-04-09 17:49:54 +02:00
quirks.h mmc: core: Simplify with scoped for each OF child loop 2026-04-09 17:51:21 +02:00
regulator.c mmc: core: Add infrastructure for undervoltage handling 2025-08-22 12:08:07 +02:00
sd_ops.c mmc: core: Support UHS-II card control and access 2024-10-24 14:22:24 +02:00
sd_ops.h mmc: core: Support UHS-II card control and access 2024-10-24 14:22:24 +02:00
sd_uhs2.c mmc: core: Adjust some error messages for SD UHS-II cards 2025-06-24 12:38:02 +02:00
sd.c mmc: core: Skip to set the default 200mA SD current limit 2025-10-23 16:07:21 +02:00
sd.h mmc: core: Support UHS-II card control and access 2024-10-24 14:22:24 +02:00
sdio_bus.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sdio_bus.h
sdio_cis.c
sdio_cis.h
sdio_io.c mmc: sdio: Use min3() to simplify sdio_set_block_size() 2026-03-09 14:24:35 +01:00
sdio_irq.c
sdio_ops.c
sdio_ops.h
sdio_uart.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
sdio.c mmc: core: SPI mode remove cmd7 2025-08-19 14:33:37 +02:00
slot-gpio.c mmc: rename mmc_can_gpio_ro() to mmc_host_can_gpio_ro() 2025-05-14 16:59:17 +02:00
slot-gpio.h