drm: panel-simple: Problems to use Seiko 43WVF1G panel and DRM_MXS driver on the i.MX6SX SabreSD.

Fabio Estevam festevam at gmail.com
Wed Feb 1 16:48:55 UTC 2017


On Wed, Feb 1, 2017 at 2:04 PM, Breno Matheus Lima
<brenomatheus at gmail.com> wrote:
> Hi,
>
> I'm trying to use the Seiko 43WVF1G panel (Datasheet link:
> http://www.glyn.de/data/glyn/media/doc/43wvf1g-0.pdf) and the DRM_MXS driver
> on
> the i.MX6SX SabreSD. Applying the patch below removes the old
> timing configuration on the dtsi and adds it to the panel-simple.c
> I can get the display working, but the image is out of place. Another point
> to
> note is that it's necessary to set the reg_lcd_3v3 to regulator-always-on
> otherwise the gpio3 27 does not get enabled.
>
> The main two problems that I'm having at the moment are:
>
> - Gpio3 27 is not being set by the driver, function
> panel_simple_prepare(struct drm_panel *panel) is not being called.

With the change below the regulator can be properly turned on:

--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -103,12 +103,16 @@ static void mxsfb_pipe_enable(struct
drm_simple_display_pipe *pipe,
        struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe);

        mxsfb_crtc_enable(mxsfb);
+       drm_panel_prepare(mxsfb->panel);
+       drm_panel_enable(mxsfb->panel);
 }

 static void mxsfb_pipe_disable(struct drm_simple_display_pipe *pipe)
 {
        struct mxsfb_drm_private *mxsfb = drm_pipe_to_mxsfb_drm_private(pipe);

+       drm_panel_disable(mxsfb->panel);
+       drm_panel_unprepare(mxsfb->panel);
        mxsfb_crtc_disable(mxsfb);
 }

Marek, not sure if this is the correct place to call drm_panel_prepare/enable.

Any comments, please?

Thanks


More information about the dri-devel mailing list