summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/i915/intel_lvds.c
diff options
context:
space:
mode:
authorAnder Conselvan de Oliveira2015-04-10 09:59:10 +0200
committerDaniel Vetter2015-04-13 11:23:25 +0200
commit9bdbd0b911086d03a27e1fe9531b41f5411ccfac (patch)
tree795287ca6336bec619d704984771e137b70521c8 /drivers/gpu/drm/i915/intel_lvds.c
parentdrm/i915: Remove unused variable from execlists_context_queue (diff)
downloadkernel-qcow2-linux-9bdbd0b911086d03a27e1fe9531b41f5411ccfac.tar.gz
kernel-qcow2-linux-9bdbd0b911086d03a27e1fe9531b41f5411ccfac.tar.xz
kernel-qcow2-linux-9bdbd0b911086d03a27e1fe9531b41f5411ccfac.zip
drm/i915: Allocate connector state together with the connectors
Connector states were being allocated in intel_setup_outputs() in loop over all connectors. That meant hot-added connectors would have a NULL state. Since the change to use a struct drm_atomic_state for the legacy modeset, connector states are necessary for the i915 driver to function properly, so that would lead to oopses. v2: Fix test for intel_connector_init() success in lvds and sdvo (PRTS) Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> Reported-and-tested-by: Nicolas Kalkhof <nkalkhof@web.de> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_lvds.c')
-rw-r--r--drivers/gpu/drm/i915/intel_lvds.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
index 314a5d56ace2..9a9df0fa67f9 100644
--- a/drivers/gpu/drm/i915/intel_lvds.c
+++ b/drivers/gpu/drm/i915/intel_lvds.c
@@ -946,6 +946,12 @@ void intel_lvds_init(struct drm_device *dev)
return;
}
+ if (intel_connector_init(&lvds_connector->base) < 0) {
+ kfree(lvds_connector);
+ kfree(lvds_encoder);
+ return;
+ }
+
lvds_encoder->attached_connector = lvds_connector;
intel_encoder = &lvds_encoder->base;