rpms/kernel/devel drm.patch, NONE, 1.1 kernel-2.6.spec, 1.1856, 1.1857 linux-2.6-x86_64-page-table-setup.patch, 1.1, NONE
fedora-cvs-commits at redhat.com
fedora-cvs-commits at redhat.com
Mon Jan 16 04:30:05 UTC 2006
- Previous message (by thread): rpms/texinfo/devel texinfo-4.3-zlib.patch, 1.3, 1.4 texinfo.spec, 1.30, 1.31
- Next message (by thread): rpms/texinfo/devel texinfo-4.8-zlib.patch, NONE, 1.1 texinfo.spec, 1.31, 1.32 texinfo-4.3-zlib.patch, 1.4, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: davej
Update of /cvs/dist/rpms/kernel/devel
In directory cvs.devel.redhat.com:/tmp/cvs-serv9961
Modified Files:
kernel-2.6.spec
Added Files:
drm.patch
Removed Files:
linux-2.6-x86_64-page-table-setup.patch
Log Message:
revert some drm bits
drm.patch:
b/drivers/char/drm/Makefile | 4
b/drivers/char/drm/ati_pcigart.c | 23
b/drivers/char/drm/drm.h | 4
b/drivers/char/drm/drmP.h | 122 +++--
b/drivers/char/drm/drm_agpsupport.c | 133 +++--
b/drivers/char/drm/drm_bufs.c | 49 +-
b/drivers/char/drm/drm_context.c | 2
b/drivers/char/drm/drm_core.h | 4
b/drivers/char/drm/drm_drv.c | 152 +++---
b/drivers/char/drm/drm_fops.c | 317 +++++++------
b/drivers/char/drm/drm_ioc32.c | 1
b/drivers/char/drm/drm_ioctl.c | 27 -
b/drivers/char/drm/drm_lock.c | 1
b/drivers/char/drm/drm_memory.c | 8
b/drivers/char/drm/drm_memory_debug.h | 269 +++++------
b/drivers/char/drm/drm_os_linux.h | 1
b/drivers/char/drm/drm_pciids.h | 12
b/drivers/char/drm/drm_proc.c | 16
b/drivers/char/drm/drm_stub.c | 63 --
b/drivers/char/drm/drm_sysfs.c | 66 +-
b/drivers/char/drm/i810_dma.c | 49 +-
b/drivers/char/drm/i810_drv.c | 60 --
b/drivers/char/drm/i810_drv.h | 10
b/drivers/char/drm/i830_dma.c | 47 +
b/drivers/char/drm/i830_drv.c | 59 --
b/drivers/char/drm/i830_drv.h | 8
b/drivers/char/drm/i915_dma.c | 52 +-
b/drivers/char/drm/i915_drm.h | 6
b/drivers/char/drm/i915_drv.c | 66 --
b/drivers/char/drm/i915_drv.h | 44 +
b/drivers/char/drm/i915_ioc32.c | 1
b/drivers/char/drm/i915_irq.c | 48 +-
b/drivers/char/drm/i915_mem.c | 5
b/drivers/char/drm/mga_dma.c | 160 ++++--
b/drivers/char/drm/mga_drv.c | 58 --
b/drivers/char/drm/mga_drv.h | 14
b/drivers/char/drm/mga_ioc32.c | 1
b/drivers/char/drm/mga_state.c | 26 -
b/drivers/char/drm/r128_cce.c | 15
b/drivers/char/drm/r128_drm.h | 4
b/drivers/char/drm/r128_drv.c | 48 --
b/drivers/char/drm/r128_drv.h | 8
b/drivers/char/drm/r128_ioc32.c | 1
b/drivers/char/drm/r128_irq.c | 4
b/drivers/char/drm/r128_state.c | 44 -
b/drivers/char/drm/r300_cmdbuf.c | 38 -
b/drivers/char/drm/r300_reg.h | 1
b/drivers/char/drm/radeon_cp.c | 106 ++--
b/drivers/char/drm/radeon_drm.h | 6
b/drivers/char/drm/radeon_drv.c | 62 +-
b/drivers/char/drm/radeon_drv.h | 41 -
b/drivers/char/drm/radeon_ioc32.c | 1
b/drivers/char/drm/radeon_state.c | 246 ++++------
b/drivers/char/drm/savage_bci.c | 81 +--
b/drivers/char/drm/savage_drv.c | 50 --
b/drivers/char/drm/savage_drv.h | 29 -
b/drivers/char/drm/savage_state.c | 324 ++++++-------
b/drivers/char/drm/sis_drm.h | 25 +
b/drivers/char/drm/sis_drv.c | 42 -
b/drivers/char/drm/sis_drv.h | 4
b/drivers/char/drm/sis_ds.h | 7
b/drivers/char/drm/sis_mm.c | 30 -
b/drivers/char/drm/tdfx_drv.c | 42 -
b/drivers/char/drm/tdfx_drv.h | 7
b/drivers/char/drm/via_dma.c | 38 +
b/drivers/char/drm/via_dmablit.c | 805 ++++++++++++++++++++++++++++++++++
b/drivers/char/drm/via_dmablit.h | 140 +++++
b/drivers/char/drm/via_drm.h | 58 +-
b/drivers/char/drm/via_drv.c | 63 --
b/drivers/char/drm/via_drv.h | 56 +-
b/drivers/char/drm/via_ds.c | 9
b/drivers/char/drm/via_irq.c | 53 +-
b/drivers/char/drm/via_map.c | 47 +
b/drivers/char/drm/via_mm.c | 20
b/drivers/char/drm/via_verifier.c | 6
b/drivers/char/drm/via_verifier.h | 4
b/drivers/char/drm/via_video.c | 7
drivers/char/drm/drm_init.c | 53 --
78 files changed, 2795 insertions(+), 1818 deletions(-)
--- NEW FILE drm.patch ---
diff --git a/drivers/char/drm/Makefile b/drivers/char/drm/Makefile
index e41060c..9d180c4 100644
--- a/drivers/char/drm/Makefile
+++ b/drivers/char/drm/Makefile
@@ -3,7 +3,7 @@
# Direct Rendering Infrastructure (DRI) in XFree86 4.1.0 and higher.
drm-objs := drm_auth.o drm_bufs.o drm_context.o drm_dma.o drm_drawable.o \
- drm_drv.o drm_fops.o drm_init.o drm_ioctl.o drm_irq.o \
+ drm_drv.o drm_fops.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
@@ -18,7 +18,7 @@ radeon-objs := radeon_drv.o radeon_cp.o
ffb-objs := ffb_drv.o ffb_context.o
sis-objs := sis_drv.o sis_ds.o sis_mm.o
savage-objs := savage_drv.o savage_bci.o savage_state.o
-via-objs := via_irq.o via_drv.o via_ds.o via_map.o via_mm.o via_dma.o via_verifier.o via_video.o
+via-objs := via_irq.o via_drv.o via_ds.o via_map.o via_mm.o via_dma.o via_verifier.o via_video.o via_dmablit.o
ifeq ($(CONFIG_COMPAT),y)
drm-objs += drm_ioc32.o
diff --git a/drivers/char/drm/ati_pcigart.c b/drivers/char/drm/ati_pcigart.c
index efff0ee..5485382 100644
--- a/drivers/char/drm/ati_pcigart.c
+++ b/drivers/char/drm/ati_pcigart.c
@@ -52,7 +52,7 @@
# define ATI_MAX_PCIGART_PAGES 8192 /**< 32 MB aperture, 4K pages */
# define ATI_PCIGART_PAGE_SIZE 4096 /**< PCI GART page size */
-static unsigned long drm_ati_alloc_pcigart_table(void)
+static void *drm_ati_alloc_pcigart_table(void)
{
unsigned long address;
struct page *page;
@@ -72,27 +72,26 @@ static unsigned long drm_ati_alloc_pciga
}
DRM_DEBUG("%s: returning 0x%08lx\n", __FUNCTION__, address);
- return address;
+ return (void *)address;
}
-static void drm_ati_free_pcigart_table(unsigned long address)
+static void drm_ati_free_pcigart_table(void *address)
{
struct page *page;
int i;
DRM_DEBUG("%s\n", __FUNCTION__);
- page = virt_to_page(address);
+ page = virt_to_page((unsigned long)address);
for (i = 0; i < ATI_PCIGART_TABLE_PAGES; i++, page++) {
__put_page(page);
ClearPageReserved(page);
}
- free_pages(address, ATI_PCIGART_TABLE_ORDER);
+ free_pages((unsigned long)address, ATI_PCIGART_TABLE_ORDER);
}
-int drm_ati_pcigart_cleanup(drm_device_t * dev,
- drm_ati_pcigart_info * gart_info)
+int drm_ati_pcigart_cleanup(drm_device_t *dev, drm_ati_pcigart_info *gart_info)
{
drm_sg_mem_t *entry = dev->sg;
unsigned long pages;
@@ -136,10 +135,10 @@ int drm_ati_pcigart_cleanup(drm_device_t
EXPORT_SYMBOL(drm_ati_pcigart_cleanup);
-int drm_ati_pcigart_init(drm_device_t * dev, drm_ati_pcigart_info * gart_info)
+int drm_ati_pcigart_init(drm_device_t *dev, drm_ati_pcigart_info *gart_info)
{
drm_sg_mem_t *entry = dev->sg;
- unsigned long address = 0;
+ void *address = NULL;
unsigned long pages;
u32 *pci_gart, page_base, bus_address = 0;
int i, j, ret = 0;
@@ -163,7 +162,7 @@ int drm_ati_pcigart_init(drm_device_t *
goto done;
}
- bus_address = pci_map_single(dev->pdev, (void *)address,
+ bus_address = pci_map_single(dev->pdev, address,
ATI_PCIGART_TABLE_PAGES *
PAGE_SIZE, PCI_DMA_TODEVICE);
if (bus_address == 0) {
@@ -176,7 +175,7 @@ int drm_ati_pcigart_init(drm_device_t *
address = gart_info->addr;
bus_address = gart_info->bus_addr;
DRM_DEBUG("PCI: Gart Table: VRAM %08X mapped at %08lX\n",
- bus_address, address);
+ bus_address, (unsigned long)address);
}
pci_gart = (u32 *) address;
@@ -195,7 +194,7 @@ int drm_ati_pcigart_init(drm_device_t *
if (entry->busaddr[i] == 0) {
DRM_ERROR("unable to map PCIGART pages!\n");
drm_ati_pcigart_cleanup(dev, gart_info);
- address = 0;
+ address = NULL;
bus_address = 0;
goto done;
}
diff --git a/drivers/char/drm/drm.h b/drivers/char/drm/drm.h
index 64d6237..9da0ddb 100644
--- a/drivers/char/drm/drm.h
+++ b/drivers/char/drm/drm.h
@@ -90,8 +90,8 @@
#define DRM_MAX_ORDER 22 /**< Up to 2^22 bytes = 4MB */
#define DRM_RAM_PERCENT 10 /**< How much system ram can we lock? */
-#define _DRM_LOCK_HELD 0x80000000 /**< Hardware lock is held */
-#define _DRM_LOCK_CONT 0x40000000 /**< Hardware lock is contended */
+#define _DRM_LOCK_HELD 0x80000000U /**< Hardware lock is held */
+#define _DRM_LOCK_CONT 0x40000000U /**< Hardware lock is contended */
#define _DRM_LOCK_IS_HELD(lock) ((lock) & _DRM_LOCK_HELD)
#define _DRM_LOCK_IS_CONT(lock) ((lock) & _DRM_LOCK_CONT)
#define _DRM_LOCKING_CONTEXT(lock) ((lock) & ~(_DRM_LOCK_HELD|_DRM_LOCK_CONT))
diff --git a/drivers/char/drm/drmP.h b/drivers/char/drm/drmP.h
index 3dc3c9d..54b561e 100644
--- a/drivers/char/drm/drmP.h
+++ b/drivers/char/drm/drmP.h
@@ -144,20 +144,6 @@
/** \name Backward compatibility section */
/*@{*/
-#ifndef MODULE_LICENSE
-#define MODULE_LICENSE(x)
-#endif
-
-#ifndef preempt_disable
-#define preempt_disable()
-#define preempt_enable()
-#endif
-
-#ifndef pte_offset_map
-#define pte_offset_map pte_offset
-#define pte_unmap(pte)
-#endif
-
#define DRM_RPR_ARG(vma) vma,
#define VM_OFFSET(vma) ((vma)->vm_pgoff << PAGE_SHIFT)
@@ -286,10 +272,13 @@ typedef int drm_ioctl_t(struct inode *in
typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
unsigned long arg);
+#define DRM_AUTH 0x1
+#define DRM_MASTER 0x2
+#define DRM_ROOT_ONLY 0x4
+
typedef struct drm_ioctl_desc {
drm_ioctl_t *func;
- int auth_needed;
- int root_only;
+ int flags;
} drm_ioctl_desc_t;
typedef struct drm_devstate {
@@ -384,6 +373,7 @@ typedef struct drm_buf_entry {
/** File private data */
typedef struct drm_file {
int authenticated;
+ int master;
int minor;
pid_t pid;
uid_t uid;
@@ -532,8 +522,9 @@ typedef struct drm_vbl_sig {
typedef struct ati_pcigart_info {
int gart_table_location;
int is_pcie;
- unsigned long addr;
+ void *addr;
dma_addr_t bus_addr;
+ drm_local_map_t mapping;
} drm_ati_pcigart_info;
/**
@@ -544,16 +535,14 @@ typedef struct ati_pcigart_info {
struct drm_device;
struct drm_driver {
- int (*preinit) (struct drm_device *, unsigned long flags);
- void (*prerelease) (struct drm_device *, struct file * filp);
- void (*pretakedown) (struct drm_device *);
- int (*postcleanup) (struct drm_device *);
- int (*presetup) (struct drm_device *);
- int (*postsetup) (struct drm_device *);
+ int (*load) (struct drm_device *, unsigned long flags);
+ int (*firstopen) (struct drm_device *);
+ int (*open) (struct drm_device *, drm_file_t *);
+ void (*preclose) (struct drm_device *, struct file * filp);
+ void (*postclose) (struct drm_device *, drm_file_t *);
+ void (*lastclose) (struct drm_device *);
[...8171 lines suppressed...]
+ via_dma_cleanup(dev);
return 0;
}
@@ -107,3 +94,29 @@ int via_map_init(DRM_IOCTL_ARGS)
return -EINVAL;
}
+
+int via_driver_load(drm_device_t *dev, unsigned long chipset)
+{
+ drm_via_private_t *dev_priv;
+
+ dev_priv = drm_calloc(1, sizeof(drm_via_private_t), DRM_MEM_DRIVER);
+ if (dev_priv == NULL)
+ return DRM_ERR(ENOMEM);
+
+ dev->dev_private = (void *)dev_priv;
+
+ if (chipset == VIA_PRO_GROUP_A)
+ dev_priv->pro_group_a = 1;
+
+ return 0;
+}
+
+int via_driver_unload(drm_device_t *dev)
+{
+ drm_via_private_t *dev_priv = dev->dev_private;
+
+ drm_free(dev_priv, sizeof(drm_via_private_t), DRM_MEM_DRIVER);
+
+ return 0;
+}
+
diff --git a/drivers/char/drm/via_mm.c b/drivers/char/drm/via_mm.c
index 3baddac..33e0cb1 100644
--- a/drivers/char/drm/via_mm.c
+++ b/drivers/char/drm/via_mm.c
@@ -42,7 +42,7 @@ static int via_agp_free(drm_via_mem_t *
static int via_fb_alloc(drm_via_mem_t * mem);
static int via_fb_free(drm_via_mem_t * mem);
-static int add_alloc_set(int context, int type, unsigned int val)
+static int add_alloc_set(int context, int type, unsigned long val)
{
int i, retval = 0;
@@ -56,7 +56,7 @@ static int add_alloc_set(int context, in
return retval;
}
-static int del_alloc_set(int context, int type, unsigned int val)
+static int del_alloc_set(int context, int type, unsigned long val)
{
int i, retval = 0;
@@ -199,13 +199,13 @@ int via_mem_alloc(DRM_IOCTL_ARGS)
sizeof(mem));
switch (mem.type) {
- case VIDEO:
+ case VIA_MEM_VIDEO:
if (via_fb_alloc(&mem) < 0)
return -EFAULT;
DRM_COPY_TO_USER_IOCTL((drm_via_mem_t __user *) data, mem,
sizeof(mem));
return 0;
- case AGP:
+ case VIA_MEM_AGP:
if (via_agp_alloc(&mem) < 0)
return -EFAULT;
DRM_COPY_TO_USER_IOCTL((drm_via_mem_t __user *) data, mem,
@@ -232,7 +232,7 @@ static int via_fb_alloc(drm_via_mem_t *
if (block) {
fb.offset = block->ofs;
fb.free = (unsigned long)block;
- if (!add_alloc_set(fb.context, VIDEO, fb.free)) {
+ if (!add_alloc_set(fb.context, VIA_MEM_VIDEO, fb.free)) {
DRM_DEBUG("adding to allocation set fails\n");
via_mmFreeMem((PMemBlock) fb.free);
retval = -1;
@@ -269,7 +269,7 @@ static int via_agp_alloc(drm_via_mem_t *
if (block) {
agp.offset = block->ofs;
agp.free = (unsigned long)block;
- if (!add_alloc_set(agp.context, AGP, agp.free)) {
+ if (!add_alloc_set(agp.context, VIA_MEM_AGP, agp.free)) {
DRM_DEBUG("adding to allocation set fails\n");
via_mmFreeMem((PMemBlock) agp.free);
retval = -1;
@@ -297,11 +297,11 @@ int via_mem_free(DRM_IOCTL_ARGS)
switch (mem.type) {
- case VIDEO:
+ case VIA_MEM_VIDEO:
if (via_fb_free(&mem) == 0)
return 0;
break;
- case AGP:
+ case VIA_MEM_AGP:
if (via_agp_free(&mem) == 0)
return 0;
break;
@@ -329,7 +329,7 @@ static int via_fb_free(drm_via_mem_t * m
via_mmFreeMem((PMemBlock) fb.free);
- if (!del_alloc_set(fb.context, VIDEO, fb.free)) {
+ if (!del_alloc_set(fb.context, VIA_MEM_VIDEO, fb.free)) {
retval = -1;
}
@@ -352,7 +352,7 @@ static int via_agp_free(drm_via_mem_t *
via_mmFreeMem((PMemBlock) agp.free);
- if (!del_alloc_set(agp.context, AGP, agp.free)) {
+ if (!del_alloc_set(agp.context, VIA_MEM_AGP, agp.free)) {
retval = -1;
}
diff --git a/drivers/char/drm/via_verifier.c b/drivers/char/drm/via_verifier.c
index 4ac495f..70c897c 100644
--- a/drivers/char/drm/via_verifier.c
+++ b/drivers/char/drm/via_verifier.c
@@ -237,7 +237,7 @@ static hazard_t table3[256];
static __inline__ int
eat_words(const uint32_t ** buf, const uint32_t * buf_end, unsigned num_words)
{
- if ((*buf - buf_end) >= num_words) {
+ if ((buf_end - *buf) >= num_words) {
*buf += num_words;
return 0;
}
@@ -249,14 +249,14 @@ eat_words(const uint32_t ** buf, const u
* Partially stolen from drm_memory.h
*/
-static __inline__ drm_map_t *via_drm_lookup_agp_map(drm_via_state_t * seq,
+static __inline__ drm_local_map_t *via_drm_lookup_agp_map(drm_via_state_t *seq,
unsigned long offset,
unsigned long size,
drm_device_t * dev)
{
struct list_head *list;
drm_map_list_t *r_list;
- drm_map_t *map = seq->map_cache;
+ drm_local_map_t *map = seq->map_cache;
if (map && map->offset <= offset
&& (offset + size) <= (map->offset + map->size)) {
diff --git a/drivers/char/drm/via_verifier.h b/drivers/char/drm/via_verifier.h
index eb4eda3..256590f 100644
--- a/drivers/char/drm/via_verifier.h
+++ b/drivers/char/drm/via_verifier.h
@@ -47,7 +47,7 @@ typedef struct {
int agp_texture;
int multitex;
drm_device_t *dev;
- drm_map_t *map_cache;
+ drm_local_map_t *map_cache;
uint32_t vertex_count;
int agp;
const uint32_t *buf_start;
@@ -55,5 +55,7 @@ typedef struct {
extern int via_verify_command_stream(const uint32_t * buf, unsigned int size,
drm_device_t * dev, int agp);
+extern int via_parse_command_stream(drm_device_t *dev, const uint32_t *buf,
+ unsigned int size);
#endif
diff --git a/drivers/char/drm/via_video.c b/drivers/char/drm/via_video.c
index 7fab9fb..300ac61 100644
--- a/drivers/char/drm/via_video.c
+++ b/drivers/char/drm/via_video.c
@@ -50,8 +50,11 @@ void via_release_futex(drm_via_private_t
unsigned int i;
volatile int *lock;
+ if (!dev_priv->sarea_priv)
+ return;
+
for (i = 0; i < VIA_NR_XVMC_LOCKS; ++i) {
- lock = (int *)XVMCLOCKPTR(dev_priv->sarea_priv, i);
+ lock = (volatile int *)XVMCLOCKPTR(dev_priv->sarea_priv, i);
if ((_DRM_LOCKING_CONTEXT(*lock) == context)) {
if (_DRM_LOCK_IS_HELD(*lock)
&& (*lock & _DRM_LOCK_CONT)) {
@@ -79,7 +82,7 @@ int via_decoder_futex(DRM_IOCTL_ARGS)
if (fx.lock > VIA_NR_XVMC_LOCKS)
return -EFAULT;
- lock = (int *)XVMCLOCKPTR(sAPriv, fx.lock);
+ lock = (volatile int *)XVMCLOCKPTR(sAPriv, fx.lock);
switch (fx.func) {
case VIA_FUTEX_WAIT:
Index: kernel-2.6.spec
===================================================================
RCS file: /cvs/dist/rpms/kernel/devel/kernel-2.6.spec,v
retrieving revision 1.1856
retrieving revision 1.1857
diff -u -r1.1856 -r1.1857
--- kernel-2.6.spec 16 Jan 2006 02:40:15 -0000 1.1856
+++ kernel-2.6.spec 16 Jan 2006 04:30:02 -0000 1.1857
@@ -208,6 +208,7 @@
# Patches 0 through 100 are meant for core subsystem upgrades
#
Patch1: patch-2.6.15-git11.bz2
+Patch2: drm.patch
#Patch2: patch-2.6.16-rc1-git1.bz2
# Patches 100 through 500 are meant for architecture patches
@@ -221,7 +222,6 @@
Patch203: linux-2.6.14-intel-cache-build.patch
Patch204: linux-2.6-x86_64-silence-up-apic-errors.patch
Patch205: linux-2.6-edid-check.patch
-Patch206: linux-2.6-x86_64-page-table-setup.patch
# 300 - 399 ppc(64)
Patch300: linux-2.6.15-default-powerpc.patch
@@ -584,7 +584,7 @@
# Update to latest upstream.
%patch1 -p1
-#%patch2 -p1
+%patch2 -p1 -R
#
# Patches 10 through 100 are meant for core subsystem upgrades
@@ -618,8 +618,6 @@
%patch204 -p1
# Reboot thru bios on HP laptops.
%patch205 -p1
-# Revert some page table setup changes.
-%patch206 -p1
#
# ppc64
@@ -1355,7 +1353,7 @@
%changelog
* Sun Jan 15 2006 Dave Jones <davej at redhat.com>
- 2.6.15-git11
-- Revert some x86-64 page table changes as an experiment.
+- Revert some DRM changes as an experiment.
* Sat Jan 14 2006 David Woodhouse <dwmw2 at redhat.com>
- 2.6.15-git10
--- linux-2.6-x86_64-page-table-setup.patch DELETED ---
- Previous message (by thread): rpms/texinfo/devel texinfo-4.3-zlib.patch, 1.3, 1.4 texinfo.spec, 1.30, 1.31
- Next message (by thread): rpms/texinfo/devel texinfo-4.8-zlib.patch, NONE, 1.1 texinfo.spec, 1.31, 1.32 texinfo-4.3-zlib.patch, 1.4, NONE
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-cvs-commits
mailing list