Thread (8 messages) 8 messages, 2 authors, 2018-08-30

[4/5] memstick: rtsx_usb_ms: Support runtime power management

From: Ulf Hansson <hidden>
Date: 2018-08-01 13:29:28
Also in: lkml

Possibly related (same subject, not in this thread)

[...]
-#ifdef CONFIG_PM_SLEEP
-static int rtsx_usb_ms_suspend(struct device *dev)
+#ifdef CONFIG_PM
+static int rtsx_usb_ms_runtime_suspend(struct device *dev)
 {
        struct rtsx_usb_ms *host = dev_get_drvdata(dev);
        struct memstick_host *msh = host->msh;

-       dev_dbg(ms_dev(host), "--> %s\n", __func__);
-
+       host->suspend = true;
        memstick_suspend_host(msh);
I missed this one. Does this really work? To me, this looks like doing
things upside-down.

To suspend the host, you first need to runtime resume it, because
mmc_suspend_host() calls into one of the host ops and my touch the
device, right?

If you want to suspend the host (actually the naming is wrong, as it's
about suspending/power-iff the memstick card), that should be done via
when the memstick core finds that the card is removed or during system
wide suspend.
+
        return 0;
 }

-static int rtsx_usb_ms_resume(struct device *dev)
+static int rtsx_usb_ms_runtime_resume(struct device *dev)
 {
        struct rtsx_usb_ms *host = dev_get_drvdata(dev);
        struct memstick_host *msh = host->msh;

-       dev_dbg(ms_dev(host), "--> %s\n", __func__);
-
        memstick_resume_host(msh);
According to the above, this seems not correct to me.
+       host->suspend = false;
+       schedule_delayed_work(&host->poll_card, 100);
+
        return 0;
 }
-#endif /* CONFIG_PM_SLEEP */
[...]

Kind regards
Uffe
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help