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
- Previous message (by thread): rpms/ksplice/F-10 ksplice-0.9.3-config.patch, NONE, 1.1 ksplice.spec, 1.7, 1.8 sources, 1.4, 1.5 ksplice-0.9.2-config.patch, 1.1, NONE
- Next message (by thread): rpms/ksplice/F-9 ksplice-0.9.3-config.patch, NONE, 1.1 ksplice.spec, 1.3, 1.4 sources, 1.4, 1.5 ksplice-0.9.2-config.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
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 ---
- Previous message (by thread): rpms/ksplice/F-10 ksplice-0.9.3-config.patch, NONE, 1.1 ksplice.spec, 1.7, 1.8 sources, 1.4, 1.5 ksplice-0.9.2-config.patch, 1.1, NONE
- Next message (by thread): rpms/ksplice/F-9 ksplice-0.9.3-config.patch, NONE, 1.1 ksplice.spec, 1.3, 1.4 sources, 1.4, 1.5 ksplice-0.9.2-config.patch, 1.1, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list