2019-03-21 08:17:07

by Yannick FERTRE

[permalink] [raw]
Subject: [PATCH] drm/stm: dw_mipi_dsi-stm: add sleep power management

Implements system sleep power management ops.

Signed-off-by: Yannick Fertré <[email protected]>
---
drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

diff --git a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
index a672b59..1bef73e 100644
--- a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
+++ b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
@@ -356,12 +356,40 @@ static int dw_mipi_dsi_stm_remove(struct platform_device *pdev)
return 0;
}

+static int __maybe_unused dw_mipi_dsi_stm_suspend(struct device *dev)
+{
+ struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
+
+ DRM_DEBUG_DRIVER("\n");
+
+ clk_disable_unprepare(dsi->pllref_clk);
+
+ return 0;
+}
+
+static int __maybe_unused dw_mipi_dsi_stm_resume(struct device *dev)
+{
+ struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
+
+ DRM_DEBUG_DRIVER("\n");
+
+ clk_prepare_enable(dsi->pllref_clk);
+
+ return 0;
+}
+
+static const struct dev_pm_ops dw_mipi_dsi_stm_pm_ops = {
+ SET_SYSTEM_SLEEP_PM_OPS(dw_mipi_dsi_stm_suspend,
+ dw_mipi_dsi_stm_resume)
+};
+
static struct platform_driver dw_mipi_dsi_stm_driver = {
.probe = dw_mipi_dsi_stm_probe,
.remove = dw_mipi_dsi_stm_remove,
.driver = {
.of_match_table = dw_mipi_dsi_stm_dt_ids,
.name = "stm32-display-dsi",
+ .pm = &dw_mipi_dsi_stm_pm_ops,
},
};

--
2.7.4



2019-03-26 12:53:37

by Philippe Cornu

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: dw_mipi_dsi-stm: add sleep power management

Dear Yannick,
Many thanks for your patch.

Acked-by: Philippe Cornu <[email protected]>

Philippe :-)


On 3/21/19 9:13 AM, Yannick Fertré wrote:
> Implements system sleep power management ops.
>
> Signed-off-by: Yannick Fertré <[email protected]>
> ---
> drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 28 ++++++++++++++++++++++++++++
> 1 file changed, 28 insertions(+)
>
> diff --git a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
> index a672b59..1bef73e 100644
> --- a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
> +++ b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
> @@ -356,12 +356,40 @@ static int dw_mipi_dsi_stm_remove(struct platform_device *pdev)
> return 0;
> }
>
> +static int __maybe_unused dw_mipi_dsi_stm_suspend(struct device *dev)
> +{
> + struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
> +
> + DRM_DEBUG_DRIVER("\n");
> +
> + clk_disable_unprepare(dsi->pllref_clk);
> +
> + return 0;
> +}
> +
> +static int __maybe_unused dw_mipi_dsi_stm_resume(struct device *dev)
> +{
> + struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
> +
> + DRM_DEBUG_DRIVER("\n");
> +
> + clk_prepare_enable(dsi->pllref_clk);
> +
> + return 0;
> +}
> +
> +static const struct dev_pm_ops dw_mipi_dsi_stm_pm_ops = {
> + SET_SYSTEM_SLEEP_PM_OPS(dw_mipi_dsi_stm_suspend,
> + dw_mipi_dsi_stm_resume)
> +};
> +
> static struct platform_driver dw_mipi_dsi_stm_driver = {
> .probe = dw_mipi_dsi_stm_probe,
> .remove = dw_mipi_dsi_stm_remove,
> .driver = {
> .of_match_table = dw_mipi_dsi_stm_dt_ids,
> .name = "stm32-display-dsi",
> + .pm = &dw_mipi_dsi_stm_pm_ops,
> },
> };
>
>

2019-04-01 09:08:11

by Benjamin Gaignard

[permalink] [raw]
Subject: Re: [PATCH] drm/stm: dw_mipi_dsi-stm: add sleep power management

Le mar. 26 mars 2019 à 13:57, Philippe CORNU <[email protected]> a écrit :
>
> Dear Yannick,
> Many thanks for your patch.
>
> Acked-by: Philippe Cornu <[email protected]>

Applied on drm-misc-next.

Benjamin

>
> Philippe :-)
>
>
> On 3/21/19 9:13 AM, Yannick Fertré wrote:
> > Implements system sleep power management ops.
> >
> > Signed-off-by: Yannick Fertré <[email protected]>
> > ---
> > drivers/gpu/drm/stm/dw_mipi_dsi-stm.c | 28 ++++++++++++++++++++++++++++
> > 1 file changed, 28 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
> > index a672b59..1bef73e 100644
> > --- a/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
> > +++ b/drivers/gpu/drm/stm/dw_mipi_dsi-stm.c
> > @@ -356,12 +356,40 @@ static int dw_mipi_dsi_stm_remove(struct platform_device *pdev)
> > return 0;
> > }
> >
> > +static int __maybe_unused dw_mipi_dsi_stm_suspend(struct device *dev)
> > +{
> > + struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
> > +
> > + DRM_DEBUG_DRIVER("\n");
> > +
> > + clk_disable_unprepare(dsi->pllref_clk);
> > +
> > + return 0;
> > +}
> > +
> > +static int __maybe_unused dw_mipi_dsi_stm_resume(struct device *dev)
> > +{
> > + struct dw_mipi_dsi_stm *dsi = dw_mipi_dsi_stm_plat_data.priv_data;
> > +
> > + DRM_DEBUG_DRIVER("\n");
> > +
> > + clk_prepare_enable(dsi->pllref_clk);
> > +
> > + return 0;
> > +}
> > +
> > +static const struct dev_pm_ops dw_mipi_dsi_stm_pm_ops = {
> > + SET_SYSTEM_SLEEP_PM_OPS(dw_mipi_dsi_stm_suspend,
> > + dw_mipi_dsi_stm_resume)
> > +};
> > +
> > static struct platform_driver dw_mipi_dsi_stm_driver = {
> > .probe = dw_mipi_dsi_stm_probe,
> > .remove = dw_mipi_dsi_stm_remove,
> > .driver = {
> > .of_match_table = dw_mipi_dsi_stm_dt_ids,
> > .name = "stm32-display-dsi",
> > + .pm = &dw_mipi_dsi_stm_pm_ops,
> > },
> > };
> >
> >
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel