[kernel] r19903 - in dists/sid/linux/debian: . config patches patches/bugfix/all patches/bugfix/x86 patches/debian patches/features/all/drm

Ben Hutchings benh at alioth.debian.org
Wed Mar 6 14:25:43 UTC 2013


Author: benh
Date: Wed Mar  6 14:25:42 2013
New Revision: 19903

Log:
Update to 3.2.40

Drop various patches which went into this.

Avoid ABI change in PPS, and ignore ABI change in rtlwifi.

rt patch 0134 no longer applies and I can't see how to fix it, but
hopefully this will be resolved in a new stable-rt update shortly.

Added:
   dists/sid/linux/debian/patches/debian/pps-avoid-abi-change-in-3.2.40.patch
Deleted:
   dists/sid/linux/debian/patches/bugfix/all/USB-usb-storage-unusual_devs-update-for-Super-TOP-SA.patch
   dists/sid/linux/debian/patches/bugfix/all/exec-use-ELOOP-for-max-recursion-depth.patch
   dists/sid/linux/debian/patches/bugfix/all/ext4-fix-hole-punch-failure-when-depth-is-greater-th.patch
   dists/sid/linux/debian/patches/bugfix/all/ext4-fix-kernel-BUG-on-large-scale-rm-rf-commands.patch
   dists/sid/linux/debian/patches/bugfix/all/ext4-rewrite-punch-hole-to-use-ext4_ext_remove_space.patch
   dists/sid/linux/debian/patches/bugfix/all/fs-cachefiles-add-support-for-large-files-in-filesys.patch
   dists/sid/linux/debian/patches/bugfix/all/kmod-introduce-call_modprobe-helper.patch
   dists/sid/linux/debian/patches/bugfix/all/kmod-make-__request_module-killable.patch
   dists/sid/linux/debian/patches/bugfix/all/mm-fix-pageblock-bitmap-allocation.patch
   dists/sid/linux/debian/patches/bugfix/all/speakup-lower-default-software-speech-rate.patch
   dists/sid/linux/debian/patches/bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
   dists/sid/linux/debian/patches/bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch
   dists/sid/linux/debian/patches/bugfix/all/usermodehelper-____call_usermodehelper-doesnt-need-do_exit.patch
   dists/sid/linux/debian/patches/bugfix/all/usermodehelper-implement-UMH_KILLABLE.patch
   dists/sid/linux/debian/patches/bugfix/all/usermodehelper-introduce-umh_complete.patch
   dists/sid/linux/debian/patches/bugfix/all/vhost-fix-length-for-cross-region-descriptor.patch
   dists/sid/linux/debian/patches/bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch
   dists/sid/linux/debian/patches/bugfix/x86/efi-Clear-EFI_RUNTIME_SERVICES-rather-than-EFI_BOOT-.patch
   dists/sid/linux/debian/patches/bugfix/x86/x86-efi-Make-noefi-really-disable-EFI-runtime-serivc.patch
Modified:
   dists/sid/linux/debian/changelog
   dists/sid/linux/debian/config/defines
   dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch
   dists/sid/linux/debian/patches/series

Modified: dists/sid/linux/debian/changelog
==============================================================================
--- dists/sid/linux/debian/changelog	Mon Mar  4 13:40:56 2013	(r19902)
+++ dists/sid/linux/debian/changelog	Wed Mar  6 14:25:42 2013	(r19903)
@@ -1,4 +1,51 @@
-linux (3.2.39-3) UNRELEASED; urgency=low
+linux (3.2.40-1) UNRELEASED; urgency=low
+
+  * New upstream stable update:
+    http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.2.40
+    - ext4: return ENOMEM if sb_getblk() fails
+    - ext4: fix possible use-after-free with AIO
+    - s390/kvm: Fix store status for ACRS/FPRS
+    - staging: comedi: disallow COMEDI_DEVCONFIG on non-board minors
+    - ext4: fix race in ext4_mb_add_n_trim()
+    - UBIFS: fix double free of ubifs_orphan objects
+    - hrtimer: Prevent hrtimer_enqueue_reprogram race
+    - nfsd: Fix memleak
+    - x86: Do not leak kernel page mapping locations
+    - USB: usb-storage: unusual_devs update for Super TOP SATA bridge
+    - posix-cpu-timers: Fix nanosleep task_struct leak
+    - NFSv4.1: Don't decode skipped layoutgets
+    - cgroup: fix exit() vs rmdir() race
+    - cpuset: fix cpuset_print_task_mems_allowed() vs rename() race
+    - ext4: fix xattr block allocation/release with bigalloc
+    - mm: fix pageblock bitmap allocation
+    - target: Add missing mapped_lun bounds checking during make_mappedlun
+      setup
+    - b43: Increase number of RX DMA slots
+    - posix-timer: Don't call idr_find() with out-of-range ID
+    - fs: Fix possible use-after-free with AIO
+    - powerpc/kexec: Disable hard IRQ before kexec
+    - mmu_notifier_unregister NULL Pointer deref and multiple ->release()
+      callouts
+    - tmpfs: fix use-after-free of mempolicy object (CVE-2013-1767)
+    - ocfs2: fix possible use-after-free with AIO
+    - ocfs2: fix ocfs2_init_security_and_acl() to initialize acl correctly
+    - ocfs2: ac->ac_allow_chain_relink=0 won't disable group relink
+    - idr: fix a subtle bug in idr_get_next()
+    - idr: make idr_get_next() good for rcu_read_lock()
+    - idr: fix top layer handling
+    - sysctl: fix null checking in bin_dn_node_address()
+    - nbd: fsync and kill block device on shutdown
+    - s390/timer: avoid overflow when programming clock comparator
+      (regression in 3.2.38)
+    - xen-pciback: rate limit error messages from xen_pcibk_enable_msi{,x}()
+      (CVE-2013-0231)
+    - xen-netback: correctly return errors from netbk_count_requests()
+    - xen-netback: cancel the credit timer when taking the vif down
+    - ipv6: use a stronger hash for tcp
+    - staging: comedi: ni_labpc: correct differential channel sequence for
+      AI commands
+    - staging: comedi: ni_labpc: set up command4 register *after* command3
+    - vhost: fix length for cross region descriptor (CVE-2013-0311)
 
   [ Aurelien Jarno]
   * [mips,mipsel] Disable VGA_CONSOLE and ignore the corresponding ABI
@@ -11,7 +58,6 @@
   [ Ben Hutchings ]
   * [x86] ata_piix: reenable MS Virtual PC guests (fixes regression in
     3.2.19-1)
-  * vhost: fix length for cross region descriptor (CVE-2013-0311)
   * test-patches: Clean up all previous test patches, whether or not they
     were applied
   * test-patches: Add --fuzz option to allow testing patches that have fuzz

Modified: dists/sid/linux/debian/config/defines
==============================================================================
--- dists/sid/linux/debian/config/defines	Mon Mar  4 13:40:56 2013	(r19902)
+++ dists/sid/linux/debian/config/defines	Wed Mar  6 14:25:42 2013	(r19903)
@@ -39,6 +39,8 @@
  vring_*
 # No-one should depend on staging from OOT
  module:drivers/staging/*
+# Private to this family of drivers
+ module:drivers/net/wireless/rtlwifi/*
 
 [base]
 arches:

Added: dists/sid/linux/debian/patches/debian/pps-avoid-abi-change-in-3.2.40.patch
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux/debian/patches/debian/pps-avoid-abi-change-in-3.2.40.patch	Wed Mar  6 14:25:42 2013	(r19903)
@@ -0,0 +1,27 @@
+From: Ben Hutchings <ben at decadent.org.uk>
+Subject: pps: avoid ABI change in 3.2.40
+Date: Wed, 06 Mar 2013 14:15:34 +0000
+
+Move the new member pps_device::lookup_cookie to the end of the
+structure and hide it from genksyms.  This structure is always
+allocated by pps_register_source().
+
+---
+--- a/include/linux/pps_kernel.h
++++ b/include/linux/pps_kernel.h
+@@ -69,11 +69,14 @@ struct pps_device {
+ 	wait_queue_head_t queue;		/* PPS event queue */
+ 
+ 	unsigned int id;			/* PPS source unique ID */
+-	void const *lookup_cookie;		/* pps_lookup_dev only */
+ 	struct cdev cdev;
+ 	struct device *dev;
+ 	struct fasync_struct *async_queue;	/* fasync method */
+ 	spinlock_t lock;
++
++#ifndef __GENKSYMS__
++	void const *lookup_cookie;		/* pps_lookup_dev only */
++#endif
+ };
+ 
+ /*

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	Mon Mar  4 13:40:56 2013	(r19902)
+++ dists/sid/linux/debian/patches/features/all/drm/drm-3.4.patch	Wed Mar  6 14:25:42 2013	(r19903)
@@ -2237,20 +2237,10 @@
  	atomic_inc(&dev->counts[_DRM_STAT_IOCTLS]);
  	++file_priv->ioctl_count;
 diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
-index bb95d59..9d9835a 100644
+index 9080eb7..9d9835a 100644
 --- a/drivers/gpu/drm/drm_edid.c
 +++ b/drivers/gpu/drm/drm_edid.c
-@@ -87,9 +87,6 @@ static struct edid_quirk {
- 	int product_id;
- 	u32 quirks;
- } edid_quirk_list[] = {
--	/* ASUS VW222S */
--	{ "ACI", 0x22a2, EDID_QUIRK_FORCE_REDUCED_BLANKING },
--
- 	/* Acer AL1706 */
- 	{ "ACR", 44358, EDID_QUIRK_PREFER_LARGE_60 },
- 	/* Acer F51 */
-@@ -157,8 +154,7 @@ EXPORT_SYMBOL(drm_edid_header_is_valid);
+@@ -154,8 +154,7 @@ EXPORT_SYMBOL(drm_edid_header_is_valid);
   * Sanity check the EDID block (base or extension).  Return 0 if the block
   * doesn't check out, or 1 if it's valid.
   */
@@ -2260,7 +2250,7 @@
  {
  	int i;
  	u8 csum = 0;
-@@ -211,6 +207,7 @@ bad:
+@@ -208,6 +207,7 @@ bad:
  	}
  	return 0;
  }
@@ -2268,7 +2258,7 @@
  
  /**
   * drm_edid_is_valid - sanity check EDID data
-@@ -234,7 +231,6 @@ bool drm_edid_is_valid(struct edid *edid)
+@@ -231,7 +231,6 @@ bool drm_edid_is_valid(struct edid *edid)
  }
  EXPORT_SYMBOL(drm_edid_is_valid);
  
@@ -2276,7 +2266,7 @@
  #define DDC_SEGMENT_ADDR 0x30
  /**
   * Get EDID information via I2C.
-@@ -521,25 +517,10 @@ static void
+@@ -518,25 +517,10 @@ static void
  cea_for_each_detailed_block(u8 *ext, detailed_cb *cb, void *closure)
  {
  	int i, n = 0;
@@ -2304,7 +2294,7 @@
  	for (i = 0; i < n; i++)
  		cb((struct detailed_timing *)(det_base + 18 * i), closure);
  }
-@@ -773,7 +754,7 @@ drm_mode_std(struct drm_connector *connector, struct edid *edid,
+@@ -770,7 +754,7 @@ drm_mode_std(struct drm_connector *connector, struct edid *edid,
  		 */
  		mode = drm_gtf_mode(dev, hsize, vsize, vrefresh_rate, 0, 0);
  		if (drm_mode_hsync(mode) > drm_gtf2_hbreak(edid)) {
@@ -2313,7 +2303,7 @@
  			mode = drm_gtf_mode_complex(dev, hsize, vsize,
  						    vrefresh_rate, 0, 0,
  						    drm_gtf2_m(edid),
-@@ -1341,6 +1322,7 @@ add_detailed_modes(struct drm_connector *connector, struct edid *edid,
+@@ -1338,6 +1322,7 @@ add_detailed_modes(struct drm_connector *connector, struct edid *edid,
  
  #define HDMI_IDENTIFIER 0x000C03
  #define AUDIO_BLOCK	0x01
@@ -2321,7 +2311,7 @@
  #define VENDOR_BLOCK    0x03
  #define SPEAKER_BLOCK	0x04
  #define EDID_BASIC_AUDIO	(1 << 6)
-@@ -1371,6 +1353,47 @@ u8 *drm_find_cea_extension(struct edid *edid)
+@@ -1368,6 +1353,47 @@ u8 *drm_find_cea_extension(struct edid *edid)
  }
  EXPORT_SYMBOL(drm_find_cea_extension);
  
@@ -2369,7 +2359,7 @@
  static void
  parse_hdmi_vsdb(struct drm_connector *connector, uint8_t *db)
  {
-@@ -1454,26 +1477,29 @@ void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid)
+@@ -1451,26 +1477,29 @@ void drm_edid_to_eld(struct drm_connector *connector, struct edid *edid)
  	eld[18] = edid->prod_code[0];
  	eld[19] = edid->prod_code[1];
  
@@ -2418,10 +2408,13 @@
  	eld[5] |= sad_count << 4;
  	eld[2] = (20 + mnl + sad_count * 3 + 3) / 4;
  
-@@ -1744,6 +1770,7 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
+@@ -1740,8 +1769,8 @@ int drm_add_edid_modes(struct drm_connector *connector, struct edid *edid)
+ 	num_modes += add_cvt_modes(connector, edid);
  	num_modes += add_standard_modes(connector, edid);
  	num_modes += add_established_modes(connector, edid);
- 	num_modes += add_inferred_modes(connector, edid);
+-	if (edid->features & DRM_EDID_FEATURE_DEFAULT_GTF)
+-		num_modes += add_inferred_modes(connector, edid);
++	num_modes += add_inferred_modes(connector, edid);
 +	num_modes += add_cea_modes(connector, edid);
  
  	if (quirks & (EDID_QUIRK_PREFER_LARGE_60 | EDID_QUIRK_PREFER_LARGE_75))
@@ -4317,7 +4310,7 @@
  
  
 diff --git a/drivers/gpu/drm/drm_usb.c b/drivers/gpu/drm/drm_usb.c
-index 445003f..37c9a52 100644
+index 471f453..37c9a52 100644
 --- a/drivers/gpu/drm/drm_usb.c
 +++ b/drivers/gpu/drm/drm_usb.c
 @@ -1,8 +1,7 @@
@@ -4330,6 +4323,15 @@
  int drm_get_usb_dev(struct usb_interface *interface,
  		    const struct usb_device_id *id,
  		    struct drm_driver *driver)
+@@ -19,7 +18,7 @@ int drm_get_usb_dev(struct usb_interface *interface,
+ 
+ 	usbdev = interface_to_usbdev(interface);
+ 	dev->usbdev = usbdev;
+-	dev->dev = &interface->dev;
++	dev->dev = &usbdev->dev;
+ 
+ 	mutex_lock(&drm_global_mutex);
+ 
 @@ -115,4 +114,7 @@ void drm_usb_exit(struct drm_driver *driver,
  	usb_deregister(udriver);
  }
@@ -42875,7 +42877,7 @@
  	  dvo_ch7xxx.o \
  	  dvo_ch7017.o \
 diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
-index 10fe480..e6162a1 100644
+index 5620192..e6162a1 100644
 --- a/drivers/gpu/drm/i915/i915_debugfs.c
 +++ b/drivers/gpu/drm/i915/i915_debugfs.c
 @@ -30,7 +30,6 @@
@@ -43063,7 +43065,7 @@
  
  	seq_printf(m, "Time: %ld s %ld us\n", error->time.tv_sec,
  		   error->time.tv_usec);
--	seq_printf(m, "Kernel: " UTS_RELEASE);
+-	seq_printf(m, "Kernel: " UTS_RELEASE "\n");
  	seq_printf(m, "PCI ID: 0x%04x\n", dev->pci_device);
  	seq_printf(m, "EIR: 0x%08x\n", error->eir);
  	seq_printf(m, "PGTBL_ER: 0x%08x\n", error->pgtbl_er);
@@ -47730,7 +47732,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 7817429..3c9b9c5 100644
+index 2303c2b..3c9b9c5 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -75,7 +75,7 @@ struct intel_limit {
@@ -47768,6 +47770,17 @@
  
  static inline u32 /* units of 100MHz */
  intel_fdi_link_freq(struct drm_device *dev)
+@@ -138,8 +142,8 @@ static const intel_limit_t intel_limits_i9xx_sdvo = {
+ 	.vco = { .min = 1400000, .max = 2800000 },
+ 	.n = { .min = 1, .max = 6 },
+ 	.m = { .min = 70, .max = 120 },
+-	.m1 = { .min = 8, .max = 18 },
+-	.m2 = { .min = 3, .max = 7 },
++	.m1 = { .min = 10, .max = 22 },
++	.m2 = { .min = 5, .max = 9 },
+ 	.p = { .min = 5, .max = 80 },
+ 	.p1 = { .min = 1, .max = 8 },
+ 	.p2 = { .dot_limit = 200000,
 @@ -534,7 +538,8 @@ static bool intel_PLL_is_valid(struct drm_device *dev,
  
  static bool
@@ -48066,7 +48079,29 @@
  
  	intel_fdi_normal_train(crtc);
  
-@@ -3331,10 +3392,12 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
+@@ -3242,7 +3303,6 @@ static void i9xx_crtc_disable(struct drm_crtc *crtc)
+ 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+ 	int pipe = intel_crtc->pipe;
+ 	int plane = intel_crtc->plane;
+-	u32 pctl;
+ 
+ 	if (!intel_crtc->active)
+ 		return;
+@@ -3258,13 +3318,6 @@ static void i9xx_crtc_disable(struct drm_crtc *crtc)
+ 
+ 	intel_disable_plane(dev_priv, plane, pipe);
+ 	intel_disable_pipe(dev_priv, pipe);
+-
+-	/* Disable pannel fitter if it is on this pipe. */
+-	pctl = I915_READ(PFIT_CONTROL);
+-	if ((pctl & PFIT_ENABLE) &&
+-	    ((pctl & PFIT_PIPE_MASK) >> PFIT_PIPE_SHIFT) == pipe)
+-		I915_WRITE(PFIT_CONTROL, 0);
+-
+ 	intel_disable_pll(dev_priv, pipe);
+ 
+ 	intel_crtc->active = false;
+@@ -3339,10 +3392,12 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
  	struct drm_device *dev = crtc->dev;
  
  	crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
@@ -48080,7 +48115,7 @@
  		mutex_unlock(&dev->struct_mutex);
  	}
  }
-@@ -3408,10 +3471,10 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
+@@ -3416,10 +3471,10 @@ static bool intel_crtc_mode_fixup(struct drm_crtc *crtc,
  			return false;
  	}
  
@@ -48095,7 +48130,7 @@
  		drm_mode_set_crtcinfo(adjusted_mode, 0);
  
  	return true;
-@@ -4527,10 +4590,11 @@ static void ironlake_update_wm(struct drm_device *dev)
+@@ -4535,10 +4590,11 @@ static void ironlake_update_wm(struct drm_device *dev)
  	 */
  }
  
@@ -48108,7 +48143,7 @@
  	int fbc_wm, plane_wm, cursor_wm;
  	unsigned int enabled;
  
-@@ -4539,8 +4603,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4547,8 +4603,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
  			    &sandybridge_display_wm_info, latency,
  			    &sandybridge_cursor_wm_info, latency,
  			    &plane_wm, &cursor_wm)) {
@@ -48121,7 +48156,7 @@
  		DRM_DEBUG_KMS("FIFO watermarks For pipe A -"
  			      " plane %d, " "cursor: %d\n",
  			      plane_wm, cursor_wm);
-@@ -4551,8 +4617,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4559,8 +4617,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
  			    &sandybridge_display_wm_info, latency,
  			    &sandybridge_cursor_wm_info, latency,
  			    &plane_wm, &cursor_wm)) {
@@ -48134,7 +48169,7 @@
  		DRM_DEBUG_KMS("FIFO watermarks For pipe B -"
  			      " plane %d, cursor: %d\n",
  			      plane_wm, cursor_wm);
-@@ -4565,8 +4633,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4573,8 +4633,10 @@ static void sandybridge_update_wm(struct drm_device *dev)
  			    &sandybridge_display_wm_info, latency,
  			    &sandybridge_cursor_wm_info, latency,
  			    &plane_wm, &cursor_wm)) {
@@ -48147,7 +48182,7 @@
  		DRM_DEBUG_KMS("FIFO watermarks For pipe C -"
  			      " plane %d, cursor: %d\n",
  			      plane_wm, cursor_wm);
-@@ -4587,7 +4657,8 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4595,7 +4657,8 @@ static void sandybridge_update_wm(struct drm_device *dev)
  	I915_WRITE(WM2_LP_ILK, 0);
  	I915_WRITE(WM1_LP_ILK, 0);
  
@@ -48157,7 +48192,7 @@
  		return;
  	enabled = ffs(enabled) - 1;
  
-@@ -4637,6 +4708,161 @@ static void sandybridge_update_wm(struct drm_device *dev)
+@@ -4645,6 +4708,161 @@ static void sandybridge_update_wm(struct drm_device *dev)
  		   cursor_wm);
  }
  
@@ -48319,7 +48354,7 @@
  /**
   * intel_update_watermarks - update FIFO watermark values based on current modes
   *
-@@ -4677,6 +4903,16 @@ static void intel_update_watermarks(struct drm_device *dev)
+@@ -4685,6 +4903,16 @@ static void intel_update_watermarks(struct drm_device *dev)
  		dev_priv->display.update_wm(dev);
  }
  
@@ -48336,7 +48371,7 @@
  static inline bool intel_panel_use_ssc(struct drm_i915_private *dev_priv)
  {
  	if (i915_panel_use_ssc >= 0)
-@@ -4824,6 +5060,82 @@ static bool intel_choose_pipe_bpp_dither(struct drm_crtc *crtc,
+@@ -4832,6 +5060,82 @@ static bool intel_choose_pipe_bpp_dither(struct drm_crtc *crtc,
  	return display_bpc != bpc;
  }
  
@@ -48419,7 +48454,7 @@
  static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  			      struct drm_display_mode *mode,
  			      struct drm_display_mode *adjusted_mode,
-@@ -4837,7 +5149,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4845,7 +5149,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  	int plane = intel_crtc->plane;
  	int refclk, num_connectors = 0;
  	intel_clock_t clock, reduced_clock;
@@ -48428,7 +48463,7 @@
  	bool ok, has_reduced_clock = false, is_sdvo = false, is_dvo = false;
  	bool is_crt = false, is_lvds = false, is_tv = false, is_dp = false;
  	struct drm_mode_config *mode_config = &dev->mode_config;
-@@ -4878,15 +5190,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4886,15 +5190,7 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  		num_connectors++;
  	}
  
@@ -48445,7 +48480,7 @@
  
  	/*
  	 * Returns a set of divisors for the desired target clock with the given
-@@ -4894,7 +5198,8 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4902,7 +5198,8 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  	 * reflck * (5 * (m1 + 2) + (m2 + 2)) / (n + 2) / p1 / p2.
  	 */
  	limit = intel_limit(crtc, refclk);
@@ -48455,7 +48490,7 @@
  	if (!ok) {
  		DRM_ERROR("Couldn't find PLL settings for mode!\n");
  		return -EINVAL;
-@@ -4904,53 +5209,24 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -4912,53 +5209,24 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  	intel_crtc_update_cursor(crtc, true);
  
  	if (is_lvds && dev_priv->lvds_downclock_avail) {
@@ -48521,7 +48556,7 @@
  
  	dpll = DPLL_VGA_MODE_DIS;
  
-@@ -5024,8 +5300,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5032,8 +5300,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  	/* Set up the display plane register */
  	dspcntr = DISPPLANE_GAMMA_ENABLE;
  
@@ -48530,7 +48565,7 @@
  	if (pipe == 0)
  		dspcntr &= ~DISPPLANE_SEL_PIPE_MASK;
  	else
-@@ -5060,7 +5334,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5068,7 +5334,6 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  	DRM_DEBUG_KMS("Mode for pipe %c:\n", pipe == 0 ? 'A' : 'B');
  	drm_mode_debug_printmodeline(mode);
  
@@ -48538,7 +48573,7 @@
  	I915_WRITE(DPLL(pipe), dpll & ~DPLL_VCO_ENABLE);
  
  	POSTING_READ(DPLL(pipe));
-@@ -5147,33 +5420,32 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5155,33 +5420,32 @@ static int i9xx_crtc_mode_set(struct drm_crtc *crtc,
  		I915_WRITE(DPLL(pipe), dpll);
  	}
  
@@ -48587,7 +48622,7 @@
  
  	I915_WRITE(HTOTAL(pipe),
  		   (adjusted_mode->crtc_hdisplay - 1) |
-@@ -5290,7 +5562,8 @@ void ironlake_init_pch_refclk(struct drm_device *dev)
+@@ -5298,7 +5562,8 @@ void ironlake_init_pch_refclk(struct drm_device *dev)
  		if (intel_panel_use_ssc(dev_priv) && can_ssc) {
  			DRM_DEBUG_KMS("Using SSC on panel\n");
  			temp |= DREF_SSC1_ENABLE;
@@ -48597,7 +48632,7 @@
  
  		/* Get SSC going before enabling the outputs */
  		I915_WRITE(PCH_DREF_CONTROL, temp);
-@@ -5439,7 +5712,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5447,7 +5712,8 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
  	 * reflck * (5 * (m1 + 2) + (m2 + 2)) / (n + 2) / p1 / p2.
  	 */
  	limit = intel_limit(crtc, refclk);
@@ -48607,7 +48642,7 @@
  	if (!ok) {
  		DRM_ERROR("Couldn't find PLL settings for mode!\n");
  		return -EINVAL;
-@@ -5449,21 +5723,17 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5457,21 +5723,17 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
  	intel_crtc_update_cursor(crtc, true);
  
  	if (is_lvds && dev_priv->lvds_downclock_avail) {
@@ -48636,7 +48671,7 @@
  	}
  	/* SDVO TV has fixed PLL values depend on its clock range,
  	   this mirrors vbios setting. */
-@@ -5758,17 +6028,19 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5766,17 +6028,19 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
  		}
  	}
  
@@ -48663,7 +48698,7 @@
  
  	I915_WRITE(HTOTAL(pipe),
  		   (adjusted_mode->crtc_hdisplay - 1) |
-@@ -5811,12 +6083,6 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5819,12 +6083,6 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
  
  	intel_wait_for_vblank(dev, pipe);
  
@@ -48676,7 +48711,7 @@
  	I915_WRITE(DSPCNTR(plane), dspcntr);
  	POSTING_READ(DSPCNTR(plane));
  
-@@ -5843,14 +6109,45 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
+@@ -5851,14 +6109,45 @@ static int intel_crtc_mode_set(struct drm_crtc *crtc,
  
  	ret = dev_priv->display.crtc_mode_set(crtc, mode, adjusted_mode,
  					      x, y, old_fb);
@@ -48724,7 +48759,7 @@
  static void g4x_write_eld(struct drm_connector *connector,
  			  struct drm_crtc *crtc)
  {
-@@ -5867,6 +6164,12 @@ static void g4x_write_eld(struct drm_connector *connector,
+@@ -5875,6 +6164,12 @@ static void g4x_write_eld(struct drm_connector *connector,
  	else
  		eldv = G4X_ELDV_DEVCTG;
  
@@ -48737,7 +48772,7 @@
  	i = I915_READ(G4X_AUD_CNTL_ST);
  	i &= ~(eldv | G4X_ELD_ADDR);
  	len = (i >> 9) & 0x1f;		/* ELD buffer size */
-@@ -5894,22 +6197,26 @@ static void ironlake_write_eld(struct drm_connector *connector,
+@@ -5902,22 +6197,26 @@ static void ironlake_write_eld(struct drm_connector *connector,
  	uint32_t i;
  	int len;
  	int hdmiw_hdmiedid;
@@ -48770,7 +48805,7 @@
  
  	DRM_DEBUG_DRIVER("ELD on pipe %c\n", pipe_name(i));
  
-@@ -5918,14 +6225,27 @@ static void ironlake_write_eld(struct drm_connector *connector,
+@@ -5926,14 +6225,27 @@ static void ironlake_write_eld(struct drm_connector *connector,
  	if (!i) {
  		DRM_DEBUG_DRIVER("Audio directed to unknown port\n");
  		/* operate blindly on all ports */
@@ -48802,7 +48837,7 @@
  	i = I915_READ(aud_cntrl_st2);
  	i &= ~eldv;
  	I915_WRITE(aud_cntrl_st2, i);
-@@ -5933,13 +6253,8 @@ static void ironlake_write_eld(struct drm_connector *connector,
+@@ -5941,13 +6253,8 @@ static void ironlake_write_eld(struct drm_connector *connector,
  	if (!eld[0])
  		return;
  
@@ -48817,7 +48852,7 @@
  	I915_WRITE(aud_cntl_st, i);
  
  	len = min_t(uint8_t, eld[2], 21);	/* 84 bytes of hw ELD buffer */
-@@ -6319,7 +6634,7 @@ static struct drm_display_mode load_detect_mode = {
+@@ -6327,7 +6634,7 @@ static struct drm_display_mode load_detect_mode = {
  
  static struct drm_framebuffer *
  intel_framebuffer_create(struct drm_device *dev,
@@ -48826,7 +48861,7 @@
  			 struct drm_i915_gem_object *obj)
  {
  	struct intel_framebuffer *intel_fb;
-@@ -6361,7 +6676,7 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
+@@ -6369,7 +6676,7 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
  				  int depth, int bpp)
  {
  	struct drm_i915_gem_object *obj;
@@ -48835,7 +48870,7 @@
  
  	obj = i915_gem_alloc_object(dev,
  				    intel_framebuffer_size_for_mode(mode, bpp));
-@@ -6370,9 +6685,9 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
+@@ -6378,9 +6685,9 @@ intel_framebuffer_create_for_mode(struct drm_device *dev,
  
  	mode_cmd.width = mode->hdisplay;
  	mode_cmd.height = mode->vdisplay;
@@ -48848,7 +48883,7 @@
  
  	return intel_framebuffer_create(dev, &mode_cmd, obj);
  }
-@@ -6393,11 +6708,11 @@ mode_fits_in_fbdev(struct drm_device *dev,
+@@ -6401,11 +6708,11 @@ mode_fits_in_fbdev(struct drm_device *dev,
  		return NULL;
  
  	fb = &dev_priv->fbdev->ifb.base;
@@ -48863,7 +48898,7 @@
  		return NULL;
  
  	return fb;
-@@ -6729,9 +7044,7 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
+@@ -6737,9 +7044,7 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
  	if (!HAS_PIPE_CXSR(dev) && (dpll & DISPLAY_RATE_SELECT_FPA1)) {
  		DRM_DEBUG_DRIVER("upclocking LVDS\n");
  
@@ -48874,7 +48909,7 @@
  
  		dpll &= ~DISPLAY_RATE_SELECT_FPA1;
  		I915_WRITE(dpll_reg, dpll);
-@@ -6740,9 +7053,6 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
+@@ -6748,9 +7053,6 @@ static void intel_increase_pllclock(struct drm_crtc *crtc)
  		dpll = I915_READ(dpll_reg);
  		if (dpll & DISPLAY_RATE_SELECT_FPA1)
  			DRM_DEBUG_DRIVER("failed to upclock LVDS!\n");
@@ -48884,7 +48919,7 @@
  	}
  
  	/* Schedule downclock */
-@@ -6755,9 +7065,6 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
+@@ -6763,9 +7065,6 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
  	struct drm_device *dev = crtc->dev;
  	drm_i915_private_t *dev_priv = dev->dev_private;
  	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
@@ -48894,7 +48929,7 @@
  
  	if (HAS_PCH_SPLIT(dev))
  		return;
-@@ -6770,23 +7077,22 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
+@@ -6778,23 +7077,22 @@ static void intel_decrease_pllclock(struct drm_crtc *crtc)
  	 * the manual case.
  	 */
  	if (!HAS_PIPE_CXSR(dev) && intel_crtc->lowfreq_avail) {
@@ -48924,7 +48959,7 @@
  }
  
  /**
-@@ -6899,7 +7205,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
+@@ -6907,7 +7205,7 @@ static void intel_unpin_work_fn(struct work_struct *__work)
  		container_of(__work, struct intel_unpin_work, work);
  
  	mutex_lock(&work->dev->struct_mutex);
@@ -48933,7 +48968,7 @@
  	drm_gem_object_unreference(&work->pending_flip_obj->base);
  	drm_gem_object_unreference(&work->old_fb_obj->base);
  
-@@ -6927,18 +7233,11 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
+@@ -6935,18 +7233,11 @@ static void do_intel_finish_page_flip(struct drm_device *dev,
  
  	spin_lock_irqsave(&dev->event_lock, flags);
  	work = intel_crtc->unpin_work;
@@ -48953,7 +48988,7 @@
  	intel_crtc->unpin_work = NULL;
  
  	if (work->event) {
-@@ -7010,25 +7309,16 @@ void intel_prepare_page_flip(struct drm_device *dev, int plane)
+@@ -7018,25 +7309,16 @@ void intel_prepare_page_flip(struct drm_device *dev, int plane)
  		to_intel_crtc(dev_priv->plane_to_crtc_mapping[plane]);
  	unsigned long flags;
  
@@ -48985,7 +49020,7 @@
  static int intel_gen2_queue_flip(struct drm_device *dev,
  				 struct drm_crtc *crtc,
  				 struct drm_framebuffer *fb,
-@@ -7045,7 +7335,7 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
+@@ -7053,7 +7335,7 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
  		goto err;
  
  	/* Offset into the new buffer for cases of shared fbs between CRTCs */
@@ -48994,7 +49029,7 @@
  
  	ret = BEGIN_LP_RING(6);
  	if (ret)
-@@ -7062,16 +7352,14 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
+@@ -7070,16 +7352,14 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
  	OUT_RING(MI_NOOP);
  	OUT_RING(MI_DISPLAY_FLIP |
  		 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49014,7 +49049,7 @@
  err:
  	return ret;
  }
-@@ -7092,7 +7380,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
+@@ -7100,7 +7380,7 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
  		goto err;
  
  	/* Offset into the new buffer for cases of shared fbs between CRTCs */
@@ -49023,7 +49058,7 @@
  
  	ret = BEGIN_LP_RING(6);
  	if (ret)
-@@ -7106,16 +7394,15 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
+@@ -7114,16 +7394,15 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
  	OUT_RING(MI_NOOP);
  	OUT_RING(MI_DISPLAY_FLIP_I915 |
  		 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49042,7 +49077,7 @@
  err:
  	return ret;
  }
-@@ -7144,7 +7431,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
+@@ -7152,7 +7431,7 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
  	 */
  	OUT_RING(MI_DISPLAY_FLIP |
  		 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49051,7 +49086,7 @@
  	OUT_RING(obj->gtt_offset | obj->tiling_mode);
  
  	/* XXX Enabling the panel-fitter across page-flip is so far
-@@ -7154,13 +7441,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
+@@ -7162,13 +7441,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
  	pf = 0;
  	pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
  	OUT_RING(pf | pipesrc);
@@ -49066,7 +49101,7 @@
  err:
  	return ret;
  }
-@@ -7185,19 +7470,23 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
+@@ -7193,19 +7470,23 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
  
  	OUT_RING(MI_DISPLAY_FLIP |
  		 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
@@ -49095,7 +49130,7 @@
  err:
  	return ret;
  }
-@@ -7244,16 +7533,14 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
+@@ -7252,16 +7533,14 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
  		goto err_unpin;
  
  	intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit);
@@ -49114,7 +49149,7 @@
  err:
  	return ret;
  }
-@@ -7551,10 +7838,9 @@ static void intel_setup_outputs(struct drm_device *dev)
+@@ -7559,10 +7838,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;
@@ -49127,7 +49162,7 @@
  	if (!has_lvds && !HAS_PCH_SPLIT(dev)) {
  		/* disable the panel fitter on everything but LVDS */
  		I915_WRITE(PFIT_CONTROL, 0);
-@@ -7683,7 +7969,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
+@@ -7691,7 +7969,7 @@ static const struct drm_framebuffer_funcs intel_fb_funcs = {
  
  int intel_framebuffer_init(struct drm_device *dev,
  			   struct intel_framebuffer *intel_fb,
@@ -49136,7 +49171,7 @@
  			   struct drm_i915_gem_object *obj)
  {
  	int ret;
-@@ -7691,21 +7977,27 @@ int intel_framebuffer_init(struct drm_device *dev,
+@@ -7699,21 +7977,27 @@ int intel_framebuffer_init(struct drm_device *dev,
  	if (obj->tiling_mode == I915_TILING_Y)
  		return -EINVAL;
  
@@ -49174,7 +49209,7 @@
  		return -EINVAL;
  	}
  
-@@ -7723,11 +8015,12 @@ int intel_framebuffer_init(struct drm_device *dev,
+@@ -7731,11 +8015,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,
@@ -49189,7 +49224,7 @@
  	if (&obj->base == NULL)
  		return ERR_PTR(-ENOENT);
  
-@@ -7996,7 +8289,7 @@ void intel_init_emon(struct drm_device *dev)
+@@ -8004,7 +8289,7 @@ void intel_init_emon(struct drm_device *dev)
  	dev_priv->corr = (lcfuse & LCFUSE_HIV_MASK);
  }
  
@@ -49198,7 +49233,7 @@
  {
  	/*
  	 * Respect the kernel parameter if it is set
-@@ -8014,11 +8307,11 @@ static bool intel_enable_rc6(struct drm_device *dev)
+@@ -8022,11 +8307,11 @@ static bool intel_enable_rc6(struct drm_device *dev)
  	 * Disable rc6 on Sandybridge
  	 */
  	if (INTEL_INFO(dev)->gen == 6) {
@@ -49214,7 +49249,7 @@
  }
  
  void gen6_enable_rps(struct drm_i915_private *dev_priv)
-@@ -8026,7 +8319,9 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8034,7 +8319,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;
@@ -49224,7 +49259,7 @@
  	int i;
  
  	/* Here begins a magic sequence of register writes to enable
-@@ -8037,6 +8332,13 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8045,6 +8332,13 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
  	 */
  	I915_WRITE(GEN6_RC_STATE, 0);
  	mutex_lock(&dev_priv->dev->struct_mutex);
@@ -49238,7 +49273,7 @@
  	gen6_gt_force_wake_get(dev_priv);
  
  	/* disable the counters and set deterministic thresholds */
-@@ -8057,9 +8359,20 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
+@@ -8065,9 +8359,20 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
  	I915_WRITE(GEN6_RC6p_THRESHOLD, 100000);
  	I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */
  
@@ -49262,7 +49297,7 @@
  
  	I915_WRITE(GEN6_RC_CONTROL,
  		   rc6_mask |
-@@ -8287,6 +8600,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
+@@ -8295,6 +8600,10 @@ static void gen6_init_clock_gating(struct drm_device *dev)
  	I915_WRITE(WM2_LP_ILK, 0);
  	I915_WRITE(WM1_LP_ILK, 0);
  
@@ -49273,7 +49308,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
-@@ -8365,6 +8682,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
+@@ -8373,6 +8682,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
  
  	I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
  
@@ -49284,7 +49319,7 @@
  	/* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */
  	I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
  		   GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
-@@ -8675,9 +8996,15 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8683,9 +8996,15 @@ static void intel_init_display(struct drm_device *dev)
  		if (IS_IVYBRIDGE(dev)) {
  			u32	ecobus;
  
@@ -49301,7 +49336,7 @@
  			__gen6_gt_force_wake_mt_put(dev_priv);
  			mutex_unlock(&dev->struct_mutex);
  
-@@ -8709,6 +9036,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8717,6 +9036,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;
@@ -49309,7 +49344,7 @@
  			} else {
  				DRM_DEBUG_KMS("Failed to read display plane latency. "
  					      "Disable CxSR\n");
-@@ -8722,6 +9050,7 @@ static void intel_init_display(struct drm_device *dev)
+@@ -8730,6 +9050,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;
@@ -49317,7 +49352,7 @@
  			} else {
  				DRM_DEBUG_KMS("Failed to read display plane latency. "
  					      "Disable CxSR\n");
-@@ -8834,8 +9163,6 @@ struct intel_quirk {
+@@ -8842,8 +9163,6 @@ struct intel_quirk {
  };
  
  struct intel_quirk intel_quirks[] = {
@@ -49326,7 +49361,7 @@
  	/* HP Mini needs pipe A force quirk (LP: #322104) */
  	{ 0x27ae, 0x103c, 0x361a, quirk_pipea_force },
  
-@@ -8902,33 +9229,19 @@ static void i915_disable_vga(struct drm_device *dev)
+@@ -8910,33 +9229,19 @@ static void i915_disable_vga(struct drm_device *dev)
  	POSTING_READ(vga_reg);
  }
  
@@ -49364,7 +49399,7 @@
  	dev->mode_config.funcs = (void *)&intel_mode_funcs;
  
  	intel_init_quirks(dev);
-@@ -8952,6 +9265,9 @@ void intel_modeset_init(struct drm_device *dev)
+@@ -8960,6 +9265,9 @@ void intel_modeset_init(struct drm_device *dev)
  
  	for (i = 0; i < dev_priv->num_pipe; i++) {
  		intel_crtc_init(dev, i);
@@ -72957,7 +72992,7 @@
  #include <linux/kernel.h>
  
 diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 0977849..c62132c 100644
+index 60d13fe..c62132c 100644
 --- a/drivers/gpu/drm/radeon/evergreen.c
 +++ b/drivers/gpu/drm/radeon/evergreen.c
 @@ -50,6 +50,39 @@ static const u32 crtc_offsets[6] =
@@ -73048,16 +73083,7 @@
  
  	blackout = RREG32(MC_SHARED_BLACKOUT_CNTL);
  	if ((blackout & BLACKOUT_MODE_MASK) != 1) {
-@@ -1137,6 +1183,8 @@ void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *sav
- 		blackout &= ~BLACKOUT_MODE_MASK;
- 		WREG32(MC_SHARED_BLACKOUT_CNTL, blackout | 1);
- 	}
-+	/* wait for the MC to settle */
-+	udelay(100);
- }
- 
- void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *save)
-@@ -1166,10 +1214,20 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
+@@ -1168,10 +1214,20 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
  	WREG32(BIF_FB_EN, FB_READ_EN | FB_WRITE_EN);
  
  	for (i = 0; i < rdev->num_crtc; i++) {
@@ -73082,7 +73108,7 @@
  			/* wait for the next frame */
  			frame_count = radeon_get_vblank_counter(rdev, i);
  			for (j = 0; j < rdev->usec_timeout; j++) {
-@@ -1229,7 +1287,10 @@ void evergreen_mc_program(struct radeon_device *rdev)
+@@ -1231,7 +1287,10 @@ void evergreen_mc_program(struct radeon_device *rdev)
  			rdev->mc.vram_end >> 12);
  	}
  	WREG32(MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR, rdev->vram_scratch.gpu_addr >> 12);
@@ -73094,7 +73120,7 @@
  		tmp = RREG32(MC_FUS_VM_FB_OFFSET) & 0x000FFFFF;
  		tmp |= ((rdev->mc.vram_end >> 20) & 0xF) << 24;
  		tmp |= ((rdev->mc.vram_start >> 20) & 0xF) << 20;
-@@ -1264,18 +1325,20 @@ void evergreen_mc_program(struct radeon_device *rdev)
+@@ -1266,18 +1325,20 @@ void evergreen_mc_program(struct radeon_device *rdev)
   */
  void evergreen_ring_ib_execute(struct radeon_device *rdev, struct radeon_ib *ib)
  {
@@ -73121,7 +73147,7 @@
  }
  
  
-@@ -1313,71 +1376,73 @@ static int evergreen_cp_load_microcode(struct radeon_device *rdev)
+@@ -1315,71 +1376,73 @@ static int evergreen_cp_load_microcode(struct radeon_device *rdev)
  
  static int evergreen_cp_start(struct radeon_device *rdev)
  {
@@ -73226,7 +73252,7 @@
  	u32 tmp;
  	u32 rb_bufsz;
  	int r;
-@@ -1395,13 +1460,14 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1397,13 +1460,14 @@ int evergreen_cp_resume(struct radeon_device *rdev)
  	RREG32(GRBM_SOFT_RESET);
  
  	/* Set ring buffer size */
@@ -73243,7 +73269,7 @@
  
  	/* Set the write pointer delay */
  	WREG32(CP_RB_WPTR_DELAY, 0);
-@@ -1409,8 +1475,8 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1411,8 +1475,8 @@ int evergreen_cp_resume(struct radeon_device *rdev)
  	/* Initialize the ring buffer's read and write pointers */
  	WREG32(CP_RB_CNTL, tmp | RB_RPTR_WR_ENA);
  	WREG32(CP_RB_RPTR_WR, 0);
@@ -73254,7 +73280,7 @@
  
  	/* set the wb address wether it's enabled or not */
  	WREG32(CP_RB_RPTR_ADDR,
-@@ -1428,16 +1494,16 @@ int evergreen_cp_resume(struct radeon_device *rdev)
+@@ -1430,16 +1494,16 @@ int evergreen_cp_resume(struct radeon_device *rdev)
  	mdelay(1);
  	WREG32(CP_RB_CNTL, tmp);
  
@@ -73276,7 +73302,7 @@
  		return r;
  	}
  	return 0;
-@@ -1730,7 +1796,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1732,7 +1796,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
  	case CHIP_SUMO:
  		rdev->config.evergreen.num_ses = 1;
  		rdev->config.evergreen.max_pipes = 4;
@@ -73285,7 +73311,7 @@
  		if (rdev->pdev->device == 0x9648)
  			rdev->config.evergreen.max_simds = 3;
  		else if ((rdev->pdev->device == 0x9647) ||
-@@ -1819,7 +1885,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1821,7 +1885,7 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
  		break;
  	case CHIP_CAICOS:
  		rdev->config.evergreen.num_ses = 1;
@@ -73294,7 +73320,7 @@
  		rdev->config.evergreen.max_tile_pipes = 2;
  		rdev->config.evergreen.max_simds = 2;
  		rdev->config.evergreen.max_backends = 1 * rdev->config.evergreen.num_ses;
-@@ -1868,7 +1934,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
+@@ -1870,7 +1934,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
  
  
  	mc_shared_chmap = RREG32(MC_SHARED_CHMAP);
@@ -73305,7 +73331,7 @@
  		mc_arb_ramcfg = RREG32(FUS_MC_ARB_RAMCFG);
  	else
  		mc_arb_ramcfg = RREG32(MC_ARB_RAMCFG);
-@@ -2272,7 +2340,9 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2274,7 +2340,9 @@ int evergreen_mc_init(struct radeon_device *rdev)
  
  	/* Get VRAM informations */
  	rdev->mc.vram_is_ddr = true;
@@ -73316,7 +73342,7 @@
  		tmp = RREG32(FUS_MC_ARB_RAMCFG);
  	else
  		tmp = RREG32(MC_ARB_RAMCFG);
-@@ -2304,12 +2374,14 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2306,12 +2374,14 @@ int evergreen_mc_init(struct radeon_device *rdev)
  	rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0);
  	rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0);
  	/* Setup GPU memory space */
@@ -73333,7 +73359,7 @@
  		rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
  		rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024;
  	}
-@@ -2320,7 +2392,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
+@@ -2322,7 +2392,7 @@ int evergreen_mc_init(struct radeon_device *rdev)
  	return 0;
  }
  
@@ -73342,7 +73368,7 @@
  {
  	u32 srbm_status;
  	u32 grbm_status;
-@@ -2333,19 +2405,19 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
+@@ -2335,19 +2405,19 @@ bool evergreen_gpu_is_lockup(struct radeon_device *rdev)
  	grbm_status_se0 = RREG32(GRBM_STATUS_SE0);
  	grbm_status_se1 = RREG32(GRBM_STATUS_SE1);
  	if (!(grbm_status & GUI_ACTIVE)) {
@@ -73369,7 +73395,7 @@
  }
  
  static int evergreen_gpu_soft_reset(struct radeon_device *rdev)
-@@ -2437,7 +2509,13 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2439,7 +2509,13 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
  {
  	u32 tmp;
  
@@ -73384,7 +73410,7 @@
  	WREG32(GRBM_INT_CNTL, 0);
  	WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0);
  	WREG32(INT_MASK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0);
-@@ -2461,7 +2539,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2463,7 +2539,9 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
  		WREG32(GRPH_INT_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, 0);
  	}
  
@@ -73395,7 +73421,7 @@
  	WREG32(DACB_AUTODETECT_INT_CONTROL, 0);
  
  	tmp = RREG32(DC_HPD1_INT_CONTROL) & DC_HPDx_INT_POLARITY;
-@@ -2482,6 +2562,7 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
+@@ -2484,6 +2562,7 @@ void evergreen_disable_interrupt_state(struct radeon_device *rdev)
  int evergreen_irq_set(struct radeon_device *rdev)
  {
  	u32 cp_int_cntl = CNTX_BUSY_INT_ENABLE | CNTX_EMPTY_INT_ENABLE;
@@ -73403,7 +73429,7 @@
  	u32 crtc1 = 0, crtc2 = 0, crtc3 = 0, crtc4 = 0, crtc5 = 0, crtc6 = 0;
  	u32 hpd1, hpd2, hpd3, hpd4, hpd5, hpd6;
  	u32 grbm_int_cntl = 0;
-@@ -2506,11 +2587,28 @@ int evergreen_irq_set(struct radeon_device *rdev)
+@@ -2508,11 +2587,28 @@ int evergreen_irq_set(struct radeon_device *rdev)
  	hpd5 = RREG32(DC_HPD5_INT_CONTROL) & ~DC_HPDx_INT_EN;
  	hpd6 = RREG32(DC_HPD6_INT_CONTROL) & ~DC_HPDx_INT_EN;
  
@@ -73436,7 +73462,7 @@
  	if (rdev->irq.crtc_vblank_int[0] ||
  	    rdev->irq.pflip[0]) {
  		DRM_DEBUG("evergreen_irq_set: vblank 0\n");
-@@ -2570,7 +2668,12 @@ int evergreen_irq_set(struct radeon_device *rdev)
+@@ -2572,7 +2668,12 @@ int evergreen_irq_set(struct radeon_device *rdev)
  		grbm_int_cntl |= GUI_IDLE_INT_ENABLE;
  	}
  
@@ -73450,7 +73476,7 @@
  	WREG32(GRBM_INT_CNTL, grbm_int_cntl);
  
  	WREG32(INT_MASK + EVERGREEN_CRTC0_REGISTER_OFFSET, crtc1);
-@@ -2985,11 +3088,24 @@ restart_ih:
+@@ -2987,11 +3088,24 @@ restart_ih:
  		case 177: /* CP_INT in IB1 */
  		case 178: /* CP_INT in IB2 */
  			DRM_DEBUG("IH: CP int: 0x%08x\n", src_data);
@@ -73477,7 +73503,7 @@
  			break;
  		case 233: /* GUI IDLE */
  			DRM_DEBUG("IH: GUI idle\n");
-@@ -3019,6 +3135,7 @@ restart_ih:
+@@ -3021,6 +3135,7 @@ restart_ih:
  
  static int evergreen_startup(struct radeon_device *rdev)
  {
@@ -73485,7 +73511,7 @@
  	int r;
  
  	/* enable pcie gen2 link */
-@@ -3064,7 +3181,7 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3066,7 +3181,7 @@ static int evergreen_startup(struct radeon_device *rdev)
  	r = evergreen_blit_init(rdev);
  	if (r) {
  		r600_blit_fini(rdev);
@@ -73494,7 +73520,7 @@
  		dev_warn(rdev->dev, "failed blitter (%d) falling back to memcpy\n", r);
  	}
  
-@@ -3073,6 +3190,12 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3075,6 +3190,12 @@ static int evergreen_startup(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73507,7 +73533,7 @@
  	/* Enable IRQ */
  	r = r600_irq_init(rdev);
  	if (r) {
-@@ -3082,7 +3205,9 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3084,7 +3205,9 @@ static int evergreen_startup(struct radeon_device *rdev)
  	}
  	evergreen_irq_set(rdev);
  
@@ -73518,7 +73544,7 @@
  	if (r)
  		return r;
  	r = evergreen_cp_load_microcode(rdev);
-@@ -3092,6 +3217,23 @@ static int evergreen_startup(struct radeon_device *rdev)
+@@ -3094,6 +3217,23 @@ static int evergreen_startup(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73542,7 +73568,7 @@
  	return 0;
  }
  
-@@ -3111,15 +3253,11 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3113,15 +3253,11 @@ int evergreen_resume(struct radeon_device *rdev)
  	/* post card */
  	atom_asic_init(rdev->mode_info.atom_context);
  
@@ -73560,7 +73586,7 @@
  		return r;
  	}
  
-@@ -3129,13 +3267,17 @@ int evergreen_resume(struct radeon_device *rdev)
+@@ -3131,13 +3267,17 @@ int evergreen_resume(struct radeon_device *rdev)
  
  int evergreen_suspend(struct radeon_device *rdev)
  {
@@ -73580,7 +73606,7 @@
  
  	return 0;
  }
-@@ -3210,8 +3352,8 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3212,8 +3352,8 @@ int evergreen_init(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73591,7 +73617,7 @@
  
  	rdev->ih.ring_obj = NULL;
  	r600_ih_ring_init(rdev, 64 * 1024);
-@@ -3220,29 +3362,24 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3222,29 +3362,24 @@ int evergreen_init(struct radeon_device *rdev)
  	if (r)
  		return r;
  
@@ -73628,7 +73654,7 @@
  
  	/* Don't start up if the MC ucode is missing on BTC parts.
  	 * The default clocks and voltages before the MC ucode
-@@ -3260,15 +3397,17 @@ int evergreen_init(struct radeon_device *rdev)
+@@ -3262,15 +3397,17 @@ int evergreen_init(struct radeon_device *rdev)
  
  void evergreen_fini(struct radeon_device *rdev)
  {
@@ -76068,7 +76094,7 @@
 +	return ret;
 +}
 diff --git a/drivers/gpu/drm/radeon/evergreen_reg.h b/drivers/gpu/drm/radeon/evergreen_reg.h
-index e022776..34a0e85 100644
+index e022776b..34a0e85 100644
 --- a/drivers/gpu/drm/radeon/evergreen_reg.h
 +++ b/drivers/gpu/drm/radeon/evergreen_reg.h
 @@ -35,6 +35,14 @@

Modified: dists/sid/linux/debian/patches/series
==============================================================================
--- dists/sid/linux/debian/patches/series	Mon Mar  4 13:40:56 2013	(r19902)
+++ dists/sid/linux/debian/patches/series	Wed Mar  6 14:25:42 2013	(r19903)
@@ -395,17 +395,13 @@
 
 bugfix/all/PCI-PM-Runtime-make-PCI-traces-quieter.patch
 features/all/USB-add-USB_VENDOR_AND_INTERFACE_INFO-macro.patch
-bugfix/all/usb-Add-quirk-detection-based-on-interface-informati.patch
-bugfix/all/usb-Add-USB_QUIRK_RESET_RESUME-for-all-Logitech-UVC-.patch
 bugfix/alpha/alpha-use-large-data-model.diff
 features/arm/ahci-Add-JMicron-362-device-IDs.patch
-bugfix/all/speakup-lower-default-software-speech-rate.patch
 debian/perf-hide-abi-change-in-3.2.30.patch
 debian/iwlwifi-do-not-request-unreleased-firmware.patch
 debian/hid-avoid-ABI-change-in-3.2.31.patch
 debian/xfrm-avoid-ABI-change-in-3.2.31.patch
 debian/fs-writeback-avoid-ABI-change-in-3.2.32.patch
-bugfix/x86/asus-laptop-Do-not-call-HWRS-on-init.patch
 
 features/all/xen/microcode.patch
 debian/ALSA-avoid-ABI-change-in-3.2.34.patch
@@ -420,12 +416,6 @@
 bugfix/all/firmware_class-log-every-success-and-failure.patch
 bugfix/all/firmware-remove-redundant-log-messages-from-drivers.patch
 
-bugfix/all/usermodehelper-introduce-umh_complete.patch
-bugfix/all/usermodehelper-implement-UMH_KILLABLE.patch
-bugfix/all/usermodehelper-____call_usermodehelper-doesnt-need-do_exit.patch
-bugfix/all/kmod-introduce-call_modprobe-helper.patch
-bugfix/all/kmod-make-__request_module-killable.patch
-bugfix/all/exec-use-ELOOP-for-max-recursion-depth.patch
 bugfix/all/megaraid_sas-fix-memory-leak-if-SGL-has-zero-length-entries.patch
 debian/audit-increase-AUDIT_NAMES.patch
 features/all/asix-Adds-support-for-Lenovo-10-100-USB-dongle.patch
@@ -449,10 +439,6 @@
 features/all/iguanair/0010-media-iguanair-do-not-modify-transmit-buffer.patch
 features/all/iguanair/0011-media-iguanair-cannot-send-data-from-the-stack.patch
 features/all/rt2800-add-chipset-revision-RT5390R-support.patch
-bugfix/all/fs-cachefiles-add-support-for-large-files-in-filesys.patch
-bugfix/all/ext4-rewrite-punch-hole-to-use-ext4_ext_remove_space.patch
-bugfix/all/ext4-fix-hole-punch-failure-when-depth-is-greater-th.patch
-bugfix/all/ext4-fix-kernel-BUG-on-large-scale-rm-rf-commands.patch
 bugfix/all/md-protect-against-crash-upon-fsync-on-ro-array.patch
 debian/net-avoid-ABI-break-in-3.2.37.patch
 
@@ -625,10 +611,6 @@
 features/all/line6/0105-staging-line6-drop-dump-requests-from-pod-startup.patch
 features/all/line6/0106-staging-line6-drop-unused-dumprequest-code.patch
 bugfix/all/mm-Try-harder-to-allocate-vmemmap-blocks.patch
-bugfix/x86/efi-Clear-EFI_RUNTIME_SERVICES-rather-than-EFI_BOOT-.patch
-bugfix/x86/x86-efi-Make-noefi-really-disable-EFI-runtime-serivc.patch
-bugfix/all/mm-fix-pageblock-bitmap-allocation.patch
-bugfix/all/USB-usb-storage-unusual_devs-update-for-Super-TOP-SA.patch
 debian/x86-efi-avoid-abi-change-in-3.2.38.patch
-bugfix/all/vhost-fix-length-for-cross-region-descriptor.patch
 features/x86/efi-stub/0019-x86-efi-Fix-processor-specific-memcpy-build-error.patch
+debian/pps-avoid-abi-change-in-3.2.40.patch



More information about the Kernel-svn-changes mailing list