rpms/kernel/F-10 drm-modesetting-radeon.patch, 1.51, 1.52 drm-next.patch, 1.2, 1.3 kernel.spec, 1.1134, 1.1135 drm-intel-gem-x86-64-faster.patch, 1.1, NONE

Dave Airlie airlied at fedoraproject.org
Tue Nov 11 21:11:23 UTC 2008


Author: airlied

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

Modified Files:
	drm-modesetting-radeon.patch drm-next.patch kernel.spec 
Removed Files:
	drm-intel-gem-x86-64-faster.patch 
Log Message:
- drm rebase patches against latest upstream tree.


drm-modesetting-radeon.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.51 -r 1.52 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-modesetting-radeon.patch,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -r1.51 -r1.52
--- drm-modesetting-radeon.patch	10 Nov 2008 05:49:38 -0000	1.51
+++ drm-modesetting-radeon.patch	11 Nov 2008 21:11:21 -0000	1.52
@@ -1,1346 +1,3 @@
-commit 735cba61bd0bff256c6a01add80a78418f7ffa29
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Nov 10 15:39:25 2008 +1000
-
-    radeon: fix dumbness in cp ring check
-
-commit b138f1300f5781ccc432efa817e0a2e7817dbae1
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Nov 10 14:26:11 2008 +1000
-
-    radeon: add gart useable size to report to userspace
-
-commit fafafa93d2f78110826defa3ed1052159ab3f232
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sun Nov 9 20:34:49 2008 +1000
-
-    radeon: fix powerpc oops on rv280
-
-commit 63a8fbb9886095425a86e91fb5dd247e4f846dc5
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sun Nov 9 10:23:43 2008 +1000
-
-    radeon: upgrade atom headers
-
-commit 92c626a8e7c8c61c80acf3c687f4d7dbacc6f354
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sat Nov 8 14:39:41 2008 +1000
-
-    radeon: fix fence race condition hopefully
-    
-    For some reason reading the SCRATCH reg from RAM causes some race to occur.
-    Hopefully fix this.
-
-commit bb1fe264b4a57713e8f0ee5e04d29f5061e45e15
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Sat Nov 8 11:31:03 2008 +1000
-
-    drm/radeon: add dpms connector functions
-
-commit 0e88e45a884a1c38084b060c8dc588ead17a3382
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Nov 7 16:22:22 2008 +1000
-
-    radeon: avivo cursors are across the full surface.
-    
-    fixes cursor on second head
-
-commit 898c6e16d6390e1aea99d45e15e86a6c4ddd38e8
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Nov 7 16:21:03 2008 +1000
-
-    modesetting: set the crtc x,y after the mode base change
-
-commit 34bfe1d2d06576aa8d7a6b2c689fa8fb43545407
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Nov 5 10:23:35 2008 +1000
-
-    drm/radeon: add uncached allocator to drm ttm code.
-    
-    This allows re-use of uc/wc marked pages
-
-commit dca718feb536730d005b32d081737e191e05ce60
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Nov 5 10:22:27 2008 +1000
-
-    radeon: fix ring tail overflow issue since alignment
-
-commit d115749300ee625cd23e6ff50d4f3e14c4616d35
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Nov 4 13:18:02 2008 +1000
-
-    radeon: disable HDP read cache for now
-
-commit df1c660505fcecaba8e6d76430da0be80c67923a
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Nov 4 12:02:55 2008 +1000
-
-    radeon: force all ring writes to 16-dword alignment.
-    
-    Also set the fetch size to what tcore/fglrx uses.
-
-commit 3cacc2f41bbd6f46d7eb13948db318c7c13e5c60
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Nov 3 15:43:08 2008 +1000
-
-    radeon: fixup vram visible calculation to take a/c pinned objects for now
-
-commit 96b17b8573d9d8d9507602c9dfb0a1b87e6ff1f5
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Mon Nov 3 09:56:02 2008 +1100
-
-    radeon: if modesetting state is unknown make it known so pm-utils can use it
-
-commit 73487c9e856db6613b465827372ac618dca4447e
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Fri Oct 31 14:40:12 2008 +1000
-
-    radeon: fix ROP values for the paint ROP
-
-commit 6c478ab791fd0242bf7abf871570d1af0c2285a9
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Thu Oct 30 14:00:39 2008 +1000
-
-    radeon: add mtrr support for VRAM aperture.
-    
-    This speeds things up a bit
-
-commit 465bcd6438c356a8ff2b07d16176826f6a1762c4
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Thu Oct 30 14:00:15 2008 +1000
-
-    radeon: disable AGP for certain chips if not specified until we figure it out
-
-commit 3c57b60805cc6d8bbec85ce147fa8bbd0404cb08
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Oct 29 15:45:47 2008 +1000
-
-    radeon: disable debugging message
-
-commit ff8636f1cad7c113e028f193a375cab3fa89b754
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Oct 29 15:37:32 2008 +1000
-
-    radeon: commit ring after emitting the buffer discards
-
-commit 8b47ffa57ec22f6ccbfe26e42ae669a780b47519
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Oct 29 17:39:27 2008 +1100
-
-    radeon: fix whitespace in encoders C file
-
-commit d0c8c7eec6c3be242773189f5efeeb79ed3551c0
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Oct 29 17:39:08 2008 +1100
-
-    radeon: add more HDMI bits
-
-commit f033476f111cadd20f347b124256e17f0d1aa7c8
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Thu Oct 30 01:41:34 2008 +1000
-
-    radeon: set dma bufs bo type to a kernel type
-
-commit 962e3a492751ca48ebc46de6ee952cd91d344ff6
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Thu Oct 30 01:05:48 2008 +1000
-
-    drm: reorder AGP unloading wrt driver unloading
-
-commit b94da1ca049a8d110c7694f74bcfcb5564ea8a65
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Wed Oct 29 15:46:16 2008 +1100
-
-    radeon: enable DVI-D + HDMI connectors.
-    
-    This allows the rs690 to work on DVI
-
-commit df78b729e04e0bde33d88526f594ac70f8fe1649
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Oct 28 20:33:13 2008 +1000
-
-    radeon: setup isync cntl properly
-
-commit 9aea2a12e6a98a889dfa3031a5f7199e35bdb42d
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Oct 28 20:31:27 2008 +1000
-
-    radeon: add more debugging
-
-commit 2be1531419a8fb4abe33ce0e2202aed52ba59700
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Oct 28 20:26:04 2008 +1000
-
-    radeon: overhaul ring interactions
-    
-    emit in 16-dword blocks, emit irqs at same time as everything else
-
-commit b7f75f50040569ad8187cc5b3c97a7ef806ec513
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Oct 28 16:49:09 2008 +1000
-
-    radeon: fix race in sysfs
-
-commit 1a26da2f878bc6bf52676e35676bc5034cd9a9fe
-Author: Dave Airlie <airlied at redhat.com>
-Date:   Tue Oct 28 16:46:47 2008 +1000
-
-    radeon: add proc debugging for interrupts/ring
-
-commit a50011a833c6bc3c1437376cb5d106d45250aeb5
-Author: Dave Airlie <airlied at redhat.com>
[...2150 lines suppressed...]
 +
 +
 +struct radeon_pm_regs {
@@ -27936,16 +26512,15 @@
  	struct {
  		u32 boxes;
  		int freelist_timeouts;
-@@ -286,8 +397,6 @@ typedef struct drm_radeon_private {
+@@ -286,7 +397,6 @@ typedef struct drm_radeon_private {
  	unsigned long buffers_offset;
  	unsigned long gart_textures_offset;
  
 -	drm_local_map_t *sarea;
--	drm_local_map_t *mmio;
  	drm_local_map_t *cp_ring;
  	drm_local_map_t *ring_rptr;
  	drm_local_map_t *gart_textures;
-@@ -296,8 +405,8 @@ typedef struct drm_radeon_private {
+@@ -295,8 +405,8 @@ typedef struct drm_radeon_private {
  	struct mem_block *fb_heap;
  
  	/* SW interrupt */
@@ -27955,7 +26530,7 @@
  	int vblank_crtc;
  	uint32_t irq_enable_reg;
  	int irq_enabled;
-@@ -306,9 +415,6 @@ typedef struct drm_radeon_private {
+@@ -305,9 +415,6 @@ typedef struct drm_radeon_private {
  	struct radeon_surface surfaces[RADEON_MAX_SURFACES];
  	struct radeon_virt_surface virt_surfaces[2 * RADEON_MAX_SURFACES];
  
@@ -27965,14 +26540,14 @@
  
  	u32 scratch_ages[5];
  
-@@ -318,6 +424,44 @@ typedef struct drm_radeon_private {
+@@ -317,7 +424,44 @@ typedef struct drm_radeon_private {
  
  	int num_gb_pipes;
  	int track_flush;
 +
 +	bool mm_enabled;
 +	struct radeon_mm_info mm;
-+	drm_local_map_t *mmio;
+ 	drm_local_map_t *mmio;
 +
 +	uint32_t chip_family;
 +
@@ -28088,24 +26663,6 @@
  #define RADEON_AGP_COMMAND		0x0f60
  #define RADEON_AGP_COMMAND_PCI_CONFIG   0x0060	/* offset in PCI config */
  #	define RADEON_AGP_ENABLE	(1<<8)
-@@ -447,12 +604,12 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
-  * handling, not bus mastering itself.
-  */
- #define RADEON_BUS_CNTL			0x0030
--/* r1xx, r2xx, r300, r(v)350, r420/r481, rs480 */
-+/* r1xx, r2xx, r300, r(v)350, r420/r481, rs400/rs480 */
- #	define RADEON_BUS_MASTER_DIS		(1 << 6)
--/* rs400, rs690/rs740 */
--#	define RS400_BUS_MASTER_DIS		(1 << 14)
--#	define RS400_MSI_REARM		        (1 << 20)
--/* see RS480_MSI_REARM in AIC_CNTL for rs480 */
-+/* rs600/rs690/rs740 */
-+#	define RS600_BUS_MASTER_DIS		(1 << 14)
-+#	define RS600_MSI_REARM		        (1 << 20)
-+/* see RS400_MSI_REARM in AIC_CNTL for rs480 */
- 
- #define RADEON_BUS_CNTL1		0x0034
- #	define RADEON_PMI_BM_DIS		(1 << 2)
 @@ -554,16 +711,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
  #define R520_MC_IND_WR_EN (1 << 24)
  #define R520_MC_IND_DATA  0x74
@@ -28224,15 +26781,6 @@
  #define RADEON_RBBM_SOFT_RESET		0x00f0
  #	define RADEON_SOFT_RESET_CP		(1 <<  0)
  #	define RADEON_SOFT_RESET_HI		(1 <<  1)
-@@ -937,7 +1096,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
- 
- #define RADEON_AIC_CNTL			0x01d0
- #	define RADEON_PCIGART_TRANSLATE_EN	(1 << 0)
--#	define RS480_MSI_REARM	                (1 << 3)
-+#	define RS400_MSI_REARM	                (1 << 3)
- #define RADEON_AIC_STAT			0x01d4
- #define RADEON_AIC_PT_BASE		0x01d8
- #define RADEON_AIC_LO_ADDR		0x01dc
 @@ -1009,27 +1168,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
  #define RADEON_NUM_VERTICES_SHIFT		16
  
@@ -41999,7 +40547,7 @@
   * Device specific ioctls should only be in their respective headers
   * The device specific ioctl range is from 0x40 to 0x99.
 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index 59c796b..d2bff8e 100644
+index 28c7f16..c750fe9 100644
 --- a/include/drm/drmP.h
 +++ b/include/drm/drmP.h
 @@ -87,6 +87,7 @@ struct drm_device;
@@ -42229,7 +40777,7 @@
  	/*@} */
  
  	/** \name DMA queues (contexts) */
-@@ -889,14 +950,21 @@ struct drm_device {
+@@ -887,14 +948,21 @@ struct drm_device {
  	struct drm_driver *driver;
  	drm_local_map_t *agp_buffer_map;
  	unsigned int agp_buffer_token;
@@ -42251,7 +40799,7 @@
  	/** \name GEM information */
  	/*@{ */
  	spinlock_t object_name_lock;
-@@ -911,8 +979,28 @@ struct drm_device {
+@@ -909,8 +977,28 @@ struct drm_device {
  	uint32_t invalidate_domains;    /* domains pending invalidation */
  	uint32_t flush_domains;         /* domains pending flush */
  	/*@} */
@@ -42280,7 +40828,7 @@
  
  static inline int drm_dev_to_irq(struct drm_device *dev)
  {
-@@ -1020,6 +1108,17 @@ extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
+@@ -1018,6 +1106,17 @@ extern DRM_AGP_MEM *drm_agp_bind_pages(struct drm_device *dev,
  				       uint32_t type);
  extern int drm_unbind_agp(DRM_AGP_MEM * handle);
  
@@ -42298,7 +40846,7 @@
  				/* Misc. IOCTL support (drm_ioctl.h) */
  extern int drm_irq_by_busid(struct drm_device *dev, void *data,
  			    struct drm_file *file_priv);
-@@ -1190,9 +1289,17 @@ extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size
+@@ -1185,9 +1284,17 @@ extern DRM_AGP_MEM *drm_agp_allocate_memory(struct agp_bridge_data *bridge, size
  extern int drm_agp_free_memory(DRM_AGP_MEM * handle);
  extern int drm_agp_bind_memory(DRM_AGP_MEM * handle, off_t start);
  extern int drm_agp_unbind_memory(DRM_AGP_MEM * handle);
@@ -42316,7 +40864,7 @@
  extern int drm_get_dev(struct pci_dev *pdev, const struct pci_device_id *ent,
  		       struct drm_driver *driver);
  extern int drm_put_dev(struct drm_device *dev);
-@@ -1224,6 +1331,8 @@ extern int drm_ati_pcigart_init(struct drm_device *dev,
+@@ -1219,6 +1326,8 @@ extern int drm_ati_pcigart_init(struct drm_device *dev,
  				struct drm_ati_pcigart_info * gart_info);
  extern int drm_ati_pcigart_cleanup(struct drm_device *dev,
  				   struct drm_ati_pcigart_info * gart_info);
@@ -42325,7 +40873,7 @@
  
  extern drm_dma_handle_t *drm_pci_alloc(struct drm_device *dev, size_t size,
  				       size_t align, dma_addr_t maxaddr);
-@@ -1235,7 +1344,11 @@ struct drm_sysfs_class;
+@@ -1230,7 +1339,11 @@ struct drm_sysfs_class;
  extern struct class *drm_sysfs_create(struct module *owner, char *name);
  extern void drm_sysfs_destroy(void);
  extern int drm_sysfs_device_add(struct drm_minor *minor);
@@ -42337,7 +40885,7 @@
  
  /*
   * Basic memory manager support (drm_mm.c)
-@@ -1373,6 +1486,39 @@ extern void drm_free(void *pt, size_t size, int area);
+@@ -1368,6 +1481,39 @@ extern void drm_free(void *pt, size_t size, int area);
  extern void *drm_calloc(size_t nmemb, size_t size, int area);
  #endif
  
@@ -44611,7 +43159,7 @@
  
  /** Maximum number of drawables in the SAREA */
 diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
-index eb4b350..7d88a21 100644
+index 152b34d..13c91fc 100644
 --- a/include/drm/i915_drm.h
 +++ b/include/drm/i915_drm.h
 @@ -63,7 +63,7 @@ typedef struct _drm_i915_init {
@@ -44658,7 +43206,7 @@
  } drm_i915_sarea_t;
  
  /* Flags for perf_boxes
-@@ -162,7 +174,7 @@ typedef struct _drm_i915_sarea {
+@@ -163,7 +175,7 @@ typedef struct _drm_i915_sarea {
  
  #define DRM_IOCTL_I915_INIT		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
  #define DRM_IOCTL_I915_FLUSH		DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
@@ -44667,7 +43215,7 @@
  #define DRM_IOCTL_I915_BATCHBUFFER	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_BATCHBUFFER, drm_i915_batchbuffer_t)
  #define DRM_IOCTL_I915_IRQ_EMIT         DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_IRQ_EMIT, drm_i915_irq_emit_t)
  #define DRM_IOCTL_I915_IRQ_WAIT         DRM_IOW( DRM_COMMAND_BASE + DRM_I915_IRQ_WAIT, drm_i915_irq_wait_t)
-@@ -176,6 +188,8 @@ typedef struct _drm_i915_sarea {
+@@ -177,6 +189,8 @@ typedef struct _drm_i915_sarea {
  #define DRM_IOCTL_I915_SET_VBLANK_PIPE	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
  #define DRM_IOCTL_I915_GET_VBLANK_PIPE	DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
  #define DRM_IOCTL_I915_VBLANK_SWAP	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
@@ -44676,9 +43224,9 @@
  #define DRM_IOCTL_I915_GEM_PIN		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_PIN, struct drm_i915_gem_pin)
  #define DRM_IOCTL_I915_GEM_UNPIN	DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_UNPIN, struct drm_i915_gem_unpin)
  #define DRM_IOCTL_I915_GEM_BUSY		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_BUSY, struct drm_i915_gem_busy)
-@@ -191,10 +205,22 @@ typedef struct _drm_i915_sarea {
- #define DRM_IOCTL_I915_GEM_SET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
+@@ -193,10 +207,22 @@ typedef struct _drm_i915_sarea {
  #define DRM_IOCTL_I915_GEM_GET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
+ #define DRM_IOCTL_I915_GEM_GET_APERTURE	DRM_IOR  (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
  
 +/* Asynchronous page flipping:
 + */

drm-next.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.2 -r 1.3 drm-next.patch
Index: drm-next.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/drm-next.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- drm-next.patch	21 Oct 2008 04:43:00 -0000	1.2
+++ drm-next.patch	11 Nov 2008 21:11:22 -0000	1.3
@@ -1,13 +1,304 @@
-commit fee392c8fe3e4ad1ddf1c8a373921c672dea9029
-Author: Linus Torvalds <torvalds at linux-foundation.org>
-Date:   Fri Oct 17 15:43:02 2008 -0700
+commit 5a9568f2ccf9040fc461aab1628c9b8d6302a628
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 3 11:07:28 2008 +1000
+
+    intel: make GEM on 64-bit go lots faster rollup
+    
+    this patch rolls up a number of upstream patches to make GEM on x86-64
+    useable again.
+    
+    Signed-off-by: Dave Airlie <airlied at redhat.com>
+
+commit 8c37a96d0b5d6551eb8e58e822e120ad5f95e30e
+Author: Eric Anholt <eric at anholt.net>
+Date:   Wed Nov 5 12:37:42 2008 -0800
 
-    i915: Fix format string warnings on x86-64.
+    i915: Add /proc debugging entry for reading out the HWS.
+    
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    (cherry picked from commit 9cbe1ed025faeac88323fa697c016fd9a76a1563)
+
+commit d0006ef2096b5aa8d25dd773dd7c7c7e5b57083c
+Author: Eric Anholt <eric at anholt.net>
+Date:   Tue Nov 4 15:50:30 2008 -0800
+
+    i915: Remove IMR masking during interrupt handler, and restart it if needed.
+    
+    The IMR masking was a technique recommended for avoiding getting stuck with
+    no interrupts generated again in MSI mode.  It kept new IIR bits from getting
+    set between the IIR read and the IIR write, which would have otherwise
+    prevented an MSI from ever getting generated again.  However, this caused a
+    problem for vblank as the IMR mask would keep the pipe event interrupt from
+    getting reflected in IIR, even after the IMR mask was brought back down.
+    
+    Instead, just check the state of IIR after we ack the interrupts we're going
+    to handle, and restart if we didn't get IIR all the way to zero.
+    
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    (cherry picked from commit a9c989845b96e77669839ee47e1b9fd92075b286)
+
+commit 18e064f8710ff0f9e9f0ce08b888e0295a7d7eb1
+Author: Keith Packard <keithp at keithp.com>
+Date:   Tue Nov 4 02:03:27 2008 -0800
+
+    Manage PIPESTAT pending interrupt values to unblock vblank interrupts
+    
+    The pipestat fields affect reporting of all vblank-related interrupts, so we
+    have to reset them during the irq_handler, and while enabling vblank
+    interrupts.
+    
+    This patch adds i915_enable_pipestat and i915_disable_pipestat to abstract
+    out the steps needed to change the reported interrupts.
+    
+    Signed-off-by: Keith Packard <keithp at keithp.com>
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    (cherry picked from commit 656c057945bf97304667e30c817045c832328506)
+
+commit 72d34483fe6f50c57f984637fcd7e37e1265f202
+Author: Keith Packard <keithp at keithp.com>
+Date:   Sat Nov 8 11:44:14 2008 +1000
+
+    drm/i915: Move legacy breadcrumb out of the reserved status page area
+    
+    Addresses in the hardware status page below index 0x20 are reserved for use
+    by the hardware. The legacy breadcrumb was sitting at index 5. Move it to
+    index 0x21, and make sure everyone uses the defined value instead of
+    hard-coded constants.
+    
+    Signed-off-by: Keith Packard <keithp at keithp.com>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit 0baf823a10bd4131f70e9712d1f02de3c247f1df)
+
+commit 491983276c934058e7bea557c1eecf6e58d29cd7
+Author: Dave Airlie <airlied at linux.ie>
+Date:   Tue Nov 11 18:02:12 2008 +1000
+
+    drm/i915: Filter pci devices based on PCI_CLASS_DISPLAY_VGA
+    
+    This fixes hangs on 855-class hardware by avoiding double attachment of the
+    driver due to the stub second head device having the same pci id as the real
+    device.
+    
+    Other DRM drivers probably want this treatment as well, but I'm applying it
+    just to this one for safety. But we should clean up the drm_pciids.h mess
+    now so that each driver has its own pci id list header in its own directory.
+    Lets do that in the next release.
     
     Signed-off-by: Eric Anholt <eric at anholt.net>
     Signed-off-by: Dave Airlie <airlied at redhat.com>
+    (cherry picked from commit afa21e0584f78964c092981fad94e45d38cda249)
+
+commit 17ace027f973eaebe4c7cdee835f639381e49b67
+Author: Dave Airlie <airlied at linux.ie>
+Date:   Tue Nov 11 17:56:16 2008 +1000
+
+    drm/radeon: map registers at load time
+    
+    Now that the radeon driver has suspend/resume functions, it needs to map its
+    registers at load time or it will likely crash if a suspend operation occurs
+    before the driver has been initialized.
+    
+    This patch moves the register mapping code from firstopen to load and makes
+    the mapping into a _DRM_DRIVER one so that the core won't remove it at
+    lastclose time.
+    
+    Fixes (at least partially) kernel bz #11891.
+    
+    Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit 78538bf14995a136c2d9a22159ada49937359119)
 
-commit 6a4902ee6f3a751595099cd75a8006230bbf5cb9
+commit ea1d87c76431d1c183cd0a54ee1523ca59b9286a
+Author: Eric Anholt <eric at anholt.net>
+Date:   Tue Nov 4 18:36:29 2008 -0800
+
+    drm: Remove infrastructure for supporting i915's vblank swapping.
+    
+    It's not used in any other drivers, and doesn't look like it will be from
+    drm.git master.
+    
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit 5d8e6bb7a20b6206e1fe44565efc383a941b81fa)
+
+commit 08354c7266922ea8d520ff533afebe3303117a45
+Author: Eric Anholt <eric at anholt.net>
+Date:   Tue Nov 4 12:01:24 2008 -0800
+
+    i915: Remove racy delayed vblank swap ioctl.
+    
+    When userland detected that this ioctl was supported (by version number check),
+    it used it in a racy way -- dispatch delayed swap, wait for vblank, continue
+    rendering. As there was no mechanism for it to wait for the swap to finish,
+    sometimes it would render before the swap and garbage would be displayed on
+    the screen.
+    
+    By removing the ioctl and returning -EINVAL, userland returns to its previous,
+    correct rendering path of waiting for a vblank then dispatching a swap.  The
+    only path that could have used this ioctl correctly was page flipping, which
+    relied on only one client running and emitting wait-for-vblank-before-rendering
+    in the command stream.  That path also falls back correctly, at the performance
+    cost of not being able to queue up rendering before the flip occurs.
+    
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit bd95e0a4a6bb9485fe35dda62719663f6ceabae1)
+
+commit 3630ebc19b25900eda16b596bddb2e257326b8fa
+Author: Eric Anholt <eric at anholt.net>
+Date:   Mon Nov 3 14:46:17 2008 -0800
+
+    i915: Don't whine when pci_enable_msi() fails.
+    
+    This probably just means the chipset doesn't support MSI, which is fine.
+    
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit d3e74d0237b102d34979015fbf6df02ca4413074)
+
+commit 33216b091ff6d34ca746287cec1e6f756dfd9c83
+Author: Owen Taylor <otaylor at redhat.com>
+Date:   Mon Nov 3 14:38:17 2008 -0800
+
+    i915: Don't attempt to short-circuit object_wait_rendering by checking domains.
+    
+    This could return early when reading after writing a buffer, if somebody
+    had already put it on the flushing list (write domains are 0, but still
+    active), leading to glReadPixels failure.
+    
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit 6a47baa6ce7e6fb5fed8d1fd0af36a96a4ad133f)
+
+commit 00c3e322d914dafb83bf52a0eb34da28840f5aee
+Author: Keith Packard <keithp at keithp.com>
+Date:   Sun Nov 2 23:38:20 2008 -0800
+
+    i915: Clean up sarea pointers on leavevt
+    
+    This corresponds to the setup of the sarea pointers in DMA initialization,
+    though neither is exactly the point at which the sarea is set up or torn down.
+    
+    Signed-off-by: Keith Packard <keithp at keithp.com>
+    Signed-off-by: Eric Anholt <eric at anholt.net>
+    Signed-off-by: Dave Airlie <airlied at linux.ie>
+    (cherry picked from commit ad42ca8f4490de06462aee234ea0083cbd8b46aa)
+
[...3966 lines suppressed...]
 diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
-index 05c66cf..eb4b350 100644
+index 05c66cf..152b34d 100644
 --- a/include/drm/i915_drm.h
 +++ b/include/drm/i915_drm.h
-@@ -143,6 +143,22 @@ typedef struct _drm_i915_sarea {
+@@ -143,6 +143,23 @@ typedef struct _drm_i915_sarea {
  #define DRM_I915_GET_VBLANK_PIPE	0x0e
  #define DRM_I915_VBLANK_SWAP	0x0f
  #define DRM_I915_HWS_ADDR	0x11
@@ -13367,10 +14467,11 @@
 +#define DRM_I915_GEM_SW_FINISH	0x20
 +#define DRM_I915_GEM_SET_TILING	0x21
 +#define DRM_I915_GEM_GET_TILING	0x22
++#define DRM_I915_GEM_GET_APERTURE 0x23
  
  #define DRM_IOCTL_I915_INIT		DRM_IOW( DRM_COMMAND_BASE + DRM_I915_INIT, drm_i915_init_t)
  #define DRM_IOCTL_I915_FLUSH		DRM_IO ( DRM_COMMAND_BASE + DRM_I915_FLUSH)
-@@ -160,6 +176,20 @@ typedef struct _drm_i915_sarea {
+@@ -160,6 +177,21 @@ typedef struct _drm_i915_sarea {
  #define DRM_IOCTL_I915_SET_VBLANK_PIPE	DRM_IOW( DRM_COMMAND_BASE + DRM_I915_SET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
  #define DRM_IOCTL_I915_GET_VBLANK_PIPE	DRM_IOR( DRM_COMMAND_BASE + DRM_I915_GET_VBLANK_PIPE, drm_i915_vblank_pipe_t)
  #define DRM_IOCTL_I915_VBLANK_SWAP	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_VBLANK_SWAP, drm_i915_vblank_swap_t)
@@ -13388,10 +14489,11 @@
 +#define DRM_IOCTL_I915_GEM_SW_FINISH	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SW_FINISH, struct drm_i915_gem_sw_finish)
 +#define DRM_IOCTL_I915_GEM_SET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_SET_TILING, struct drm_i915_gem_set_tiling)
 +#define DRM_IOCTL_I915_GEM_GET_TILING	DRM_IOWR (DRM_COMMAND_BASE + DRM_I915_GEM_GET_TILING, struct drm_i915_gem_get_tiling)
++#define DRM_IOCTL_I915_GEM_GET_APERTURE	DRM_IOR  (DRM_COMMAND_BASE + DRM_I915_GEM_GET_APERTURE, struct drm_i915_gem_get_aperture)
  
  /* Allow drivers to submit batchbuffers directly to hardware, relying
   * on the security mechanisms provided by hardware.
-@@ -200,6 +230,8 @@ typedef struct drm_i915_irq_wait {
+@@ -200,6 +232,8 @@ typedef struct drm_i915_irq_wait {
  #define I915_PARAM_IRQ_ACTIVE            1
  #define I915_PARAM_ALLOW_BATCHBUFFER     2
  #define I915_PARAM_LAST_DISPATCH         3
@@ -13400,7 +14502,7 @@
  
  typedef struct drm_i915_getparam {
  	int param;
-@@ -267,4 +299,305 @@ typedef struct drm_i915_hws_addr {
+@@ -267,4 +301,316 @@ typedef struct drm_i915_hws_addr {
  	uint64_t addr;
  } drm_i915_hws_addr_t;
  
@@ -13705,13 +14807,148 @@
 +	uint32_t swizzle_mode;
 +};
 +
++struct drm_i915_gem_get_aperture {
++	/** Total size of the aperture used by i915_gem_execbuffer, in bytes */
++	uint64_t aper_size;
++
++	/**
++	 * Available space in the aperture used by i915_gem_execbuffer, in
++	 * bytes
++	 */
++	uint64_t aper_available_size;
++};
++
  #endif				/* _I915_DRM_H_ */
-diff --git a/mm/shmem.c b/mm/shmem.c
-index 04fb4f1..e6e88bd 100644
---- a/mm/shmem.c
-+++ b/mm/shmem.c
-@@ -2582,6 +2582,7 @@ put_memory:
- 	shmem_unacct_size(flags, size);
+diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h
+new file mode 100644
+index 0000000..fff44fd
+--- /dev/null
++++ b/include/linux/io-mapping.h
+@@ -0,0 +1,118 @@
++/*
++ * Copyright © 2008 Keith Packard <keithp at keithp.com>
++ *
++ * This file is free software; you can redistribute it and/or modify
++ * it under the terms of version 2 of the GNU General Public License
++ * as published by the Free Software Foundation.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public License
++ * along with this program; if not, write to the Free Software Foundation,
++ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
++ */
++
++#ifndef _LINUX_IO_MAPPING_H
++#define _LINUX_IO_MAPPING_H
++
++#include <linux/types.h>
++#include <asm/io.h>
++#include <asm/page.h>
++#include <asm/iomap.h>
++
++/*
++ * The io_mapping mechanism provides an abstraction for mapping
++ * individual pages from an io device to the CPU in an efficient fashion.
++ *
++ * See Documentation/io_mapping.txt
++ */
++
++/* this struct isn't actually defined anywhere */
++struct io_mapping;
++
++#ifdef CONFIG_X86_64
++
++/* Create the io_mapping object*/
++static inline struct io_mapping *
++io_mapping_create_wc(unsigned long base, unsigned long size)
++{
++	return (struct io_mapping *) ioremap_wc(base, size);
++}
++
++static inline void
++io_mapping_free(struct io_mapping *mapping)
++{
++	iounmap(mapping);
++}
++
++/* Atomic map/unmap */
++static inline void *
++io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset)
++{
++	return ((char *) mapping) + offset;
++}
++
++static inline void
++io_mapping_unmap_atomic(void *vaddr)
++{
++}
++
++/* Non-atomic map/unmap */
++static inline void *
++io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset)
++{
++	return ((char *) mapping) + offset;
++}
++
++static inline void
++io_mapping_unmap(void *vaddr)
++{
++}
++
++#endif /* CONFIG_X86_64 */
++
++#ifdef CONFIG_X86_32
++static inline struct io_mapping *
++io_mapping_create_wc(unsigned long base, unsigned long size)
++{
++	return (struct io_mapping *) base;
++}
++
++static inline void
++io_mapping_free(struct io_mapping *mapping)
++{
++}
++
++/* Atomic map/unmap */
++static inline void *
++io_mapping_map_atomic_wc(struct io_mapping *mapping, unsigned long offset)
++{
++	offset += (unsigned long) mapping;
++	return iomap_atomic_prot_pfn(offset >> PAGE_SHIFT, KM_USER0,
++				     __pgprot(__PAGE_KERNEL_WC));
++}
++
++static inline void
++io_mapping_unmap_atomic(void *vaddr)
++{
++	iounmap_atomic(vaddr, KM_USER0);
++}
++
++static inline void *
++io_mapping_map_wc(struct io_mapping *mapping, unsigned long offset)
++{
++	offset += (unsigned long) mapping;
++	return ioremap_wc(offset, PAGE_SIZE);
++}
++
++static inline void
++io_mapping_unmap(void *vaddr)
++{
++	iounmap(vaddr);
++}
++#endif /* CONFIG_X86_32 */
++
++#endif /* _LINUX_IO_MAPPING_H */
+diff --git a/mm/tiny-shmem.c b/mm/tiny-shmem.c
+index 8d7a27a..3e67d57 100644
+--- a/mm/tiny-shmem.c
++++ b/mm/tiny-shmem.c
+@@ -95,6 +95,7 @@ put_dentry:
+ put_memory:
  	return ERR_PTR(error);
  }
 +EXPORT_SYMBOL_GPL(shmem_file_setup);


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/F-10/kernel.spec,v
retrieving revision 1.1134
retrieving revision 1.1135
diff -u -r1.1134 -r1.1135
--- kernel.spec	11 Nov 2008 18:29:50 -0000	1.1134
+++ kernel.spec	11 Nov 2008 21:11:22 -0000	1.1135
@@ -658,10 +658,9 @@
 # nouveau + drm fixes
 Patch1800: nvidia-agp.patch
 Patch1810: drm-next.patch
-Patch1811: drm-intel-gem-x86-64-faster.patch
-Patch1812: drm-modesetting-radeon.patch
-Patch1813: drm-modesetting-i915.patch
-Patch1814: drm-nouveau.patch
+Patch1813: drm-modesetting-radeon.patch
+Patch1814: drm-modesetting-i915.patch
+Patch1815: drm-nouveau.patch
 
 # kludge to make ich9 e1000 work
 Patch2000: linux-2.6-e1000-ich9.patch
@@ -1299,7 +1298,6 @@
 # Nouveau DRM + drm fixes
 ApplyPatch nvidia-agp.patch
 ApplyPatch drm-next.patch
-ApplyPatch drm-intel-gem-x86-64-faster.patch
 ApplyPatch drm-modesetting-radeon.patch
 #ApplyPatch drm-modesetting-i915.patch
 ApplyPatch drm-nouveau.patch
@@ -1910,6 +1908,9 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Tue Nov 11 2008 Dave Airlie <airlied at redhat.com> 2.6.27.5-99
+- drm rebase patches against latest upstream tree.
+
 * Tue Nov 11 2008 Dave Jones <davej at redhat.com> 2.6.27.5-98
 - qla3xxx: Cleanup: Fix link print statements. (#461623)
 


--- drm-intel-gem-x86-64-faster.patch DELETED ---




More information about the fedora-extras-commits mailing list