rpms/kernel/F-11 drm-modesetting-radeon.patch, 1.77, 1.78 kernel.spec, 1.1553, 1.1554

Dave Airlie airlied at fedoraproject.org
Fri Apr 17 06:12:28 UTC 2009


Author: airlied

Update of /cvs/pkgs/rpms/kernel/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv25618

Modified Files:
	drm-modesetting-radeon.patch kernel.spec 
Log Message:
* Fri Apr 17 2009 Dave Airlie <airlied at redhat.com> 2.6.29.1-92
- drm modesetting: force mode switch when connectors change


drm-modesetting-radeon.patch:

Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-modesetting-radeon.patch,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -r1.77 -r1.78
--- drm-modesetting-radeon.patch	17 Apr 2009 04:14:18 -0000	1.77
+++ drm-modesetting-radeon.patch	17 Apr 2009 06:11:57 -0000	1.78
@@ -1,3 +1,23 @@
+commit fa4687fdb659e807b8e3b05bf971f79e7aebde62
+Merge: 9283b7e 389363f
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Apr 17 16:05:30 2009 +1000
+
+    Merge remote branch 'origin/drm-rawhide' into drm-f11
+
+commit 389363fe962f28bfa41eb8d18c6171d9f5e388b3
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Apr 17 16:02:47 2009 +1000
+
+    drm: set full mode when we have a connector change.
+    
+    for some reason we have two levels of set base detection, this seems redundant
+    and most likely is. If we get a userspace mode set and the encoder list
+    is different we have to set the full mode.
+    
+    Add a flag to make sure a full set is done, however I think we can probably
+    just cleanup inside mode_set properly.
+
 commit 9283b7e0503c439ccde80b808044e5581a4b3117
 Merge: 4fb1fe8 69c4926
 Author: Dave Airlie <airlied at redhat.com>
@@ -5548,9 +5568,36 @@
  
  out:
 diff --git a/drivers/gpu/drm/drm_crtc_helper.c b/drivers/gpu/drm/drm_crtc_helper.c
-index a04639d..0e46972 100644
+index a04639d..2bedb7a 100644
 --- a/drivers/gpu/drm/drm_crtc_helper.c
 +++ b/drivers/gpu/drm/drm_crtc_helper.c
+@@ -552,7 +552,7 @@ drm_crtc_prepare_encoders(struct drm_device *dev)
+ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
+ 			      struct drm_display_mode *mode,
+ 			      int x, int y,
+-			      struct drm_framebuffer *old_fb)
++			      struct drm_framebuffer *old_fb, int conn_changed)
+ {
+ 	struct drm_device *dev = crtc->dev;
+ 	struct drm_display_mode *adjusted_mode, saved_mode;
+@@ -590,7 +590,7 @@ bool drm_crtc_helper_set_mode(struct drm_crtc *crtc,
+ 	crtc->x = x;
+ 	crtc->y = y;
+ 
+-	if (drm_mode_equal(&saved_mode, &crtc->mode)) {
++	if (drm_mode_equal(&saved_mode, &crtc->mode) && !conn_changed) {
+ 		if (saved_x != crtc->x || saved_y != crtc->y ||
+ 		    depth_changed || bpp_changed) {
+ 			ret = !crtc_funcs->mode_set_base(crtc, crtc->x, crtc->y,
+@@ -848,7 +848,7 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
+ 			drm_mode_debug_printmodeline(set->mode);
+ 			if (!drm_crtc_helper_set_mode(set->crtc, set->mode,
+ 						      set->x, set->y,
+-						      old_fb)) {
++						      old_fb, 1)) {
+ 				DRM_ERROR("failed to set mode on crtc %p\n",
+ 					  set->crtc);
+ 				ret = -EINVAL;
 @@ -868,6 +868,8 @@ int drm_crtc_helper_set_config(struct drm_mode_set *set)
  						set->x, set->y, old_fb);
  		if (ret != 0)
@@ -5560,6 +5607,15 @@
  	}
  
  	kfree(save_encoders);
+@@ -999,7 +1001,7 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
+ 			continue;
+ 
+ 		ret = drm_crtc_helper_set_mode(crtc, &crtc->mode,
+-					       crtc->x, crtc->y, crtc->fb);
++					       crtc->x, crtc->y, crtc->fb, 1);
+ 
+ 		if (ret == false)
+ 			DRM_ERROR("failed to set mode on crtc %p\n", crtc);
 @@ -1007,3 +1009,30 @@ int drm_helper_resume_force_mode(struct drm_device *dev)
  	return 0;
  }
@@ -7442,7 +7498,7 @@
  int i915_irq_emit(struct drm_device *dev, void *data,
  			 struct drm_file *file_priv)
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 64773ce..178386d 100644
+index 64773ce..a2783c0 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -763,12 +763,18 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
@@ -7485,6 +7541,15 @@
  		break;
  	default:
  		DRM_ERROR("Can't update pipe %d in SAREA\n", pipe);
+@@ -1573,7 +1579,7 @@ struct drm_crtc *intel_get_load_detect_pipe(struct intel_output *intel_output,
+ 	if (!crtc->enabled) {
+ 		if (!mode)
+ 			mode = &load_detect_mode;
+-		drm_crtc_helper_set_mode(crtc, mode, 0, 0, crtc->fb);
++		drm_crtc_helper_set_mode(crtc, mode, 0, 0, crtc->fb, 0);
+ 	} else {
+ 		if (intel_crtc->dpms_mode != DRM_MODE_DPMS_ON) {
+ 			crtc_funcs = crtc->helper_private;
 diff --git a/drivers/gpu/drm/radeon/Makefile b/drivers/gpu/drm/radeon/Makefile
 index 52ce439..0eea827 100644
 --- a/drivers/gpu/drm/radeon/Makefile


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1553
retrieving revision 1.1554
diff -u -r1.1553 -r1.1554
--- kernel.spec	17 Apr 2009 04:14:19 -0000	1.1553
+++ kernel.spec	17 Apr 2009 06:11:57 -0000	1.1554
@@ -1969,6 +1969,9 @@
 # and build.
 
 %changelog
+* Fri Apr 17 2009 Dave Airlie <airlied at redhat.com> 2.6.29.1-92
+- drm modesetting: force mode switch when connectors change
+
 * Fri Apr 17 2009 Dave Airlie <airlied at redhat.com>
 - radeon drm: fix oops in LUT loading
 




More information about the scm-commits mailing list