rpms/kernel/devel drm-modesetting-radeon.patch, 1.4, 1.5 kernel.spec, 1.837, 1.838
Dave Airlie (airlied)
fedora-extras-commits at redhat.com
Mon Aug 4 04:26:32 UTC 2008
- Previous message: rpms/stardict/devel stardict-3.0.1-13.bz441209.patch, NONE, 1.1 .cvsignore, 1.8, 1.9 sources, 1.9, 1.10 stardict.spec, 1.59, 1.60
- Next message: rpms/gnomesword/devel gnomesword.spec,1.49,1.50
- 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-serv17915
Modified Files:
drm-modesetting-radeon.patch kernel.spec
Log Message:
* Mon Aug 04 2008 Dave Airlie <airlied at redhat.com>
- rebase modesetting patch + fixes
drm-modesetting-radeon.patch:
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- drm-modesetting-radeon.patch 1 Aug 2008 22:10:55 -0000 1.4
+++ drm-modesetting-radeon.patch 4 Aug 2008 04:26:02 -0000 1.5
@@ -21,7 +21,7 @@
drm-$(CONFIG_COMPAT) += drm_ioc32.o
diff --git a/drivers/gpu/drm/ati_pcigart.c b/drivers/gpu/drm/ati_pcigart.c
-index c533d0c..96c7de0 100644
+index c533d0c..fdc482e 100644
--- a/drivers/gpu/drm/ati_pcigart.c
+++ b/drivers/gpu/drm/ati_pcigart.c
@@ -34,9 +34,55 @@
@@ -93,7 +93,15 @@
static void drm_ati_free_pcigart_table(struct drm_device *dev,
struct drm_ati_pcigart_info *gart_info)
-@@ -98,17 +146,14 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -63,7 +111,6 @@ int drm_ati_pcigart_cleanup(struct drm_device *dev, struct drm_ati_pcigart_info
+
+ /* we need to support large memory configurations */
+ if (!entry) {
+- DRM_ERROR("no scatter/gather memory!\n");
+ return 0;
+ }
+
+@@ -98,17 +145,14 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
struct drm_sg_mem *entry = dev->sg;
void *address = NULL;
unsigned long pages;
@@ -114,7 +122,7 @@
DRM_DEBUG("PCI: no table in VRAM: using normal RAM\n");
ret = drm_ati_alloc_pcigart_table(dev, gart_info);
-@@ -116,15 +161,19 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -116,15 +160,19 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
DRM_ERROR("cannot allocate PCI GART page!\n");
goto done;
}
@@ -137,7 +145,7 @@
}
pci_gart = (u32 *) address;
-@@ -133,8 +182,6 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -133,8 +181,6 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
pages = (entry->pages <= max_pages)
? entry->pages : max_pages;
@@ -146,7 +154,7 @@
for (i = 0; i < pages; i++) {
/* we need to support large memory configurations */
entry->busaddr[i] = pci_map_page(dev->pdev, entry->pagelist[i],
-@@ -146,25 +193,15 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -146,25 +192,15 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
bus_address = 0;
goto done;
}
@@ -176,7 +184,7 @@
ret = 1;
#if defined(__i386__) || defined(__x86_64__)
-@@ -179,3 +216,145 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
+@@ -179,3 +215,145 @@ int drm_ati_pcigart_init(struct drm_device *dev, struct drm_ati_pcigart_info *ga
return ret;
}
EXPORT_SYMBOL(drm_ati_pcigart_init);
@@ -6691,7 +6699,7 @@
+
+
diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
-index 452c2d8..a1e6c4d 100644
+index 452c2d8..d4d83a4 100644
--- a/drivers/gpu/drm/drm_drv.c
+++ b/drivers/gpu/drm/drm_drv.c
@@ -74,6 +74,9 @@ static struct drm_ioctl_desc drm_ioctls[] = {
@@ -6737,7 +6745,7 @@
};
#define DRM_CORE_IOCTL_COUNT ARRAY_SIZE( drm_ioctls )
-@@ -132,22 +161,19 @@ static struct drm_ioctl_desc drm_ioctls[] = {
+@@ -132,8 +161,6 @@ static struct drm_ioctl_desc drm_ioctls[] = {
*/
int drm_lastclose(struct drm_device * dev)
{
@@ -6746,13 +6754,13 @@
struct drm_vma_entry *vma, *vma_temp;
int i;
- DRM_DEBUG("\n");
+@@ -141,13 +168,12 @@ int drm_lastclose(struct drm_device * dev)
-+ if (!drm_core_check_feature(dev, DRIVER_MODESET))
-+ drm_bo_driver_finish(dev);
-+
if (dev->driver->lastclose)
dev->driver->lastclose(dev);
++
++ if (!drm_core_check_feature(dev, DRIVER_MODESET))
++ drm_bo_driver_finish(dev);
DRM_DEBUG("driver lastclose completed\n");
- if (dev->unique) {
@@ -26420,10 +26428,10 @@
+
diff --git a/drivers/gpu/drm/radeon/radeon_buffer.c b/drivers/gpu/drm/radeon/radeon_buffer.c
new file mode 100644
-index 0000000..8e47eb7
+index 0000000..dfd8cb9
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_buffer.c
-@@ -0,0 +1,253 @@
+@@ -0,0 +1,257 @@
+/**************************************************************************
+ *
+ * Copyright 2007 Dave Airlie
@@ -26481,10 +26489,14 @@
+ drm_radeon_private_t *dev_priv = dev->dev_private;
+ RING_LOCALS;
+
++ if (!dev_priv->cp_running)
++ return 0;
++
+ BEGIN_RING(4);
+ RADEON_FLUSH_CACHE();
+ RADEON_FLUSH_ZCACHE();
+ ADVANCE_RING();
++ COMMIT_RING();
+ return 0;
+}
+
@@ -27415,7 +27427,7 @@
+ return NULL;
+}
diff --git a/drivers/gpu/drm/radeon/radeon_cp.c b/drivers/gpu/drm/radeon/radeon_cp.c
-index f0de81a..66181fb 100644
+index f0de81a..5fd037f 100644
--- a/drivers/gpu/drm/radeon/radeon_cp.c
+++ b/drivers/gpu/drm/radeon/radeon_cp.c
@@ -31,6 +31,7 @@
@@ -27934,7 +27946,14 @@
}
if (!drm_ati_pcigart_init(dev, &dev_priv->gart_info)) {
-@@ -1245,8 +1369,10 @@ static int radeon_do_cleanup_cp(struct drm_device * dev)
+@@ -1239,14 +1363,16 @@ static int radeon_do_cleanup_cp(struct drm_device * dev)
+ if (dev_priv->gart_info.bus_addr) {
+ /* Turn off PCI GART */
+ radeon_set_pcigart(dev_priv, 0);
+- if (!drm_ati_pcigart_cleanup(dev, &dev_priv->gart_info))
+- DRM_ERROR("failed to cleanup PCI GART!\n");
++ drm_ati_pcigart_cleanup(dev, &dev_priv->gart_info);
+ }
if (dev_priv->gart_info.gart_table_location == DRM_ATI_GART_FB)
{
@@ -27943,6 +27962,7 @@
+ if (dev_priv->pcigart_offset_set == 1) {
+ drm_core_ioremapfree(&dev_priv->gart_info.mapping, dev);
+ dev_priv->gart_info.addr = NULL;
++ dev_priv->pcigart_offset_set = 0;
+ }
}
}
@@ -28009,8 +28029,8 @@
radeon_mem_takedown(&(dev_priv->gart_heap));
radeon_mem_takedown(&(dev_priv->fb_heap));
-+
-+ radeon_gem_mm_fini(dev);
++ if (dev_priv->user_mm_enable)
++ radeon_gem_mm_fini(dev);
+
/* deallocate kernel resources */
radeon_do_cleanup_cp(dev);
@@ -28731,7 +28751,7 @@
/* Create mappings for registers and framebuffer so userland doesn't necessarily
* have to find them.
*/
-@@ -1745,13 +2546,9 @@ int radeon_driver_firstopen(struct drm_device *dev)
+@@ -1745,19 +2546,6 @@ int radeon_driver_firstopen(struct drm_device *dev)
dev_priv->gart_info.table_size = RADEON_PCIGART_TABLE_SIZE;
@@ -28740,14 +28760,18 @@
- _DRM_READ_ONLY, &dev_priv->mmio);
- if (ret != 0)
- return ret;
-+ if (!drm_core_check_feature(dev, DRIVER_MODESET))
-+ radeon_gem_mm_init(dev);
-
+-
- dev_priv->fb_aper_offset = drm_get_resource_start(dev, 0);
- ret = drm_addmap(dev, dev_priv->fb_aper_offset,
- drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER,
- _DRM_WRITE_COMBINING, &map);
-@@ -1765,9 +2562,40 @@ int radeon_driver_unload(struct drm_device *dev)
+- ret = drm_addmap(dev, dev_priv->fb_aper_offset,
+- drm_get_resource_len(dev, 0), _DRM_FRAME_BUFFER,
+- _DRM_WRITE_COMBINING, &map);
+- if (ret != 0)
+- return ret;
+-
+ return 0;
+ }
+
+@@ -1765,9 +2553,40 @@ int radeon_driver_unload(struct drm_device *dev)
{
drm_radeon_private_t *dev_priv = dev->dev_private;
@@ -29951,7 +29975,7 @@
int radeon_no_wb;
+int radeon_dynclks = 1;
- MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers\n");
+ MODULE_PARM_DESC(no_wb, "Disable AGP writeback for scratch registers");
module_param_named(no_wb, radeon_no_wb, int, 0444);
+unsigned int radeon_modeset = 0;
@@ -30028,7 +30052,7 @@
}
diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
-index 3f0eca9..a5a8b64 100644
+index 3f0eca9..77332b3 100644
--- a/drivers/gpu/drm/radeon/radeon_drv.h
+++ b/drivers/gpu/drm/radeon/radeon_drv.h
@@ -34,6 +34,8 @@
@@ -30121,7 +30145,7 @@
typedef struct drm_radeon_freelist {
unsigned int age;
-@@ -220,12 +261,56 @@ struct radeon_virt_surface {
+@@ -220,14 +261,58 @@ struct radeon_virt_surface {
struct drm_file *file_priv;
};
@@ -30179,8 +30203,11 @@
- u32 fb_location;
- u32 fb_size;
int new_memmap;
-
+-
++ bool user_mm_enable; /* userspace enabled the memory manager */
int gart_size;
+ u32 gart_vm_start;
+ unsigned long gart_buffers_offset;
@@ -243,8 +328,6 @@ typedef struct drm_radeon_private {
int usec_timeout;
@@ -32659,10 +32686,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..f56a7c1
+index 0000000..e5c056b
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_gem.c
-@@ -0,0 +1,867 @@
+@@ -0,0 +1,866 @@
+/*
+ * Copyright 2008 Red Hat Inc.
+ *
@@ -33305,8 +33332,7 @@
+ radeon_gem_ib_destroy(dev);
+
+ mutex_lock(&dev->struct_mutex);
-+
-+
++
+ if (dev_priv->mm.ring_read.bo) {
+ drm_bo_kunmap(&dev_priv->mm.ring_read.kmap);
+ drm_bo_usage_deref_locked(&dev_priv->mm.ring_read.bo);
@@ -33329,7 +33355,7 @@
+ }
+
+ if (drm_bo_clean_mm(dev, DRM_BO_MEM_VRAM, 1)) {
-+ DRM_DEBUG("delaying takedown of TTM memory\n");
++ DRM_DEBUG("delaying takedown of VRAM memory\n");
+ }
+
+ mutex_unlock(&dev->struct_mutex);
@@ -39269,7 +39295,7 @@
+
+#endif
diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
-index 11c146b..ef593ec 100644
+index 11c146b..9adff62 100644
--- a/drivers/gpu/drm/radeon/radeon_state.c
+++ b/drivers/gpu/drm/radeon/radeon_state.c
@@ -305,8 +305,9 @@ static __inline__ int radeon_check_and_fixup_packet3(drm_radeon_private_t *
@@ -39902,7 +39928,18 @@
}
break;
case RADEON_SETPARAM_PCIGART_LOCATION:
-@@ -3129,14 +3161,6 @@ void radeon_driver_preclose(struct drm_device *dev, struct drm_file *file_priv)
+@@ -3101,6 +3133,10 @@ static int radeon_cp_setparam(struct drm_device *dev, void *data, struct drm_fil
+ case RADEON_SETPARAM_VBLANK_CRTC:
+ return radeon_vblank_crtc_set(dev, sp->value);
+ break;
++ case RADEON_SETPARAM_MM_INIT:
++ dev_priv->user_mm_enable = true;
++ return radeon_gem_mm_init(dev);
++ break;
+ default:
+ DRM_DEBUG("Invalid parameter %d\n", sp->param);
+ return -EINVAL;
+@@ -3129,14 +3165,6 @@ void radeon_driver_preclose(struct drm_device *dev, struct drm_file *file_priv)
void radeon_driver_lastclose(struct drm_device *dev)
{
@@ -39917,7 +39954,7 @@
radeon_do_release(dev);
}
-@@ -3197,7 +3221,19 @@ struct drm_ioctl_desc radeon_ioctls[] = {
+@@ -3197,7 +3225,19 @@ struct drm_ioctl_desc radeon_ioctls[] = {
DRM_IOCTL_DEF(DRM_RADEON_IRQ_WAIT, radeon_irq_wait, DRM_AUTH),
DRM_IOCTL_DEF(DRM_RADEON_SETPARAM, radeon_cp_setparam, DRM_AUTH),
DRM_IOCTL_DEF(DRM_RADEON_SURF_ALLOC, radeon_surface_alloc, DRM_AUTH),
@@ -43239,7 +43276,7 @@
+
#endif /* _I915_DRM_H_ */
diff --git a/include/drm/radeon_drm.h b/include/drm/radeon_drm.h
-index 73ff51f..5c20c11 100644
+index 73ff51f..e4c53e4 100644
--- a/include/drm/radeon_drm.h
+++ b/include/drm/radeon_drm.h
@@ -453,6 +453,15 @@ typedef struct {
@@ -43305,7 +43342,15 @@
typedef struct drm_radeon_getparam {
int param;
-@@ -746,4 +781,105 @@ typedef struct drm_radeon_surface_free {
+@@ -731,6 +766,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 */
++#define RADEON_SETPARAM_MM_INIT 7 /* DDX wants memory manager but has no modesetting */
+ /* 1.14: Clients can allocate/free a surface
+ */
+ typedef struct drm_radeon_surface_alloc {
+@@ -746,4 +782,105 @@ typedef struct drm_radeon_surface_free {
#define DRM_RADEON_VBLANK_CRTC1 1
#define DRM_RADEON_VBLANK_CRTC2 2
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.837
retrieving revision 1.838
diff -u -r1.837 -r1.838
--- kernel.spec 3 Aug 2008 21:36:34 -0000 1.837
+++ kernel.spec 4 Aug 2008 04:26:02 -0000 1.838
@@ -1120,7 +1120,7 @@
ApplyPatch linux-2.6-netdev-atl2.patch
# Nouveau DRM + drm fixes
-#ApplyPatch drm-modesetting-radeon.patch
+ApplyPatch drm-modesetting-radeon.patch
#ApplyPatch linux-2.6-drm-git-mm.patch
#ApplyPatch nouveau-drm.patch
@@ -1711,6 +1711,9 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Mon Aug 04 2008 Dave Airlie <airlied at redhat.com>
+- rebase modesetting patch + fixes
+
* Sat Aug 02 2008 Dave Jones <davej at redhat.com>
- 2.6.27-rc1-git4
- Previous message: rpms/stardict/devel stardict-3.0.1-13.bz441209.patch, NONE, 1.1 .cvsignore, 1.8, 1.9 sources, 1.9, 1.10 stardict.spec, 1.59, 1.60
- Next message: rpms/gnomesword/devel gnomesword.spec,1.49,1.50
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the scm-commits
mailing list