|
@@ -524,6 +524,7 @@ static void rtsx_usb_ms_handle_req(struct work_struct *work)
|
|
|
int rc;
|
|
|
|
|
|
if (!host->req) {
|
|
|
+ pm_runtime_get_sync(ms_dev(host));
|
|
|
do {
|
|
|
rc = memstick_next_req(msh, &host->req);
|
|
|
dev_dbg(ms_dev(host), "next req %d\n", rc);
|
|
@@ -544,6 +545,7 @@ static void rtsx_usb_ms_handle_req(struct work_struct *work)
|
|
|
host->req->error);
|
|
|
}
|
|
|
} while (!rc);
|
|
|
+ pm_runtime_put(ms_dev(host));
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -570,6 +572,7 @@ static int rtsx_usb_ms_set_param(struct memstick_host *msh,
|
|
|
dev_dbg(ms_dev(host), "%s: param = %d, value = %d\n",
|
|
|
__func__, param, value);
|
|
|
|
|
|
+ pm_runtime_get_sync(ms_dev(host));
|
|
|
mutex_lock(&ucr->dev_mutex);
|
|
|
|
|
|
err = rtsx_usb_card_exclusive_check(ucr, RTSX_USB_MS_CARD);
|
|
@@ -635,6 +638,7 @@ static int rtsx_usb_ms_set_param(struct memstick_host *msh,
|
|
|
}
|
|
|
out:
|
|
|
mutex_unlock(&ucr->dev_mutex);
|
|
|
+ pm_runtime_put(ms_dev(host));
|
|
|
|
|
|
/* power-on delay */
|
|
|
if (param == MEMSTICK_POWER && value == MEMSTICK_POWER_ON)
|