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

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

mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led



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: <stable@vger.kernel.org>
Cc: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
parent 31cf742f
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