drm/exynos: restored kernel_fb_list when reiniting fb_helper
during recreating exynos_drm_fbdev as a new display device probes, fb_helper is reinitialized but kernel fb is not changed so kernel_fb_list should be restored after fb_helper is reinitialized. Signed-off-by: Joonyoung Shim <jy0922.shim@samsung.com> Signed-off-by: Inki Dae <inki.dae@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
This commit is contained in:
parent
74ccc539bc
commit
84b46990cb
@ -405,6 +405,18 @@ int exynos_drm_fbdev_reinit(struct drm_device *dev)
|
||||
fb_helper = private->fb_helper;
|
||||
|
||||
if (fb_helper) {
|
||||
struct list_head temp_list;
|
||||
|
||||
INIT_LIST_HEAD(&temp_list);
|
||||
|
||||
/*
|
||||
* fb_helper is reintialized but kernel fb is reused
|
||||
* so kernel_fb_list need to be backuped and restored
|
||||
*/
|
||||
if (!list_empty(&fb_helper->kernel_fb_list))
|
||||
list_replace_init(&fb_helper->kernel_fb_list,
|
||||
&temp_list);
|
||||
|
||||
drm_fb_helper_fini(fb_helper);
|
||||
|
||||
ret = drm_fb_helper_init(dev, fb_helper,
|
||||
@ -414,6 +426,9 @@ int exynos_drm_fbdev_reinit(struct drm_device *dev)
|
||||
return ret;
|
||||
}
|
||||
|
||||
if (!list_empty(&temp_list))
|
||||
list_replace(&temp_list, &fb_helper->kernel_fb_list);
|
||||
|
||||
ret = drm_fb_helper_single_add_all_connectors(fb_helper);
|
||||
if (ret < 0) {
|
||||
DRM_ERROR("failed to add fb helper to connectors\n");
|
||||
|
Loading…
Reference in New Issue
Block a user