浏览代码

memstick: rtsx_usb_ms: Runtime resume the device when polling for cards

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>
Alan Stern 8 年之前
父节点
当前提交
796aa46adf
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      drivers/memstick/host/rtsx_usb_ms.c

+ 2 - 0
drivers/memstick/host/rtsx_usb_ms.c

@@ -681,6 +681,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
 	int err;
 	int err;
 
 
 	for (;;) {
 	for (;;) {
+		pm_runtime_get_sync(ms_dev(host));
 		mutex_lock(&ucr->dev_mutex);
 		mutex_lock(&ucr->dev_mutex);
 
 
 		/* Check pending MS card changes */
 		/* Check pending MS card changes */
@@ -703,6 +704,7 @@ static int rtsx_usb_detect_ms_card(void *__host)
 		}
 		}
 
 
 poll_again:
 poll_again:
+		pm_runtime_put(ms_dev(host));
 		if (host->eject)
 		if (host->eject)
 			break;
 			break;