rpms/kernel/devel drm-next.patch, 1.3, 1.4 config-generic, 1.199, 1.200 drm-modesetting-radeon.patch, 1.50, 1.51 kernel.spec, 1.1173, 1.1174

Dave Airlie airlied at fedoraproject.org
Fri Dec 19 06:21:58 UTC 2008


Author: airlied

Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv22008

Modified Files:
	config-generic drm-modesetting-radeon.patch kernel.spec 
Added Files:
	drm-next.patch 
Log Message:
- drm-next.patch/drm-modesetting-radeon.patch - rebase to upstream.
- config-generic: turn of KMS on radeon until we fixup userspace


drm-next.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.3 -r 1.4 drm-next.patch
Index: drm-next.patch
===================================================================
RCS file: drm-next.patch
diff -N drm-next.patch
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ drm-next.patch	19 Dec 2008 06:21:57 -0000	1.4
@@ -0,0 +1,21369 @@
+diff --git a/drivers/gpu/drm/Kconfig b/drivers/gpu/drm/Kconfig
+index a8b33c2..5130b72 100644
+--- a/drivers/gpu/drm/Kconfig
++++ b/drivers/gpu/drm/Kconfig
+@@ -7,6 +7,8 @@
+ menuconfig DRM
+ 	tristate "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)"
+ 	depends on (AGP || AGP=n) && PCI && !EMULATED_CMPXCHG && MMU
++	select I2C
++	select I2C_ALGOBIT
+ 	help
+ 	  Kernel-level support for the Direct Rendering Infrastructure (DRI)
+ 	  introduced in XFree86 4.0. If you say Y here, you need to select
+@@ -65,6 +67,10 @@ config DRM_I830
+ 	  will load the correct one.
+ 
+ config DRM_I915
++	select FB_CFB_FILLRECT
++	select FB_CFB_COPYAREA
++	select FB_CFB_IMAGEBLIT
++	depends on FB
+ 	tristate "i915 driver"
+ 	help
+ 	  Choose this option if you have a system that has Intel 830M, 845G,
+@@ -76,6 +82,17 @@ config DRM_I915
+ 
+ endchoice
+ 
++config DRM_I915_KMS
++	bool "Enable modesetting on intel by default"
++	depends on DRM_I915
++	help
++	Choose this option if you want kernel modesetting enabled by default,
++	and you have a new enough userspace to support this. Running old
++	userspaces with this enabled will cause pain.  Note that this causes
++	the driver to bind to PCI devices, which precludes loading things
++	like intelfb.
++
++
+ config DRM_MGA
+ 	tristate "Matrox g200/g400"
+ 	depends on DRM
+diff --git a/drivers/gpu/drm/Makefile b/drivers/gpu/drm/Makefile
+index 74da994..30022c4 100644
+--- a/drivers/gpu/drm/Makefile
++++ b/drivers/gpu/drm/Makefile
+@@ -9,7 +9,8 @@ drm-y       :=	drm_auth.o drm_bufs.o drm_cache.o \
+ 		drm_drv.o drm_fops.o drm_gem.o drm_ioctl.o drm_irq.o \
+ 		drm_lock.o drm_memory.o drm_proc.o drm_stub.o drm_vm.o \
+ 		drm_agpsupport.o drm_scatter.o ati_pcigart.o drm_pci.o \
+-		drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o
++		drm_sysfs.o drm_hashtab.o drm_sman.o drm_mm.o \
++		drm_crtc.o drm_crtc_helper.o drm_modes.o drm_edid.o
+ 
+ drm-$(CONFIG_COMPAT) += drm_ioc32.o
+ 
+diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
+index a734627..ca7a9ef 100644
+--- a/drivers/gpu/drm/drm_auth.c
++++ b/drivers/gpu/drm/drm_auth.c
+@@ -45,14 +45,15 @@
+  * the one with matching magic number, while holding the drm_device::struct_mutex
+  * lock.
+  */
+-static struct drm_file *drm_find_file(struct drm_device * dev, drm_magic_t magic)
++static struct drm_file *drm_find_file(struct drm_master *master, drm_magic_t magic)
+ {
+ 	struct drm_file *retval = NULL;
+ 	struct drm_magic_entry *pt;
+ 	struct drm_hash_item *hash;
++	struct drm_device *dev = master->minor->dev;
+ 
+ 	mutex_lock(&dev->struct_mutex);
+-	if (!drm_ht_find_item(&dev->magiclist, (unsigned long)magic, &hash)) {
++	if (!drm_ht_find_item(&master->magiclist, (unsigned long)magic, &hash)) {
+ 		pt = drm_hash_entry(hash, struct drm_magic_entry, hash_item);
+ 		retval = pt->priv;
+ 	}
+@@ -71,11 +72,11 @@ static struct drm_file *drm_find_file(struct drm_device * dev, drm_magic_t magic
+  * associated the magic number hash key in drm_device::magiclist, while holding
+  * the drm_device::struct_mutex lock.
+  */
+-static int drm_add_magic(struct drm_device * dev, struct drm_file * priv,
++static int drm_add_magic(struct drm_master *master, struct drm_file *priv,
+ 			 drm_magic_t magic)
+ {
+ 	struct drm_magic_entry *entry;
+-
++	struct drm_device *dev = master->minor->dev;
+ 	DRM_DEBUG("%d\n", magic);
+ 
+ 	entry = drm_alloc(sizeof(*entry), DRM_MEM_MAGIC);
+@@ -83,11 +84,10 @@ static int drm_add_magic(struct drm_device * dev, struct drm_file * priv,
+ 		return -ENOMEM;
+ 	memset(entry, 0, sizeof(*entry));
+ 	entry->priv = priv;
+-
+ 	entry->hash_item.key = (unsigned long)magic;
+ 	mutex_lock(&dev->struct_mutex);
+-	drm_ht_insert_item(&dev->magiclist, &entry->hash_item);
+-	list_add_tail(&entry->head, &dev->magicfree);
++	drm_ht_insert_item(&master->magiclist, &entry->hash_item);
++	list_add_tail(&entry->head, &master->magicfree);
+ 	mutex_unlock(&dev->struct_mutex);
+ 
+ 	return 0;
+@@ -102,20 +102,21 @@ static int drm_add_magic(struct drm_device * dev, struct drm_file * priv,
+  * Searches and unlinks the entry in drm_device::magiclist with the magic
+  * number hash key, while holding the drm_device::struct_mutex lock.
+  */
+-static int drm_remove_magic(struct drm_device * dev, drm_magic_t magic)
++static int drm_remove_magic(struct drm_master *master, drm_magic_t magic)
+ {
+ 	struct drm_magic_entry *pt;
+ 	struct drm_hash_item *hash;
++	struct drm_device *dev = master->minor->dev;
+ 
+ 	DRM_DEBUG("%d\n", magic);
+ 
+ 	mutex_lock(&dev->struct_mutex);
+-	if (drm_ht_find_item(&dev->magiclist, (unsigned long)magic, &hash)) {
++	if (drm_ht_find_item(&master->magiclist, (unsigned long)magic, &hash)) {
+ 		mutex_unlock(&dev->struct_mutex);
+ 		return -EINVAL;
+ 	}
+ 	pt = drm_hash_entry(hash, struct drm_magic_entry, hash_item);
+-	drm_ht_remove_item(&dev->magiclist, hash);
++	drm_ht_remove_item(&master->magiclist, hash);
+ 	list_del(&pt->head);
+ 	mutex_unlock(&dev->struct_mutex);
+ 
+@@ -153,9 +154,9 @@ int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
+ 				++sequence;	/* reserve 0 */
+ 			auth->magic = sequence++;
+ 			spin_unlock(&lock);
+-		} while (drm_find_file(dev, auth->magic));
++		} while (drm_find_file(file_priv->master, auth->magic));
+ 		file_priv->magic = auth->magic;
+-		drm_add_magic(dev, file_priv, auth->magic);
++		drm_add_magic(file_priv->master, file_priv, auth->magic);
+ 	}
+ 
+ 	DRM_DEBUG("%u\n", auth->magic);
+@@ -181,9 +182,9 @@ int drm_authmagic(struct drm_device *dev, void *data,
+ 	struct drm_file *file;
+ 
+ 	DRM_DEBUG("%u\n", auth->magic);
+-	if ((file = drm_find_file(dev, auth->magic))) {
++	if ((file = drm_find_file(file_priv->master, auth->magic))) {
+ 		file->authenticated = 1;
+-		drm_remove_magic(dev, auth->magic);
++		drm_remove_magic(file_priv->master, auth->magic);
+ 		return 0;
+ 	}
+ 	return -EINVAL;
+diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
+index bde64b8..72c667f 100644
+--- a/drivers/gpu/drm/drm_bufs.c
++++ b/drivers/gpu/drm/drm_bufs.c
+@@ -54,9 +54,9 @@ static struct drm_map_list *drm_find_matching_map(struct drm_device *dev,
+ {
+ 	struct drm_map_list *entry;
+ 	list_for_each_entry(entry, &dev->maplist, head) {
+-		if (entry->map && map->type == entry->map->type &&
++		if (entry->map && (entry->master == dev->primary->master) && (map->type == entry->map->type) &&
+ 		    ((entry->map->offset == map->offset) ||
+-		     (map->type == _DRM_SHM && map->flags==_DRM_CONTAINS_LOCK))) {
++		     ((map->type == _DRM_SHM) && (map->flags&_DRM_CONTAINS_LOCK)))) {
+ 			return entry;
+ 		}
+ 	}
+@@ -210,12 +210,12 @@ static int drm_addmap_core(struct drm_device * dev, unsigned int offset,
+ 		map->offset = (unsigned long)map->handle;
+ 		if (map->flags & _DRM_CONTAINS_LOCK) {
+ 			/* Prevent a 2nd X Server from creating a 2nd lock */
+-			if (dev->lock.hw_lock != NULL) {
++			if (dev->primary->master->lock.hw_lock != NULL) {
+ 				vfree(map->handle);
+ 				drm_free(map, sizeof(*map), DRM_MEM_MAPS);
+ 				return -EBUSY;
+ 			}
+-			dev->sigdata.lock = dev->lock.hw_lock = map->handle;	/* Pointer to lock */
++			dev->sigdata.lock = dev->primary->master->lock.hw_lock = map->handle;	/* Pointer to lock */
+ 		}
+ 		break;
+ 	case _DRM_AGP: {
+@@ -262,6 +262,9 @@ static int drm_addmap_core(struct drm_device * dev, unsigned int offset,
+ 		DRM_DEBUG("AGP offset = 0x%08lx, size = 0x%08lx\n", map->offset, map->size);
+ 
+ 		break;
++	case _DRM_GEM:
++		DRM_ERROR("tried to rmmap GEM object\n");
++		break;
[...20976 lines suppressed...]
++struct drm_mode_get_property {
++	uint64_t values_ptr; /* values and blob lengths */
++	uint64_t enum_blob_ptr; /* enum and blob id ptrs */
++
++	uint32_t prop_id;
++	uint32_t flags;
++	char name[DRM_PROP_NAME_LEN];
++
++	uint32_t count_values;
++	uint32_t count_enum_blobs;
++};
++
++struct drm_mode_connector_set_property {
++	uint64_t value;
++	uint32_t prop_id;
++	uint32_t connector_id;
++};
++
++struct drm_mode_get_blob {
++	uint32_t blob_id;
++	uint32_t length;
++	uint64_t data;
++};
++
++struct drm_mode_fb_cmd {
++	uint32_t fb_id;
++	uint32_t width, height;
++	uint32_t pitch;
++	uint32_t bpp;
++	uint32_t depth;
++	/* driver specific handle */
++	uint32_t handle;
++};
++
++struct drm_mode_mode_cmd {
++	uint32_t connector_id;
++	struct drm_mode_modeinfo mode;
++};
++
++#define DRM_MODE_CURSOR_BO	(1<<0)
++#define DRM_MODE_CURSOR_MOVE	(1<<1)
++
++/*
++ * depending on the value in flags diffrent members are used.
++ *
++ * CURSOR_BO uses
++ *    crtc
++ *    width
++ *    height
++ *    handle - if 0 turns the cursor of
++ *
++ * CURSOR_MOVE uses
++ *    crtc
++ *    x
++ *    y
++ */
++struct drm_mode_cursor {
++	uint32_t flags;
++	uint32_t crtc_id;
++	int32_t x;
++	int32_t y;
++	uint32_t width;
++	uint32_t height;
++	/* driver specific handle */
++	uint32_t handle;
++};
++
++struct drm_mode_crtc_lut {
++	uint32_t crtc_id;
++	uint32_t gamma_size;
++
++	/* pointers to arrays */
++	uint64_t red;
++	uint64_t green;
++	uint64_t blue;
++};
++
++#endif
+diff --git a/include/drm/drm_sarea.h b/include/drm/drm_sarea.h
+index 4800373..ee5389d 100644
+--- a/include/drm/drm_sarea.h
++++ b/include/drm/drm_sarea.h
+@@ -36,12 +36,12 @@
+ 
+ /* SAREA area needs to be at least a page */
+ #if defined(__alpha__)
+-#define SAREA_MAX                       0x2000
++#define SAREA_MAX                       0x2000U
+ #elif defined(__ia64__)
+-#define SAREA_MAX                       0x10000	/* 64kB */
++#define SAREA_MAX                       0x10000U	/* 64kB */
+ #else
+ /* Intel 830M driver needs at least 8k SAREA */
+-#define SAREA_MAX                       0x2000
++#define SAREA_MAX                       0x2000U
+ #endif
+ 
+ /** Maximum number of drawables in the SAREA */
+diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
+index 152b34d..b3bcf72 100644
+--- a/include/drm/i915_drm.h
++++ b/include/drm/i915_drm.h
+@@ -113,8 +113,31 @@ typedef struct _drm_i915_sarea {
+ 	int pipeB_y;
+ 	int pipeB_w;
+ 	int pipeB_h;
++
++	/* fill out some space for old userspace triple buffer */
++	drm_handle_t unused_handle;
++	uint32_t unused1, unused2, unused3;
++
++	/* buffer object handles for static buffers. May change
++	 * over the lifetime of the client.
++	 */
++	uint32_t front_bo_handle;
++	uint32_t back_bo_handle;
++	uint32_t unused_bo_handle;
++	uint32_t depth_bo_handle;
++
+ } drm_i915_sarea_t;
+ 
++/* due to userspace building against these headers we need some compat here */
++#define planeA_x pipeA_x
++#define planeA_y pipeA_y
++#define planeA_w pipeA_w
++#define planeA_h pipeA_h
++#define planeB_x pipeB_x
++#define planeB_y pipeB_y
++#define planeB_w pipeB_w
++#define planeB_h pipeB_h
++
+ /* Flags for perf_boxes
+  */
+ #define I915_BOX_RING_EMPTY    0x1
+@@ -160,6 +183,7 @@ typedef struct _drm_i915_sarea {
+ #define DRM_I915_GEM_SET_TILING	0x21
+ #define DRM_I915_GEM_GET_TILING	0x22
+ #define DRM_I915_GEM_GET_APERTURE 0x23
++#define DRM_I915_GEM_MMAP_GTT	0x24
+ 
+ #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)
+@@ -177,6 +201,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)
++#define DRM_IOCTL_I915_GEM_INIT		DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
++#define DRM_IOCTL_I915_GEM_EXECBUFFER	DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
+ #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)
+@@ -187,6 +213,7 @@ typedef struct _drm_i915_sarea {
+ #define DRM_IOCTL_I915_GEM_PREAD	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PREAD, struct drm_i915_gem_pread)
+ #define DRM_IOCTL_I915_GEM_PWRITE	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_PWRITE, struct drm_i915_gem_pwrite)
+ #define DRM_IOCTL_I915_GEM_MMAP		DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP, struct drm_i915_gem_mmap)
++#define DRM_IOCTL_I915_GEM_MMAP_GTT	DRM_IOWR(DRM_COMMAND_BASE + DRM_I915_GEM_MMAP_GTT, struct drm_i915_gem_mmap_gtt)
+ #define DRM_IOCTL_I915_GEM_SET_DOMAIN	DRM_IOW (DRM_COMMAND_BASE + DRM_I915_GEM_SET_DOMAIN, struct drm_i915_gem_set_domain)
+ #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)
+@@ -196,7 +223,7 @@ typedef struct _drm_i915_sarea {
+ /* Allow drivers to submit batchbuffers directly to hardware, relying
+  * on the security mechanisms provided by hardware.
+  */
+-typedef struct _drm_i915_batchbuffer {
++typedef struct drm_i915_batchbuffer {
+ 	int start;		/* agp offset */
+ 	int used;		/* nr bytes in use */
+ 	int DR1;		/* hw flags for GFX_OP_DRAWRECT_INFO */
+@@ -382,6 +409,18 @@ struct drm_i915_gem_mmap {
+ 	uint64_t addr_ptr;
+ };
+ 
++struct drm_i915_gem_mmap_gtt {
++	/** Handle for the object being mapped. */
++	uint32_t handle;
++	uint32_t pad;
++	/**
++	 * Fake offset to use for subsequent mmap call
++	 *
++	 * This is a fixed-size type for 32/64 compatibility.
++	 */
++	uint64_t offset;
++};
++
+ struct drm_i915_gem_set_domain {
+ 	/** Handle for the object */
+ 	uint32_t handle;
+diff --git a/include/linux/console.h b/include/linux/console.h
+index 248e6e3..a67a90c 100644
+--- a/include/linux/console.h
++++ b/include/linux/console.h
+@@ -153,4 +153,8 @@ void vcs_remove_sysfs(struct tty_struct *tty);
+ #define VESA_HSYNC_SUSPEND      2
+ #define VESA_POWERDOWN          3
+ 
++#ifdef CONFIG_VGA_CONSOLE
++extern bool vgacon_text_force(void);
++#endif
++
+ #endif /* _LINUX_CONSOLE_H */


Index: config-generic
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/config-generic,v
retrieving revision 1.199
retrieving revision 1.200
diff -u -r1.199 -r1.200
--- config-generic	17 Dec 2008 19:49:17 -0000	1.199
+++ config-generic	19 Dec 2008 06:21:57 -0000	1.200
@@ -2122,7 +2122,7 @@
 CONFIG_DRM_TDFX=m
 CONFIG_DRM_R128=m
 CONFIG_DRM_RADEON=m
-CONFIG_DRM_RADEON_KMS=y
+CONFIG_DRM_RADEON_KMS=n
 CONFIG_DRM_I810=m
 CONFIG_DRM_I830=m
 CONFIG_DRM_MGA=m

drm-modesetting-radeon.patch:

View full diff with command:
/usr/bin/cvs -f diff  -kk -u -N -r 1.50 -r 1.51 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- drm-modesetting-radeon.patch	8 Dec 2008 03:24:57 -0000	1.50
+++ drm-modesetting-radeon.patch	19 Dec 2008 06:21:57 -0000	1.51
@@ -1,3 +1,1323 @@
+commit 3ef2b914f9667c70a9711fa31ff95d639ccc8e2e
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Thu Dec 18 23:01:12 2008 +1000
+
+    drm: don't set cached bits on pages from uncached allocator.
+    
+    This should make AGP no corrupt itself to all buggery
+    (cherry picked from commit 55c0a3f1d3693cb5c3b65f37d4bb6e8a3c025460)
+
+commit be5f7447cc492545e225170be38e5e65d7de37d9
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Tue Dec 2 16:38:04 2008 +1000
+
+    drop old CS
+
+commit 91bfed87127c1bd17098803184e43783d55f35e5
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Dec 1 15:09:27 2008 +1000
+
+    radeon: update with latest CS bits
+
+commit a7f6175e3610651b1f84a1b8aa1f61a9a4f3bdb6
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Wed Dec 17 06:56:36 2008 +1000
+
+    fixups post rebase
+
+commit cd29f247278a5949956adbfb75229dc9bad19f8e
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Thu Dec 11 01:35:09 2008 +1000
+
+    radeon: fix agp mode when kms isn't enabled
+
+commit 0d0f9c970263750a68131b5f88735c59f605c69f
+Author: Dave Airlie <airlied at ppcg5.localdomain>
+Date:   Wed Dec 3 17:22:07 2008 +1100
+
+    radeon: add support for accessing disabled ROMs.
+
+commit 840d823d6f33c1852b92791093b23b1ce7af25ac
+Author: Dave Airlie <airlied at ppcg5.localdomain>
+Date:   Wed Dec 3 17:19:02 2008 +1100
+
+    radeon: make cail do pll read/write via actual PLL functions
+
+commit 049d865d47cf229234cd7dd0ef8927a41a142b0e
+Author: Dave Airlie <airlied at ppcg5.localdomain>
+Date:   Wed Dec 3 16:36:00 2008 +1100
+
+    radeon: atom fixes for endianness
+
+commit df08dc63cbbd19a8ea0659bdc379147a59201b4c
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Wed Dec 3 20:28:05 2008 +1000
+
+    radeon: AGP fixes round 2.
+    
+    More I can't believe its not AGP fixes.
+    Limit the AGP aperture to the GART size, and init the registers
+    in the right place
+
+commit 79d6ac96108c29dbce90ce605b01dd6b71673092
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Tue Dec 2 12:49:17 2008 +1000
+
+    radeon: AGP fixes
+    
+    1. Proper PCIE fallback on PCIE cards.
+    2. Setup agp base + location regs properly
+
+commit e6a1353d11f485c99371e0b89c669da0c23e8af4
+Author: Michal Schmidt <mschmidt at redhat.com>
+Date:   Tue Dec 2 08:06:59 2008 +1000
+
+    radeon: fix IGP GART calcs
+    
+    fedora bz 473895
+
+commit d879f36aca29ece7c3bfada452266e82df3f2392
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Thu Nov 27 17:14:40 2008 +1000
+
+    radeon: post any GPUs that aren't posted
+
+commit d04c4750aba2b0bd306ab36a0002f2609ed6cc9a
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 24 15:18:31 2008 +1000
+
+    radeon: enable larger GART size on PCIE/IGP
+    
+    Allocate a larger GART on PCIE and IGP chipsets controlled by the gart_size
+    command line option.
+    
+    Default to 512MB gart.
+
+commit ae7c33fa98bf4921292f6dffb6e60dd2b85cddfa
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 24 15:17:49 2008 +1000
+
+    radeon: add some missing feature checks for modesetting
+
+commit 54fd140cc8c63d5c65fbcdf21259025fd8a431e8
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 24 11:41:06 2008 +1100
+
+    radeon: make rs480/rs690 gart invalidate work properly.
+    
+    we really need to read back to make sure the invalidate has happened
+    before continuing along happily in life.
+
+commit 5e418cef1bfca7e8e0821d6e44a1e1a78e015b17
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Sun Nov 23 19:19:02 2008 +1000
+
+    drm: we have discardable now so don't do special cases
+
+commit 87e2de7aef77b96a8be3532358b6ceb9540d622a
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Fri Nov 21 14:52:25 2008 +1000
+
+    atom: fix bug in parser for MC reads
+
+commit 52eccc11083a1c0636337520187a4e2cf9bfe989
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 17 18:14:28 2008 +1000
+
+    radeon: turn of VRAM zeroing by default for now - needs work
+
+commit 7a32efbc88ed749c0cd44a95bb4888cd2bc806c0
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 17 09:03:36 2008 +1000
+
+    radeon: fix return value for no relocs
+
+commit 5a47b4d8a97949288ebe8f2f3437637e405d1db8
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 17 09:03:01 2008 +1000
+
+    ttm: add discard for VRAM buffers
+
+commit 160794bbbb90088a86acc96ca5268bc46255582d
+Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
+Date:   Fri Nov 14 15:52:32 2008 +1000
+
+    drm: fix the exit path of the bo unlocking
+
+commit 1ea46b5e3dc7e75afe1936594e0e085c9dc8665d
+Author: Dave Airlie <airlied at dhcp-1-203.bne.redhat.com>
+Date:   Fri Nov 14 15:51:44 2008 +1000
+
+    radeon: fixup relocate to work on locate write buffers in VRAM first.
+    
+    Fixup failure paths and make EAGAIN work
+
+commit e16a76e302eba9b53858457054059985ec0ef9df
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Thu Nov 13 17:22:26 2008 +1100
+
+    radeon: fix some issues since last rebase
+
+commit e9ab870ce368dab7ed9e859c157074913353b589
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Wed Nov 12 09:01:14 2008 +1000
+
+    radeon: fix more build
+
+commit 3b7c8b9cb7db0749540f9b042c7bf9e8e65f320d
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Wed Nov 12 08:59:04 2008 +1000
+
+    radeon: fix compile
+
+commit 8455e44f0909b58b60465e7e8f84b77ec12710cc
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Mon Nov 10 15:39:25 2008 +1000
+
+    radeon: fix dumbness in cp ring check
+
+commit f6654d03d800ea8e75bffdfad679cf8450c60361
+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 0fb851b61a586a96a39d7f8725b12152c1fa1c27
+Author: Dave Airlie <airlied at redhat.com>
+Date:   Sun Nov 9 20:34:49 2008 +1000
+
+    radeon: fix powerpc oops on rv280
+
+commit b264e9bd0230865da5406eb991f9afdbedd49385
[...13052 lines suppressed...]
- /* SAREA area needs to be at least a page */
- #if defined(__alpha__)
--#define SAREA_MAX                       0x2000
-+#define SAREA_MAX                       0x2000UL
- #elif defined(__ia64__)
--#define SAREA_MAX                       0x10000	/* 64kB */
-+#define SAREA_MAX                       0x10000UL	/* 64kB */
- #else
- /* Intel 830M driver needs at least 8k SAREA */
--#define SAREA_MAX                       0x2000
-+#define SAREA_MAX                       0x2000UL
- #endif
- 
- /** Maximum number of drawables in the SAREA */
 diff --git a/include/drm/i915_drm.h b/include/drm/i915_drm.h
-index 152b34d..13c91fc 100644
+index b3bcf72..181d9de 100644
 --- a/include/drm/i915_drm.h
 +++ b/include/drm/i915_drm.h
-@@ -63,7 +63,7 @@ typedef struct _drm_i915_init {
- 	unsigned int chipset;
- } drm_i915_init_t;
- 
--typedef struct _drm_i915_sarea {
-+typedef struct drm_i915_sarea {
- 	struct drm_tex_region texList[I915_NR_TEX_REGIONS + 1];
- 	int last_upload;	/* last time texture was uploaded */
- 	int last_enqueue;	/* last time a buffer was enqueued */
-@@ -105,14 +105,26 @@ typedef struct _drm_i915_sarea {
- 	unsigned int rotated_tiled;
- 	unsigned int rotated2_tiled;
- 
--	int pipeA_x;
--	int pipeA_y;
--	int pipeA_w;
--	int pipeA_h;
--	int pipeB_x;
--	int pipeB_y;
--	int pipeB_w;
--	int pipeB_h;
-+	int planeA_x;
-+	int planeA_y;
-+	int planeA_w;
-+	int planeA_h;
-+	int planeB_x;
-+	int planeB_y;
-+	int planeB_w;
-+	int planeB_h;
-+
-+	/* triple buffering - not in kernel */
-+	drm_handle_t third_handle;
-+	int third_offset;
-+	int third_size;
-+	unsigned int third_tiled;
-+
-+	/* buffer object handles for static buffers */
-+	unsigned int front_bo_handle;
-+	unsigned int back_bo_handle;
-+	unsigned int third_bo_handle;
-+	unsigned int depth_bo_handle;
- } drm_i915_sarea_t;
- 
- /* Flags for perf_boxes
-@@ -163,7 +175,7 @@ typedef struct _drm_i915_sarea {
+@@ -187,7 +187,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)
@@ -43798,16 +36034,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)
-@@ -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)
-+#define DRM_IOCTL_I915_GEM_INIT         DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_INIT, struct drm_i915_gem_init)
-+#define DRM_IOCTL_I915_GEM_EXECBUFFER   DRM_IOW(DRM_COMMAND_BASE + DRM_I915_GEM_EXECBUFFER, struct drm_i915_gem_execbuffer)
- #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)
-@@ -193,10 +207,22 @@ typedef struct _drm_i915_sarea {
+@@ -220,6 +220,18 @@ 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)
  
@@ -43826,13 +36053,8 @@
  /* Allow drivers to submit batchbuffers directly to hardware, relying
   * on the security mechanisms provided by hardware.
   */
--typedef struct _drm_i915_batchbuffer {
-+typedef struct drm_i915_batchbuffer {
- 	int start;		/* agp offset */
- 	int used;		/* nr bytes in use */
- 	int DR1;		/* hw flags for GFX_OP_DRAWRECT_INFO */
 diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
-index 73ff51f..770f6f0 100644
+index 73ff51f..e4f5897 100644
 --- a/include/drm/radeon_drm.h
 +++ b/include/drm/radeon_drm.h
 @@ -453,6 +453,15 @@ typedef struct {
@@ -43851,7 +36073,7 @@
  } drm_radeon_sarea_t;
  
  /* WARNING: If you change any of these defines, make sure to change the
-@@ -493,6 +502,19 @@ typedef struct {
+@@ -493,6 +502,18 @@ typedef struct {
  #define DRM_RADEON_SURF_ALLOC 0x1a
  #define DRM_RADEON_SURF_FREE  0x1b
  
@@ -43865,13 +36087,12 @@
 +#define DRM_RADEON_GEM_SET_DOMAIN 0x23
 +#define DRM_RADEON_GEM_WAIT_RENDERING 0x24
 +
-+#define DRM_RADEON_CS           0x25
-+#define DRM_RADEON_CS2       0x26
++#define DRM_RADEON_CS       0x26
 +
  #define DRM_IOCTL_RADEON_CP_INIT    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_INIT, drm_radeon_init_t)
  #define DRM_IOCTL_RADEON_CP_START   DRM_IO(  DRM_COMMAND_BASE + DRM_RADEON_CP_START)
  #define DRM_IOCTL_RADEON_CP_STOP    DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_CP_STOP, drm_radeon_cp_stop_t)
-@@ -521,6 +543,19 @@ typedef struct {
+@@ -521,6 +542,18 @@ typedef struct {
  #define DRM_IOCTL_RADEON_SURF_ALLOC DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_ALLOC, drm_radeon_surface_alloc_t)
  #define DRM_IOCTL_RADEON_SURF_FREE  DRM_IOW( DRM_COMMAND_BASE + DRM_RADEON_SURF_FREE, drm_radeon_surface_free_t)
  
@@ -43885,13 +36106,12 @@
 +#define DRM_IOCTL_RADEON_GEM_SET_DOMAIN  DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_SET_DOMAIN, struct drm_radeon_gem_set_domain)
 +#define DRM_IOCTL_RADEON_GEM_WAIT_RENDERING DRM_IOW(DRM_COMMAND_BASE + DRM_RADEON_GEM_WAIT_RENDERING, struct drm_radeon_gem_wait_rendering) 
 +#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
-+#define DRM_IOCTL_RADEON_CS2 DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS2, struct drm_radeon_cs2)
 +
 +
  typedef struct drm_radeon_init {
  	enum {
  		RADEON_INIT_CP = 0x01,
-@@ -677,6 +712,7 @@ typedef struct drm_radeon_indirect {
+@@ -677,6 +710,7 @@ typedef struct drm_radeon_indirect {
  #define RADEON_PARAM_VBLANK_CRTC           13   /* VBLANK CRTC */
  #define RADEON_PARAM_FB_LOCATION           14   /* FB location */
  #define RADEON_PARAM_NUM_GB_PIPES          15   /* num GB pipes */
@@ -43899,7 +36119,7 @@
  
  typedef struct drm_radeon_getparam {
  	int param;
-@@ -731,6 +767,7 @@ typedef struct drm_radeon_setparam {
+@@ -731,6 +765,7 @@ typedef struct drm_radeon_setparam {
  #define RADEON_SETPARAM_NEW_MEMMAP 4		/* Use new memory map */
  #define RADEON_SETPARAM_PCIGART_TABLE_SIZE 5    /* PCI GART Table Size */
  #define RADEON_SETPARAM_VBLANK_CRTC 6           /* VBLANK CRTC */
@@ -43907,7 +36127,7 @@
  /* 1.14: Clients can allocate/free a surface
   */
  typedef struct drm_radeon_surface_alloc {
-@@ -746,4 +783,114 @@ typedef struct drm_radeon_surface_free {
+@@ -746,4 +781,106 @@ typedef struct drm_radeon_surface_free {
  #define	DRM_RADEON_VBLANK_CRTC1		1
  #define	DRM_RADEON_VBLANK_CRTC2		2
  
@@ -43995,14 +36215,6 @@
 +
 +/* New interface which obsolete all previous interface.
 + */
-+
-+
-+struct drm_radeon_cs {
-+	uint32_t            dwords;
-+	uint32_t            cs_id;
-+	uint64_t            packets;
-+};
-+
 +#define RADEON_CHUNK_ID_RELOCS 0x01
 +#define RADEON_CHUNK_ID_IB     0x02
 +#define RADEON_CHUNK_ID_OLD 0xff
@@ -44013,7 +36225,7 @@
 +	uint64_t chunk_data;
 +};
 +
-+struct drm_radeon_cs2 {
++struct drm_radeon_cs {
 +	uint32_t	num_chunks;
 +	uint32_t        cs_id;
 +	uint64_t	chunks; /* this points to uint64_t * which point to
@@ -44022,16 +36234,3 @@
 +
 +
  #endif
-diff --git a/include/linux/console.h b/include/linux/console.h
-index 248e6e3..a67a90c 100644
---- a/include/linux/console.h
-+++ b/include/linux/console.h
-@@ -153,4 +153,8 @@ void vcs_remove_sysfs(struct tty_struct *tty);
- #define VESA_HSYNC_SUSPEND      2
- #define VESA_POWERDOWN          3
- 
-+#ifdef CONFIG_VGA_CONSOLE
-+extern bool vgacon_text_force(void);
-+#endif
-+
- #endif /* _LINUX_CONSOLE_H */


Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.1173
retrieving revision 1.1174
diff -u -r1.1173 -r1.1174
--- kernel.spec	19 Dec 2008 04:39:49 -0000	1.1173
+++ kernel.spec	19 Dec 2008 06:21:57 -0000	1.1174
@@ -643,8 +643,8 @@
 Patch1550: linux-2.6-cdrom-door-status.patch
 
 # nouveau + drm fixes
+Patch1811: drm-next.patch
 Patch1812: drm-modesetting-radeon.patch
-Patch1813: drm-modesetting-i915.patch
 Patch1814: drm-nouveau.patch
 
 # kludge to make ich9 e1000 work
@@ -1173,9 +1173,9 @@
 ApplyPatch linux-2.6-olpc-speaker-out.patch
 
 # Nouveau DRM + drm fixes
+ApplyPatch drm-next.patch
 ApplyPatch drm-modesetting-radeon.patch
-#ApplyPatch drm-modesetting-i915.patch
-ApplyPatch drm-nouveau.patch
+#ApplyPatch drm-nouveau.patch
 
 # linux1394 git patches
 #ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1768,6 +1768,10 @@
 %kernel_variant_files -k vmlinux %{with_kdump} kdump
 
 %changelog
+* Thu Dec 18 2008 Dave Airlie <airlied at redhat.com>
+- drm-next.patch/drm-modesetting-radeon.patch - rebase to upstream.
+- config-generic: turn of KMS on radeon until we fixup userspace
+
 * Thu Dec 18 2008 Dave Jones <davej at redhat.com>
 - 2.6.28-rc9
 




More information about the fedora-extras-commits mailing list