rpms/kernel/devel drm-modesetting-radeon.patch, 1.1, 1.2 kernel.spec, 1.829, 1.830
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Fri Aug 1 06:59:36 UTC 2008
- Previous message (by thread): rpms/libdrm/devel .cvsignore, 1.12, 1.13 libdrm.spec, 1.43, 1.44 sources, 1.12, 1.13 libdrm-modeset-fix.patch, 1.1, NONE libdrm-modesetting.patch, 1.2, NONE libdrm-radeon-r500.patch, 1.1, NONE
- Next message (by thread): rpms/xorg-x11-drv-ati/devel radeon-modeset.patch, NONE, 1.1 xorg-x11-drv-ati.spec, 1.92, 1.93
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv25622
Modified Files:
drm-modesetting-radeon.patch kernel.spec
Log Message:
* Fri Aug 01 2008 Dave Airlie <airlied at redhat.com>
- Fix ppc build with drm changes
drm-modesetting-radeon.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- drm-modesetting-radeon.patch 1 Aug 2008 06:23:54 -0000 1.1
+++ drm-modesetting-radeon.patch 1 Aug 2008 06:59:05 -0000 1.2
@@ -3358,7 +3358,7 @@
+EXPORT_SYMBOL(drm_bo_pfn_prot);
+
diff --git a/drivers/gpu/drm/drm_bufs.c b/drivers/gpu/drm/drm_bufs.c
-index bde64b8..796dc65 100644
+index bde64b8..6355eed 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,
@@ -3397,6 +3397,15 @@
*maplist = list;
return 0;
}
+@@ -345,7 +346,7 @@ int drm_addmap_ioctl(struct drm_device *dev, void *data,
+ struct drm_map_list *maplist;
+ int err;
+
+- if (!(capable(CAP_SYS_ADMIN) || map->type == _DRM_AGP))
++ if (!(capable(CAP_SYS_ADMIN) || map->type == _DRM_AGP || map->type == _DRM_SHM))
+ return -EPERM;
+
+ err = drm_addmap_core(dev, map->offset, map->size, map->type,
@@ -380,10 +381,12 @@ int drm_rmmap_locked(struct drm_device *dev, drm_local_map_t *map)
struct drm_map_list *r_list = NULL, *list_t;
drm_dma_handle_t dmah;
@@ -3435,10 +3444,10 @@
diff --git a/drivers/gpu/drm/drm_cache.c b/drivers/gpu/drm/drm_cache.c
new file mode 100644
-index 0000000..1c01e6c
+index 0000000..0b25c8d
--- /dev/null
+++ b/drivers/gpu/drm/drm_cache.c
-@@ -0,0 +1,76 @@
+@@ -0,0 +1,78 @@
+/**************************************************************************
+ *
+ * Copyright (c) 2006-2007 Tungsten Graphics, Inc., Cedar Park, TX., USA
@@ -3491,7 +3500,9 @@
+static void
+drm_clflush_ipi_handler(void *null)
+{
++#if defined(CONFIG_X86)
+ wbinvd();
++#endif
+}
+
+void
@@ -8156,7 +8167,7 @@
+}
+
diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
-index 851a53f..f9a2682 100644
+index 851a53f..b2aa140 100644
--- a/drivers/gpu/drm/drm_fops.c
+++ b/drivers/gpu/drm/drm_fops.c
@@ -44,10 +44,8 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
@@ -8223,16 +8234,18 @@
return retcode;
}
-@@ -256,16 +250,51 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
+@@ -255,6 +249,10 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
+ priv->lock_count = 0;
INIT_LIST_HEAD(&priv->lhead);
-
++ INIT_LIST_HEAD(&priv->fbs);
++
+ if (dev->driver->driver_features & DRIVER_GEM)
+ drm_gem_open(dev, priv);
-+
+
if (dev->driver->open) {
ret = dev->driver->open(dev, priv);
- if (ret < 0)
+@@ -262,10 +260,42 @@ static int drm_open_helper(struct inode *inode, struct file *filp,
goto out_free;
}
@@ -8248,7 +8261,7 @@
+ ret = -ENOMEM;
+ goto out_free;
+ }
-+
+
+ priv->is_master = 1;
+ /* take another reference for the copy in the local file priv */
+ priv->master = drm_master_get(priv->minor->master);
@@ -8272,12 +8285,12 @@
+ priv->master = drm_master_get(priv->minor->master);
+ mutex_unlock(&dev->struct_mutex);
+ }
-
++
+ mutex_lock(&dev->struct_mutex);
list_add(&priv->lhead, &dev->filelist);
mutex_unlock(&dev->struct_mutex);
-@@ -345,60 +374,67 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -345,60 +375,67 @@ int drm_release(struct inode *inode, struct file *filp)
(long)old_encode_dev(file_priv->minor->device),
dev->open_count);
@@ -8345,12 +8358,8 @@
- drm_idlelock_release(&dev->lock);
}
- }
--
-- if (dev->driver->reclaim_buffers_idlelocked && dev->lock.hw_lock) {
-- drm_idlelock_take(&dev->lock);
-- dev->driver->reclaim_buffers_idlelocked(dev, file_priv);
-- drm_idlelock_release(&dev->lock);
+- if (dev->driver->reclaim_buffers_idlelocked && dev->lock.hw_lock) {
+ if (dev->driver->reclaim_buffers_idlelocked && file_priv->master->lock.hw_lock) {
+
+ drm_idlelock_take(&file_priv->master->lock);
@@ -8359,8 +8368,12 @@
+
+ }
-- }
+- drm_idlelock_take(&dev->lock);
+- dev->driver->reclaim_buffers_idlelocked(dev, file_priv);
+- drm_idlelock_release(&dev->lock);
+- }
+-
- if (drm_i_have_hw_lock(dev, file_priv)) {
- DRM_DEBUG("File %p released, freeing lock for context %d\n",
- filp, _DRM_LOCKING_CONTEXT(dev->lock.hw_lock->lock));
@@ -8391,12 +8404,15 @@
drm_fasync(-1, filp, 0);
-@@ -424,12 +460,27 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -424,12 +461,30 @@ int drm_release(struct inode *inode, struct file *filp)
mutex_unlock(&dev->ctxlist_mutex);
mutex_lock(&dev->struct_mutex);
- if (file_priv->remove_auth_on_close == 1) {
+
++ if (drm_core_check_feature(dev, DRIVER_MODESET))
++ drm_fb_release(filp);
++
+ if (file_priv->is_master) {
struct drm_file *temp;
+ list_for_each_entry(temp, &dev->filelist, lhead) {
@@ -8422,7 +8438,7 @@
list_del(&file_priv->lhead);
mutex_unlock(&dev->struct_mutex);
-@@ -444,9 +495,9 @@ int drm_release(struct inode *inode, struct file *filp)
+@@ -444,9 +499,9 @@ int drm_release(struct inode *inode, struct file *filp)
atomic_inc(&dev->counts[_DRM_STAT_CLOSES]);
spin_lock(&dev->count_lock);
if (!--dev->open_count) {
@@ -8997,7 +9013,7 @@
}
diff --git a/drivers/gpu/drm/drm_irq.c b/drivers/gpu/drm/drm_irq.c
-index 089c015..d518e6e 100644
+index 089c015..0426ac5 100644
--- a/drivers/gpu/drm/drm_irq.c
+++ b/drivers/gpu/drm/drm_irq.c
@@ -63,7 +63,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data,
@@ -9009,6 +9025,15 @@
DRM_DEBUG("%d:%d:%d => IRQ %d\n", p->busnum, p->devnum, p->funcnum,
p->irq);
+@@ -81,7 +81,7 @@ int drm_irq_by_busid(struct drm_device *dev, void *data,
+ * \c drm_driver_irq_preinstall() and \c drm_driver_irq_postinstall() functions
+ * before and after the installation.
+ */
+-static int drm_irq_install(struct drm_device * dev)
++int drm_irq_install(struct drm_device *dev)
+ {
+ int ret;
+ unsigned long sh_flags = 0;
@@ -89,7 +89,7 @@ static int drm_irq_install(struct drm_device * dev)
if (!drm_core_check_feature(dev, DRIVER_HAVE_IRQ))
return -EINVAL;
@@ -9041,7 +9066,15 @@
if (ret < 0) {
mutex_lock(&dev->struct_mutex);
dev->irq_enabled = 0;
-@@ -164,11 +168,11 @@ int drm_irq_uninstall(struct drm_device * dev)
+@@ -141,6 +145,7 @@ static int drm_irq_install(struct drm_device * dev)
+
+ return 0;
+ }
[...21517 lines suppressed...]
extern void drm_sysfs_destroy(void);
extern int drm_sysfs_device_add(struct drm_minor *minor);
@@ -20308,7 +40842,7 @@
/*
* Basic memory manager support (drm_mm.c)
-@@ -1088,6 +1289,66 @@ extern unsigned long drm_mm_tail_space(struct drm_mm *mm);
+@@ -1088,6 +1292,66 @@ extern unsigned long drm_mm_tail_space(struct drm_mm *mm);
extern int drm_mm_remove_space_from_tail(struct drm_mm *mm, unsigned long size);
extern int drm_mm_add_space_to_tail(struct drm_mm *mm, unsigned long size);
@@ -20375,7 +40909,7 @@
extern void drm_core_ioremap(struct drm_map *map, struct drm_device *dev);
extern void drm_core_ioremap_wc(struct drm_map *map, struct drm_device *dev);
extern void drm_core_ioremapfree(struct drm_map *map, struct drm_device *dev);
-@@ -1148,6 +1409,39 @@ extern void drm_free(void *pt, size_t size, int area);
+@@ -1148,6 +1412,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
@@ -22693,6 +43227,179 @@
+};
+
#endif /* _I915_DRM_H_ */
+diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
+index 73ff51f..5c20c11 100644
+--- a/include/drm/radeon_drm.h
++++ b/include/drm/radeon_drm.h
+@@ -453,6 +453,15 @@ typedef struct {
+ int pfCurrentPage; /* which buffer is being displayed? */
+ int crtc2_base; /* CRTC2 frame offset */
+ int tiling_enabled; /* set by drm, read by 2d + 3d clients */
++
++ unsigned int last_fence;
++
++ uint32_t front_handle;
++ uint32_t back_handle;
++ uint32_t depth_handle;
++ uint32_t front_pitch;
++ uint32_t back_pitch;
++ uint32_t depth_pitch;
+ } drm_radeon_sarea_t;
+
+ /* WARNING: If you change any of these defines, make sure to change the
+@@ -493,6 +502,18 @@ typedef struct {
+ #define DRM_RADEON_SURF_ALLOC 0x1a
+ #define DRM_RADEON_SURF_FREE 0x1b
+
++#define DRM_RADEON_GEM_INFO 0x1c
++#define DRM_RADEON_GEM_CREATE 0x1d
++#define DRM_RADEON_GEM_MMAP 0x1e
++#define DRM_RADEON_GEM_PIN 0x1f
++#define DRM_RADEON_GEM_UNPIN 0x20
++#define DRM_RADEON_GEM_PREAD 0x21
++#define DRM_RADEON_GEM_PWRITE 0x22
++#define DRM_RADEON_GEM_SET_DOMAIN 0x23
++#define DRM_RADEON_GEM_INDIRECT 0x24 // temporary for X server
++
++#define DRM_RADEON_CS 0x25
++
+ #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 +542,19 @@ 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)
+
++#define DRM_IOCTL_RADEON_GEM_INFO DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INFO, struct drm_radeon_gem_info)
++#define DRM_IOCTL_RADEON_GEM_CREATE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_CREATE, struct drm_radeon_gem_create)
++#define DRM_IOCTL_RADEON_GEM_MMAP DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_MMAP, struct drm_radeon_gem_mmap)
++#define DRM_IOCTL_RADEON_GEM_PIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PIN, struct drm_radeon_gem_pin)
++#define DRM_IOCTL_RADEON_GEM_UNPIN DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_UNPIN, struct drm_radeon_gem_unpin)
++#define DRM_IOCTL_RADEON_GEM_PREAD DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PREAD, struct drm_radeon_gem_pread)
++#define DRM_IOCTL_RADEON_GEM_PWRITE DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_PWRITE, struct drm_radeon_gem_pwrite)
++#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_INDIRECT DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_GEM_INDIRECT, struct drm_radeon_gem_indirect)
++
++#define DRM_IOCTL_RADEON_CS DRM_IOWR(DRM_COMMAND_BASE + DRM_RADEON_CS, struct drm_radeon_cs)
++
++
+ typedef struct drm_radeon_init {
+ enum {
+ RADEON_INIT_CP = 0x01,
+@@ -677,6 +711,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 */
++#define RADEON_PARAM_KERNEL_MM 16
+
+ typedef struct drm_radeon_getparam {
+ int param;
+@@ -746,4 +781,105 @@ typedef struct drm_radeon_surface_free {
+ #define DRM_RADEON_VBLANK_CRTC1 1
+ #define DRM_RADEON_VBLANK_CRTC2 2
+
++#define RADEON_GEM_DOMAIN_CPU 0x1
++#define RADEON_GEM_DOMAIN_VRAM 0x2
++#define RADEON_GEM_DOMAIN_2D 0x4
++#define RADEON_GEM_DOMAIN_3D 0x8
++#define RADEON_GEM_DOMAIN_TEXTURE 0x10
++#define RADEON_GEM_DOMAIN_GPU 0x20 // for vertex buffers
++
++/* return to userspace start/size of gtt and vram apertures */
++struct drm_radeon_gem_info {
++ uint64_t gart_start;
++ uint64_t gart_size;
++ uint64_t vram_start;
++ uint64_t vram_size;
++ uint64_t vram_visible;
++};
++
++struct drm_radeon_gem_create {
++ uint64_t size;
++ uint64_t alignment;
++ uint32_t handle;
++ uint32_t initial_domain; // to allow VRAM to be created
++ uint32_t no_backing_store; // for VRAM objects - select whether they need backing store
++ // pretty much front/back/depth don't need it - other things do
++};
++
++struct drm_radeon_gem_mmap {
++ uint32_t handle;
++ uint32_t pad;
++ uint64_t offset;
++ uint64_t size;
++ uint64_t addr_ptr;
++};
++
++struct drm_radeon_gem_set_domain {
++ uint32_t handle;
++ uint32_t read_domains;
++ uint32_t write_domain;
++};
++
++struct drm_radeon_gem_exec_buffer {
++};
++
++struct drm_radeon_gem_pin {
++ uint32_t handle;
++ uint32_t pad;
++ uint64_t alignment;
++ uint64_t offset;
++};
++
++struct drm_radeon_gem_unpin {
++ uint32_t handle;
++ uint32_t pad;
++};
++
++struct drm_radeon_gem_busy {
++ uint32_t handle;
++ uint32_t busy;
++};
++
++struct drm_radeon_gem_pread {
++ /** Handle for the object being read. */
++ uint32_t handle;
++ uint32_t pad;
++ /** Offset into the object to read from */
++ uint64_t offset;
++ /** Length of data to read */
++ uint64_t size;
++ /** Pointer to write the data into. */
++ uint64_t data_ptr; /* void *, but pointers are not 32/64 compatible */
++};
++
++struct drm_radeon_gem_pwrite {
++ /** Handle for the object being written to. */
++ uint32_t handle;
++ uint32_t pad;
++ /** Offset into the object to write to */
++ uint64_t offset;
++ /** Length of data to write */
++ uint64_t size;
++ /** Pointer to read the data from. */
++ uint64_t data_ptr; /* void *, but pointers are not 32/64 compatible */
++};
++
++struct drm_radeon_gem_indirect {
++ uint32_t handle;
++ uint32_t used;
++};
++
++/* New interface which obsolete all previous interface.
++ */
++
++
++struct drm_radeon_cs {
++// uint32_t __user *packets;
++ uint32_t dwords;
++ uint32_t cs_id;
++ uint64_t packets;
++
++};
++
++
+ #endif
diff --git a/include/linux/mm.h b/include/linux/mm.h
index 335288b..dca69f9 100644
--- a/include/linux/mm.h
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.829
retrieving revision 1.830
diff -u -r1.829 -r1.830
--- kernel.spec 1 Aug 2008 06:23:54 -0000 1.829
+++ kernel.spec 1 Aug 2008 06:59:06 -0000 1.830
@@ -1712,6 +1712,9 @@
%changelog
* Fri Aug 01 2008 Dave Airlie <airlied at redhat.com>
+- Fix ppc build with drm changes
+
+* Fri Aug 01 2008 Dave Airlie <airlied at redhat.com>
- Add initial radeon kernel modesetting jumbo patch
* Thu Jul 31 2008 Dave Jones <davej at redhat.com>
- Previous message (by thread): rpms/libdrm/devel .cvsignore, 1.12, 1.13 libdrm.spec, 1.43, 1.44 sources, 1.12, 1.13 libdrm-modeset-fix.patch, 1.1, NONE libdrm-modesetting.patch, 1.2, NONE libdrm-radeon-r500.patch, 1.1, NONE
- Next message (by thread): rpms/xorg-x11-drv-ati/devel radeon-modeset.patch, NONE, 1.1 xorg-x11-drv-ati.spec, 1.92, 1.93
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list