Nouveau does not support all encoder types, so failure to handle one should
not stop module initialization. And because of other bug, it lead to oops
in nv50_crtc_destroy (nv50_display_destroy sets nouveau_display->priv to NULL,
which is used by nv50_crtc_destroy).

Fixes regression from eb6313add6dddf07ea3e50c4caa33a9c3b2379f1
("drm/nv50: initial kms support for off-chip TMDS/DP encoders").

Reported-by: Richard Yao <[email protected]>
Tested-by: Richard Yao <[email protected]>
Signed-off-by: Marcin Slusarz <[email protected]>
---
 drivers/gpu/drm/nouveau/nv50_display.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/gpu/drm/nouveau/nv50_display.c 
b/drivers/gpu/drm/nouveau/nv50_display.c
index 87a5a56..2db5799 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -2276,6 +2276,7 @@ nv50_display_create(struct drm_device *dev)
                        NV_WARN(drm, "failed to create encoder %d/%d/%d: %d\n",
                                     dcbe->location, dcbe->type,
                                     ffs(dcbe->or) - 1, ret);
+                       ret = 0;
                }
        }
 
-- 
1.8.1.4

_______________________________________________
Nouveau mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/nouveau

Reply via email to