summaryrefslogtreecommitdiff
path: root/drivers/memstick
diff options
context:
space:
mode:
authorAlan Stern <stern@rowland.harvard.edu>2016-09-27 01:45:41 +0300
committerSasha Levin <alexander.levin@verizon.com>2016-11-24 05:30:43 +0300
commita5eade900fc89adf2b7cd18c6d61e6b85abff7e5 (patch)
treef8636781bb36083f4f90049ece4b3f38fc2c5151 /drivers/memstick
parentb2580c4ba788bd913759b14dc9f5a9ef2ada997d (diff)
downloadlinux-a5eade900fc89adf2b7cd18c6d61e6b85abff7e5.tar.xz
memstick: rtsx_usb_ms: Runtime resume the device when polling for cards
[ Upstream commit 796aa46adf1d90eab36ae06a42e6d3f10b28a75c ] Accesses to the rtsx usb device, which is the parent of the rtsx memstick device, must not be done unless it's runtime resumed. Therefore when the rtsx_usb_ms driver polls for inserted memstick cards, let's add pm_runtime_get|put*() to make sure accesses is done when the rtsx usb device is runtime resumed. Reported-by: Ritesh Raj Sarraf <rrs@researchut.com> Tested-by: Ritesh Raj Sarraf <rrs@researchut.com> Signed-off-by: Alan Stern <stern@rowland.harvard.edu> Cc: <stable@vger.kernel.org> Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org> Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Diffstat (limited to 'drivers/memstick')
-rw-r--r--drivers/memstick/host/rtsx_usb_ms.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/memstick/host/rtsx_usb_ms.c b/drivers/memstick/host/rtsx_usb_ms.c
index a7282b7d4de8..f90e2133bbd2 100644
--- a/drivers/memstick/host/rtsx_usb_ms.c
+++ b/drivers/memstick/host/rtsx_usb_ms.c
@@ -681,6 +681,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
int err;
for (;;) {
+ pm_runtime_get_sync(ms_dev(host));
mutex_lock(&ucr->dev_mutex);
/* Check pending MS card changes */
@@ -703,6 +704,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
}
poll_again:
+ pm_runtime_put(ms_dev(host));
if (host->eject)
break;