Message ID | 20210510053125.1595659-2-pihsun@chromium.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3,1/2] drm/bridge: anx7625: refactor power control to use runtime PM framework | expand |
On Mon, May 10, 2021 at 1:31 PM Pi-Hsun Shih <pihsun@chromium.org> wrote: > > Add suspend / resume hooks for anx7625 driver, that power off the device > on suspend and power on the device on resume if it was previously > powered. > > Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org> Tested-by: Hsin-Yi Wang <hsinyi@chromium.org> Tested on a mt8183 juniper device. > --- > > Changes from v2: > * No change. > > --- > drivers/gpu/drm/bridge/analogix/anx7625.c | 27 +++++++++++++++++++++++ > 1 file changed, 27 insertions(+) > > diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c > index e1bf31eafe22..b165ef71e00f 100644 > --- a/drivers/gpu/drm/bridge/analogix/anx7625.c > +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c > @@ -1705,7 +1705,34 @@ static int __maybe_unused anx7625_runtime_pm_resume(struct device *dev) > return 0; > } > > +static int __maybe_unused anx7625_resume(struct device *dev) > +{ > + struct anx7625_data *ctx = dev_get_drvdata(dev); > + > + if (!ctx->pdata.intp_irq) > + return 0; > + > + if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) > + anx7625_runtime_pm_resume(dev); > + > + return 0; > +} > + > +static int __maybe_unused anx7625_suspend(struct device *dev) > +{ > + struct anx7625_data *ctx = dev_get_drvdata(dev); > + > + if (!ctx->pdata.intp_irq) > + return 0; > + > + if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) > + anx7625_runtime_pm_suspend(dev); > + > + return 0; > +} > + > static const struct dev_pm_ops anx7625_pm_ops = { > + SET_SYSTEM_SLEEP_PM_OPS(anx7625_suspend, anx7625_resume) > SET_RUNTIME_PM_OPS(anx7625_runtime_pm_suspend, > anx7625_runtime_pm_resume, NULL) > }; > -- > 2.31.1.607.g51e8a6a459-goog >
diff --git a/drivers/gpu/drm/bridge/analogix/anx7625.c b/drivers/gpu/drm/bridge/analogix/anx7625.c index e1bf31eafe22..b165ef71e00f 100644 --- a/drivers/gpu/drm/bridge/analogix/anx7625.c +++ b/drivers/gpu/drm/bridge/analogix/anx7625.c @@ -1705,7 +1705,34 @@ static int __maybe_unused anx7625_runtime_pm_resume(struct device *dev) return 0; } +static int __maybe_unused anx7625_resume(struct device *dev) +{ + struct anx7625_data *ctx = dev_get_drvdata(dev); + + if (!ctx->pdata.intp_irq) + return 0; + + if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) + anx7625_runtime_pm_resume(dev); + + return 0; +} + +static int __maybe_unused anx7625_suspend(struct device *dev) +{ + struct anx7625_data *ctx = dev_get_drvdata(dev); + + if (!ctx->pdata.intp_irq) + return 0; + + if (!pm_runtime_enabled(dev) || !pm_runtime_suspended(dev)) + anx7625_runtime_pm_suspend(dev); + + return 0; +} + static const struct dev_pm_ops anx7625_pm_ops = { + SET_SYSTEM_SLEEP_PM_OPS(anx7625_suspend, anx7625_resume) SET_RUNTIME_PM_OPS(anx7625_runtime_pm_suspend, anx7625_runtime_pm_resume, NULL) };
Add suspend / resume hooks for anx7625 driver, that power off the device on suspend and power on the device on resume if it was previously powered. Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org> --- Changes from v2: * No change. --- drivers/gpu/drm/bridge/analogix/anx7625.c | 27 +++++++++++++++++++++++ 1 file changed, 27 insertions(+)