rpms/kernel/devel drm-modesetting-radeon.patch, 1.55, 1.56 kernel.spec, 1.1333, 1.1334
Dave Airlie
airlied at fedoraproject.org
Wed Feb 25 06:35:26 UTC 2009
Author: airlied
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv3488
Modified Files:
drm-modesetting-radeon.patch kernel.spec
Log Message:
* Wed Feb 25 2009 Dave Airlie <airlied at redhat.com>
- rebase drm-modesetting-radeon with fixes for TTM + DRI2
drm-modesetting-radeon.patch:
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- drm-modesetting-radeon.patch 21 Feb 2009 22:25:15 -0000 1.55
+++ drm-modesetting-radeon.patch 25 Feb 2009 06:35:23 -0000 1.56
@@ -1,3 +1,42 @@
+commit 0f6053741411f3ab78a99470523175f20c56b256
+Author: David Miller <davem at davemloft.net>
+Date: Thu Feb 12 02:15:39 2009 -0800
+
+ drm: radeon: Fix RADEON_*_EMITED defines.
+
+ These are not supposed to be booleans, they are
+ supposed to be bit masks.
+
+ Signed-off-by: David S. Miller <davem at davemloft.net>
+ Signed-off-by: Dave Airlie <airlied at linux.ie>
+ (cherry picked from commit c88605574cafb3883011c898d21309b5d93d0d09)
+
+commit d5315273951332ebc92d0a0a32412c98fc3b6bec
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Feb 25 16:07:15 2009 +1000
+
+ radeon: fixup cs buffer re-use code to not block straight away
+
+commit da53c6edb0b09776687bbf37796b3db3a47192af
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Feb 25 16:06:30 2009 +1000
+
+ radeon: port CS mutex over from drm.git
+
+ Totally missed this before - really helps stability
+
+commit 5d2a309e5f10266667bc733b884198a2f51cf845
+Author: Dave Airlie <airlied at redhat.com>
+Date: Wed Feb 25 13:03:47 2009 +1000
+
+ radeon: fix IB dump end
+
+commit 57f22b7e9781a6d0894af48369c75b0caa6d9a8b
+Author: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
+Date: Tue Feb 24 20:26:53 2009 +1000
+
+ drm/ttm: work around some x86 pat oddities by using mixedmap instead of pfnmap
+
commit 465937aec83364d3cf516bc8b6c2ca7f785892d9
Author: Dave Airlie <airlied at redhat.com>
Date: Sun Feb 22 08:22:14 2009 +1000
@@ -6419,7 +6458,7 @@
+}
+
diff --git a/drivers/gpu/drm/drm_vm.c b/drivers/gpu/drm/drm_vm.c
-index 3ffae02..bb012ad 100644
+index 3ffae02..57699c8 100644
--- a/drivers/gpu/drm/drm_vm.c
+++ b/drivers/gpu/drm/drm_vm.c
@@ -37,9 +37,15 @@
@@ -6570,7 +6609,7 @@
+ drm_io_prot(_DRM_TTM, vma);
+ }
+
-+ err = vm_insert_pfn(vma, (unsigned long)vmf->virtual_address, pfn);
++ err = vm_insert_mixed(vma, (unsigned long)vmf->virtual_address, pfn);
+ if (err) {
+ ret = (err != -EAGAIN) ? VM_FAULT_OOM : VM_FAULT_NOPAGE;
+ goto out_unlock;
@@ -6655,7 +6694,7 @@
+ vma->vm_private_data = map->handle;
+ vma->vm_file = filp;
+ vma->vm_flags |= VM_RESERVED | VM_IO;
-+ vma->vm_flags |= VM_PFNMAP;
++ vma->vm_flags |= VM_MIXEDMAP;
+ drm_bo_vm_open_locked(vma);
+ return 0;
+}
@@ -19713,10 +19752,10 @@
+}
diff --git a/drivers/gpu/drm/radeon/radeon_cs.c b/drivers/gpu/drm/radeon/radeon_cs.c
new file mode 100644
-index 0000000..143269f
+index 0000000..a916634
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_cs.c
-@@ -0,0 +1,577 @@
+@@ -0,0 +1,583 @@
+/*
+ * Copyright 2008 Jerome Glisse.
+ * All Rights Reserved.
@@ -19760,21 +19799,25 @@
+ long size;
+ int r, i;
+
++ mutex_lock(&dev_priv->cs.cs_mutex);
+ /* set command stream id to 0 which is fake id */
+ cs_id = 0;
+ cs->cs_id = cs_id;
+
+ if (dev_priv == NULL) {
+ DRM_ERROR("called with no initialization\n");
++ mutex_unlock(&dev_priv->cs.cs_mutex);
+ return -EINVAL;
+ }
+ if (!cs->num_chunks) {
++ mutex_unlock(&dev_priv->cs.cs_mutex);
+ return 0;
+ }
+
+
+ chunk_array = drm_calloc(cs->num_chunks, sizeof(uint64_t), DRM_MEM_DRIVER);
+ if (!chunk_array) {
++ mutex_unlock(&dev_priv->cs.cs_mutex);
+ return -ENOMEM;
+ }
+
@@ -19793,7 +19836,8 @@
+ /* copy out the chunk headers */
+ parser.chunks = drm_calloc(parser.num_chunks, sizeof(struct drm_radeon_kernel_chunk), DRM_MEM_DRIVER);
+ if (!parser.chunks) {
-+ return -ENOMEM;
++ r = -ENOMEM;
++ goto out;
+ }
+
+ for (i = 0; i < parser.num_chunks; i++) {
@@ -19883,9 +19927,9 @@
+ dev_priv->cs.id_emit(&parser, &cs_id);
+
+ cs->cs_id = cs_id;
-+
+out:
+ dev_priv->cs.ib_free(&parser, r);
++ mutex_unlock(&dev_priv->cs.cs_mutex);
+
+ for (i = 0; i < parser.num_chunks; i++) {
+ if (parser.chunks[i].kdata)
@@ -20281,6 +20325,7 @@
+{
+ drm_radeon_private_t *dev_priv = dev->dev_private;
+
++ mutex_init(&dev_priv->cs.cs_mutex);
+ if (dev_priv->chip_family < CHIP_RV280) {
+ dev_priv->cs.id_emit = r100_cs_id_emit;
+ dev_priv->cs.id_last_get = r100_cs_id_last_get;
@@ -21437,7 +21482,7 @@
}
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
-index 490bc7c..06c9089 100644
+index 490bc7c..8373c20 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -34,6 +34,8 @@
@@ -21535,10 +21580,15 @@
int fetch_size_l2ow; /* log2 Oct Words */
u32 tail;
-@@ -226,18 +264,89 @@ struct radeon_virt_surface {
- #define RADEON_FLUSH_EMITED (1 < 0)
- #define RADEON_PURGE_EMITED (1 < 1)
+@@ -223,21 +261,93 @@ struct radeon_virt_surface {
+ struct drm_file *file_priv;
+ };
+-#define RADEON_FLUSH_EMITED (1 < 0)
+-#define RADEON_PURGE_EMITED (1 < 1)
++#define RADEON_FLUSH_EMITED (1 << 0)
++#define RADEON_PURGE_EMITED (1 << 1)
++
+struct radeon_mm_obj {
+ struct drm_buffer_object *bo;
+ struct drm_bo_kmap_obj kmap;
@@ -21565,7 +21615,7 @@
+};
+
+#include "radeon_mode.h"
-+
+
struct drm_radeon_master_private {
drm_local_map_t *sarea;
drm_radeon_sarea_t *sarea_priv;
@@ -21591,6 +21641,7 @@
+
+/* command submission struct */
+struct drm_radeon_cs_priv {
++ struct mutex cs_mutex;
+ uint32_t id_wcnt;
+ uint32_t id_scnt;
+ uint32_t id_last_wcnt;
@@ -21629,7 +21680,7 @@
int gart_size;
u32 gart_vm_start;
unsigned long gart_buffers_offset;
-@@ -253,8 +362,6 @@ typedef struct drm_radeon_private {
+@@ -253,8 +363,6 @@ typedef struct drm_radeon_private {
int usec_timeout;
@@ -21638,7 +21689,7 @@
struct {
u32 boxes;
int freelist_timeouts;
-@@ -290,7 +397,6 @@ typedef struct drm_radeon_private {
+@@ -290,7 +398,6 @@ typedef struct drm_radeon_private {
unsigned long buffers_offset;
unsigned long gart_textures_offset;
@@ -21646,7 +21697,7 @@
drm_local_map_t *cp_ring;
drm_local_map_t *ring_rptr;
drm_local_map_t *gart_textures;
-@@ -299,8 +405,8 @@ typedef struct drm_radeon_private {
+@@ -299,8 +406,8 @@ typedef struct drm_radeon_private {
struct mem_block *fb_heap;
/* SW interrupt */
@@ -21656,7 +21707,7 @@
int vblank_crtc;
uint32_t irq_enable_reg;
uint32_t r500_disp_irq_reg;
-@@ -308,9 +414,6 @@ typedef struct drm_radeon_private {
+@@ -308,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];
@@ -21666,7 +21717,7 @@
u32 scratch_ages[5];
-@@ -320,7 +423,44 @@ typedef struct drm_radeon_private {
+@@ -320,7 +424,44 @@ typedef struct drm_radeon_private {
int num_gb_pipes;
int track_flush;
@@ -21711,7 +21762,7 @@
} drm_radeon_private_t;
typedef struct drm_radeon_buf_priv {
-@@ -335,8 +475,14 @@ typedef struct drm_radeon_kcmd_buffer {
+@@ -335,8 +476,14 @@ typedef struct drm_radeon_kcmd_buffer {
} drm_radeon_kcmd_buffer_t;
extern int radeon_no_wb;
@@ -21726,7 +21777,7 @@
/* Check whether the given hardware address is inside the framebuffer or the
* GART area.
-@@ -370,12 +516,9 @@ extern struct drm_buf *radeon_freelist_get(struct drm_device * dev);
+@@ -370,12 +517,9 @@ extern struct drm_buf *radeon_freelist_get(struct drm_device * dev);
extern int radeon_wait_ring(drm_radeon_private_t * dev_priv, int n);
@@ -21740,7 +21791,7 @@
extern int radeon_mem_alloc(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_mem_free(struct drm_device *dev, void *data, struct drm_file *file_priv);
extern int radeon_mem_init_heap(struct drm_device *dev, void *data, struct drm_file *file_priv);
-@@ -403,13 +546,13 @@ extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value);
+@@ -403,13 +547,13 @@ extern int radeon_vblank_crtc_set(struct drm_device *dev, int64_t value);
extern int radeon_driver_load(struct drm_device *dev, unsigned long flags);
extern int radeon_driver_unload(struct drm_device *dev);
extern int radeon_driver_firstopen(struct drm_device *dev);
@@ -21758,7 +21809,7 @@
extern long radeon_compat_ioctl(struct file *filp, unsigned int cmd,
unsigned long arg);
-@@ -423,6 +566,11 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -423,6 +567,11 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
struct drm_file *file_priv,
drm_radeon_kcmd_buffer_t *cmdbuf);
@@ -21770,7 +21821,7 @@
/* Flags for stats.boxes
*/
#define RADEON_BOX_DMA_IDLE 0x1
-@@ -431,10 +579,14 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -431,10 +580,14 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_BOX_WAIT_IDLE 0x8
#define RADEON_BOX_TEXTURE_LOAD 0x10
@@ -21785,7 +21836,7 @@
#define RADEON_AGP_COMMAND 0x0f60
#define RADEON_AGP_COMMAND_PCI_CONFIG 0x0060 /* offset in PCI config */
# define RADEON_AGP_ENABLE (1<<8)
-@@ -560,16 +712,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -560,16 +713,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
@@ -21802,7 +21853,7 @@
#define RADEON_MPP_TB_CONFIG 0x01c0
#define RADEON_MEM_CNTL 0x0140
#define RADEON_MEM_SDRAM_MODE_REG 0x0158
-@@ -634,14 +776,23 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -634,14 +777,23 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_SCRATCH_REG3 0x15ec
#define RADEON_SCRATCH_REG4 0x15f0
#define RADEON_SCRATCH_REG5 0x15f4
@@ -21829,7 +21880,7 @@
#define RADEON_GEN_INT_CNTL 0x0040
# define RADEON_CRTC_VBLANK_MASK (1 << 0)
-@@ -660,10 +811,13 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -660,10 +812,13 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
# define RADEON_SW_INT_FIRE (1 << 26)
# define R500_DISPLAY_INT_STATUS (1 << 0)
@@ -21847,7 +21898,7 @@
#define RADEON_ISYNC_CNTL 0x1724
# define RADEON_ISYNC_ANY2D_IDLE3D (1 << 0)
-@@ -702,12 +856,17 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -702,12 +857,17 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_PP_TXFILTER_1 0x1c6c
#define RADEON_PP_TXFILTER_2 0x1c84
@@ -21871,7 +21922,7 @@
#define RADEON_RB3D_CNTL 0x1c3c
# define RADEON_ALPHA_BLEND_ENABLE (1 << 0)
# define RADEON_PLANE_MASK_ENABLE (1 << 1)
-@@ -734,11 +893,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -734,11 +894,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
# define R300_ZC_FLUSH (1 << 0)
# define R300_ZC_FREE (1 << 1)
# define R300_ZC_BUSY (1 << 31)
@@ -21883,7 +21934,7 @@
#define R300_RB3D_DSTCACHE_CTLSTAT 0x4e4c
# define R300_RB3D_DC_FLUSH (2 << 0)
# define R300_RB3D_DC_FREE (2 << 2)
-@@ -746,15 +900,15 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -746,15 +901,15 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_RB3D_ZSTENCILCNTL 0x1c2c
# define RADEON_Z_TEST_MASK (7 << 4)
# define RADEON_Z_TEST_ALWAYS (7 << 4)
@@ -21903,7 +21954,7 @@
#define RADEON_RBBM_SOFT_RESET 0x00f0
# define RADEON_SOFT_RESET_CP (1 << 0)
# define RADEON_SOFT_RESET_HI (1 << 1)
-@@ -931,6 +1085,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -931,6 +1086,7 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
# define RADEON_PRE_WRITE_LIMIT_SHIFT 23
#define RADEON_CP_IB_BASE 0x0738
@@ -21911,7 +21962,7 @@
#define RADEON_CP_CSQ_CNTL 0x0740
# define RADEON_CSQ_CNT_PRIMARY_MASK (0xff << 0)
-@@ -941,6 +1096,8 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -941,6 +1097,8 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
# define RADEON_CSQ_PRIBM_INDBM (4 << 28)
# define RADEON_CSQ_PRIPIO_INDPIO (15 << 28)
@@ -21920,7 +21971,7 @@
#define RADEON_AIC_CNTL 0x01d0
# define RADEON_PCIGART_TRANSLATE_EN (1 << 0)
# define RS400_MSI_REARM (1 << 3)
-@@ -1015,27 +1172,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -1015,27 +1173,6 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_NUM_VERTICES_SHIFT 16
#define RADEON_COLOR_FORMAT_CI8 2
@@ -21948,7 +21999,7 @@
#define R200_PP_TXCBLEND_0 0x2f00
#define R200_PP_TXCBLEND_1 0x2f10
-@@ -1146,16 +1282,44 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -1146,16 +1283,44 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define R200_SE_TCL_POINT_SPRITE_CNTL 0x22c4
@@ -21995,7 +22046,7 @@
#define R500_D1CRTC_STATUS 0x609c
#define R500_D2CRTC_STATUS 0x689c
#define R500_CRTC_V_BLANK (1<<0)
-@@ -1196,19 +1360,36 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
+@@ -1196,19 +1361,36 @@ extern int r300_do_cp_cmdbuf(struct drm_device *dev,
#define RADEON_RING_HIGH_MARK 128
#define RADEON_PCIGART_TABLE_SIZE (32*1024)
@@ -22039,7 +22090,7 @@
#define RADEON_WRITE_PCIE(addr, val) \
do { \
RADEON_WRITE8(RADEON_PCIE_INDEX, \
-@@ -1265,7 +1446,7 @@ do { \
+@@ -1265,7 +1447,7 @@ do { \
#define RADEON_WAIT_UNTIL_2D_IDLE() do { \
OUT_RING( CP_PACKET0( RADEON_WAIT_UNTIL, 0 ) ); \
OUT_RING( (RADEON_WAIT_2D_IDLECLEAN | \
@@ -22048,7 +22099,7 @@
} while (0)
#define RADEON_WAIT_UNTIL_3D_IDLE() do { \
-@@ -1374,15 +1555,16 @@ do { \
+@@ -1374,15 +1556,16 @@ do { \
#define RADEON_VERBOSE 0
@@ -22068,7 +22119,7 @@
} \
_nr = n; dev_priv->ring.space -= (n) * sizeof(u32); \
ring = dev_priv->ring.start; \
-@@ -1399,19 +1581,14 @@ do { \
+@@ -1399,19 +1582,14 @@ do { \
DRM_ERROR( \
"ADVANCE_RING(): mismatch: nr: %x write: %x line: %d\n", \
((dev_priv->ring.tail + _nr) & mask), \
@@ -22091,7 +22142,7 @@
#define OUT_RING( x ) do { \
if ( RADEON_VERBOSE ) { \
-@@ -1450,4 +1627,161 @@ do { \
+@@ -1450,4 +1628,161 @@ do { \
write &= mask; \
} while (0)
@@ -24406,10 +24457,10 @@
+
diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c
new file mode 100644
-index 0000000..4ba7809
+index 0000000..14bd4c1
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
-@@ -0,0 +1,1542 @@
+@@ -0,0 +1,1550 @@
+/*
+ * Copyright 2008 Red Hat Inc.
+ *
@@ -25633,21 +25684,24 @@
+{
+ int i, index = -1;
+ int ret;
++ int no_wait = 1;
+ drm_radeon_private_t *dev_priv = parser->dev->dev_private;
+
+ for (i = 0; i < RADEON_NUM_IB; i++) {
++
+ if (!(dev_priv->ib_alloc_bitmap & (1 << i))){
+ index = i;
+ break;
+ }
+ }
+
++retry_wait:
+ /* if all in use we need to wait */
+ if (index == -1) {
+ for (i = 0; i < RADEON_NUM_IB; i++) {
+ if (dev_priv->ib_alloc_bitmap & (1 << i)) {
+ mutex_lock(&dev_priv->ib_objs[i]->bo->mutex);
-+ ret = drm_bo_wait(dev_priv->ib_objs[i]->bo, 0, 1, 0, 0);
++ ret = drm_bo_wait(dev_priv->ib_objs[i]->bo, 0, 1, no_wait, 0);
+ mutex_unlock(&dev_priv->ib_objs[i]->bo->mutex);
+ if (ret)
+ continue;
@@ -25658,7 +25712,12 @@
+ }
+ }
+
-+ if (index == -1) {
++ if (index == -1 && no_wait == 1) {
++ no_wait = 0;
++ goto retry_wait;
++ }
++
++ if (index == -1 && no_wait == 0) {
+ DRM_ERROR("Major case fail to allocate IB from freelist %llx\n", dev_priv->ib_alloc_bitmap);
+ return -EINVAL;
+ }
@@ -25677,7 +25736,7 @@
+
+ parser->ib = dev_priv->ib_objs[index]->kmap.virtual;
+ parser->card_offset = dev_priv->gart_vm_start + dev_priv->ib_objs[index]->bo->offset;
-+ dev_priv->ib_alloc_bitmap |= (1 << i);
++ dev_priv->ib_alloc_bitmap |= (1 << index);
+ return 0;
+}
+
@@ -25954,7 +26013,7 @@
+
diff --git a/drivers/gpu/drm/radeon/radeon_gem_proc.c b/drivers/gpu/drm/radeon/radeon_gem_proc.c
new file mode 100644
-index 0000000..98de860
+index 0000000..3d005a1
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_gem_proc.c
@@ -0,0 +1,229 @@
@@ -26088,7 +26147,7 @@
+ offset = 0;
+ offset = (offset + 15) & ~15;
+ start = dev_priv->ib_objs[i]->kmap.virtual + (offset * sizeof(u32));
-+ end = dev_priv->ib_objs[i]->kmap.virtual + ib_size;
++ end = dev_priv->ib_objs[i]->kmap.virtual + (ib_size * sizeof(u32));
+ for (ptr = start; ptr < end; ptr += 4) {
+ DRM_PROC_PRINT("%x: %08x %08x %08x %08x\n", ptr - (uint32_t *)dev_priv->ib_objs[i]->kmap.virtual,
+ ptr[0], ptr[1], ptr[2], ptr[3]);
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1333
retrieving revision 1.1334
diff -u -r1.1333 -r1.1334
--- kernel.spec 25 Feb 2009 04:33:14 -0000 1.1333
+++ kernel.spec 25 Feb 2009 06:35:24 -0000 1.1334
@@ -1755,6 +1755,9 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Wed Feb 25 2009 Dave Airlie <airlied at redhat.com>
+- rebase drm-modesetting-radeon with fixes for TTM + DRI2
+
* Tue Feb 24 2009 Kyle McMartin <kyle at redhat.com> 2.6.29-0.153.rc6.git2
- Update to -git2 snap.
- linux-2.6-ext4-ENOSPC-debug.patch: merged upstream (more or less)
More information about the fedora-extras-commits
mailing list