• Al Cooper's avatar
    mmc: sdhci: Fix warning message when accessing RPMB in HS400 mode · d0244847
    Al Cooper authored
    When an eMMC device is being run in HS400 mode, any access to the
    RPMB device will cause the error message "mmc1: Invalid UHS-I mode
    selected". This happens as a result of tuning being disabled before
    RPMB access and then re-enabled after the RPMB access is complete.
    When tuning is re-enabled, the system has to switch from HS400
    to HS200 to do the tuning and then back to HS400. As part of
    sequence to switch from HS400 to HS200 the system is temporarily
    put into HS mode. When switching to HS mode, sdhci_get_preset_value()
    is called and does not have support for HS mode and prints the warning
    message and returns the preset for SDR12. The fix is to add support
    for MMC and SD HS modes to sdhci_get_preset_value().
    
    This can be reproduced on any system running eMMC in HS400 mode
    (not HS400ES) by using the "mmc" utility to run the following
    command: "mmc rpmb read-counter /dev/mmcblk0rpmb".
    Signed-off-by: default avatarAl Cooper <alcooperx@gmail.com>
    Acked-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Fixes: 52983382 ("mmc: sdhci: enhance preset value function")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20210624163045.33651-1-alcooperx@gmail.comSigned-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
    d0244847
sdhci.c 125 KB