diff mbox

drm/mxsfb: add poll_changed event handler to set_par on startup

Message ID 20180326161744.27878-1-m.grzeschik@pengutronix.de (mailing list archive)
State New, archived
Headers show

Commit Message

Michael Grzeschik March 26, 2018, 4:17 p.m. UTC
We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so the
set_par will be called and fb will be active.

Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
---
 drivers/gpu/drm/mxsfb/mxsfb_drv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Michael Grzeschik March 27, 2018, 11:30 a.m. UTC | #1
On Mon, Mar 26, 2018 at 06:17:44PM +0200, Michael Grzeschik wrote:
> We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so the
> set_par will be called and fb will be active.
> 

As this commit message is not very informative and digging deeper into
the stubs I came up with another Idea.

By default drm_kms_helper_hotplug_event could call
drm_fb_helper_output_poll_changed if no other output_poll_changed was
registered.

I will send another patch.

> Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> ---
>  drivers/gpu/drm/mxsfb/mxsfb_drv.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> index 1207ffe362505..a047a729af6b8 100644
> --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> @@ -94,6 +94,7 @@ void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
>  
>  static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
>  	.fb_create		= drm_gem_fb_create,
> +	.output_poll_changed	= drm_fb_helper_output_poll_changed,
>  	.atomic_check		= drm_atomic_helper_check,
>  	.atomic_commit		= drm_atomic_helper_commit,
>  };
> @@ -221,8 +222,6 @@ static int mxsfb_load(struct drm_device *drm, unsigned long flags)
>  		goto err_irq;
>  	}
>  
> -	drm_kms_helper_poll_init(drm);
> -
>  	mxsfb->fbdev = drm_fbdev_cma_init(drm, 32,
>  					  drm->mode_config.num_connector);
>  	if (IS_ERR(mxsfb->fbdev)) {
> @@ -232,6 +231,8 @@ static int mxsfb_load(struct drm_device *drm, unsigned long flags)
>  		goto err_cma;
>  	}
>  
> +	drm_kms_helper_poll_init(drm);
> +
>  	platform_set_drvdata(pdev, drm);
>  
>  	drm_helper_hpd_irq_event(drm);
> -- 
> 2.16.1
> 
> 
>
Michael Grzeschik March 27, 2018, 2:30 p.m. UTC | #2
On Tue, Mar 27, 2018 at 01:30:04PM +0200, Michael Grzeschik wrote:
> On Mon, Mar 26, 2018 at 06:17:44PM +0200, Michael Grzeschik wrote:
> > We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so the
> > set_par will be called and fb will be active.
> > 
> 
> As this commit message is not very informative and digging deeper into
> the stubs I came up with another Idea.
> 
> By default drm_kms_helper_hotplug_event could call
> drm_fb_helper_output_poll_changed if no other output_poll_changed was
> registered.

After a internal discussion, this seems not the prefered solution,
as many connectors don't need polling anymore but still call
drm_kms_helper_hotplug_event.

I will send v2 of the initial patch.
Daniel Vetter March 28, 2018, 7:02 a.m. UTC | #3
On Tue, Mar 27, 2018 at 01:30:04PM +0200, Michael Grzeschik wrote:
> On Mon, Mar 26, 2018 at 06:17:44PM +0200, Michael Grzeschik wrote:
> > We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so the
> > set_par will be called and fb will be active.
> > 
> 
> As this commit message is not very informative and digging deeper into
> the stubs I came up with another Idea.
> 
> By default drm_kms_helper_hotplug_event could call
> drm_fb_helper_output_poll_changed if no other output_poll_changed was
> registered.
> 
> I will send another patch.

Will not compile for modular builds since it's an inversion of control
between core and helpers.

On your original patch:

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

Hm, mxsfb might be a good candidate for drm-misc too.
-Daniel
> 
> > Signed-off-by: Michael Grzeschik <m.grzeschik@pengutronix.de>
> > ---
> >  drivers/gpu/drm/mxsfb/mxsfb_drv.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> > index 1207ffe362505..a047a729af6b8 100644
> > --- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> > +++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
> > @@ -94,6 +94,7 @@ void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
> >  
> >  static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
> >  	.fb_create		= drm_gem_fb_create,
> > +	.output_poll_changed	= drm_fb_helper_output_poll_changed,
> >  	.atomic_check		= drm_atomic_helper_check,
> >  	.atomic_commit		= drm_atomic_helper_commit,
> >  };
> > @@ -221,8 +222,6 @@ static int mxsfb_load(struct drm_device *drm, unsigned long flags)
> >  		goto err_irq;
> >  	}
> >  
> > -	drm_kms_helper_poll_init(drm);
> > -
> >  	mxsfb->fbdev = drm_fbdev_cma_init(drm, 32,
> >  					  drm->mode_config.num_connector);
> >  	if (IS_ERR(mxsfb->fbdev)) {
> > @@ -232,6 +231,8 @@ static int mxsfb_load(struct drm_device *drm, unsigned long flags)
> >  		goto err_cma;
> >  	}
> >  
> > +	drm_kms_helper_poll_init(drm);
> > +
> >  	platform_set_drvdata(pdev, drm);
> >  
> >  	drm_helper_hpd_irq_event(drm);
> > -- 
> > 2.16.1
> > 
> > 
> > 
> 
> -- 
> Pengutronix e.K.                           |                             |
> Industrial Linux Solutions                 | http://www.pengutronix.de/  |
> Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
> Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |



> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Lucas Stach March 28, 2018, 9:08 a.m. UTC | #4
Am Mittwoch, den 28.03.2018, 09:02 +0200 schrieb Daniel Vetter:
> On Tue, Mar 27, 2018 at 01:30:04PM +0200, Michael Grzeschik wrote:
> > On Mon, Mar 26, 2018 at 06:17:44PM +0200, Michael Grzeschik wrote:
> > > We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so
> > > the
> > > set_par will be called and fb will be active.
> > > 
> > 
> > As this commit message is not very informative and digging deeper
> > into
> > the stubs I came up with another Idea.
> > 
> > By default drm_kms_helper_hotplug_event could call
> > drm_fb_helper_output_poll_changed if no other output_poll_changed
> > was
> > registered.
> > 
> > I will send another patch.
> 
> Will not compile for modular builds since it's an inversion of
> control
> between core and helpers.
> 
> On your original patch:
> 
> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> 
> Hm, mxsfb might be a good candidate for drm-misc too.
> -Daniel

If you ack FDO bug 103308 I would volunteer to pick up mxsfb patches
into drm-misc (if Marek is fine with this).

Regards,
Lucas
Daniel Vetter March 28, 2018, 10:14 a.m. UTC | #5
On Wed, Mar 28, 2018 at 11:08 AM, Lucas Stach <l.stach@pengutronix.de> wrote:
> Am Mittwoch, den 28.03.2018, 09:02 +0200 schrieb Daniel Vetter:
>> On Tue, Mar 27, 2018 at 01:30:04PM +0200, Michael Grzeschik wrote:
>> > On Mon, Mar 26, 2018 at 06:17:44PM +0200, Michael Grzeschik wrote:
>> > > We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so
>> > > the
>> > > set_par will be called and fb will be active.
>> > >
>> >
>> > As this commit message is not very informative and digging deeper
>> > into
>> > the stubs I came up with another Idea.
>> >
>> > By default drm_kms_helper_hotplug_event could call
>> > drm_fb_helper_output_poll_changed if no other output_poll_changed
>> > was
>> > registered.
>> >
>> > I will send another patch.
>>
>> Will not compile for modular builds since it's an inversion of
>> control
>> between core and helpers.
>>
>> On your original patch:
>>
>> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
>>
>> Hm, mxsfb might be a good candidate for drm-misc too.
>> -Daniel
>
> If you ack FDO bug 103308 I would volunteer to pick up mxsfb patches
> into drm-misc (if Marek is fine with this).

If we maintain a small driver in drm-misc then the main driver
maintainer really should have commit rights, and the MAINTAINERS entry
should be updated to point at drm-misc.git repo. Otherwise the driver
is defacto abandoned. So if Marek is ok, pls create a patch for
MAINTAINERS (and fix up Marek with an fd.o account too).
-Daniel
Michael Grzeschik July 13, 2018, 11:18 a.m. UTC | #6
On Wed, Mar 28, 2018 at 12:14:45PM +0200, Daniel Vetter wrote:
> On Wed, Mar 28, 2018 at 11:08 AM, Lucas Stach <l.stach@pengutronix.de> wrote:
> > Am Mittwoch, den 28.03.2018, 09:02 +0200 schrieb Daniel Vetter:
> >> On Tue, Mar 27, 2018 at 01:30:04PM +0200, Michael Grzeschik wrote:
> >> > On Mon, Mar 26, 2018 at 06:17:44PM +0200, Michael Grzeschik wrote:
> >> > > We move drm_kms_helper_poll_init behind the drm_fbdev_cma_init so
> >> > > the
> >> > > set_par will be called and fb will be active.
> >> > >
> >> >
> >> > As this commit message is not very informative and digging deeper
> >> > into
> >> > the stubs I came up with another Idea.
> >> >
> >> > By default drm_kms_helper_hotplug_event could call
> >> > drm_fb_helper_output_poll_changed if no other output_poll_changed
> >> > was
> >> > registered.
> >> >
> >> > I will send another patch.
> >>
> >> Will not compile for modular builds since it's an inversion of
> >> control
> >> between core and helpers.
> >>
> >> On your original patch:
> >>
> >> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
> >>
> >> Hm, mxsfb might be a good candidate for drm-misc too.
> >> -Daniel
> >
> > If you ack FDO bug 103308 I would volunteer to pick up mxsfb patches
> > into drm-misc (if Marek is fine with this).
> 
> If we maintain a small driver in drm-misc then the main driver
> maintainer really should have commit rights, and the MAINTAINERS entry
> should be updated to point at drm-misc.git repo. Otherwise the driver
> is defacto abandoned. So if Marek is ok, pls create a patch for
> MAINTAINERS (and fix up Marek with an fd.o account too).
> -Daniel

In the meantime my patch and the MAINTAINERS change got out of focus.

Regards,
Michael
diff mbox

Patch

diff --git a/drivers/gpu/drm/mxsfb/mxsfb_drv.c b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
index 1207ffe362505..a047a729af6b8 100644
--- a/drivers/gpu/drm/mxsfb/mxsfb_drv.c
+++ b/drivers/gpu/drm/mxsfb/mxsfb_drv.c
@@ -94,6 +94,7 @@  void mxsfb_disable_axi_clk(struct mxsfb_drm_private *mxsfb)
 
 static const struct drm_mode_config_funcs mxsfb_mode_config_funcs = {
 	.fb_create		= drm_gem_fb_create,
+	.output_poll_changed	= drm_fb_helper_output_poll_changed,
 	.atomic_check		= drm_atomic_helper_check,
 	.atomic_commit		= drm_atomic_helper_commit,
 };
@@ -221,8 +222,6 @@  static int mxsfb_load(struct drm_device *drm, unsigned long flags)
 		goto err_irq;
 	}
 
-	drm_kms_helper_poll_init(drm);
-
 	mxsfb->fbdev = drm_fbdev_cma_init(drm, 32,
 					  drm->mode_config.num_connector);
 	if (IS_ERR(mxsfb->fbdev)) {
@@ -232,6 +231,8 @@  static int mxsfb_load(struct drm_device *drm, unsigned long flags)
 		goto err_cma;
 	}
 
+	drm_kms_helper_poll_init(drm);
+
 	platform_set_drvdata(pdev, drm);
 
 	drm_helper_hpd_irq_event(drm);