diff options
author | Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com> | 2015-04-10 03:59:10 -0400 |
---|---|---|
committer | Jani Nikula <jani.nikula@intel.com> | 2015-04-13 08:21:21 -0400 |
commit | 08d9bc920d465bbbbd762cac9383249c19bf69a2 (patch) | |
tree | ecd2ce9d8b5a03e9ce970fbef1a43a32bf89250e /drivers/gpu/drm/i915/intel_drv.h | |
parent | af8fcb9c58f1b2f02ddc04ba64710aaa52da00db (diff) |
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.
Broken by
commit 944b0c76575753da5a332aab0a1d8c6df65a076b
Author: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Date: Fri Mar 20 16:18:07 2015 +0200
drm/i915: Copy the staged connector config to the legacy atomic state
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>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Diffstat (limited to 'drivers/gpu/drm/i915/intel_drv.h')
-rw-r--r-- | drivers/gpu/drm/i915/intel_drv.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h index 6036e3b73b7b..744db4d0c68f 100644 --- a/drivers/gpu/drm/i915/intel_drv.h +++ b/drivers/gpu/drm/i915/intel_drv.h | |||
@@ -930,6 +930,8 @@ void intel_crtc_restore_mode(struct drm_crtc *crtc); | |||
930 | void intel_crtc_control(struct drm_crtc *crtc, bool enable); | 930 | void intel_crtc_control(struct drm_crtc *crtc, bool enable); |
931 | void intel_crtc_update_dpms(struct drm_crtc *crtc); | 931 | void intel_crtc_update_dpms(struct drm_crtc *crtc); |
932 | void intel_encoder_destroy(struct drm_encoder *encoder); | 932 | void intel_encoder_destroy(struct drm_encoder *encoder); |
933 | int intel_connector_init(struct intel_connector *); | ||
934 | struct intel_connector *intel_connector_alloc(void); | ||
933 | void intel_connector_dpms(struct drm_connector *, int mode); | 935 | void intel_connector_dpms(struct drm_connector *, int mode); |
934 | bool intel_connector_get_hw_state(struct intel_connector *connector); | 936 | bool intel_connector_get_hw_state(struct intel_connector *connector); |
935 | void intel_modeset_check_state(struct drm_device *dev); | 937 | void intel_modeset_check_state(struct drm_device *dev); |