[PATCH] drm/sun4i: rgb: add missing calls to drm_panel_{prepare,unprepare}

Subsystems: drm drivers, drm drivers and misc gpu patches, drm drivers for allwinner a10, the rest

STALE3662d

3 messages, 3 authors, 2016-08-30 · open the first message on its own page

[PATCH] drm/sun4i: rgb: add missing calls to drm_panel_{prepare,unprepare}

From: Jonathan Liu <hidden>
Date: 2016-08-30 06:55:31

If the enable-gpios property of a simple panel in device tree is set,
the GPIO is not toggled on/off because of missing calls to
drm_panel_prepare and drm_panel_unprepare.

Signed-off-by: Jonathan Liu <redacted>
---
 drivers/gpu/drm/sun4i/sun4i_rgb.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index f5bbac6..d6943e9 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -151,6 +151,7 @@ static void sun4i_rgb_encoder_enable(struct drm_encoder *encoder)
 
 	DRM_DEBUG_DRIVER("Enabling RGB output\n");
 
+	drm_panel_prepare(tcon->panel);
 	drm_panel_enable(tcon->panel);
 	sun4i_tcon_channel_enable(tcon, 0);
 }
@@ -165,6 +166,7 @@ static void sun4i_rgb_encoder_disable(struct drm_encoder *encoder)
 
 	sun4i_tcon_channel_disable(tcon, 0);
 	drm_panel_disable(tcon->panel);
+	drm_panel_unprepare(tcon->panel);
 }
 
 static void sun4i_rgb_encoder_mode_set(struct drm_encoder *encoder,
-- 
2.9.3

Re: [PATCH] drm/sun4i: rgb: add missing calls to drm_panel_{prepare,unprepare}

From: Maxime Ripard <hidden>
Date: 2016-08-30 12:54:00

Hi,

On Tue, Aug 30, 2016 at 04:55:00PM +1000, Jonathan Liu wrote:
If the enable-gpios property of a simple panel in device tree is set,
the GPIO is not toggled on/off because of missing calls to
drm_panel_prepare and drm_panel_unprepare.

Signed-off-by: Jonathan Liu <redacted>
This was not applying properly, but I merged it.

Please make sure that it applies on top of the current next branch.

Good catch, thanks!
Maxime

-- 
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20160830/f006f93f/attachment.sig>

Re: [PATCH] drm/sun4i: rgb: add missing calls to drm_panel_{prepare, unprepare}

From: Emil Velikov <hidden>
Date: 2016-08-30 15:21:51

On 30 August 2016 at 07:55, Jonathan Liu [off-list ref] wrote:
quoted hunk
If the enable-gpios property of a simple panel in device tree is set,
the GPIO is not toggled on/off because of missing calls to
drm_panel_prepare and drm_panel_unprepare.

Signed-off-by: Jonathan Liu <redacted>
---
 drivers/gpu/drm/sun4i/sun4i_rgb.c | 2 ++
 1 file changed, 2 insertions(+)
diff --git a/drivers/gpu/drm/sun4i/sun4i_rgb.c b/drivers/gpu/drm/sun4i/sun4i_rgb.c
index f5bbac6..d6943e9 100644
--- a/drivers/gpu/drm/sun4i/sun4i_rgb.c
+++ b/drivers/gpu/drm/sun4i/sun4i_rgb.c
@@ -151,6 +151,7 @@ static void sun4i_rgb_encoder_enable(struct drm_encoder *encoder)

        DRM_DEBUG_DRIVER("Enabling RGB output\n");

+       drm_panel_prepare(tcon->panel);
        drm_panel_enable(tcon->panel);
IMHO it's worth having a _prepare_enable, and alike on the dtor side,
similar to clk. The clk helper attributes when .enable() fails, which
is a good idea. Looking on the drm side - all the users of such
helper(s) don't bother checking neither .prepare or .enable. So
updating that alongside the introduction would be a great move ;-)

Just an idea about another small task.
Emil

P.S. Skimming through v4.7 mediatek (mtk) driver looks a bit
assymetrical wrt using the drm_panel API. Worth checking if things
have improved with later versions ?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help