mmc: sdhci: Add quirk to disable LED control
Host controllers may not have a LED signal line, whereas the register updates to control the non-existent LED can be relatively time consuming. Add a quirk to disable LED control. Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:

committed by
Ulf Hansson

parent
c8073e5285
commit
bd29f58bc0
@@ -349,6 +349,9 @@ static void __sdhci_led_activate(struct sdhci_host *host)
|
||||
{
|
||||
u8 ctrl;
|
||||
|
||||
if (host->quirks & SDHCI_QUIRK_NO_LED)
|
||||
return;
|
||||
|
||||
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
||||
ctrl |= SDHCI_CTRL_LED;
|
||||
sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
|
||||
@@ -358,6 +361,9 @@ static void __sdhci_led_deactivate(struct sdhci_host *host)
|
||||
{
|
||||
u8 ctrl;
|
||||
|
||||
if (host->quirks & SDHCI_QUIRK_NO_LED)
|
||||
return;
|
||||
|
||||
ctrl = sdhci_readb(host, SDHCI_HOST_CONTROL);
|
||||
ctrl &= ~SDHCI_CTRL_LED;
|
||||
sdhci_writeb(host, ctrl, SDHCI_HOST_CONTROL);
|
||||
@@ -387,6 +393,9 @@ static int sdhci_led_register(struct sdhci_host *host)
|
||||
{
|
||||
struct mmc_host *mmc = host->mmc;
|
||||
|
||||
if (host->quirks & SDHCI_QUIRK_NO_LED)
|
||||
return 0;
|
||||
|
||||
snprintf(host->led_name, sizeof(host->led_name),
|
||||
"%s::", mmc_hostname(mmc));
|
||||
|
||||
@@ -400,6 +409,9 @@ static int sdhci_led_register(struct sdhci_host *host)
|
||||
|
||||
static void sdhci_led_unregister(struct sdhci_host *host)
|
||||
{
|
||||
if (host->quirks & SDHCI_QUIRK_NO_LED)
|
||||
return;
|
||||
|
||||
led_classdev_unregister(&host->led);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user