Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aef07c9d authored by Ulf Hansson's avatar Ulf Hansson Committed by Greg Kroah-Hartman
Browse files

mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led



commit 4f48aa7a11bfed9502a7c85a5b68cd40ea827f73 upstream.

Accesses of the rtsx sdmmc's parent device, which is the rtsx usb device,
must be done when it's runtime resumed. Currently this isn't case when
changing the led, so let's fix this by adding a pm_runtime_get_sync() and
a pm_runtime_put() around those operations.

Reported-by: default avatarRitesh Raj Sarraf <rrs@researchut.com>
Tested-by: default avatarRitesh Raj Sarraf <rrs@researchut.com>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 55110f2f
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1309,6 +1309,7 @@ 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));
	mutex_lock(&ucr->dev_mutex);

	if (host->led.brightness == LED_OFF)
@@ -1317,6 +1318,7 @@ static void rtsx_usb_update_led(struct work_struct *work)
		rtsx_usb_turn_on_led(ucr);

	mutex_unlock(&ucr->dev_mutex);
	pm_runtime_put(sdmmc_dev(host));
}
#endif