[kernel] r19974 - in dists/sid/linux/debian: . patches/features/all/drm

Ben Hutchings benh at alioth.debian.org
Thu Apr 11 04:39:29 UTC 2013


Author: benh
Date: Thu Apr 11 04:39:28 2013
New Revision: 19974

Log:
drm, agp: Update to 3.4.39

Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Thu Apr 11 04:37:51 2013	(r19973)
+++ dists/sid/linux/debian/changelog	Thu Apr 11 04:39:28 2013	(r19974)
@@ -58,12 +58,13 @@
   * Input: MT: add tracking and frame synchronisation to core
   * Input: add support for Cypress PS/2 Trackpads (Closes: #703607),
     thanks to Apollon Oikonomopoulos
-  * drm, agp: Update to 3.4.38:  
+  * drm, agp: Update to 3.4.39:
     - drm/i915: restrict kernel address leak in debugfs
     - KMS: fix EDID detailed timing vsync parsing
     - KMS: fix EDID detailed timing frame rate
     - drm/radeon: add support for Richland APUs
     - drm/radeon/benchmark: make sure bo blit copy exists before using it
+    - drm/i915: Don't clobber crtc->fb when queue_flip fails
   * [rt] Update to 3.2.42-rt62
   * debugfs: Document change of default mode
 

Modified: dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch
==============================================================================
--- dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch	Thu Apr 11 04:37:51 2013	(r19973)
+++ dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch	Thu Apr 11 04:39:28 2013	(r19974)
@@ -47709,7 +47709,7 @@
  
  	drm_encoder_helper_add(&crt->base.base, &intel_crt_helper_funcs);
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 17961df..7ccf896 100644
+index 17961df..84867a8 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -75,7 +75,7 @@ struct intel_limit {
@@ -49093,46 +49093,7 @@
  err:
  	return ret;
  }
-@@ -7280,8 +7567,8 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
- {
- 	struct drm_device *dev = crtc->dev;
- 	struct drm_i915_private *dev_priv = dev->dev_private;
--	struct drm_framebuffer *old_fb = crtc->fb;
--	struct drm_i915_gem_object *obj = to_intel_framebuffer(fb)->obj;
-+	struct intel_framebuffer *intel_fb;
-+	struct drm_i915_gem_object *obj;
- 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
- 	struct intel_unpin_work *work;
- 	unsigned long flags;
-@@ -7293,7 +7580,8 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
- 
- 	work->event = event;
- 	work->dev = crtc->dev;
--	work->old_fb_obj = to_intel_framebuffer(old_fb)->obj;
-+	intel_fb = to_intel_framebuffer(crtc->fb);
-+	work->old_fb_obj = intel_fb->obj;
- 	INIT_WORK(&work->work, intel_unpin_work_fn);
- 
- 	ret = drm_vblank_get(dev, intel_crtc->pipe);
-@@ -7313,6 +7601,9 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
- 	intel_crtc->unpin_work = work;
- 	spin_unlock_irqrestore(&dev->event_lock, flags);
- 
-+	intel_fb = to_intel_framebuffer(fb);
-+	obj = intel_fb->obj;
-+
- 	mutex_lock(&dev->struct_mutex);
- 
- 	/* Reference the objects for the scheduled work. */
-@@ -7343,7 +7634,6 @@ static int intel_crtc_page_flip(struct drm_crtc *crtc,
- 
- cleanup_pending:
- 	atomic_sub(1 << intel_crtc->plane, &work->old_fb_obj->pending_flip);
--	crtc->fb = old_fb;
- 	drm_gem_object_unreference(&work->old_fb_obj->base);
- 	drm_gem_object_unreference(&obj->base);
- 	mutex_unlock(&dev->struct_mutex);
-@@ -7556,10 +7846,9 @@ static void intel_setup_outputs(struct drm_device *dev)
+@@ -7556,10 +7843,9 @@ static void intel_setup_outputs(struct drm_device *dev)
  	struct drm_i915_private *dev_priv = dev->dev_private;
  	struct intel_encoder *encoder;
  	bool dpd_is_edp = false;
@@ -49145,7 +49106,7 @@
  	if (!has_lvds && !HAS_PCH_SPLIT(dev)) {
  		/* disable the panel fitter on everything but LVDS */
  		I915_WRITE(PFIT_CONTROL, 0);
-@@ -7688,7 +7977,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
+@@ -7688,7 +7974,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
  
  int intel_framebuffer_init(struct drm_device *dev,
  			   struct intel_framebuffer *intel_fb,
@@ -49154,7 +49115,7 @@
  			   struct drm_i915_gem_object *obj)
  {
  	int ret;
-@@ -7696,21 +7985,27 @@ int intel_framebuffer_init(struct drm_device *dev,
+@@ -7696,21 +7982,27 @@ int intel_framebuffer_init(struct drm_device *dev,
  	if (obj->tiling_mode == I915_TILING_Y)
  		return -EINVAL;
  
@@ -49192,7 +49153,7 @@
  		return -EINVAL;
  	}
  
-@@ -7728,11 +8023,12 @@ int intel_framebuffer_init(struct drm_device *dev,
+@@ -7728,11 +8020,12 @@ int intel_framebuffer_init(struct drm_device *dev,
  static struct drm_framebuffer *
  intel_user_framebuffer_create(struct drm_device *dev,
  			      struct drm_file *filp,
@@ -49207,7 +49168,7 @@
  	if (&obj->base == NULL)
  		return ERR_PTR(-ENOENT);
  
-@@ -8001,7 +8297,7 @@ void intel_init_emon(struct drm_device *dev)
+@@ -8001,7 +8294,7 @@ void intel_init_emon(struct drm_device *dev)
  	dev_priv->corr = (lcfuse & LCFUSE_HIV_MASK);
  }
  
@@ -49216,7 +49177,7 @@
  {
  	/*
  	 * Respect the kernel parameter if it is set
-@@ -8019,11 +8315,11 @@ static bool intel_enable_rc6(struct drm_device *dev)
+@@ -8019,11 +8312,11 @@ static bool intel_enable_rc6(struct drm_device *dev)
  	 * Disable rc6 on Sandybridge
  	 */
  	if (INTEL_INFO(dev)->gen == 6) {
@@ -49232,7 +49193,7 @@
  }
  
  void gen6_enable_rps(struct drm_i915_private *dev_priv)
-@@ -8031,7 +8327,9 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8031,7 +8324,9 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
  	u32 rp_state_cap = I915_READ(GEN6_RP_STATE_CAP);
  	u32 gt_perf_status = I915_READ(GEN6_GT_PERF_STATUS);
  	u32 pcu_mbox, rc6_mask = 0;
@@ -49242,7 +49203,7 @@
  	int i;
  
  	/* Here begins a magic sequence of register writes to enable
-@@ -8042,6 +8340,13 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8042,6 +8337,13 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
  	 */
  	I915_WRITE(GEN6_RC_STATE, 0);
  	mutex_lock(&dev_priv->dev->struct_mutex);
@@ -49256,7 +49217,7 @@
  	gen6_gt_force_wake_get(dev_priv);
  
  	/* disable the counters and set deterministic thresholds */
-@@ -8062,9 +8367,20 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8062,9 +8364,20 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
  	I915_WRITE(GEN6_RC6p_THRESHOLD, 150000);
  	I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */
  
@@ -49280,7 +49241,7 @@
  
  	I915_WRITE(GEN6_RC_CONTROL,
  		   rc6_mask |
-@@ -8292,6 +8608,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
+@@ -8292,6 +8605,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
  	I915_WRITE(WM2_LP_ILK, 0);
  	I915_WRITE(WM1_LP_ILK, 0);
  
@@ -49291,7 +49252,7 @@
  	/* According to the BSpec vol1g, bit 12 (RCPBUNIT) clock
  	 * gating disable must be set.  Failure to set it results in
  	 * flickering pixels due to Z write ordering failures after
-@@ -8370,6 +8690,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
+@@ -8370,6 +8687,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
  
  	I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
  
@@ -49302,7 +49263,7 @@
  	/* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */
  	I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
  		   GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
-@@ -8680,9 +9004,15 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8680,9 +9001,15 @@ static void intel_init_display(struct drm_device *dev)
  		if (IS_IVYBRIDGE(dev)) {
  			u32	ecobus;
  
@@ -49319,7 +49280,7 @@
  			__gen6_gt_force_wake_mt_put(dev_priv);
  			mutex_unlock(&dev->struct_mutex);
  
-@@ -8714,6 +9044,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8714,6 +9041,7 @@ static void intel_init_display(struct drm_device *dev)
  		} else if (IS_GEN6(dev)) {
  			if (SNB_READ_WM0_LATENCY()) {
  				dev_priv->display.update_wm = sandybridge_update_wm;
@@ -49327,7 +49288,7 @@
  			} else {
  				DRM_DEBUG_KMS("Failed to read display plane latency. "
  					      "Disable CxSR\n");
-@@ -8727,6 +9058,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8727,6 +9055,7 @@ static void intel_init_display(struct drm_device *dev)
  			dev_priv->display.fdi_link_train = ivb_manual_fdi_link_train;
  			if (SNB_READ_WM0_LATENCY()) {
  				dev_priv->display.update_wm = sandybridge_update_wm;
@@ -49335,7 +49296,7 @@
  			} else {
  				DRM_DEBUG_KMS("Failed to read display plane latency. "
  					      "Disable CxSR\n");
-@@ -8839,8 +9171,6 @@ struct intel_quirk {
+@@ -8839,8 +9168,6 @@ struct intel_quirk {
  };
  
  struct intel_quirk intel_quirks[] = {
@@ -49344,7 +49305,7 @@
  	/* HP Mini needs pipe A force quirk (LP: #322104) */
  	{ 0x27ae, 0x103c, 0x361a, quirk_pipea_force },
  
-@@ -8907,33 +9237,19 @@ static void i915_disable_vga(struct drm_device *dev)
+@@ -8907,33 +9234,19 @@ static void i915_disable_vga(struct drm_device *dev)
  	POSTING_READ(vga_reg);
  }
  
@@ -49382,7 +49343,7 @@
  	dev->mode_config.funcs = (void *)&intel_mode_funcs;
  
  	intel_init_quirks(dev);
-@@ -8957,6 +9273,9 @@ void intel_modeset_init(struct drm_device *dev)
+@@ -8957,6 +9270,9 @@ void intel_modeset_init(struct drm_device *dev)
  
  	for (i = 0; i < dev_priv->num_pipe; i++) {
  		intel_crtc_init(dev, i);



More information about the Kernel-svn-changes mailing list