mmc: sdhci-pci: Disable LED control for Intel BYT-based controllers
authorAdrian Hunter <adrian.hunter@intel.com>
Tue, 11 Dec 2018 13:10:43 +0000 (15:10 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Mon, 17 Dec 2018 07:26:24 +0000 (08:26 +0100)
Intel BYT-based controllers do not have a LED signal line. Nevertheless
sdhci_led_control() takes more than twice as long as sdhci_send_command(),
even though it does nothing.  Use the new SDHCI_QUIRK_NO_LED quirk to
disable LED control for Intel BYT-based controllers.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/sdhci-pci-core.c

index 5fe48d0..2a6eba7 100644 (file)
@@ -941,7 +941,8 @@ static int byt_sd_probe_slot(struct sdhci_pci_slot *slot)
 static const struct sdhci_pci_fixes sdhci_intel_byt_emmc = {
        .allow_runtime_pm = true,
        .probe_slot     = byt_emmc_probe_slot,
-       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
+       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+                         SDHCI_QUIRK_NO_LED,
        .quirks2        = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
                          SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 |
                          SDHCI_QUIRK2_STOP_WITH_TC,
@@ -961,7 +962,8 @@ static const struct sdhci_pci_fixes sdhci_intel_glk_emmc = {
        .runtime_suspend        = glk_runtime_suspend,
        .runtime_resume         = glk_runtime_resume,
 #endif
-       .quirks                 = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
+       .quirks                 = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+                                 SDHCI_QUIRK_NO_LED,
        .quirks2                = SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
                                  SDHCI_QUIRK2_CAPS_BIT63_FOR_HS400 |
                                  SDHCI_QUIRK2_STOP_WITH_TC,
@@ -970,7 +972,8 @@ static const struct sdhci_pci_fixes sdhci_intel_glk_emmc = {
 };
 
 static const struct sdhci_pci_fixes sdhci_ni_byt_sdio = {
-       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
+       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+                         SDHCI_QUIRK_NO_LED,
        .quirks2        = SDHCI_QUIRK2_HOST_OFF_CARD_ON |
                          SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
        .allow_runtime_pm = true,
@@ -980,7 +983,8 @@ static const struct sdhci_pci_fixes sdhci_ni_byt_sdio = {
 };
 
 static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = {
-       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
+       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+                         SDHCI_QUIRK_NO_LED,
        .quirks2        = SDHCI_QUIRK2_HOST_OFF_CARD_ON |
                        SDHCI_QUIRK2_PRESET_VALUE_BROKEN,
        .allow_runtime_pm = true,
@@ -990,7 +994,8 @@ static const struct sdhci_pci_fixes sdhci_intel_byt_sdio = {
 };
 
 static const struct sdhci_pci_fixes sdhci_intel_byt_sd = {
-       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC,
+       .quirks         = SDHCI_QUIRK_NO_ENDATTR_IN_NOPDESC |
+                         SDHCI_QUIRK_NO_LED,
        .quirks2        = SDHCI_QUIRK2_CARD_ON_NEEDS_BUS_ON |
                          SDHCI_QUIRK2_PRESET_VALUE_BROKEN |
                          SDHCI_QUIRK2_STOP_WITH_TC,