]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/4.8.5/mmc-rtsx_usb_sdmmc-handle-runtime-pm-while-changing-the-led.patch
4.9-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 4.8.5 / mmc-rtsx_usb_sdmmc-handle-runtime-pm-while-changing-the-led.patch
1 From 4f48aa7a11bfed9502a7c85a5b68cd40ea827f73 Mon Sep 17 00:00:00 2001
2 From: Ulf Hansson <ulf.hansson@linaro.org>
3 Date: Thu, 15 Sep 2016 14:46:21 +0200
4 Subject: mmc: rtsx_usb_sdmmc: Handle runtime PM while changing the led
5
6 From: Ulf Hansson <ulf.hansson@linaro.org>
7
8 commit 4f48aa7a11bfed9502a7c85a5b68cd40ea827f73 upstream.
9
10 Accesses of the rtsx sdmmc's parent device, which is the rtsx usb device,
11 must be done when it's runtime resumed. Currently this isn't case when
12 changing the led, so let's fix this by adding a pm_runtime_get_sync() and
13 a pm_runtime_put() around those operations.
14
15 Reported-by: Ritesh Raj Sarraf <rrs@researchut.com>
16 Tested-by: Ritesh Raj Sarraf <rrs@researchut.com>
17 Cc: Alan Stern <stern@rowland.harvard.edu>
18 Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
19 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20
21 ---
22 drivers/mmc/host/rtsx_usb_sdmmc.c | 2 ++
23 1 file changed, 2 insertions(+)
24
25 --- a/drivers/mmc/host/rtsx_usb_sdmmc.c
26 +++ b/drivers/mmc/host/rtsx_usb_sdmmc.c
27 @@ -1309,6 +1309,7 @@ static void rtsx_usb_update_led(struct w
28 container_of(work, struct rtsx_usb_sdmmc, led_work);
29 struct rtsx_ucr *ucr = host->ucr;
30
31 + pm_runtime_get_sync(sdmmc_dev(host));
32 mutex_lock(&ucr->dev_mutex);
33
34 if (host->led.brightness == LED_OFF)
35 @@ -1317,6 +1318,7 @@ static void rtsx_usb_update_led(struct w
36 rtsx_usb_turn_on_led(ucr);
37
38 mutex_unlock(&ucr->dev_mutex);
39 + pm_runtime_put(sdmmc_dev(host));
40 }
41 #endif
42