]> git.baikalelectronics.ru Git - kernel.git/commit
mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN
authorRaul E Rangel <rrangel@chromium.org>
Mon, 28 Sep 2020 21:59:20 +0000 (15:59 -0600)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 5 Oct 2020 09:13:28 +0000 (11:13 +0200)
commit8f932f6f807cec352ecc607f7913fb8b075b98e6
treecfed44bb7bc0feae30a67ff685960b851279f4cf
parentd4686798d7687ffb73baa141d0796a82d9a54d0a
mmc: sdhci-acpi: AMDI0040: Set SDHCI_QUIRK2_PRESET_VALUE_BROKEN

This change fixes HS400 tuning for devices with invalid presets.

SDHCI presets are not currently used for eMMC HS/HS200/HS400, but are
used for DDR52. The HS400 retuning sequence is:

    HS400->DDR52->HS->HS200->Perform Tuning->HS->HS400

This means that when HS400 tuning happens, we transition through DDR52
for a very brief period. This causes presets to be enabled
unintentionally and stay enabled when transitioning back to HS200 or
HS400. Some firmware has invalid presets, so we end up with driver
strengths that can cause I/O problems.

Fixes: c263f9172326 ("mmc: sdhci-acpi: Add support for ACPI HID of AMD Controller with HS400")
Signed-off-by: Raul E Rangel <rrangel@chromium.org>
Acked-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/r/20200928154718.1.Icc21d4b2f354e83e26e57e270dc952f5fe0b0a40@changeid
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-acpi.c