diff mbox series

[1/2] drm: mcde: Fix display initialization problem

Message ID 20200613223027.4189309-1-linus.walleij@linaro.org
State Accepted
Commit b984b6d8b52372b98cce0a6ff6c2787f50665b87
Headers show
Series [1/2] drm: mcde: Fix display initialization problem | expand

Commit Message

Linus Walleij June 13, 2020, 10:30 p.m. UTC
The following bug appeared in the MCDE driver/display
initialization during the recent merge window.

First the place we call drm_fbdev_generic_setup() in the
wrong place: this needs to be called AFTER calling
drm_dev_register() else we get this splat:

 ------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at ../drivers/gpu/drm/drm_fb_helper.c:2198 drm_fbdev_generic_setup+0x164/0x1a8
mcde a0350000.mcde: Device has not been registered.
Modules linked in:
Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)
[<c010e704>] (unwind_backtrace) from [<c010a86c>] (show_stack+0x10/0x14)
[<c010a86c>] (show_stack) from [<c0414f38>] (dump_stack+0x9c/0xb0)
[<c0414f38>] (dump_stack) from [<c0121c8c>] (__warn+0xb8/0xd0)
[<c0121c8c>] (__warn) from [<c0121d18>] (warn_slowpath_fmt+0x74/0xb8)
[<c0121d18>] (warn_slowpath_fmt) from [<c04b154c>] (drm_fbdev_generic_setup+0x164/0x1a8)
[<c04b154c>] (drm_fbdev_generic_setup) from [<c04ed278>] (mcde_drm_bind+0xc4/0x160)
[<c04ed278>] (mcde_drm_bind) from [<c04f06b8>] (try_to_bring_up_master+0x15c/0x1a4)
(...)

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

---
 drivers/gpu/drm/mcde/mcde_drv.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

-- 
2.26.2

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Comments

Sam Ravnborg June 14, 2020, 7:44 a.m. UTC | #1
Hi Linus.

On Sun, Jun 14, 2020 at 12:30:26AM +0200, Linus Walleij wrote:
> The following bug appeared in the MCDE driver/display

> initialization during the recent merge window.

> 

> First the place we call drm_fbdev_generic_setup() in the

> wrong place: this needs to be called AFTER calling

> drm_dev_register() else we get this splat:

> 

>  ------------[ cut here ]------------

> WARNING: CPU: 0 PID: 1 at ../drivers/gpu/drm/drm_fb_helper.c:2198 drm_fbdev_generic_setup+0x164/0x1a8

> mcde a0350000.mcde: Device has not been registered.

> Modules linked in:

> Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)

> [<c010e704>] (unwind_backtrace) from [<c010a86c>] (show_stack+0x10/0x14)

> [<c010a86c>] (show_stack) from [<c0414f38>] (dump_stack+0x9c/0xb0)

> [<c0414f38>] (dump_stack) from [<c0121c8c>] (__warn+0xb8/0xd0)

> [<c0121c8c>] (__warn) from [<c0121d18>] (warn_slowpath_fmt+0x74/0xb8)

> [<c0121d18>] (warn_slowpath_fmt) from [<c04b154c>] (drm_fbdev_generic_setup+0x164/0x1a8)

> [<c04b154c>] (drm_fbdev_generic_setup) from [<c04ed278>] (mcde_drm_bind+0xc4/0x160)

> [<c04ed278>] (mcde_drm_bind) from [<c04f06b8>] (try_to_bring_up_master+0x15c/0x1a4)

> (...)

> 

> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>


Yup, this is the right way to do it.

Reviewed-by: Sam Ravnborg <sam@ravnborg.org>


One small thing to consider, see below. But for another patch.

> ---

>  drivers/gpu/drm/mcde/mcde_drv.c | 3 ++-

>  1 file changed, 2 insertions(+), 1 deletion(-)

> 

> diff --git a/drivers/gpu/drm/mcde/mcde_drv.c b/drivers/gpu/drm/mcde/mcde_drv.c

> index 84f3e2dbd77b..80082d6dce3a 100644

> --- a/drivers/gpu/drm/mcde/mcde_drv.c

> +++ b/drivers/gpu/drm/mcde/mcde_drv.c

> @@ -209,7 +209,6 @@ static int mcde_modeset_init(struct drm_device *drm)

>  

>  	drm_mode_config_reset(drm);

>  	drm_kms_helper_poll_init(drm);

> -	drm_fbdev_generic_setup(drm, 32);

>  

>  	return 0;

>  }

> @@ -264,6 +263,8 @@ static int mcde_drm_bind(struct device *dev)

>  	if (ret < 0)

>  		goto unbind;

>  

> +	drm_fbdev_generic_setup(drm, 32);

Consider using mode_config.preferred_depth, then you can pass 0 here.


> +

>  	return 0;

>  

>  unbind:

> -- 

> 2.26.2

> 

> _______________________________________________

> dri-devel mailing list

> dri-devel@lists.freedesktop.org

> https://lists.freedesktop.org/mailman/listinfo/dri-devel

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Linus Walleij June 14, 2020, 9:29 p.m. UTC | #2
On Sun, Jun 14, 2020 at 9:44 AM Sam Ravnborg <sam@ravnborg.org> wrote:

> Hi Linus.

>

> On Sun, Jun 14, 2020 at 12:30:26AM +0200, Linus Walleij wrote:

> > The following bug appeared in the MCDE driver/display

> > initialization during the recent merge window.

> >

> > First the place we call drm_fbdev_generic_setup() in the

> > wrong place: this needs to be called AFTER calling

> > drm_dev_register() else we get this splat:

> >

> >  ------------[ cut here ]------------

> > WARNING: CPU: 0 PID: 1 at ../drivers/gpu/drm/drm_fb_helper.c:2198 drm_fbdev_generic_setup+0x164/0x1a8

> > mcde a0350000.mcde: Device has not been registered.

> > Modules linked in:

> > Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)

> > [<c010e704>] (unwind_backtrace) from [<c010a86c>] (show_stack+0x10/0x14)

> > [<c010a86c>] (show_stack) from [<c0414f38>] (dump_stack+0x9c/0xb0)

> > [<c0414f38>] (dump_stack) from [<c0121c8c>] (__warn+0xb8/0xd0)

> > [<c0121c8c>] (__warn) from [<c0121d18>] (warn_slowpath_fmt+0x74/0xb8)

> > [<c0121d18>] (warn_slowpath_fmt) from [<c04b154c>] (drm_fbdev_generic_setup+0x164/0x1a8)

> > [<c04b154c>] (drm_fbdev_generic_setup) from [<c04ed278>] (mcde_drm_bind+0xc4/0x160)

> > [<c04ed278>] (mcde_drm_bind) from [<c04f06b8>] (try_to_bring_up_master+0x15c/0x1a4)

> > (...)

> >

> > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

>

> Yup, this is the right way to do it.

>

> Reviewed-by: Sam Ravnborg <sam@ravnborg.org>


Hm I can't seem to apply these because drm-misc-fixes isn't
rebased to v5.8-rc1 or something (wrong ancestor).

Does anyone know if ther is a special trick for this or do I
need to wait for someone else to rebase that branch?

Yours,
Linus Walleij
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Daniel Vetter June 15, 2020, 3:51 p.m. UTC | #3
On Sun, Jun 14, 2020 at 11:29 PM Linus Walleij <linus.walleij@linaro.org> wrote:
>

> On Sun, Jun 14, 2020 at 9:44 AM Sam Ravnborg <sam@ravnborg.org> wrote:

>

> > Hi Linus.

> >

> > On Sun, Jun 14, 2020 at 12:30:26AM +0200, Linus Walleij wrote:

> > > The following bug appeared in the MCDE driver/display

> > > initialization during the recent merge window.

> > >

> > > First the place we call drm_fbdev_generic_setup() in the

> > > wrong place: this needs to be called AFTER calling

> > > drm_dev_register() else we get this splat:

> > >

> > >  ------------[ cut here ]------------

> > > WARNING: CPU: 0 PID: 1 at ../drivers/gpu/drm/drm_fb_helper.c:2198 drm_fbdev_generic_setup+0x164/0x1a8

> > > mcde a0350000.mcde: Device has not been registered.

> > > Modules linked in:

> > > Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)

> > > [<c010e704>] (unwind_backtrace) from [<c010a86c>] (show_stack+0x10/0x14)

> > > [<c010a86c>] (show_stack) from [<c0414f38>] (dump_stack+0x9c/0xb0)

> > > [<c0414f38>] (dump_stack) from [<c0121c8c>] (__warn+0xb8/0xd0)

> > > [<c0121c8c>] (__warn) from [<c0121d18>] (warn_slowpath_fmt+0x74/0xb8)

> > > [<c0121d18>] (warn_slowpath_fmt) from [<c04b154c>] (drm_fbdev_generic_setup+0x164/0x1a8)

> > > [<c04b154c>] (drm_fbdev_generic_setup) from [<c04ed278>] (mcde_drm_bind+0xc4/0x160)

> > > [<c04ed278>] (mcde_drm_bind) from [<c04f06b8>] (try_to_bring_up_master+0x15c/0x1a4)

> > > (...)

> > >

> > > Signed-off-by: Linus Walleij <linus.walleij@linaro.org>

> >

> > Yup, this is the right way to do it.

> >

> > Reviewed-by: Sam Ravnborg <sam@ravnborg.org>

>

> Hm I can't seem to apply these because drm-misc-fixes isn't

> rebased to v5.8-rc1 or something (wrong ancestor).

>

> Does anyone know if ther is a special trick for this or do I

> need to wait for someone else to rebase that branch?


Thomas Zimmermann (added) as current -fixes handler needs to roll the
branch forward (and make sure nothing got lost).
-Daniel

>

> Yours,

> Linus Walleij

> _______________________________________________

> dri-devel mailing list

> dri-devel@lists.freedesktop.org

> https://lists.freedesktop.org/mailman/listinfo/dri-devel




-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
Emil Velikov June 15, 2020, 11:31 p.m. UTC | #4
Hi Linus,

On Sat, 13 Jun 2020 at 23:30, Linus Walleij <linus.walleij@linaro.org> wrote:
>

> The following bug appeared in the MCDE driver/display

> initialization during the recent merge window.

>

> First the place we call drm_fbdev_generic_setup() in the

> wrong place: this needs to be called AFTER calling

> drm_dev_register() else we get this splat:

>

>  ------------[ cut here ]------------

> WARNING: CPU: 0 PID: 1 at ../drivers/gpu/drm/drm_fb_helper.c:2198 drm_fbdev_generic_setup+0x164/0x1a8

> mcde a0350000.mcde: Device has not been registered.

> Modules linked in:

> Hardware name: ST-Ericsson Ux5x0 platform (Device Tree Support)

> [<c010e704>] (unwind_backtrace) from [<c010a86c>] (show_stack+0x10/0x14)

> [<c010a86c>] (show_stack) from [<c0414f38>] (dump_stack+0x9c/0xb0)

> [<c0414f38>] (dump_stack) from [<c0121c8c>] (__warn+0xb8/0xd0)

> [<c0121c8c>] (__warn) from [<c0121d18>] (warn_slowpath_fmt+0x74/0xb8)

> [<c0121d18>] (warn_slowpath_fmt) from [<c04b154c>] (drm_fbdev_generic_setup+0x164/0x1a8)

> [<c04b154c>] (drm_fbdev_generic_setup) from [<c04ed278>] (mcde_drm_bind+0xc4/0x160)

> [<c04ed278>] (mcde_drm_bind) from [<c04f06b8>] (try_to_bring_up_master+0x15c/0x1a4)

> (...)

>


Worth adding Cc: stable or Fixes tag, so this lands in the stable branches?
If anything I'm slightly worried that w/o such a tag, the AI bot (as
used by the stable team) might auto-nominate this even where it's not
applicable.

HTH
Emil
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel
diff mbox series

Patch

diff --git a/drivers/gpu/drm/mcde/mcde_drv.c b/drivers/gpu/drm/mcde/mcde_drv.c
index 84f3e2dbd77b..80082d6dce3a 100644
--- a/drivers/gpu/drm/mcde/mcde_drv.c
+++ b/drivers/gpu/drm/mcde/mcde_drv.c
@@ -209,7 +209,6 @@  static int mcde_modeset_init(struct drm_device *drm)
 
 	drm_mode_config_reset(drm);
 	drm_kms_helper_poll_init(drm);
-	drm_fbdev_generic_setup(drm, 32);
 
 	return 0;
 }
@@ -264,6 +263,8 @@  static int mcde_drm_bind(struct device *dev)
 	if (ret < 0)
 		goto unbind;
 
+	drm_fbdev_generic_setup(drm, 32);
+
 	return 0;
 
 unbind: