Commit 4bfdd76d authored by Ulf Hansson's avatar Ulf Hansson
Browse files

mmc: rtsx_usb_sdmmc: Don't runtime resume the device while changing led



In case the card has been powered off, it seems silly to continue to allow
the led to be updated. Instead let's forbid that, as it enables us to
prevent runtime resuming the device and thus avoids wasting energy.

Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Tested-by: default avatarKai-Heng Feng <kai.heng.feng@canonical.com>
Tested-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
parent 7d5ef512
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -1297,14 +1297,18 @@ static void rtsx_usb_update_led(struct work_struct *work)
		container_of(work, struct rtsx_usb_sdmmc, led_work);
	struct rtsx_ucr *ucr = host->ucr;

	pm_runtime_get_sync(sdmmc_dev(host));
	pm_runtime_get_noresume(sdmmc_dev(host));
	mutex_lock(&ucr->dev_mutex);

	if (host->power_mode == MMC_POWER_OFF)
		goto out;

	if (host->led.brightness == LED_OFF)
		rtsx_usb_turn_off_led(ucr);
	else
		rtsx_usb_turn_on_led(ucr);

out:
	mutex_unlock(&ucr->dev_mutex);
	pm_runtime_put(sdmmc_dev(host));
}