summaryrefslogtreecommitdiff
path: root/linux-core
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2008-06-04 15:17:13 +1000
committerDave Airlie <airlied@redhat.com>2008-06-04 15:17:13 +1000
commitcf1964f971cc298ece91064953f7d00ed13e541d (patch)
treed48f75238c6c4375b903c225de7216ea59abb7a9 /linux-core
parenta8725d95bc2b51500ff56c4e6365408d15f3bc6e (diff)
drm: fix hotplug oops
Diffstat (limited to 'linux-core')
-rw-r--r--linux-core/drm_crtc_helper.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/linux-core/drm_crtc_helper.c b/linux-core/drm_crtc_helper.c
index 58d21b99..4083d6b7 100644
--- a/linux-core/drm_crtc_helper.c
+++ b/linux-core/drm_crtc_helper.c
@@ -712,9 +712,11 @@ int drm_helper_hotplug_stage_two(struct drm_device *dev, struct drm_connector *c
return 0;
}
- if (connector->encoder->crtc && connector->encoder->crtc->desired_mode) {
- DRM_DEBUG("drm thinks that the connector already has a config\n");
- has_config = 1;
+ if (connector->encoder) {
+ if (connector->encoder->crtc && connector->encoder->crtc->desired_mode) {
+ DRM_DEBUG("drm thinks that the connector already has a config\n");
+ has_config = 1;
+ }
}
drm_helper_probe_connector_modes(dev, 2048, 2048);
@@ -722,6 +724,11 @@ int drm_helper_hotplug_stage_two(struct drm_device *dev, struct drm_connector *c
if (!has_config)
drm_pick_crtcs(dev);
+ if (!connector->encoder) {
+ DRM_DEBUG("could not find a desired mode or crtc for connector\n");
+ return 1;
+ }
+
if (!connector->encoder->crtc || !connector->encoder->crtc->desired_mode) {
DRM_DEBUG("could not find a desired mode or crtc for connector\n");
return 1;