Messages in this thread | | | From | Ulf Hansson <> | Date | Fri, 24 Aug 2018 08:30:41 +0200 | Subject | Re: [PATCH 4/5] memstick: rtsx_usb_ms: Support runtime power management |
| |
On 23 August 2018 at 10:12, Kai-Heng Feng <kai.heng.feng@canonical.com> wrote: > at 21:29, Ulf Hansson <ulf.hansson@linaro.org> wrote: > >> [...] >> >>> -#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. > > > Do you mean the logic was wrong even before my modification?
No. I think you should keep the existing callbacks for system sleep, they seems to do what they should.
Then add new ones for runtime PM.
[...]
Kind regards Uffe
| |