OSDN Git Service

phy: mapphone-mdm6600: Improve phy related runtime PM calls
authorTony Lindgren <tony@atomide.com>
Sun, 2 Dec 2018 23:51:35 +0000 (15:51 -0800)
committerKishon Vijay Abraham I <kishon@ti.com>
Wed, 12 Dec 2018 04:31:39 +0000 (10:01 +0530)
commit2ad2af0816221ac9ce9d5c8b979868b58a696c40
treec0801ef3a22aa9c1c8d6ac04b9820e847450b578
parent72c0339c115b31b3c0b22b1809854136cadd49be
phy: mapphone-mdm6600: Improve phy related runtime PM calls

I noticed that phy_pm_runtime_get_sync() and phy_pm_runtime_put() are not
currently doing anything for phy-mapphone-mdm6600, only the sysfs interface
for works for "auto" and "on".

This is because of the shared GPIO pins between mdm6600 USB port and n_gsm
port. We have not enabled runtime PM for the phy driver until after we've
booted up mdm6600 properly to the USB mode. Otherwise phy_create() would
have called pm_runtime_enable() and pm_runtime_no_callbacks() automatically
on init.

Let's fix this by registering the phy a bit later after we've powered up
the mdm6600 USB port.

And as the PM runtime support is only needed for the n_gsm mode and not for
USB, we can allow the device to idle between phy_mdm6600_power_on() and
phy_mdm6600_power_off(). Note that for suspend, runtime_pm is already
disabled for the phy so we need to check for pm_runtime_enabled().

Cc: Johan Hovold <jhovold@gmail.com>
Cc: Pavel Machek <pavel@ucw.cz>
Cc: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Kishon Vijay Abraham I <kishon@ti.com>
drivers/phy/motorola/phy-mapphone-mdm6600.c