forked from luck/tmp_suning_uos_patched
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: Ritesh Raj Sarraf <rrs@researchut.com> Tested-by: Ritesh Raj Sarraf <rrs@researchut.com> Cc: <stable@vger.kernel.org> Cc: Alan Stern <stern@rowland.harvard.edu> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
This commit is contained in:
parent
31cf742f51
commit
4f48aa7a11
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user