| From 033e170a703238eaa965cc7602d6e06d5b9eea90 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 14 Jun 2020 00:30:26 +0200 |
| Subject: drm: mcde: Fix display initialization problem |
| |
| From: Linus Walleij <linus.walleij@linaro.org> |
| |
| [ Upstream commit b984b6d8b52372b98cce0a6ff6c2787f50665b87 ] |
| |
| 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> |
| Reviewed-by: Sam Ravnborg <sam@ravnborg.org> |
| Link: https://patchwork.freedesktop.org/patch/msgid/20200613223027.4189309-1-linus.walleij@linaro.org |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 5649887d2b901..16e5fb9ec784d 100644 |
| --- a/drivers/gpu/drm/mcde/mcde_drv.c |
| +++ b/drivers/gpu/drm/mcde/mcde_drv.c |
| @@ -215,7 +215,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; |
| |
| @@ -282,6 +281,8 @@ static int mcde_drm_bind(struct device *dev) |
| if (ret < 0) |
| goto unbind; |
| |
| + drm_fbdev_generic_setup(drm, 32); |
| + |
| return 0; |
| |
| unbind: |
| -- |
| 2.25.1 |
| |