CRTC needs to be initialised before nouveau_pm_trigger() is called, otherwise a NULLptr deref occurs
Signed-off-by: Roy Spliet <[email protected]> --- drivers/gpu/drm/nouveau/nouveau_pm.c | 3 +++ drivers/gpu/drm/nouveau/nouveau_state.c | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_pm.c b/drivers/gpu/drm/nouveau/nouveau_pm.c index 2418eea..ac7df10 100644 --- a/drivers/gpu/drm/nouveau/nouveau_pm.c +++ b/drivers/gpu/drm/nouveau/nouveau_pm.c @@ -169,6 +169,9 @@ error: return ret; } +/** + * @pre CRTCs must be initialised + */ void nouveau_pm_trigger(struct drm_device *dev) { diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c b/drivers/gpu/drm/nouveau/nouveau_state.c index cdaf981..54e83a7 100644 --- a/drivers/gpu/drm/nouveau/nouveau_state.c +++ b/drivers/gpu/drm/nouveau/nouveau_state.c @@ -632,8 +632,6 @@ nouveau_card_init(struct drm_device *dev) if (ret) goto out_ttmvram; - nouveau_pm_init(dev); - if (!dev_priv->noaccel) { switch (dev_priv->card_type) { case NV_04: @@ -737,6 +735,8 @@ nouveau_card_init(struct drm_device *dev) if (ret) goto out_irq; + nouveau_pm_init(dev); + nouveau_backlight_init(dev); if (dev_priv->eng[NVOBJ_ENGINE_GR]) { -- 1.7.7.6 _______________________________________________ Nouveau mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/nouveau
