rpms/kernel/F-11 patch-2.6.29.2.bz2.sign, NONE, 1.1 .cvsignore, 1.1041, 1.1042 config-generic, 1.277, 1.278 drm-next.patch, 1.14, 1.15 kernel.spec, 1.1580, 1.1581 linux-2.6-v4l-dvb-experimental.patch, 1.8, 1.9 sources, 1.1003, 1.1004 upstream, 1.914, 1.915 linux-2.6-acer-wmi-bail-on-aao.patch, 1.2, NONE linux-2.6-e820-mark-esi-clobbered.patch, 1.1, NONE linux-2.6-kvm-kconfig-irqchip.patch, 1.1, NONE linux-2.6-kvm-mask-notifiers.patch, 1.1, NONE linux-2.6-kvm-reset-pit-irq-on-unmask.patch, 1.1, NONE linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch, 1.1, NONE linux-2.6-mm-define-unique-value-for-as_unevictable.patch, 1.1, NONE linux-2.6-net-fix-another-gro-bug.patch, 1.1, NONE linux-2.6-posix-timers-fix-clock-monotonicity.patch, 1.1, NONE linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch, 1.1, NONE linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch, 1.1, NONE linux-2.6-v4l-dvb-fixes.patch, 1.13, NONE linux-2.6-v4l-dvb-update.patch, 1.14, NONE linux-2.6.29.1-sparc-regression.patch, 1.1, NONE pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch, 1.1, NONE patch-2.6.29.1.bz2.sign, 1.1, NONE

Kyle McMartin kyle at fedoraproject.org
Fri May 1 18:41:58 UTC 2009


Author: kyle

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

Modified Files:
	.cvsignore config-generic drm-next.patch kernel.spec 
	linux-2.6-v4l-dvb-experimental.patch sources upstream 
Added Files:
	patch-2.6.29.2.bz2.sign 
Removed Files:
	linux-2.6-acer-wmi-bail-on-aao.patch 
	linux-2.6-e820-mark-esi-clobbered.patch 
	linux-2.6-kvm-kconfig-irqchip.patch 
	linux-2.6-kvm-mask-notifiers.patch 
	linux-2.6-kvm-reset-pit-irq-on-unmask.patch 
	linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch 
	linux-2.6-mm-define-unique-value-for-as_unevictable.patch 
	linux-2.6-net-fix-another-gro-bug.patch 
	linux-2.6-posix-timers-fix-clock-monotonicity.patch 
	linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch 
	linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch 
	linux-2.6-v4l-dvb-fixes.patch linux-2.6-v4l-dvb-update.patch 
	linux-2.6.29.1-sparc-regression.patch 
	pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch 
	patch-2.6.29.1.bz2.sign 
Log Message:
* Thu Apr 30 2009 Kyle McMartin <kyle at redhat.com> 2.6.29.2-119
- Update to 2.6.29.2
- Patches rebased:
  linux-2.6-v4l-dvb-experimental.patch
  drm-next.patch
- Patches merged upstream:
  linux-2.6-acer-wmi-bail-on-aao.patch
  linux-2.6-e820-mark-esi-clobbered.patch
  linux-2.6-kvm-kconfig-irqchip.patch
  linux-2.6-kvm-mask-notifiers.patch
  linux-2.6-kvm-reset-pit-irq-on-unmask.patch
  linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch
  linux-2.6-mm-define-unique-value-for-as_unevictable.patch
  linux-2.6-net-fix-another-gro-bug.patch
  linux-2.6-posix-timers-fix-clock-monotonicity.patch
  linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch
  linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch
  linux-2.6-v4l-dvb-fixes.patch
  linux-2.6-v4l-dvb-update.patch
  linux-2.6.29.1-sparc-regression.patch
  pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch



--- NEW FILE patch-2.6.29.2.bz2.sign ---
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: See http://www.kernel.org/signature.html for info

iD8DBQBJ9fvQyGugalF9Dw4RAsB/AKCOOk344x+bwLrUgSXgLb0V0bsmigCfRXVj
v9JWzcbgEEo+r6kMQyEnngE=
=UsGN
-----END PGP SIGNATURE-----


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/.cvsignore,v
retrieving revision 1.1041
retrieving revision 1.1042
diff -u -p -r1.1041 -r1.1042
--- .cvsignore	2 Apr 2009 23:41:46 -0000	1.1041
+++ .cvsignore	1 May 2009 18:41:25 -0000	1.1042
@@ -5,4 +5,4 @@ kernel-2.6.*.config
 temp-*
 kernel-2.6.29
 linux-2.6.29.tar.bz2
-patch-2.6.29.1.bz2
+patch-2.6.29.2.bz2


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/config-generic,v
retrieving revision 1.277
retrieving revision 1.278
diff -u -p -r1.277 -r1.278
--- config-generic	18 Apr 2009 17:45:46 -0000	1.277
+++ config-generic	1 May 2009 18:41:25 -0000	1.278
@@ -2276,7 +2276,7 @@ CONFIG_RADIO_MAXIRADIO=m
 CONFIG_RADIO_MAESTRO=m
 
 CONFIG_MEDIA_ATTACH=y
-# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
+# CONFIG_MEDIA_TUNER_CUSTOMIZE is not set
 
 #
 # Digital Video Broadcasting Devices
@@ -2301,6 +2301,12 @@ CONFIG_DVB_USB_ANYSEE=m
 CONFIG_DVB_USB_DW2102=m
 CONFIG_DVB_DM1105=m
 CONFIG_DVB_DYNAMIC_MINORS=y
+CONFIG_DVB_LGDT3304=m
+CONFIG_DVB_ISL6405=m
+CONFIG_DVB_LGS8GL5=m
+CONFIG_DVB_S921=m
+# CONFIG_DVB_DUMMY_FE is not set
+CONFIG_DVB_DRX397XD=m
 
 #
 # Supported SAA7146 based PCI Adapters

drm-next.patch:

Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/drm-next.patch,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -p -r1.14 -r1.15
--- drm-next.patch	17 Apr 2009 11:07:14 -0000	1.14
+++ drm-next.patch	1 May 2009 18:41:25 -0000	1.15
@@ -1196,10 +1196,10 @@ index f52663e..09a3571 100644
  EXPORT_SYMBOL(drm_fasync);
  
 diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c
-index 88d3368..4984aa8 100644
+index 7ee1ce1..4984aa8 100644
 --- a/drivers/gpu/drm/drm_gem.c
 +++ b/drivers/gpu/drm/drm_gem.c
-@@ -502,10 +502,9 @@ int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
+@@ -502,7 +502,7 @@ int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
  	struct drm_file *priv = filp->private_data;
  	struct drm_device *dev = priv->minor->dev;
  	struct drm_gem_mm *mm = dev->mm_private;
@@ -1207,23 +1207,7 @@ index 88d3368..4984aa8 100644
 +	struct drm_local_map *map = NULL;
  	struct drm_gem_object *obj;
  	struct drm_hash_item *hash;
--	unsigned long prot;
  	int ret = 0;
- 
- 	mutex_lock(&dev->struct_mutex);
-@@ -538,11 +537,7 @@ int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma)
- 	vma->vm_ops = obj->dev->driver->gem_vm_ops;
- 	vma->vm_private_data = map->handle;
- 	/* FIXME: use pgprot_writecombine when available */
--	prot = pgprot_val(vma->vm_page_prot);
--#ifdef CONFIG_X86
--	prot |= _PAGE_CACHE_WC;
--#endif
--	vma->vm_page_prot = __pgprot(prot);
-+	vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
- 
- 	/* Take a ref for this mapping of the object, so that the fault
- 	 * handler can dereference the mmap offset's pointer to the object.
 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
 new file mode 100644
 index 0000000..f0f6c6b
@@ -2842,33 +2826,10 @@ index 793cba3..51c5a05 100644
  	  intel_display.o \
  	  intel_crt.o \
 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index 6d21b9e..c23b3a9 100644
+index 908d24e..c23b3a9 100644
 --- a/drivers/gpu/drm/i915/i915_dma.c
 +++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -41,7 +41,6 @@
- int i915_wait_ring(struct drm_device * dev, int n, const char *caller)
- {
- 	drm_i915_private_t *dev_priv = dev->dev_private;
--	struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
- 	drm_i915_ring_buffer_t *ring = &(dev_priv->ring);
- 	u32 acthd_reg = IS_I965G(dev) ? ACTHD_I965 : ACTHD;
- 	u32 last_acthd = I915_READ(acthd_reg);
-@@ -58,8 +57,12 @@ int i915_wait_ring(struct drm_device * dev, int n, const char *caller)
- 		if (ring->space >= n)
- 			return 0;
- 
--		if (master_priv->sarea_priv)
--			master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
-+		if (dev->primary->master) {
-+			struct drm_i915_master_private *master_priv = dev->primary->master->driver_priv;
-+			if (master_priv->sarea_priv)
-+				master_priv->sarea_priv->perf_boxes |= I915_BOX_WAIT;
-+		}
-+
- 
- 		if (ring->head != last_head)
- 			i = 0;
-@@ -356,7 +359,7 @@ static int validate_cmd(int cmd)
+@@ -359,7 +359,7 @@ static int validate_cmd(int cmd)
  	return ret;
  }
  
@@ -2877,7 +2838,7 @@ index 6d21b9e..c23b3a9 100644
  {
  	drm_i915_private_t *dev_priv = dev->dev_private;
  	int i;
-@@ -370,8 +373,7 @@ static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwor
+@@ -373,8 +373,7 @@ static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwor
  	for (i = 0; i < dwords;) {
  		int cmd, sz;
  
@@ -2887,7 +2848,7 @@ index 6d21b9e..c23b3a9 100644
  
  		if ((sz = validate_cmd(cmd)) == 0 || i + sz > dwords)
  			return -EINVAL;
-@@ -379,11 +381,7 @@ static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwor
+@@ -382,11 +381,7 @@ static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwor
  		OUT_RING(cmd);
  
  		while (++i, --sz) {
@@ -2900,7 +2861,7 @@ index 6d21b9e..c23b3a9 100644
  		}
  	}
  
-@@ -397,17 +395,13 @@ static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwor
+@@ -400,17 +395,13 @@ static int i915_emit_cmds(struct drm_device * dev, int __user * buffer, int dwor
  
  int
  i915_emit_box(struct drm_device *dev,
@@ -2920,7 +2881,7 @@ index 6d21b9e..c23b3a9 100644
  	if (box.y2 <= box.y1 || box.x2 <= box.x1 || box.y2 <= 0 || box.x2 <= 0) {
  		DRM_ERROR("Bad box %d,%d..%d,%d\n",
  			  box.x1, box.y1, box.x2, box.y2);
-@@ -460,7 +454,9 @@ static void i915_emit_breadcrumb(struct drm_device *dev)
+@@ -463,7 +454,9 @@ static void i915_emit_breadcrumb(struct drm_device *dev)
  }
  
  static int i915_dispatch_cmdbuffer(struct drm_device * dev,
@@ -2931,7 +2892,7 @@ index 6d21b9e..c23b3a9 100644
  {
  	int nbox = cmd->num_cliprects;
  	int i = 0, count, ret;
-@@ -476,13 +472,13 @@ static int i915_dispatch_cmdbuffer(struct drm_device * dev,
+@@ -479,13 +472,13 @@ static int i915_dispatch_cmdbuffer(struct drm_device * dev,
  
  	for (i = 0; i < count; i++) {
  		if (i < nbox) {
@@ -2947,7 +2908,7 @@ index 6d21b9e..c23b3a9 100644
  		if (ret)
  			return ret;
  	}
-@@ -492,10 +488,10 @@ static int i915_dispatch_cmdbuffer(struct drm_device * dev,
+@@ -495,10 +488,10 @@ static int i915_dispatch_cmdbuffer(struct drm_device * dev,
  }
  
  static int i915_dispatch_batchbuffer(struct drm_device * dev,
@@ -2960,7 +2921,7 @@ index 6d21b9e..c23b3a9 100644
  	int nbox = batch->num_cliprects;
  	int i = 0, count;
  	RING_LOCALS;
-@@ -511,7 +507,7 @@ static int i915_dispatch_batchbuffer(struct drm_device * dev,
+@@ -514,7 +507,7 @@ static int i915_dispatch_batchbuffer(struct drm_device * dev,
  
  	for (i = 0; i < count; i++) {
  		if (i < nbox) {
@@ -2969,7 +2930,7 @@ index 6d21b9e..c23b3a9 100644
  						batch->DR1, batch->DR4);
  			if (ret)
  				return ret;
-@@ -626,6 +622,7 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
+@@ -629,6 +622,7 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
  	    master_priv->sarea_priv;
  	drm_i915_batchbuffer_t *batch = data;
  	int ret;
@@ -2977,7 +2938,7 @@ index 6d21b9e..c23b3a9 100644
  
  	if (!dev_priv->allow_batchbuffer) {
  		DRM_ERROR("Batchbuffer ioctl disabled\n");
-@@ -637,17 +634,35 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
+@@ -640,17 +634,35 @@ static int i915_batchbuffer(struct drm_device *dev, void *data,
  
  	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
  
@@ -3018,7 +2979,7 @@ index 6d21b9e..c23b3a9 100644
  	return ret;
  }
  
-@@ -659,6 +674,8 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
+@@ -662,6 +674,8 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
  	drm_i915_sarea_t *sarea_priv = (drm_i915_sarea_t *)
  	    master_priv->sarea_priv;
  	drm_i915_cmdbuffer_t *cmdbuf = data;
@@ -3027,7 +2988,7 @@ index 6d21b9e..c23b3a9 100644
  	int ret;
  
  	DRM_DEBUG("i915 cmdbuffer, buf %p sz %d cliprects %d\n",
-@@ -666,25 +683,50 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
+@@ -669,25 +683,50 @@ static int i915_cmdbuffer(struct drm_device *dev, void *data,
  
  	RING_LOCK_TEST_WITH_RETURN(dev, file_priv);
  
@@ -3087,7 +3048,7 @@ index 6d21b9e..c23b3a9 100644
  }
  
  static int i915_flip_bufs(struct drm_device *dev, void *data,
-@@ -880,7 +922,7 @@ static int i915_probe_agp(struct drm_device *dev, unsigned long *aperture_size,
+@@ -883,7 +922,7 @@ static int i915_probe_agp(struct drm_device *dev, unsigned long *aperture_size,
  	 * Some of the preallocated space is taken by the GTT
  	 * and popup.  GTT is 1K per MB of aperture size, and popup is 4K.
  	 */
@@ -3096,7 +3057,7 @@ index 6d21b9e..c23b3a9 100644
  		overhead = 4096;
  	else
  		overhead = (*aperture_size / 1024) + 4096;
-@@ -988,13 +1030,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
+@@ -991,13 +1030,6 @@ static int i915_load_modeset_init(struct drm_device *dev)
  	if (ret)
  		goto destroy_ringbuffer;
  
@@ -3110,7 +3071,7 @@ index 6d21b9e..c23b3a9 100644
  	/* Always safe in the mode setting case. */
  	/* FIXME: do pre/post-mode set stuff in core KMS code */
  	dev->vblank_disable_allowed = 1;
-@@ -1007,7 +1042,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
+@@ -1010,7 +1042,7 @@ static int i915_load_modeset_init(struct drm_device *dev)
  
  	intel_modeset_init(dev);
  
@@ -3119,7 +3080,7 @@ index 6d21b9e..c23b3a9 100644
  
  	return 0;
  
-@@ -1057,7 +1092,7 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master)
+@@ -1060,7 +1092,7 @@ void i915_master_destroy(struct drm_device *dev, struct drm_master *master)
  int i915_driver_load(struct drm_device *dev, unsigned long flags)
  {
  	struct drm_i915_private *dev_priv = dev->dev_private;
@@ -3298,7 +3259,7 @@ index d6cc986..317b122 100644
  #define PRIMARY_RINGBUFFER_SIZE         (128*1024)
  
 diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 37427e4..1449b45 100644
+index fb6390a..1449b45 100644
 --- a/drivers/gpu/drm/i915/i915_gem.c
 +++ b/drivers/gpu/drm/i915/i915_gem.c
 @@ -43,8 +43,8 @@ static int i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
@@ -4007,15 +3968,7 @@ index 37427e4..1449b45 100644
  
  #if WATCH_PWRITE
  	if (ret)
-@@ -603,6 +1072,7 @@ int i915_gem_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
- 	case -EAGAIN:
- 		return VM_FAULT_OOM;
- 	case -EFAULT:
-+	case -EINVAL:
- 		return VM_FAULT_SIGBUS;
- 	default:
- 		return VM_FAULT_NOPAGE;
-@@ -627,7 +1097,7 @@ i915_gem_create_mmap_offset(struct drm_gem_object *obj)
+@@ -628,7 +1097,7 @@ i915_gem_create_mmap_offset(struct drm_gem_object *obj)
  	struct drm_gem_mm *mm = dev->mm_private;
  	struct drm_i915_gem_object *obj_priv = obj->driver_private;
  	struct drm_map_list *list;
@@ -4024,7 +3977,7 @@ index 37427e4..1449b45 100644
  	int ret = 0;
  
  	/* Set the object up for mmap'ing */
-@@ -816,29 +1286,30 @@ i915_gem_mmap_gtt_ioctl(struct drm_device *dev, void *data,
+@@ -817,29 +1286,30 @@ i915_gem_mmap_gtt_ioctl(struct drm_device *dev, void *data,
  }
  
  static void
@@ -4064,7 +4017,7 @@ index 37427e4..1449b45 100644
  }
  
  static void
-@@ -854,8 +1325,10 @@ i915_gem_object_move_to_active(struct drm_gem_object *obj, uint32_t seqno)
+@@ -855,8 +1325,10 @@ i915_gem_object_move_to_active(struct drm_gem_object *obj, uint32_t seqno)
  		obj_priv->active = 1;
  	}
  	/* Move from whatever list we were on to the tail of execution. */
@@ -4075,7 +4028,7 @@ index 37427e4..1449b45 100644
  	obj_priv->last_rendering_seqno = seqno;
  }
  
-@@ -997,6 +1470,7 @@ i915_gem_retire_request(struct drm_device *dev,
+@@ -998,6 +1470,7 @@ i915_gem_retire_request(struct drm_device *dev,
  	/* Move any buffers on the active list that are no longer referenced
  	 * by the ringbuffer to the flushing/inactive lists as appropriate.
  	 */
@@ -4083,7 +4036,7 @@ index 37427e4..1449b45 100644
  	while (!list_empty(&dev_priv->mm.active_list)) {
  		struct drm_gem_object *obj;
  		struct drm_i915_gem_object *obj_priv;
-@@ -1011,7 +1485,7 @@ i915_gem_retire_request(struct drm_device *dev,
+@@ -1012,7 +1485,7 @@ i915_gem_retire_request(struct drm_device *dev,
  		 * this seqno.
  		 */
  		if (obj_priv->last_rendering_seqno != request->seqno)
@@ -4092,7 +4045,7 @@ index 37427e4..1449b45 100644
  
  #if WATCH_LRU
  		DRM_INFO("%s: retire %d moves to inactive list %p\n",
-@@ -1023,6 +1497,8 @@ i915_gem_retire_request(struct drm_device *dev,
+@@ -1024,6 +1497,8 @@ i915_gem_retire_request(struct drm_device *dev,
  		else
  			i915_gem_object_move_to_inactive(obj);
  	}
@@ -4101,7 +4054,7 @@ index 37427e4..1449b45 100644
  }
  
  /**
-@@ -1290,7 +1766,7 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
+@@ -1291,7 +1766,7 @@ i915_gem_object_unbind(struct drm_gem_object *obj)
  	if (obj_priv->fence_reg != I915_FENCE_REG_NONE)
  		i915_gem_clear_fence_reg(obj);
  
@@ -4110,7 +4063,7 @@ index 37427e4..1449b45 100644
  
  	if (obj_priv->gtt_space) {
  		atomic_dec(&dev->gtt_count);
-@@ -1409,7 +1885,7 @@ i915_gem_evict_everything(struct drm_device *dev)
+@@ -1410,7 +1885,7 @@ i915_gem_evict_everything(struct drm_device *dev)
  }
  
  static int
@@ -4119,7 +4072,7 @@ index 37427e4..1449b45 100644
  {
  	struct drm_i915_gem_object *obj_priv = obj->driver_private;
  	int page_count, i;
-@@ -1418,18 +1894,19 @@ i915_gem_object_get_page_list(struct drm_gem_object *obj)
+@@ -1419,18 +1894,19 @@ i915_gem_object_get_page_list(struct drm_gem_object *obj)
  	struct page *page;
  	int ret;
  
@@ -4144,7 +4097,7 @@ index 37427e4..1449b45 100644
  		return -ENOMEM;
  	}
  
-@@ -1440,10 +1917,10 @@ i915_gem_object_get_page_list(struct drm_gem_object *obj)
+@@ -1441,10 +1917,10 @@ i915_gem_object_get_page_list(struct drm_gem_object *obj)
  		if (IS_ERR(page)) {
  			ret = PTR_ERR(page);
  			DRM_ERROR("read_mapping_page failed: %d\n", ret);
@@ -4157,7 +4110,7 @@ index 37427e4..1449b45 100644
  	}
  	return 0;
  }
-@@ -1519,20 +1996,23 @@ static void i830_write_fence_reg(struct drm_i915_fence_reg *reg)
+@@ -1520,20 +1996,23 @@ static void i830_write_fence_reg(struct drm_i915_fence_reg *reg)
  	int regnum = obj_priv->fence_reg;
  	uint32_t val;
  	uint32_t pitch_val;
@@ -4185,7 +4138,7 @@ index 37427e4..1449b45 100644
  	val |= pitch_val << I830_FENCE_PITCH_SHIFT;
  	val |= I830_FENCE_REG_VALID;
  
-@@ -1723,7 +2203,7 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
+@@ -1724,7 +2203,7 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
  		return -EBUSY;
  	if (alignment == 0)
  		alignment = i915_gem_get_gtt_alignment(obj);
@@ -4194,7 +4147,7 @@ index 37427e4..1449b45 100644
  		DRM_ERROR("Invalid object alignment requested %u\n", alignment);
  		return -EINVAL;
  	}
-@@ -1740,15 +2220,20 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
+@@ -1741,15 +2220,20 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
  		}
  	}
  	if (obj_priv->gtt_space == NULL) {
@@ -4218,7 +4171,7 @@ index 37427e4..1449b45 100644
  			DRM_ERROR("GTT full, but LRU list empty\n");
  			return -ENOMEM;
  		}
-@@ -1766,7 +2251,7 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
+@@ -1767,7 +2251,7 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
  	DRM_INFO("Binding object of size %d at 0x%08x\n",
  		 obj->size, obj_priv->gtt_offset);
  #endif
@@ -4227,7 +4180,7 @@ index 37427e4..1449b45 100644
  	if (ret) {
  		drm_mm_put_block(obj_priv->gtt_space);
  		obj_priv->gtt_space = NULL;
-@@ -1778,12 +2263,12 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
+@@ -1779,12 +2263,12 @@ i915_gem_object_bind_to_gtt(struct drm_gem_object *obj, unsigned alignment)
  	 * into the GTT.
  	 */
  	obj_priv->agp_mem = drm_agp_bind_pages(dev,
@@ -4242,7 +4195,7 @@ index 37427e4..1449b45 100644
  		drm_mm_put_block(obj_priv->gtt_space);
  		obj_priv->gtt_space = NULL;
  		return -ENOMEM;
-@@ -1810,10 +2295,10 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
+@@ -1811,10 +2295,10 @@ i915_gem_clflush_object(struct drm_gem_object *obj)
  	 * to GPU, and we can ignore the cache flush because it'll happen
  	 * again at bind time.
  	 */
@@ -4255,7 +4208,7 @@ index 37427e4..1449b45 100644
  }
  
  /** Flushes any GPU write domain for the object if it's dirty. */
-@@ -1913,7 +2398,6 @@ i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, int write)
+@@ -1914,7 +2398,6 @@ i915_gem_object_set_to_gtt_domain(struct drm_gem_object *obj, int write)
  static int
  i915_gem_object_set_to_cpu_domain(struct drm_gem_object *obj, int write)
  {
@@ -4263,7 +4216,7 @@ index 37427e4..1449b45 100644
  	int ret;
  
  	i915_gem_object_flush_gpu_write_domain(obj);
-@@ -1932,7 +2416,6 @@ i915_gem_object_set_to_cpu_domain(struct drm_gem_object *obj, int write)
+@@ -1933,7 +2416,6 @@ i915_gem_object_set_to_cpu_domain(struct drm_gem_object *obj, int write)
  	/* Flush the CPU cache if it's still invalid. */
  	if ((obj->read_domains & I915_GEM_DOMAIN_CPU) == 0) {
  		i915_gem_clflush_object(obj);
@@ -4271,7 +4224,7 @@ index 37427e4..1449b45 100644
  
  		obj->read_domains |= I915_GEM_DOMAIN_CPU;
  	}
-@@ -2144,7 +2627,6 @@ i915_gem_object_set_to_gpu_domain(struct drm_gem_object *obj)
+@@ -2145,7 +2627,6 @@ i915_gem_object_set_to_gpu_domain(struct drm_gem_object *obj)
  static void
  i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj)
  {
@@ -4279,7 +4232,7 @@ index 37427e4..1449b45 100644
  	struct drm_i915_gem_object *obj_priv = obj->driver_private;
  
  	if (!obj_priv->page_cpu_valid)
-@@ -2158,9 +2640,8 @@ i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj)
+@@ -2159,9 +2640,8 @@ i915_gem_object_set_to_full_cpu_read_domain(struct drm_gem_object *obj)
  		for (i = 0; i <= (obj->size - 1) / PAGE_SIZE; i++) {
  			if (obj_priv->page_cpu_valid[i])
  				continue;
@@ -4290,7 +4243,7 @@ index 37427e4..1449b45 100644
  	}
  
  	/* Free the page_cpu_valid mappings which are now stale, whether
-@@ -2224,7 +2705,7 @@ i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
+@@ -2225,7 +2705,7 @@ i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
  		if (obj_priv->page_cpu_valid[i])
  			continue;
  
@@ -4299,7 +4252,7 @@ index 37427e4..1449b45 100644
  
  		obj_priv->page_cpu_valid[i] = 1;
  	}
-@@ -2245,12 +2726,11 @@ i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
+@@ -2246,12 +2726,11 @@ i915_gem_object_set_cpu_read_domain_range(struct drm_gem_object *obj,
  static int
  i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
  				 struct drm_file *file_priv,
@@ -4314,7 +4267,7 @@ index 37427e4..1449b45 100644
  	struct drm_i915_gem_object *obj_priv = obj->driver_private;
  	int i, ret;
  	void __iomem *reloc_page;
-@@ -2262,25 +2742,18 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
+@@ -2263,25 +2742,18 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
  
  	entry->offset = obj_priv->gtt_offset;
  
@@ -4342,7 +4295,7 @@ index 37427e4..1449b45 100644
  		if (target_obj == NULL) {
  			i915_gem_object_unpin(obj);
  			return -EBADF;
-@@ -2292,53 +2765,53 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
+@@ -2293,53 +2765,53 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
  		 */
  		if (target_obj_priv->gtt_space == NULL) {
  			DRM_ERROR("No GTT space found for object %d\n",
@@ -4414,7 +4367,7 @@ index 37427e4..1449b45 100644
  				  target_obj->pending_write_domain);
  			drm_gem_object_unreference(target_obj);
  			i915_gem_object_unpin(obj);
-@@ -2351,22 +2824,22 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
+@@ -2352,22 +2824,22 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
  			 "presumed %08x delta %08x\n",
  			 __func__,
  			 obj,
@@ -4446,7 +4399,7 @@ index 37427e4..1449b45 100644
  			drm_gem_object_unreference(target_obj);
  			continue;
  		}
-@@ -2381,32 +2854,26 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
+@@ -2382,32 +2854,26 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
  		/* Map the page containing the relocation we're going to
  		 * perform.
  		 */
@@ -4485,7 +4438,7 @@ index 37427e4..1449b45 100644
  
  		drm_gem_object_unreference(target_obj);
  	}
-@@ -2423,11 +2890,10 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
+@@ -2424,11 +2890,10 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
  static int
  i915_dispatch_gem_execbuffer(struct drm_device *dev,
  			      struct drm_i915_gem_execbuffer *exec,
@@ -4498,7 +4451,7 @@ index 37427e4..1449b45 100644
  	int nbox = exec->num_cliprects;
  	int i = 0, count;
  	uint32_t	exec_start, exec_len;
-@@ -2448,7 +2914,7 @@ i915_dispatch_gem_execbuffer(struct drm_device *dev,
+@@ -2449,7 +2914,7 @@ i915_dispatch_gem_execbuffer(struct drm_device *dev,
  
  	for (i = 0; i < count; i++) {
  		if (i < nbox) {
@@ -4507,7 +4460,7 @@ index 37427e4..1449b45 100644
  						exec->DR1, exec->DR4);
  			if (ret)
  				return ret;
-@@ -2504,6 +2970,75 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file_priv)
+@@ -2505,6 +2970,75 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file_priv)
  	return ret;
  }
  
@@ -4583,7 +4536,7 @@ index 37427e4..1449b45 100644
  int
  i915_gem_execbuffer(struct drm_device *dev, void *data,
  		    struct drm_file *file_priv)
-@@ -2515,9 +3050,11 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -2516,9 +3050,11 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  	struct drm_gem_object **object_list = NULL;
  	struct drm_gem_object *batch_obj;
  	struct drm_i915_gem_object *obj_priv;
@@ -4597,7 +4550,7 @@ index 37427e4..1449b45 100644
  	int pin_tries;
  
  #if WATCH_EXEC
-@@ -2551,6 +3088,28 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -2552,6 +3088,28 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  		goto pre_mutex_err;
  	}
  
@@ -4626,7 +4579,7 @@ index 37427e4..1449b45 100644
  	mutex_lock(&dev->struct_mutex);
  
  	i915_verify_inactive(dev, __FILE__, __LINE__);
-@@ -2593,15 +3152,19 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -2594,15 +3152,19 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  	/* Pin and relocate */
  	for (pin_tries = 0; ; pin_tries++) {
  		ret = 0;
@@ -4647,7 +4600,7 @@ index 37427e4..1449b45 100644
  		}
  		/* success */
  		if (ret == 0)
-@@ -2687,7 +3250,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
+@@ -2688,7 +3250,7 @@ i915_gem_execbuffer(struct drm_device *dev, void *data,
  #endif
  
  	/* Exec the batchbuffer */
@@ -4656,7 +4609,7 @@ index 37427e4..1449b45 100644
  	if (ret) {
  		DRM_ERROR("dispatch failed %d\n", ret);
  		goto err;
-@@ -2751,11 +3314,27 @@ err:
+@@ -2752,11 +3314,27 @@ err:
  				  args->buffer_count, ret);
  	}
  
@@ -4684,7 +4637,7 @@ index 37427e4..1449b45 100644
  
  	return ret;
  }
-@@ -3110,6 +3689,7 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3111,6 +3689,7 @@ i915_gem_idle(struct drm_device *dev)
  
  	i915_gem_retire_requests(dev);
  
@@ -4692,7 +4645,7 @@ index 37427e4..1449b45 100644
  	if (!dev_priv->mm.wedged) {
  		/* Active and flushing should now be empty as we've
  		 * waited for a sequence higher than any pending execbuffer
-@@ -3136,6 +3716,7 @@ i915_gem_idle(struct drm_device *dev)
+@@ -3137,6 +3716,7 @@ i915_gem_idle(struct drm_device *dev)
  		obj_priv->obj->write_domain &= ~I915_GEM_GPU_DOMAINS;
  		i915_gem_object_move_to_inactive(obj_priv->obj);
  	}
@@ -4700,7 +4653,7 @@ index 37427e4..1449b45 100644
  
  	while (!list_empty(&dev_priv->mm.flushing_list)) {
  		struct drm_i915_gem_object *obj_priv;
-@@ -3192,7 +3773,7 @@ i915_gem_init_hws(struct drm_device *dev)
+@@ -3193,7 +3773,7 @@ i915_gem_init_hws(struct drm_device *dev)
  
  	dev_priv->status_gfx_addr = obj_priv->gtt_offset;
  
@@ -4709,7 +4662,7 @@ index 37427e4..1449b45 100644
  	if (dev_priv->hw_status_page == NULL) {
  		DRM_ERROR("Failed to map status page.\n");
  		memset(&dev_priv->hws_map, 0, sizeof(dev_priv->hws_map));
-@@ -3222,7 +3803,7 @@ i915_gem_cleanup_hws(struct drm_device *dev)
+@@ -3223,7 +3803,7 @@ i915_gem_cleanup_hws(struct drm_device *dev)
  	obj = dev_priv->hws_obj;
  	obj_priv = obj->driver_private;
  
@@ -4718,7 +4671,7 @@ index 37427e4..1449b45 100644
  	i915_gem_object_unpin(obj);
  	drm_gem_object_unreference(obj);
  	dev_priv->hws_obj = NULL;
-@@ -3384,7 +3965,10 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
+@@ -3385,7 +3965,10 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
  	if (ret != 0)
  		return ret;
  
@@ -4729,7 +4682,7 @@ index 37427e4..1449b45 100644
  	BUG_ON(!list_empty(&dev_priv->mm.flushing_list));
  	BUG_ON(!list_empty(&dev_priv->mm.inactive_list));
  	BUG_ON(!list_empty(&dev_priv->mm.request_list));
-@@ -3428,6 +4012,7 @@ i915_gem_load(struct drm_device *dev)
+@@ -3429,6 +4012,7 @@ i915_gem_load(struct drm_device *dev)
  {
  	drm_i915_private_t *dev_priv = dev->dev_private;
  
@@ -4737,7 +4690,7 @@ index 37427e4..1449b45 100644
  	INIT_LIST_HEAD(&dev_priv->mm.active_list);
  	INIT_LIST_HEAD(&dev_priv->mm.flushing_list);
  	INIT_LIST_HEAD(&dev_priv->mm.inactive_list);
-@@ -3525,20 +4110,20 @@ void i915_gem_detach_phys_object(struct drm_device *dev,
+@@ -3526,20 +4110,20 @@ void i915_gem_detach_phys_object(struct drm_device *dev,
  	if (!obj_priv->phys_obj)
  		return;
  
@@ -4761,7 +4714,7 @@ index 37427e4..1449b45 100644
  	drm_agp_chipset_flush(dev);
  out:
  	obj_priv->phys_obj->cur_obj = NULL;
-@@ -3581,7 +4166,7 @@ i915_gem_attach_phys_object(struct drm_device *dev,
+@@ -3582,7 +4166,7 @@ i915_gem_attach_phys_object(struct drm_device *dev,
  	obj_priv->phys_obj = dev_priv->mm.phys_objs[id - 1];
  	obj_priv->phys_obj->cur_obj = obj;
  
@@ -4770,7 +4723,7 @@ index 37427e4..1449b45 100644
  	if (ret) {
  		DRM_ERROR("failed to get page list\n");
  		goto out;
-@@ -3590,7 +4175,7 @@ i915_gem_attach_phys_object(struct drm_device *dev,
+@@ -3591,7 +4175,7 @@ i915_gem_attach_phys_object(struct drm_device *dev,
  	page_count = obj->size / PAGE_SIZE;
  
  	for (i = 0; i < page_count; i++) {
@@ -5408,62 +5361,10 @@ index 4d1b9de..0000000
 -		remove_proc_entry(i915_gem_proc_list[i].name, minor->dev_root);
 -}
 diff --git a/drivers/gpu/drm/i915/i915_gem_tiling.c b/drivers/gpu/drm/i915/i915_gem_tiling.c
-index 7fb4191..6be3f92 100644
+index 4cce1ae..6be3f92 100644
 --- a/drivers/gpu/drm/i915/i915_gem_tiling.c
 +++ b/drivers/gpu/drm/i915/i915_gem_tiling.c
-@@ -96,16 +96,16 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
- 		 */
- 		swizzle_x = I915_BIT_6_SWIZZLE_NONE;
- 		swizzle_y = I915_BIT_6_SWIZZLE_NONE;
--	} else if ((!IS_I965G(dev) && !IS_G33(dev)) || IS_I965GM(dev) ||
--		   IS_GM45(dev)) {
-+	} else if (IS_MOBILE(dev)) {
- 		uint32_t dcc;
- 
--		/* On 915-945 and GM965, channel interleave by the CPU is
--		 * determined by DCC.  The CPU will alternate based on bit 6
--		 * in interleaved mode, and the GPU will then also alternate
--		 * on bit 6, 9, and 10 for X, but the CPU may also optionally
--		 * alternate based on bit 17 (XOR not disabled and XOR
--		 * bit == 17).
-+		/* On mobile 9xx chipsets, channel interleave by the CPU is
-+		 * determined by DCC.  For single-channel, neither the CPU
-+		 * nor the GPU do swizzling.  For dual channel interleaved,
-+		 * the GPU's interleave is bit 9 and 10 for X tiled, and bit
-+		 * 9 for Y tiled.  The CPU's interleave is independent, and
-+		 * can be based on either bit 11 (haven't seen this yet) or
-+		 * bit 17 (common).
- 		 */
- 		dcc = I915_READ(DCC);
- 		switch (dcc & DCC_ADDRESSING_MODE_MASK) {
-@@ -115,19 +115,18 @@ i915_gem_detect_bit_6_swizzle(struct drm_device *dev)
- 			swizzle_y = I915_BIT_6_SWIZZLE_NONE;
- 			break;
- 		case DCC_ADDRESSING_MODE_DUAL_CHANNEL_INTERLEAVED:
--			if (IS_I915G(dev) || IS_I915GM(dev) ||
--			    dcc & DCC_CHANNEL_XOR_DISABLE) {
-+			if (dcc & DCC_CHANNEL_XOR_DISABLE) {
-+				/* This is the base swizzling by the GPU for
-+				 * tiled buffers.
-+				 */
- 				swizzle_x = I915_BIT_6_SWIZZLE_9_10;
- 				swizzle_y = I915_BIT_6_SWIZZLE_9;
--			} else if ((IS_I965GM(dev) || IS_GM45(dev)) &&
--				   (dcc & DCC_CHANNEL_XOR_BIT_17) == 0) {
--				/* GM965/GM45 does either bit 11 or bit 17
--				 * swizzling.
--				 */
-+			} else if ((dcc & DCC_CHANNEL_XOR_BIT_17) == 0) {
-+				/* Bit 11 swizzling by the CPU in addition. */
- 				swizzle_x = I915_BIT_6_SWIZZLE_9_10_11;
- 				swizzle_y = I915_BIT_6_SWIZZLE_9_11;
- 			} else {
--				/* Bit 17 or perhaps other swizzling */
-+				/* Bit 17 swizzling by the CPU in addition. */
- 				swizzle_x = I915_BIT_6_SWIZZLE_UNKNOWN;
- 				swizzle_y = I915_BIT_6_SWIZZLE_UNKNOWN;
- 			}
-@@ -217,6 +216,22 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
+@@ -216,6 +216,22 @@ i915_tiling_ok(struct drm_device *dev, int stride, int size, int tiling_mode)
  	else
  		tile_width = 512;
  
@@ -5617,7 +5518,7 @@ index 87b6b60..ee7ce7b 100644
  	I915_WRITE(PIPEASTAT, 0);
  	I915_WRITE(PIPEBSTAT, 0);
 diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 90600d8..e805b59 100644
+index cc2938d..e805b59 100644
 --- a/drivers/gpu/drm/i915/i915_reg.h
 +++ b/drivers/gpu/drm/i915/i915_reg.h
 @@ -190,6 +190,8 @@
@@ -5666,25 +5567,10 @@ index 90600d8..e805b59 100644
  #define   FP_M2_DIV_SHIFT		 0
  #define DPLL_TEST	0x606c
  #define   DPLLB_TEST_SDVO_DIV_1		(0 << 22)
-@@ -629,6 +636,30 @@
- #define   TV_HOTPLUG_INT_EN			(1 << 18)
- #define   CRT_HOTPLUG_INT_EN			(1 << 9)
- #define   CRT_HOTPLUG_FORCE_DETECT		(1 << 3)
-+#define CRT_HOTPLUG_ACTIVATION_PERIOD_32	(0 << 8)
-+/* must use period 64 on GM45 according to docs */
-+#define CRT_HOTPLUG_ACTIVATION_PERIOD_64	(1 << 8)
-+#define CRT_HOTPLUG_DAC_ON_TIME_2M		(0 << 7)
-+#define CRT_HOTPLUG_DAC_ON_TIME_4M		(1 << 7)
-+#define CRT_HOTPLUG_VOLTAGE_COMPARE_40		(0 << 5)
-+#define CRT_HOTPLUG_VOLTAGE_COMPARE_50		(1 << 5)
-+#define CRT_HOTPLUG_VOLTAGE_COMPARE_60		(2 << 5)
-+#define CRT_HOTPLUG_VOLTAGE_COMPARE_70		(3 << 5)
-+#define CRT_HOTPLUG_VOLTAGE_COMPARE_MASK	(3 << 5)
-+#define CRT_HOTPLUG_DETECT_DELAY_1G		(0 << 4)
-+#define CRT_HOTPLUG_DETECT_DELAY_2G		(1 << 4)
-+#define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
-+#define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
-+#define CRT_HOTPLUG_MASK			(0x3fc) /* Bits 9-2 */
+@@ -644,6 +651,14 @@
+ #define CRT_HOTPLUG_DETECT_VOLTAGE_325MV	(0 << 2)
+ #define CRT_HOTPLUG_DETECT_VOLTAGE_475MV	(1 << 2)
+ #define CRT_HOTPLUG_MASK			(0x3fc) /* Bits 9-2 */
 +#define CRT_FORCE_HOTPLUG_MASK			0xfffffe1f
 +#define HOTPLUG_EN_MASK (HDMIB_HOTPLUG_INT_EN | \
 +			 HDMIC_HOTPLUG_INT_EN |	  \
@@ -5693,11 +5579,10 @@ index 90600d8..e805b59 100644
 +			 SDVOC_HOTPLUG_INT_EN |	  \
 +			 TV_HOTPLUG_INT_EN |	  \
 +			 CRT_HOTPLUG_INT_EN)
-+
+ 
  
  #define PORT_HOTPLUG_STAT	0x61114
- #define   HDMIB_HOTPLUG_INT_STATUS		(1 << 29)
-@@ -856,7 +887,7 @@
+@@ -872,7 +887,7 @@
   */
  # define TV_ENC_C0_FIX			(1 << 10)
  /** Bits that must be preserved by software */
@@ -5731,7 +5616,7 @@ index 5ea715a..de621aa 100644
  } __attribute__((packed));
  
 diff --git a/drivers/gpu/drm/i915/intel_crt.c b/drivers/gpu/drm/i915/intel_crt.c
-index dcaed34..9bdd959 100644
+index 61c108e..9bdd959 100644
 --- a/drivers/gpu/drm/i915/intel_crt.c
 +++ b/drivers/gpu/drm/i915/intel_crt.c
 @@ -41,7 +41,7 @@ static void intel_crt_dpms(struct drm_encoder *encoder, int mode)
@@ -5783,61 +5668,17 @@ index dcaed34..9bdd959 100644
  
  	I915_WRITE(ADPA, adpa);
  }
-@@ -133,20 +146,39 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
- {
- 	struct drm_device *dev = connector->dev;
- 	struct drm_i915_private *dev_priv = dev->dev_private;
--	u32 temp;
--
--	unsigned long timeout = jiffies + msecs_to_jiffies(1000);
--
--	temp = I915_READ(PORT_HOTPLUG_EN);
--
--	I915_WRITE(PORT_HOTPLUG_EN,
--		   temp | CRT_HOTPLUG_FORCE_DETECT | (1 << 5));
-+	u32 hotplug_en;
-+	int i, tries = 0;
-+	/*
-+	 * On 4 series desktop, CRT detect sequence need to be done twice
-+	 * to get a reliable result.
-+	 */
- 
--	do {
--		if (!(I915_READ(PORT_HOTPLUG_EN) & CRT_HOTPLUG_FORCE_DETECT))
--			break;
--		msleep(1);
--	} while (time_after(timeout, jiffies));
-+	if (IS_G4X(dev) && !IS_GM45(dev))
-+		tries = 2;
-+	else
-+		tries = 1;
-+	hotplug_en = I915_READ(PORT_HOTPLUG_EN);
+@@ -145,7 +158,7 @@ static bool intel_crt_detect_hotplug(struct drm_connector *connector)
+ 	else
+ 		tries = 1;
+ 	hotplug_en = I915_READ(PORT_HOTPLUG_EN);
+-	hotplug_en &= ~(CRT_HOTPLUG_MASK);
 +	hotplug_en &= CRT_FORCE_HOTPLUG_MASK;
-+	hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
-+
-+	if (IS_GM45(dev))
-+		hotplug_en |= CRT_HOTPLUG_ACTIVATION_PERIOD_64;
-+
-+	hotplug_en |= CRT_HOTPLUG_VOLTAGE_COMPARE_50;
-+
-+	for (i = 0; i < tries ; i++) {
-+		unsigned long timeout;
-+		/* turn on the FORCE_DETECT */
-+		I915_WRITE(PORT_HOTPLUG_EN, hotplug_en);
-+		timeout = jiffies + msecs_to_jiffies(1000);
-+		/* wait for FORCE_DETECT to go off */
-+		do {
-+			if (!(I915_READ(PORT_HOTPLUG_EN) &
-+					CRT_HOTPLUG_FORCE_DETECT))
-+				break;
-+			msleep(1);
-+		} while (time_after(timeout, jiffies));
-+	}
+ 	hotplug_en |= CRT_HOTPLUG_FORCE_DETECT;
  
- 	if ((I915_READ(PORT_HOTPLUG_STAT) & CRT_HOTPLUG_MONITOR_MASK) ==
- 	    CRT_HOTPLUG_MONITOR_COLOR)
+ 	if (IS_GM45(dev))
 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index a283427..64773ce 100644
+index 601a76f..64773ce 100644
 --- a/drivers/gpu/drm/i915/intel_display.c
 +++ b/drivers/gpu/drm/i915/intel_display.c
 @@ -56,11 +56,13 @@ typedef struct {
@@ -6178,7 +6019,7 @@ index a283427..64773ce 100644
 -static void intel_clock(int refclk, intel_clock_t *clock)
 +/* m1 is reserved as 0 in IGD, n is a ring counter */
 +static void igd_clock(int refclk, intel_clock_t *clock)
-+{
+ {
 +	clock->m = clock->m2 + 2;
 +	clock->p = clock->p1 * clock->p2;
 +	clock->vco = refclk * clock->m / clock->n;
@@ -6186,7 +6027,7 @@ index a283427..64773ce 100644
 +}
 +
 +static void intel_clock(struct drm_device *dev, int refclk, intel_clock_t *clock)
- {
++{
 +	if (IS_IGD(dev)) {
 +		igd_clock(refclk, clock);
 +		return;
@@ -6453,29 +6294,6 @@ index a283427..64773ce 100644
  		}
  	}
  
-@@ -1474,13 +1834,21 @@ static void intel_setup_outputs(struct drm_device *dev)
- 
- 	if (IS_I9XX(dev)) {
- 		int found;
-+		u32 reg;
- 
- 		if (I915_READ(SDVOB) & SDVO_DETECTED) {
- 			found = intel_sdvo_init(dev, SDVOB);
- 			if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
- 				intel_hdmi_init(dev, SDVOB);
- 		}
--		if (!IS_G4X(dev) || (I915_READ(SDVOB) & SDVO_DETECTED)) {
-+
-+		/* Before G4X SDVOC doesn't have its own detect register */
-+		if (IS_G4X(dev))
-+			reg = SDVOC;
-+		else
-+			reg = SDVOB;
-+
-+		if (I915_READ(reg) & SDVO_DETECTED) {
- 			found = intel_sdvo_init(dev, SDVOC);
- 			if (!found && SUPPORTS_INTEGRATED_HDMI(dev))
- 				intel_hdmi_init(dev, SDVOC);
 diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
 index 0d211af..6619f26 100644
 --- a/drivers/gpu/drm/i915/intel_lvds.c
@@ -6867,7 +6685,7 @@ index 1117b9c..193938b 100644
  
  /* I2C registers for SDVO */
 diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index 56485d6..d2c3298 100644
+index b05cb67..0ab2d3a 100644
 --- a/drivers/gpu/drm/i915/intel_tv.c
 +++ b/drivers/gpu/drm/i915/intel_tv.c
 @@ -217,8 +217,8 @@ static const u32 filter_table[] = {
@@ -7294,59 +7112,11 @@ index 56485d6..d2c3298 100644
  }
  
  static void
-@@ -1558,33 +1570,49 @@ intel_tv_set_property(struct drm_connector *connector, struct drm_property *prop
- 	struct drm_device *dev = connector->dev;
- 	struct intel_output *intel_output = to_intel_output(connector);
- 	struct intel_tv_priv *tv_priv = intel_output->dev_priv;
-+	struct drm_encoder *encoder = &intel_output->enc;
-+	struct drm_crtc *crtc = encoder->crtc;
- 	int ret = 0;
-+	bool changed = false;
- 
- 	ret = drm_connector_property_set_value(connector, property, val);
- 	if (ret < 0)
- 		goto out;
- 
--	if (property == dev->mode_config.tv_left_margin_property)
-+	if (property == dev->mode_config.tv_left_margin_property &&
-+		tv_priv->margin[TV_MARGIN_LEFT] != val) {
- 		tv_priv->margin[TV_MARGIN_LEFT] = val;
--	else if (property == dev->mode_config.tv_right_margin_property)
-+		changed = true;
-+	} else if (property == dev->mode_config.tv_right_margin_property &&
-+		tv_priv->margin[TV_MARGIN_RIGHT] != val) {
- 		tv_priv->margin[TV_MARGIN_RIGHT] = val;
--	else if (property == dev->mode_config.tv_top_margin_property)
-+		changed = true;
-+	} else if (property == dev->mode_config.tv_top_margin_property &&
-+		tv_priv->margin[TV_MARGIN_TOP] != val) {
- 		tv_priv->margin[TV_MARGIN_TOP] = val;
--	else if (property == dev->mode_config.tv_bottom_margin_property)
-+		changed = true;
-+	} else if (property == dev->mode_config.tv_bottom_margin_property &&
-+		tv_priv->margin[TV_MARGIN_BOTTOM] != val) {
- 		tv_priv->margin[TV_MARGIN_BOTTOM] = val;
--	else if (property == dev->mode_config.tv_mode_property) {
-+		changed = true;
-+	} else if (property == dev->mode_config.tv_mode_property) {
- 		if (val >= NUM_TV_MODES) {
- 			ret = -EINVAL;
- 			goto out;
- 		}
-+		if (!strcmp(tv_priv->tv_format, tv_modes[val].name))
-+			goto out;
-+
- 		tv_priv->tv_format = tv_modes[val].name;
--		intel_tv_mode_set(&intel_output->enc, NULL, NULL);
-+		changed = true;
- 	} else {
- 		ret = -EINVAL;
- 		goto out;
- 	}
+@@ -1600,7 +1612,7 @@ intel_tv_set_property(struct drm_connector *connector, struct drm_property *prop
  
--	intel_tv_mode_set(&intel_output->enc, NULL, NULL);
-+	if (changed && crtc)
-+		drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x,
+ 	if (changed && crtc)
+ 		drm_crtc_helper_set_mode(crtc, &crtc->mode, crtc->x,
+-				crtc->y, crtc->fb);
 +				crtc->y, crtc->fb, 0);
  out:
  	return ret;


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/kernel.spec,v
retrieving revision 1.1580
retrieving revision 1.1581
diff -u -p -r1.1580 -r1.1581
--- kernel.spec	30 Apr 2009 09:34:25 -0000	1.1580
+++ kernel.spec	1 May 2009 18:41:25 -0000	1.1581
@@ -37,7 +37,7 @@ Summary: The Linux kernel
 %if 0%{?released_kernel}
 
 # Do we have a -stable update to apply?
-%define stable_update 1
+%define stable_update 2
 # Is it a -stable RC?
 %define stable_rc 0
 # Set rpm version accordingly
@@ -600,7 +600,6 @@ Patch30: linux-2.6-iommu-fixes.patch
 
 Patch41: linux-2.6-sysrq-c.patch
 
-Patch100: linux-2.6-e820-mark-esi-clobbered.patch
 Patch101: linux-2.6-e820-save-restore-edi-ebp.patch
 Patch102: linux-2.6-e820-acpi3-bios-workaround.patch
 Patch103: linux-2.6-e820-guard-against-pre-acpi3.patch
@@ -629,7 +628,6 @@ Patch392: linux-2.6-acpi-strict-resource
 Patch393: linux-2.6-hwmon-atk0110.patch
 Patch394: linux-2.6-acpi-video-didl-intel-outputs.patch
 Patch395: linux-2.6-sony-laptop-rfkill.patch
-Patch396: linux-2.6-acer-wmi-bail-on-aao.patch
 Patch400: linux-2.6-scsi-cpqarray-set-master.patch
 Patch450: linux-2.6-input-kill-stupid-messages.patch
 Patch451: linux-2.6-input-fix-toshiba-hotkeys.patch
@@ -647,7 +645,6 @@ Patch511: linux-2.6-shut-up-efifb.patch
 Patch530: linux-2.6-silence-fbcon-logo.patch
 Patch570: linux-2.6-selinux-mprotect-checks.patch
 Patch580: linux-2.6-sparc-selinux-mprotect-checks.patch
-Patch590: linux-2.6.29.1-sparc-regression.patch
 Patch600: linux-2.6-defaults-alsa-hda-beep-off.patch
 Patch601: alsa-rewrite-hw_ptr-updaters.patch
 Patch602: alsa-pcm-always-reset-invalid-position.patch
@@ -707,8 +704,6 @@ Patch2201: linux-2.6-firewire-git-pendin
 # silence the ACPI blacklist code
 Patch2802: linux-2.6-silence-acpi-blacklist.patch
 
-Patch2899: linux-2.6-v4l-dvb-fixes.patch
-Patch2900: linux-2.6-v4l-dvb-update.patch
 Patch2901: linux-2.6-v4l-dvb-experimental.patch
 Patch2902: linux-2.6-v4l-dvb-fix-uint16_t-audio-h.patch
 Patch2903: linux-2.6-revert-dvb-net-kabi-change.patch
@@ -727,17 +722,8 @@ Patch4000: linux-2.6-usb-cdc-acm-remove-
 Patch5000: linux-2.6-add-qcserial.patch
 
 # patches headed for -stable
-# fix oops in md raid1 (#495550)
-Patch6000: linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch
 # fix squashfs on systems where pagesize > blocksize (ia64, ppc64 w/64k pages)
 Patch6010: squashfs-broken-when-pagesize-greater-than-blocksize.patch
-# fix duplicated flags value
-Patch7000: linux-2.6-mm-define-unique-value-for-as_unevictable.patch
-# fix posix clock monotonicity
-Patch7001: linux-2.6-posix-timers-fix-clock-monotonicity.patch
-# make RLIMIT_CPU work again
-Patch7003: linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch
-Patch7004: linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch
 Patch7005: linux-2.6-i2c-fix-bit-algorithm-timeout.patch
 
 Patch9000: hpet-fixes.patch
@@ -749,18 +735,10 @@ Patch9002: cpufreq-add-atom-to-p4-clockm
 #Adding dropwatch into rawhide until we get to 2.6.30
 Patch9003: linux-2.6-dropwatch-protocol.patch
 
-# fix for net lockups, will be in 2.6.29.1
-Patch9101: linux-2.6-net-fix-another-gro-bug.patch
-
 # kvm fixes
-Patch9300: linux-2.6-kvm-kconfig-irqchip.patch
-Patch9301: linux-2.6-kvm-mask-notifiers.patch
-Patch9302: linux-2.6-kvm-reset-pit-irq-on-unmask.patch
 Patch9303: linux-2.6-kvm-skip-pit-check.patch
 Patch9304: linux-2.6-xen-check-for-nx-support.patch
 
-Patch9400: pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch
-
 # FPU state can become corrupt
 Patch9510: linux-2.6-x86-64-fix-fpu-corruption-with-signals-and-preemption.patch
 
@@ -1171,7 +1149,6 @@ ApplyPatch linux-2.6-sysrq-c.patch
 
 # Architecture patches
 # x86(-64)
-ApplyPatch linux-2.6-e820-mark-esi-clobbered.patch
 ApplyPatch linux-2.6-e820-save-restore-edi-ebp.patch
 ApplyPatch linux-2.6-e820-acpi3-bios-workaround.patch
 ApplyPatch linux-2.6-e820-guard-against-pre-acpi3.patch
@@ -1196,7 +1173,6 @@ ApplyPatch linux-2.6-imac-transparent-br
 #
 
 ApplyPatch linux-2.6.29-sparc-IOC_TYPECHECK.patch
-ApplyPatch linux-2.6.29.1-sparc-regression.patch
 #
 # Exec shield
 #
@@ -1233,7 +1209,6 @@ ApplyPatch linux-2.6-acpi-strict-resourc
 ApplyPatch linux-2.6-hwmon-atk0110.patch
 ApplyPatch linux-2.6-acpi-video-didl-intel-outputs.patch
 ApplyPatch linux-2.6-sony-laptop-rfkill.patch
-ApplyPatch linux-2.6-acer-wmi-bail-on-aao.patch
 
 # Various low-impact patches to aid debugging.
 ApplyPatch linux-2.6-debug-sizeof-structs.patch
@@ -1377,19 +1352,12 @@ C=$(wc -l $RPM_SOURCE_DIR/linux-2.6-fire
 ApplyPatch linux-2.6-silence-acpi-blacklist.patch
 
 # V4L/DVB updates/fixes/experimental drivers
-ApplyPatch linux-2.6-v4l-dvb-fixes.patch
-ApplyPatch linux-2.6-v4l-dvb-update.patch
 ApplyPatch linux-2.6-v4l-dvb-experimental.patch
 ApplyPatch linux-2.6-v4l-dvb-fix-uint16_t-audio-h.patch
 ApplyPatch linux-2.6-revert-dvb-net-kabi-change.patch
 
 # patches headed for -stable
-ApplyPatch linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch
 ApplyPatch squashfs-broken-when-pagesize-greater-than-blocksize.patch
-ApplyPatch linux-2.6-mm-define-unique-value-for-as_unevictable.patch
-ApplyPatch linux-2.6-posix-timers-fix-clock-monotonicity.patch
-ApplyPatch linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch
-ApplyPatch linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch
 ApplyPatch linux-2.6-i2c-fix-bit-algorithm-timeout.patch
 
 ApplyPatch hpet-fixes.patch
@@ -1401,17 +1369,10 @@ ApplyPatch cpufreq-add-atom-to-p4-clockm
 
 ApplyPatch linux-2.6-dropwatch-protocol.patch
 
-ApplyPatch linux-2.6-net-fix-another-gro-bug.patch
-
 # kvm fixes
-ApplyPatch linux-2.6-kvm-kconfig-irqchip.patch
-ApplyPatch linux-2.6-kvm-mask-notifiers.patch
-ApplyPatch linux-2.6-kvm-reset-pit-irq-on-unmask.patch
 ApplyPatch linux-2.6-kvm-skip-pit-check.patch
 ApplyPatch linux-2.6-xen-check-for-nx-support.patch
 
-ApplyPatch pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch
-
 ApplyPatch linux-2.6-x86-64-fix-fpu-corruption-with-signals-and-preemption.patch
 
 # END OF PATCH APPLICATIONS
@@ -1999,6 +1960,28 @@ fi
 # and build.
 
 %changelog
+* Thu Apr 30 2009 Kyle McMartin <kyle at redhat.com> 2.6.29.2-119
+- Update to 2.6.29.2
+- Patches rebased:
+  linux-2.6-v4l-dvb-experimental.patch
+  drm-next.patch
+- Patches merged upstream:
+  linux-2.6-acer-wmi-bail-on-aao.patch
+  linux-2.6-e820-mark-esi-clobbered.patch
+  linux-2.6-kvm-kconfig-irqchip.patch
+  linux-2.6-kvm-mask-notifiers.patch
+  linux-2.6-kvm-reset-pit-irq-on-unmask.patch
+  linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch
+  linux-2.6-mm-define-unique-value-for-as_unevictable.patch
+  linux-2.6-net-fix-another-gro-bug.patch
+  linux-2.6-posix-timers-fix-clock-monotonicity.patch
+  linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch
+  linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch
+  linux-2.6-v4l-dvb-fixes.patch
+  linux-2.6-v4l-dvb-update.patch
+  linux-2.6.29.1-sparc-regression.patch
+  pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch
+
 * Thu Apr 30 2009 Dave Airlie <airlied at redhat.com> 2.6.29.1-118
 - drm-radeon-kms-fixes.patch: revert rs480 snoop break
 

linux-2.6-v4l-dvb-experimental.patch:

Index: linux-2.6-v4l-dvb-experimental.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/linux-2.6-v4l-dvb-experimental.patch,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -p -r1.8 -r1.9
--- linux-2.6-v4l-dvb-experimental.patch	30 Mar 2009 12:11:44 -0000	1.8
+++ linux-2.6-v4l-dvb-experimental.patch	1 May 2009 18:41:26 -0000	1.9
@@ -392,10 +392,10 @@ index 0000000..31ba8c5
 +MODULE_AUTHOR("Pierre Ossman");
 +MODULE_LICENSE("GPL");
 diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
-index 76bad58..58abbe3 100644
+index 19cf3b8..2409065 100644
 --- a/drivers/media/video/Kconfig
 +++ b/drivers/media/video/Kconfig
-@@ -795,6 +795,8 @@ source "drivers/media/video/hdpvr/Kconfig"
+@@ -819,6 +819,8 @@ source "drivers/media/video/pvrusb2/Kconfig"
  
  source "drivers/media/video/em28xx/Kconfig"
  
@@ -405,10 +405,10 @@ index 76bad58..58abbe3 100644
  
  source "drivers/media/video/usbvideo/Kconfig"
 diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
-index b904674..08765d8 100644
+index 72f6d03..13cd579 100644
 --- a/drivers/media/video/Makefile
 +++ b/drivers/media/video/Makefile
-@@ -67,6 +67,7 @@ obj-$(CONFIG_VIDEO_MEYE) += meye.o
+@@ -70,6 +70,7 @@ obj-$(CONFIG_VIDEO_MEYE) += meye.o
  obj-$(CONFIG_VIDEO_SAA7134) += saa7134/
  obj-$(CONFIG_VIDEO_CX88) += cx88/
  obj-$(CONFIG_VIDEO_EM28XX) += em28xx/
@@ -14281,7 +14281,7 @@ index 0000000..aa4a23e
 +}
 +#endif
 diff --git a/drivers/media/video/cx25840/cx25840-audio.c b/drivers/media/video/cx25840/cx25840-audio.c
-index 93d74be..2f846f5 100644
+index d199d80..95e3f95 100644
 --- a/drivers/media/video/cx25840/cx25840-audio.c
 +++ b/drivers/media/video/cx25840/cx25840-audio.c
 @@ -32,7 +32,7 @@ static int set_audclk_freq(struct i2c_client *client, u32 freq)
@@ -14420,10 +14420,10 @@ index 93d74be..2f846f5 100644
  
  static int get_volume(struct i2c_client *client)
 diff --git a/drivers/media/video/cx25840/cx25840-core.c b/drivers/media/video/cx25840/cx25840-core.c
-index 737ee4e..f8ed3c0 100644
+index 25eb3be..7d6b0bb 100644
 --- a/drivers/media/video/cx25840/cx25840-core.c
 +++ b/drivers/media/video/cx25840/cx25840-core.c
-@@ -345,6 +345,77 @@ static void cx23885_initialize(struct i2c_client *client)
+@@ -348,6 +348,77 @@ static void cx23885_initialize(struct i2c_client *client)
  
  /* ----------------------------------------------------------------------- */
  
@@ -14501,7 +14501,7 @@ index 737ee4e..f8ed3c0 100644
  void cx25840_std_setup(struct i2c_client *client)
  {
  	struct cx25840_state *state = to_state(i2c_get_clientdata(client));
-@@ -414,39 +485,41 @@ void cx25840_std_setup(struct i2c_client *client)
+@@ -417,39 +488,41 @@ void cx25840_std_setup(struct i2c_client *client)
  	}
  
  	/* DEBUG: Displays configured PLL frequency */
@@ -14575,7 +14575,7 @@ index 737ee4e..f8ed3c0 100644
  	}
  
  	/* Sets horizontal blanking delay and active lines */
-@@ -596,7 +669,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
+@@ -599,7 +672,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
  	 * configuration in reg (for the cx23885) so we have no
  	 * need to attempt to flip bits for earlier av decoders.
  	 */
@@ -14584,7 +14584,7 @@ index 737ee4e..f8ed3c0 100644
  		switch (aud_input) {
  		case CX25840_AUDIO_SERIAL:
  			/* do nothing, use serial audio input */
-@@ -619,7 +692,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
+@@ -622,7 +695,7 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
  	/* Set INPUT_MODE to Composite (0) or S-Video (1) */
  	cx25840_and_or(client, 0x401, ~0x6, is_composite ? 0 : 0x02);
  
@@ -14593,7 +14593,7 @@ index 737ee4e..f8ed3c0 100644
  		/* Set CH_SEL_ADC2 to 1 if input comes from CH3 */
  		cx25840_and_or(client, 0x102, ~0x2, (reg & 0x80) == 0 ? 2 : 0);
  		/* Set DUAL_MODE_ADC2 to 1 if input comes from both CH2&CH3 */
-@@ -659,6 +732,19 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
+@@ -662,6 +735,19 @@ static int set_input(struct i2c_client *client, enum cx25840_video_input vid_inp
  		 */
  		cx25840_write(client, 0x918, 0xa0);
  		cx25840_write(client, 0x919, 0x01);
@@ -14613,7 +14613,7 @@ index 737ee4e..f8ed3c0 100644
  	}
  
  	return 0;
-@@ -1118,6 +1204,8 @@ static int cx25840_init(struct v4l2_subdev *sd, u32 val)
+@@ -1113,6 +1199,8 @@ static int cx25840_init(struct v4l2_subdev *sd, u32 val)
  			cx25836_initialize(client);
  		else if (state->is_cx23885)
  			cx23885_initialize(client);
@@ -14622,7 +14622,7 @@ index 737ee4e..f8ed3c0 100644
  		else
  			cx25840_initialize(client);
  	}
-@@ -1159,7 +1247,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
+@@ -1168,7 +1256,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
  	v4l_dbg(1, cx25840_debug, client, "%s output\n",
  			enable ? "enable" : "disable");
  	if (enable) {
@@ -14631,7 +14631,7 @@ index 737ee4e..f8ed3c0 100644
  			u8 v = (cx25840_read(client, 0x421) | 0x0b);
  			cx25840_write(client, 0x421, v);
  		} else {
-@@ -1169,7 +1257,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
+@@ -1178,7 +1266,7 @@ static int cx25840_s_stream(struct v4l2_subdev *sd, int enable)
  					state->is_cx25836 ? 0x04 : 0x07);
  		}
  	} else {
@@ -14640,7 +14640,7 @@ index 737ee4e..f8ed3c0 100644
  			u8 v = cx25840_read(client, 0x421) & ~(0x0b);
  			cx25840_write(client, 0x421, v);
  		} else {
-@@ -1350,6 +1438,8 @@ static int cx25840_reset(struct v4l2_subdev *sd, u32 val)
+@@ -1356,6 +1444,8 @@ static int cx25840_reset(struct v4l2_subdev *sd, u32 val)
  		cx25836_initialize(client);
  	else if (state->is_cx23885)
  		cx23885_initialize(client);
@@ -14649,7 +14649,7 @@ index 737ee4e..f8ed3c0 100644
  	else
  		cx25840_initialize(client);
  	return 0;
-@@ -1449,6 +1539,8 @@ static int cx25840_probe(struct i2c_client *client,
+@@ -1468,6 +1558,8 @@ static int cx25840_probe(struct i2c_client *client,
  		id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
  	} else if (device_id == 0x1313) {
  		id = V4L2_IDENT_CX25836 + ((device_id >> 4) & 0xf) - 6;
@@ -14658,7 +14658,7 @@ index 737ee4e..f8ed3c0 100644
  	}
  	else {
  		v4l_dbg(1, cx25840_debug, client, "cx25840 not found\n");
-@@ -1471,6 +1563,7 @@ static int cx25840_probe(struct i2c_client *client,
+@@ -1490,6 +1582,7 @@ static int cx25840_probe(struct i2c_client *client,
  	state->c = client;
  	state->is_cx25836 = ((device_id & 0xff00) == 0x8300);
  	state->is_cx23885 = (device_id == 0x0000) || (device_id == 0x1313);
@@ -14667,7 +14667,7 @@ index 737ee4e..f8ed3c0 100644
  	state->aud_input = CX25840_AUDIO8;
  	state->audclk_freq = 48000;
 diff --git a/drivers/media/video/cx25840/cx25840-core.h b/drivers/media/video/cx25840/cx25840-core.h
-index 9ad0eb8..814b565 100644
+index be05582..93941be 100644
 --- a/drivers/media/video/cx25840/cx25840-core.h
 +++ b/drivers/media/video/cx25840/cx25840-core.h
 @@ -50,6 +50,7 @@ struct cx25840_state {
@@ -14718,17 +14718,17 @@ index 0b2dceb..0df53b0 100644
  		memcpy(buffer + 2, ptr, len);
  
 diff --git a/include/linux/i2c-id.h b/include/linux/i2c-id.h
-index f27604a..f9d48c9 100644
+index 1ffc23b..d252c9b 100644
 --- a/include/linux/i2c-id.h
 +++ b/include/linux/i2c-id.h
-@@ -88,6 +88,7 @@
+@@ -87,6 +87,7 @@
  #define I2C_HW_B_CX2341X	0x010020 /* Conexant CX2341X MPEG encoder cards */
  #define I2C_HW_B_CX23885	0x010022 /* conexant 23885 based tv cards (bus1) */
  #define I2C_HW_B_AU0828		0x010023 /* auvitek au0828 usb bridge */
 +#define I2C_HW_B_CX231XX	0x010024 /* Conexant CX231XX USB based cards */
- #define I2C_HW_B_HDPVR		0x010025 /* Hauppauge HD PVR */
  
  /* --- SGI adapters							*/
+ #define I2C_HW_SGI_VINO		0x160000
 diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
 index ea1bf5b..3d7533d 100644
 --- a/include/linux/mmc/sdio_ids.h


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/sources,v
retrieving revision 1.1003
retrieving revision 1.1004
diff -u -p -r1.1003 -r1.1004
--- sources	2 Apr 2009 23:41:47 -0000	1.1003
+++ sources	1 May 2009 18:41:27 -0000	1.1004
@@ -1,2 +1,2 @@
 64921b5ff5cdadbccfcd3820f03be7d8  linux-2.6.29.tar.bz2
-87c6fbf4096b644d66d4da8bb00641a5  patch-2.6.29.1.bz2
+a3e79545ef18ff2a172f82fffef92deb  patch-2.6.29.2.bz2


Index: upstream
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-11/upstream,v
retrieving revision 1.914
retrieving revision 1.915
diff -u -p -r1.914 -r1.915
--- upstream	2 Apr 2009 23:41:47 -0000	1.914
+++ upstream	1 May 2009 18:41:27 -0000	1.915
@@ -1,2 +1,2 @@
 linux-2.6.29.tar.bz2
-patch-2.6.29.1.bz2
+patch-2.6.29.2.bz2


--- linux-2.6-acer-wmi-bail-on-aao.patch DELETED ---


--- linux-2.6-e820-mark-esi-clobbered.patch DELETED ---


--- linux-2.6-kvm-kconfig-irqchip.patch DELETED ---


--- linux-2.6-kvm-mask-notifiers.patch DELETED ---


--- linux-2.6-kvm-reset-pit-irq-on-unmask.patch DELETED ---


--- linux-2.6-md-raid1-dont-assume-new-bvecs-are-init.patch DELETED ---


--- linux-2.6-mm-define-unique-value-for-as_unevictable.patch DELETED ---


--- linux-2.6-net-fix-another-gro-bug.patch DELETED ---


--- linux-2.6-posix-timers-fix-clock-monotonicity.patch DELETED ---


--- linux-2.6-posix-timers-fix-rlimit_cpu-fork-2.patch DELETED ---


--- linux-2.6-posix-timers-fix-rlimit_cpu-setitimer.patch DELETED ---


--- linux-2.6-v4l-dvb-fixes.patch DELETED ---


--- linux-2.6-v4l-dvb-update.patch DELETED ---


--- linux-2.6.29.1-sparc-regression.patch DELETED ---


--- pat-remove-page-granularity-tracking-for-vm_insert_pfn_maps.patch DELETED ---


--- patch-2.6.29.1.bz2.sign DELETED ---




More information about the scm-commits mailing list