rpms/kernel/devel drm-modesetting-i915.patch, 1.2, 1.3 drm-modesetting-radeon.patch, 1.29, 1.30 kernel.spec, 1.970, 1.971
Dave Airlie
airlied at fedoraproject.org
Tue Sep 23 05:06:42 UTC 2008
- Previous message (by thread): rpms/cman/F-9 fix-init.diff,NONE,1.1 cman.spec,1.108,1.109
- Next message (by thread): rpms/libUnihan/F-9 .cvsignore, 1.3, 1.4 import.log, 1.2, 1.3 libUnihan.spec, 1.2, 1.3 sources, 1.3, 1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Author: airlied
Update of /cvs/pkgs/rpms/kernel/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv15867
Modified Files:
drm-modesetting-i915.patch drm-modesetting-radeon.patch
kernel.spec
Log Message:
- rebase drm patches with latest upstream GEM bits
drm-modesetting-i915.patch:
Index: drm-modesetting-i915.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-i915.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- drm-modesetting-i915.patch 15 Sep 2008 22:49:20 -0000 1.2
+++ drm-modesetting-i915.patch 23 Sep 2008 05:06:11 -0000 1.3
@@ -1,64 +1,70 @@
-commit 30ff7e1eb97ba42a7e71890a77345a495f022eb5
+commit 2b391e551baddf9dabb06bee61023797ca810791
+Author: Kristian Høgsberg <krh at redhat.com>
+Date: Mon Sep 22 16:43:04 2008 -0400
+
+ Update intel modesetting to use mm_private instead of mm_handle.
+
+commit 0e6b3649ab58deafd5fb531264ce89718cd31344
Author: Dave Airlie <airlied at linux.ie>
Date: Tue Sep 16 08:46:41 2008 +1000
drm/i915: fixup irqs and make i915 ints work again
-commit df3fafd56d88d44b7f691bc275406f19ac555869
+commit 033f754b3d4b903e79d314d072a1f6ffd89e0851
Author: Dave Airlie <airlied at linux.ie>
Date: Tue Sep 16 06:59:58 2008 +1000
enable msi interrupts
-commit 6fbaf1dee397b1f2240b3026dc89d0d39b789641
+commit af5c14da9b93227aa417ca08c53537772cb7cb04
Author: Dave Airlie <airlied at linux.ie>
Date: Tue Sep 16 05:10:56 2008 +1000
i915: fix issues with interrupts
-commit f0f6b59a6ab4f6a54780a4b7a8807659b3b9799a
+commit 9fcee2a986584c3bc9b743f53d6d9bebbd407161
Author: Dave Airlie <airlied at panoply-rh.(none)>
Date: Tue Sep 9 16:03:12 2008 +1000
i915: fixup hws page
-commit dae9cc44a08b0d5e79dec6b3cccc7f8f70cbe542
+commit d6964afe2fbb73b8d5d83d463bc9b122116099b0
Author: Dave Airlie <airlied at linux.ie>
Date: Mon Sep 8 17:08:29 2008 +1000
drm/i915: add modeset default config option support
-commit e4143dd833eec57e7f3ad9d54dc2e4d2315b10c0
+commit 065db6e5171231de0970540553d3845ea8b3ce63
Author: Dave Airlie <airlied at linux.ie>
Date: Mon Sep 8 17:08:04 2008 +1000
drm: export drm_mm_takedown
-commit 54608765a84591ecc16fe4fb468db12f8b603124
+commit bd0b4b01f6831f7e8f3ae4d743dfe7b4f1e710ae
Author: Dave Airlie <airlied at linux.ie>
Date: Mon Sep 8 17:07:30 2008 +1000
i915: fix master priv accesses
-commit 948a856992c8ebd2615c1c9b6d74a757d4e34e64
+commit 2284c4e99382fee59c07c61ae744a48100739463
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 13:45:34 2008 +1000
intel: make build
-commit b8f2747a954a95e426baac1da0bb4cfee4dd534e
+commit 457d906e8c391e11326031a873c2daf7cee60411
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 13:28:52 2008 +1000
jbarnes: add gtt map code
-commit 661f42dd5878bbea4f1c785bbe8b290bb2495437
+commit 922f29104a8fdcb54c73c426be413ea988231b79
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 13:27:53 2008 +1000
jbarnes: add mmap_io_region
-commit d8dfa0ecb3fd079dbc7d0c709692ff417b86a6c7
+commit 7cfa2f3f752aa4353f81f93eb87cbd15fa7ff4d2
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 13:25:58 2008 +1000
@@ -2250,7 +2256,7 @@
+ .destroy = tfp410_destroy,
+};
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index bad0144..07b02d0 100644
+index 66e4b8e..0fd7f9d 100644
--- a/drivers/gpu/drm/i915/i915_dma.c
+++ b/drivers/gpu/drm/i915/i915_dma.c
@@ -122,9 +122,19 @@ void i915_free_hws(struct drm_device *dev)
@@ -2283,7 +2289,7 @@
{
drm_i915_private_t *dev_priv = dev->dev_private;
/* Make sure interrupts are disabled here because the uninstall ioctl
-@@ -760,6 +770,9 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
+@@ -776,6 +786,9 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
return -EINVAL;
}
@@ -2293,7 +2299,7 @@
printk(KERN_DEBUG "set status page addr 0x%08x\n", (u32)hws->addr);
dev_priv->status_gfx_addr = hws->addr & (0x1ffff<<12);
-@@ -788,129 +801,6 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
+@@ -804,129 +817,6 @@ static int i915_set_status_page(struct drm_device *dev, void *data,
return 0;
}
@@ -2423,7 +2429,7 @@
struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF(DRM_I915_INIT, i915_dma_init, DRM_AUTH|DRM_MASTER|DRM_ROOT_ONLY),
DRM_IOCTL_DEF(DRM_I915_FLUSH, i915_flush_ioctl, DRM_AUTH),
-@@ -941,6 +831,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
+@@ -957,6 +847,7 @@ struct drm_ioctl_desc i915_ioctls[] = {
DRM_IOCTL_DEF(DRM_I915_GEM_PREAD, i915_gem_pread_ioctl, 0),
DRM_IOCTL_DEF(DRM_I915_GEM_PWRITE, i915_gem_pwrite_ioctl, 0),
DRM_IOCTL_DEF(DRM_I915_GEM_MMAP, i915_gem_mmap_ioctl, 0),
@@ -2954,7 +2960,7 @@
}
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 22b6925..52a16ed 100644
+index 5811601..19bbf6e 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -32,6 +32,7 @@
@@ -3041,7 +3047,7 @@
/* Register state */
u8 saveLBB;
u32 saveDSPACNTR;
-@@ -404,8 +438,16 @@ struct drm_i915_file_private {
+@@ -407,8 +441,16 @@ struct drm_i915_file_private {
} mm;
};
@@ -3058,7 +3064,7 @@
extern int i915_master_create(struct drm_device *dev, struct drm_master *master);
extern void i915_master_destroy(struct drm_device *dev, struct drm_master *master);
-@@ -426,6 +468,9 @@ extern long i915_compat_ioctl(struct file *filp, unsigned int cmd,
+@@ -429,6 +471,9 @@ extern long i915_compat_ioctl(struct file *filp, unsigned int cmd,
extern int i915_emit_box(struct drm_device *dev,
struct drm_clip_rect __user *boxes,
int i, int DR1, int DR4);
@@ -3068,7 +3074,7 @@
/* i915_irq.c */
extern int i915_irq_emit(struct drm_device *dev, void *data,
-@@ -448,6 +493,7 @@ extern int i915_vblank_pipe_get(struct drm_device *dev, void *data,
+@@ -452,6 +497,7 @@ extern int i915_vblank_pipe_get(struct drm_device *dev, void *data,
extern int i915_vblank_swap(struct drm_device *dev, void *data,
struct drm_file *file_priv);
extern void i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask);
@@ -3076,7 +3082,7 @@
/* i915_mem.c */
extern int i915_mem_alloc(struct drm_device *dev, void *data,
-@@ -461,6 +507,11 @@ extern int i915_mem_destroy_heap(struct drm_device *dev, void *data,
+@@ -465,6 +511,11 @@ extern int i915_mem_destroy_heap(struct drm_device *dev, void *data,
extern void i915_mem_takedown(struct mem_block **heap);
extern void i915_mem_release(struct drm_device * dev,
struct drm_file *file_priv, struct mem_block *heap);
@@ -3088,7 +3094,7 @@
/* i915_gem.c */
int i915_gem_init_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
-@@ -472,6 +523,8 @@ int i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
+@@ -476,6 +527,8 @@ int i915_gem_pwrite_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
int i915_gem_mmap_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
@@ -3097,7 +3103,7 @@
int i915_gem_set_domain_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv);
int i915_gem_sw_finish_ioctl(struct drm_device *dev, void *data,
-@@ -506,6 +559,13 @@ uint32_t i915_get_gem_seqno(struct drm_device *dev);
+@@ -510,6 +563,13 @@ uint32_t i915_get_gem_seqno(struct drm_device *dev);
void i915_gem_retire_requests(struct drm_device *dev);
void i915_gem_retire_work_handler(struct work_struct *work);
void i915_gem_clflush_object(struct drm_gem_object *obj);
@@ -3111,9 +3117,9 @@
/* i915_gem_tiling.c */
void i915_gem_detect_bit_6_swizzle(struct drm_device *dev);
-@@ -529,10 +589,16 @@ extern void intel_opregion_free(struct drm_device *dev);
- extern void opregion_asle_intr(struct drm_device *dev);
- extern void opregion_enable_asle(struct drm_device *dev);
+@@ -544,10 +604,16 @@ extern void opregion_enable_asle(struct drm_device *dev);
+ LOCK_TEST_WITH_RETURN(dev, file_priv); \
+ } while (0)
+/* modesetting */
+extern void intel_modeset_init(struct drm_device *dev);
@@ -3128,7 +3134,7 @@
#define I915_VERBOSE 0
-@@ -608,7 +674,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -623,7 +689,7 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
#define IS_I965GM(dev) ((dev)->pci_device == 0x2A02)
@@ -3137,7 +3143,7 @@
#define IS_G4X(dev) ((dev)->pci_device == 0x2E02 || \
(dev)->pci_device == 0x2E12 || \
-@@ -622,9 +688,9 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
+@@ -637,9 +703,9 @@ extern int i915_wait_ring(struct drm_device * dev, int n, const char *caller);
IS_I945GM(dev) || IS_I965G(dev) || IS_G33(dev))
#define IS_MOBILE(dev) (IS_I830(dev) || IS_I85X(dev) || IS_I915GM(dev) || \
@@ -3150,7 +3156,7 @@
#define PRIMARY_RINGBUFFER_SIZE (128*1024)
diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 440659e..ee112ae 100644
+index 64dff87..c295621 100644
--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
@@ -30,11 +30,9 @@
@@ -3316,7 +3322,7 @@
i915_gem_object_set_domain(struct drm_gem_object *obj,
uint32_t read_domains,
uint32_t write_domain)
-@@ -1736,6 +1803,7 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file_priv)
+@@ -1738,6 +1805,7 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file_priv)
seqno = i915_file_priv->mm.last_gem_throttle_seqno;
i915_file_priv->mm.last_gem_throttle_seqno =
i915_file_priv->mm.last_gem_seqno;
@@ -3324,7 +3330,7 @@
if (seqno)
ret = i915_wait_request(dev, seqno);
mutex_unlock(&dev->struct_mutex);
-@@ -2324,7 +2392,8 @@ i915_gem_init_hws(struct drm_device *dev)
+@@ -2316,7 +2384,8 @@ i915_gem_init_hws(struct drm_device *dev)
int ret;
/* If we need a physical address for the status page, it's already
@@ -3334,7 +3340,7 @@
*/
if (!I915_NEED_GFX_HWS(dev))
return 0;
-@@ -2365,7 +2434,7 @@ i915_gem_init_hws(struct drm_device *dev)
+@@ -2357,7 +2426,7 @@ i915_gem_init_hws(struct drm_device *dev)
return 0;
}
@@ -3343,7 +3349,7 @@
i915_gem_init_ringbuffer(struct drm_device *dev)
{
drm_i915_private_t *dev_priv = dev->dev_private;
-@@ -2429,7 +2498,7 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
+@@ -2421,7 +2490,7 @@ i915_gem_init_ringbuffer(struct drm_device *dev)
return 0;
}
@@ -3352,7 +3358,7 @@
i915_gem_cleanup_ringbuffer(struct drm_device *dev)
{
drm_i915_private_t *dev_priv = dev->dev_private;
-@@ -2462,6 +2531,9 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
+@@ -2454,6 +2523,9 @@ i915_gem_entervt_ioctl(struct drm_device *dev, void *data,
drm_i915_private_t *dev_priv = dev->dev_private;
int ret;
@@ -3362,7 +3368,7 @@
if (dev_priv->mm.wedged) {
DRM_ERROR("Reenabling wedged hardware, good luck\n");
dev_priv->mm.wedged = 0;
-@@ -2490,6 +2562,9 @@ i915_gem_leavevt_ioctl(struct drm_device *dev, void *data,
+@@ -2482,6 +2554,9 @@ i915_gem_leavevt_ioctl(struct drm_device *dev, void *data,
{
int ret;
@@ -3810,7 +3816,7 @@
+ return 0;
+}
diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index 965ec74..3c2fc12 100644
+index 53db0cc..17c5621 100644
--- a/drivers/gpu/drm/i915/i915_irq.c
+++ b/drivers/gpu/drm/i915/i915_irq.c
@@ -30,16 +30,27 @@
@@ -3843,7 +3849,7 @@
void
i915_enable_irq(drm_i915_private_t *dev_priv, u32 mask)
{
-@@ -257,19 +268,16 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
+@@ -272,19 +283,16 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
{
struct drm_device *dev = (struct drm_device *) arg;
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -3866,7 +3872,7 @@
if (iir == 0) {
if (dev->pdev->msi_enabled) {
I915_WRITE(IMR, dev_priv->irq_mask_reg);
-@@ -278,38 +286,47 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
+@@ -293,38 +301,47 @@ irqreturn_t i915_driver_irq_handler(DRM_IRQ_ARGS)
return IRQ_NONE;
}
@@ -3932,7 +3938,7 @@
DRM_WAKEUP(&dev->vbl_queue);
drm_vbl_send_signals(dev);
-@@ -485,6 +502,120 @@ int i915_irq_wait(struct drm_device *dev, void *data,
+@@ -503,6 +520,120 @@ int i915_irq_wait(struct drm_device *dev, void *data,
return i915_wait_irq(dev, irqwait->irq_seq);
}
@@ -4053,7 +4059,7 @@
/* Set the vblank monitor pipe
*/
int i915_vblank_pipe_set(struct drm_device *dev, void *data,
-@@ -492,7 +623,6 @@ int i915_vblank_pipe_set(struct drm_device *dev, void *data,
+@@ -510,7 +641,6 @@ int i915_vblank_pipe_set(struct drm_device *dev, void *data,
{
drm_i915_private_t *dev_priv = dev->dev_private;
drm_i915_vblank_pipe_t *pipe = data;
@@ -4061,7 +4067,7 @@
if (!dev_priv) {
DRM_ERROR("called with no initialization\n");
-@@ -504,18 +634,10 @@ int i915_vblank_pipe_set(struct drm_device *dev, void *data,
+@@ -522,18 +652,10 @@ int i915_vblank_pipe_set(struct drm_device *dev, void *data,
return -EINVAL;
}
@@ -4083,7 +4089,7 @@
dev_priv->vblank_pipe = pipe->pipe;
-@@ -527,18 +649,19 @@ int i915_vblank_pipe_get(struct drm_device *dev, void *data,
+@@ -545,18 +667,19 @@ int i915_vblank_pipe_get(struct drm_device *dev, void *data,
{
drm_i915_private_t *dev_priv = dev->dev_private;
drm_i915_vblank_pipe_t *pipe = data;
@@ -4107,7 +4113,7 @@
pipe->pipe |= DRM_I915_VBLANK_PIPE_B;
return 0;
-@@ -657,7 +780,7 @@ void i915_driver_irq_preinstall(struct drm_device * dev)
+@@ -675,7 +798,7 @@ void i915_driver_irq_preinstall(struct drm_device * dev)
{
drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
@@ -4116,7 +4122,7 @@
I915_WRITE(IMR, 0x0);
I915_WRITE(IER, 0x0);
}
-@@ -670,24 +793,11 @@ void i915_driver_irq_postinstall(struct drm_device * dev)
+@@ -688,24 +811,11 @@ void i915_driver_irq_postinstall(struct drm_device * dev)
INIT_LIST_HEAD(&dev_priv->vbl_swaps.head);
dev_priv->swaps_pending = 0;
@@ -5583,10 +5589,10 @@
+}
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
new file mode 100644
-index 0000000..d7e02a2
+index 0000000..10d120a
--- /dev/null
+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -0,0 +1,1602 @@
+@@ -0,0 +1,1619 @@
+/*
+ * Copyright © 2006-2007 Intel Corporation
+ *
@@ -5959,6 +5965,7 @@
+ struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
+ struct intel_framebuffer *intel_fb;
+ struct drm_i915_gem_object *obj_priv;
++ struct drm_gem_object *obj;
+ int pipe = intel_crtc->pipe;
+ unsigned long Start, Offset;
+ int dspbase = (pipe == 0 ? DSPAADDR : DSPBADDR);
@@ -5975,7 +5982,8 @@
+
+ intel_fb = to_intel_framebuffer(crtc->fb);
+
-+ obj_priv = intel_fb->obj->driver_private;
++ obj = intel_fb->base.mm_private;
++ obj_priv = obj->driver_private;
+
+ Start = obj_priv->gtt_offset;
+ Offset = y * crtc->fb->pitch + x * (crtc->fb->bits_per_pixel / 8);
@@ -7053,21 +7061,34 @@
+{
+ struct intel_framebuffer *intel_fb = to_intel_framebuffer(fb);
+ struct drm_device *dev = fb->dev;
++
+ if (fb->fbdev)
+ intelfb_remove(dev, fb);
+
+ drm_framebuffer_cleanup(fb);
++ drm_gem_object_unreference(fb->mm_private);
+
+ kfree(intel_fb);
+}
++
++static int intel_user_framebuffer_create_handle(struct drm_framebuffer *fb,
++ struct drm_file *file_priv,
++ unsigned int *handle)
++{
++ struct drm_gem_object *object = fb->mm_private;
++
++ return drm_gem_handle_create(file_priv, object, handle);
++}
+
+static const struct drm_framebuffer_funcs intel_fb_funcs = {
+ .destroy = intel_user_framebuffer_destroy,
++ .create_handle = intel_user_framebuffer_create_handle,
+};
+
-+struct drm_framebuffer *intel_user_framebuffer_create(struct drm_device *dev,
-+ struct drm_file *filp,
-+ struct drm_mode_fb_cmd *mode_cmd)
++struct drm_framebuffer *
++intel_framebuffer_create(struct drm_device *dev,
++ struct drm_mode_fb_cmd *mode_cmd,
++ void *mm_private)
+{
+ struct intel_framebuffer *intel_fb;
+
@@ -7078,20 +7099,26 @@
+ if (!drm_framebuffer_init(dev, &intel_fb->base, &intel_fb_funcs))
+ return NULL;
+
-+ drm_helper_mode_fill_fb_struct(&intel_fb->base, mode_cmd);
++ drm_helper_mode_fill_fb_struct(&intel_fb->base, mode_cmd, mm_private);
+
-+ if (filp) {
-+ intel_fb->obj = drm_gem_object_lookup(dev, filp,
-+ mode_cmd->handle);
-+ if (!intel_fb->obj) {
-+ kfree(intel_fb);
-+ return NULL;
-+ }
-+ }
-+ drm_gem_object_unreference(intel_fb->obj);
+ return &intel_fb->base;
+}
+
++
++static struct drm_framebuffer *
++intel_user_framebuffer_create(struct drm_device *dev,
++ struct drm_file *filp,
++ struct drm_mode_fb_cmd *mode_cmd)
++{
++ struct drm_gem_object *obj;
++
++ obj = drm_gem_object_lookup(dev, filp, mode_cmd->handle);
++ if (!obj)
++ return NULL;
++
++ return intel_framebuffer_create(dev, mode_cmd, obj);
++}
++
+static int intel_insert_new_fb(struct drm_device *dev, struct drm_file *file_priv,
+ struct drm_framebuffer *fb, struct drm_mode_fb_cmd *mode_cmd)
+{
@@ -7108,14 +7135,10 @@
+ mutex_unlock(&dev->struct_mutex);
+ return -EINVAL;
+ }
-+ drm_helper_mode_fill_fb_struct(fb, mode_cmd);
-+
-+ drm_gem_object_unreference(intel_fb->obj);
-+ drm_gem_object_unreference(obj);
++ drm_gem_object_unreference(intel_fb->base.mm_private);
++ drm_helper_mode_fill_fb_struct(fb, mode_cmd, obj);
+ mutex_unlock(&dev->struct_mutex);
+
-+ intel_fb->obj = obj;
-+
+ list_for_each_entry(crtc, &dev->mode_config.crtc_list, head) {
+ if (crtc->fb == fb) {
+ struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
@@ -7191,7 +7214,7 @@
+}
diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
new file mode 100644
-index 0000000..bffbeef
+index 0000000..256deac
--- /dev/null
+++ b/drivers/gpu/drm/i915/intel_drv.h
@@ -0,0 +1,125 @@
@@ -7247,7 +7270,6 @@
+
+struct intel_framebuffer {
+ struct drm_framebuffer base;
-+ struct drm_gem_object *obj;
+};
+
+
@@ -7316,9 +7338,10 @@
+extern void intel_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
+ u16 blue, int regno);
+
-+extern struct drm_framebuffer *intel_user_framebuffer_create(struct drm_device *dev,
-+ struct drm_file *file_priv,
-+ struct drm_mode_fb_cmd *mode_cmd);
++extern struct drm_framebuffer *
++intel_framebuffer_create(struct drm_device *dev,
++ struct drm_mode_fb_cmd *mode_cmd,
++ void *mm_private);
+#endif /* __INTEL_DRV_H__ */
diff --git a/drivers/gpu/drm/i915/intel_dvo.c b/drivers/gpu/drm/i915/intel_dvo.c
new file mode 100644
@@ -7827,10 +7850,10 @@
+}
diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
new file mode 100644
-index 0000000..fea083b
+index 0000000..8ec8e73
--- /dev/null
+++ b/drivers/gpu/drm/i915/intel_fb.c
-@@ -0,0 +1,910 @@
+@@ -0,0 +1,908 @@
+/*
+ * Copyright © 2007 David Airlie
+ *
@@ -8321,7 +8344,7 @@
+
+ i915_gem_clflush_object(fbo);
+
-+ fb = intel_user_framebuffer_create(dev, NULL, &mode_cmd);
++ fb = intel_framebuffer_create(dev, &mode_cmd, fbo);
+ if (!fb) {
+ DRM_ERROR("failed to allocate fb.\n");
+ ret = -ENOMEM;
@@ -8333,8 +8356,6 @@
+ intel_fb = to_intel_framebuffer(fb);
+ *intel_fb_p = intel_fb;
+
-+ intel_fb->obj = fbo;
-+
+ info = framebuffer_alloc(sizeof(struct intelfb_par), device);
+ if (!info) {
+ ret = -ENOMEM;
@@ -8730,7 +8751,7 @@
+ unregister_framebuffer(info);
+ iounmap(info->screen_base);
+ mutex_lock(&dev->struct_mutex);
-+ drm_gem_object_unreference(intel_fb->obj);
++ drm_gem_object_unreference(intel_fb->base.mm_private);
+ mutex_unlock(&dev->struct_mutex);
+ framebuffer_release(info);
+ }
@@ -12837,10 +12858,10 @@
/** Handle for the object */
uint32_t handle;
diff --git a/mm/mmap.c b/mm/mmap.c
-index 339cf5c..62f54fe 100644
+index e7a5a68..d689d36 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
-@@ -1244,6 +1244,171 @@ unacct_error:
+@@ -1248,6 +1248,171 @@ unacct_error:
return error;
}
drm-modesetting-radeon.patch:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.29 -r 1.30 drm-modesetting-radeon.patch
Index: drm-modesetting-radeon.patch
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/drm-modesetting-radeon.patch,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- drm-modesetting-radeon.patch 19 Sep 2008 17:12:29 -0000 1.29
+++ drm-modesetting-radeon.patch 23 Sep 2008 05:06:11 -0000 1.30
@@ -1,22 +1,43 @@
-commit 68d1f0df534df3cadc55a064e38c9afb4a66b875
+commit 14eed5a3ffea4629d8189605a6ece8762f07d9fe
+Author: Kristian Høgsberg <krh at redhat.com>
+Date: Mon Sep 22 18:40:36 2008 -0400
+
+ radeon: Fix type in check for tmds type.
+
+commit 0168869442658dbd7e33e65be597f9089a79e6a8
+Author: Kristian Høgsberg <krh at redhat.com>
+Date: Mon Sep 22 12:00:57 2008 -0400
+
+ Store the buffer object backing the fb as a void pointer, not a handle.
+
+ This lets us defer handle creation until userspace acutally asks for
+ one, at which point we also have a drm_file to associate it with.
+
+commit 0664262b8159ef0c66ad392d2d503c9f016985dc
+Author: Dave Airlie <airlied at linux.ie>
+Date: Sun Sep 21 09:48:51 2008 +1000
+
+ drm: fixups on top of rebase
+
+commit 061cefa1df3eb9529d343188d3897155f00ff16c
Author: Dave Airlie <airlied at linux.ie>
Date: Sat Sep 20 03:08:05 2008 +1000
radeon: rmx_fixup() fixes for legacy chips
-commit 59a50b92d61cdd939026d7b5bcb2584e936927b0
+commit 3b23502dc6c04204635dc3a84ba5bcea1d190621
Author: Dave Airlie <airlied at linux.ie>
Date: Sat Sep 20 01:55:27 2008 +1000
radeon: fix combios
-commit 6a804321a2b1220143a64a3a78d72b03770fd285
+commit c059d6eff66af51a9444a01c39b3d759a6a0c729
Author: Dave Airlie <airlied at linux.ie>
Date: Fri Sep 19 09:17:36 2008 +1000
radeon: port Alexs patches from modesetting-gem
-commit 757bdeefa398c5b856d6321e3622436c676d04a5
+commit f35ce101abe8623172636bac692db1d0fd4e529c
Author: Kristian Høgsberg <krh at redhat.com>
Date: Thu Sep 18 16:10:29 2008 -0400
@@ -25,7 +46,7 @@
Shouldn't trigger under normal use and when something breaks, it will
be easier to debug.
-commit 90f000493d3f8ea7338756e06fd644e0dcf0aff6
+commit e36fdeebf9d0ea75618b693abb1877a1b4a19bdf
Author: Kristian Høgsberg <krh at redhat.com>
Date: Thu Sep 18 16:07:50 2008 -0400
@@ -34,25 +55,25 @@
The X server emits writes to R300_DST_PIPE_CONFIG for R420 chipsets during
accel init.
-commit af13076bbaad40f3553346a366b25942483f54fb
+commit d9852d3eff1b6d9f164aff30d9a22e6f93a6df08
Author: Kristian Høgsberg <krh at redhat.com>
Date: Thu Sep 18 14:53:46 2008 -0400
radeon kms: Get precedence right when computing PLL values.
-commit 41b33ad8bfd879c37f72e560e0b1e1b57f537093
+commit 2b786dcd4c4d53c4a6cb6405999c968f5ca304ac
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Thu Sep 18 09:55:14 2008 +1000
radeon: further LVDS fixes
-commit 882f9bc454b85149fdf96db79932a8f1d57b5136
+commit 0ecedf0ffa7266e3652aee0995e23ca2fe5d8775
Author: Alex Deucher <alexdeucher at gmail.com>
Date: Thu Sep 18 09:54:12 2008 +1000
radeon: legacy lvds updates
-commit 7d7949742ae5d6d0aca8857bfcab77b2fffaf0d7
+commit e46e9dc68d2d3c01b14e19703134252452af724e
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Sep 11 18:26:27 2008 +1000
@@ -60,7 +81,7 @@
just fallback around busted stuff for now
-commit 3bd833adf4e37a47d9e794498c4cdb4bff09d167
+commit 48df612620c266cf324fdd12248b82e4f4d214d8
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Sep 11 18:25:18 2008 +1000
@@ -68,13 +89,13 @@
also dirty buffer on validate
-commit c323b90fe655fcee25aa7e39671c1594e897c4f6
+commit 3a58875d091f808f39b2684480b392a8e1858692
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Sep 11 17:13:32 2008 +1000
radeon: disable blit moves
-commit 7783a2254b7707861662b3f94ca2ca38c83ce64b
+commit 26421bce94db32eb3582bd852aca57e5ff3f3760
Author: Dave Airlie <airlied at redhat.com>
Date: Thu Sep 11 16:18:27 2008 +1000
@@ -82,73 +103,73 @@
Normally this will be due to an AGP driver needing updating
-commit ed3d32c22ed856ef32594fe2efb88c55c8006627
+commit 5e7c7a1f7cf302847b6a9632d60cd0daf9f61eb8
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Sep 10 14:35:43 2008 +1000
radeon: do proper memory controller init and setup
-commit b20aa3e4a453fe5132794e6fddd0e03d0209466a
+commit 8bc3f7fe8ca6ad91354902eee4285838bf00eeaf
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Sep 10 14:35:08 2008 +1000
radeon: fix return value
-commit e64d245c67dce41434a5f9504d7f6f530cf7e5c2
+commit 722125d4dc2748c0b64dbe67492295f4d6d31511
Author: Dave Airlie <airlied at redhat.com>
Date: Wed Sep 10 14:34:39 2008 +1000
radeon: fixup reference counting properly
-commit dc35ec837f7a0ff258e6fde4326ccae7fd77650b
+commit ac4ff77cf50396c58bddc797983b231e8245f744
Author: Dave Airlie <airlied at redhat.com>
Date: Tue Sep 9 15:55:38 2008 +1000
radeon: sort out atom vs combios tables for r400 cards
-commit 3f4de41530215c5fe6a15b75defa1164615f4878
+commit b73c5ac2f7ed4d2fffb39308f2cf4071d6de4230
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 11:37:26 2008 +1000
radeon: remove unneeded debugging
-commit 2a5b61e6726691102e075e07e6d9f8b1817b73d4
+commit 6f1ffd8613c786d51b7367f0ae30b61b72e05498
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 11:25:12 2008 +1000
radeon: don't do full edid for detection purposes
-commit 563e90db2ca306fe0dee104703a48b5bc5d7fd93
+commit 41c9a919040f89a369291748448c4941cc4a8509
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 10:27:48 2008 +1000
radeon: disable debugging that sneaky itself on
-commit aa65ff0b4b4e5309a5df36886170b97780245d53
+commit e179c186597b46e3931d30c09d2030ba0a865e0b
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 10:20:44 2008 +1000
radeon: make text reserve 256k
-commit 65e46dddb8d5626c7299b22ee775a2592cbcca1b
+commit f78df3fab9f421253adfbdf353bcb2cefd16037a
Author: Dave Airlie <airlied at redhat.com>
Date: Mon Sep 8 10:11:27 2008 +1000
radeon: don't disable VGA bits it breaks X later
-commit 7111e3e07597d2eaeea9e39e22e9228458eb615b
+commit 4559a458f95747e18c3a524b1c4fcb58d7bcd5e4
Author: Dave Airlie <airlied at redhat.com>
Date: Fri Sep 5 11:26:55 2008 +1000
drm: export drm_i915_flip_t type to userspace to build Mesa
-commit b27e23f97a6896b0b9fb3981fbcc78246598fb1d
+commit 39014717471465c27bd9d234ae65767d5a44725f
Author: Dave Airlie <airlied at redhat.com>
Date: Fri Sep 5 16:12:59 2008 +1000
radeon: further suspend/resume support
[...1989 lines suppressed...]
++ drm_gem_object_unreference(fb->mm_private);
+ mutex_unlock(&dev->struct_mutex);
+ framebuffer_release(info);
+ }
@@ -38644,10 +38780,10 @@
radeon_enable_interrupt(dev);
diff --git a/drivers/gpu/drm/radeon/radeon_legacy_crtc.c b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
new file mode 100644
-index 0000000..d51fc52
+index 0000000..bc28c43
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_legacy_crtc.c
-@@ -0,0 +1,1025 @@
+@@ -0,0 +1,1029 @@
+/*
+ * Copyright 2007-8 Advanced Micro Devices, Inc.
+ * Copyright 2008 Red Hat Inc.
@@ -38826,6 +38962,7 @@
+ struct drm_device *dev = crtc->dev;
+ struct drm_radeon_private *dev_priv = dev->dev_private;
+ struct radeon_framebuffer *radeon_fb;
++ struct drm_gem_object *obj;
+ struct drm_radeon_gem_object *obj_priv;
+ uint32_t base;
+ uint32_t crtc_offset, crtc_offset_cntl, crtc_tile_x0_y0 = 0;
@@ -38835,7 +38972,8 @@
+
+ radeon_fb = to_radeon_framebuffer(crtc->fb);
+
-+ obj_priv = radeon_fb->obj->driver_private;
++ obj = radeon_fb->base.mm_private;
++ obj_priv = obj->driver_private;
+
+ crtc_offset = obj_priv->bo->offset;
+
@@ -39249,6 +39387,7 @@
+ struct drm_device *dev = crtc->dev;
+ struct drm_radeon_private *dev_priv = dev->dev_private;
+ struct radeon_framebuffer *radeon_fb;
++ struct drm_gem_object *obj;
+ struct drm_radeon_gem_object *obj_priv;
+ uint32_t base;
+ uint32_t crtc2_offset, crtc2_offset_cntl, crtc2_tile_x0_y0 = 0;
@@ -39258,7 +39397,8 @@
+
+ radeon_fb = to_radeon_framebuffer(crtc->fb);
+
-+ obj_priv = radeon_fb->obj->driver_private;
++ obj = radeon_fb->base.mm_private;
++ obj_priv = obj->driver_private;
+
+ crtc2_offset = obj_priv->bo->offset;
+
@@ -41055,10 +41195,10 @@
diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
new file mode 100644
-index 0000000..d4b33dd
+index 0000000..577c3cf
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_mode.h
-@@ -0,0 +1,348 @@
+@@ -0,0 +1,347 @@
+/*
+ * Copyright 2000 ATI Technologies Inc., Markham, Ontario, and
+ * VA Linux Systems Inc., Fremont, California.
@@ -41309,7 +41449,6 @@
+
+struct radeon_framebuffer {
+ struct drm_framebuffer base;
-+ struct drm_gem_object *obj;
+ struct drm_bo_kmap_obj kmap_obj;
+};
+
@@ -41374,9 +41513,9 @@
+extern void radeon_atom_initialize_bios_scratch_regs(struct drm_device *dev);
+extern void radeon_crtc_fb_gamma_set(struct drm_crtc *crtc, u16 red, u16 green,
+ u16 blue, int regno);
-+struct drm_framebuffer *radeon_user_framebuffer_create(struct drm_device *dev,
-+ struct drm_file *filp,
-+ struct drm_mode_fb_cmd *mode_cmd);
++struct drm_framebuffer *radeon_framebuffer_create(struct drm_device *dev,
++ struct drm_mode_fb_cmd *mode_cmd,
++ void *mm_private);
+
+int radeonfb_probe(struct drm_device *dev);
+
@@ -41409,10 +41548,10 @@
+#endif
diff --git a/drivers/gpu/drm/radeon/radeon_pm.c b/drivers/gpu/drm/radeon/radeon_pm.c
new file mode 100644
-index 0000000..92d44b5
+index 0000000..6b53c60
--- /dev/null
+++ b/drivers/gpu/drm/radeon/radeon_pm.c
-@@ -0,0 +1,240 @@
+@@ -0,0 +1,241 @@
+/*
+ * Copyright 2007-8 Advanced Micro Devices, Inc.
+ * Copyright 2008 Red Hat Inc.
@@ -41469,10 +41608,10 @@
+ if (!radeon_fb)
+ continue;
+
-+ if (!radeon_fb->obj)
++ if (!radeon_fb->base.mm_private)
+ continue;
+
-+ radeon_gem_object_unpin(radeon_fb->obj);
++ radeon_gem_object_unpin(radeon_fb->base.mm_private);
+ }
+
+ if (!(dev_priv->flags & RADEON_IS_IGP))
@@ -41583,10 +41722,11 @@
+ if (!radeon_fb)
+ continue;
+
-+ if (!radeon_fb->obj)
++ if (!radeon_fb->base.mm_private)
+ continue;
+
-+ radeon_gem_object_pin(radeon_fb->obj, PAGE_SIZE, RADEON_GEM_DOMAIN_VRAM);
++ radeon_gem_object_pin(radeon_fb->base.mm_private,
++ PAGE_SIZE, RADEON_GEM_DOMAIN_VRAM);
+ }
+ /* blat the mode back in */
+ drm_helper_resume_force_mode(dev);
@@ -47744,7 +47884,7 @@
struct drm_sman_mm sman_mm;
sman_mm.private = (void *)0xFFFFFFFF;
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
-index cce2f4c..4db67c5 100644
+index 36698e5..63b56f3 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -203,13 +203,6 @@ static u64 pci_size(u64 base, u64 maxbase, u64 mask)
@@ -47761,7 +47901,7 @@
static inline enum pci_bar_type decode_bar(struct resource *res, u32 bar)
{
if ((bar & PCI_BASE_ADDRESS_SPACE) == PCI_BASE_ADDRESS_SPACE_IO) {
-@@ -322,6 +315,46 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
+@@ -328,6 +321,46 @@ static int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
goto out;
}
@@ -48756,10 +48896,10 @@
#endif /* __KERNEL__ */
diff --git a/include/drm/drm_crtc.h b/include/drm/drm_crtc.h
new file mode 100644
-index 0000000..5f63dc2
+index 0000000..6a73a71
--- /dev/null
+++ b/include/drm/drm_crtc.h
-@@ -0,0 +1,714 @@
+@@ -0,0 +1,717 @@
+/*
+ * Copyright © 2006 Keith Packard
+ * Copyright © 2007 Intel Corporation
@@ -48982,6 +49122,9 @@
+
+struct drm_framebuffer_funcs {
+ void (*destroy)(struct drm_framebuffer *framebuffer);
++ int (*create_handle)(struct drm_framebuffer *fb,
++ struct drm_file *file_priv,
++ unsigned int *handle);
+};
+
+struct drm_framebuffer {
@@ -48999,7 +49142,7 @@
+ void *fbdev;
+ u32 pseudo_palette[17];
+ struct list_head filp_head;
-+ uint32_t mm_handle;
++ void *mm_private;
+};
+
+struct drm_property_blob {
@@ -49476,10 +49619,10 @@
+
diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
new file mode 100644
-index 0000000..c071915
+index 0000000..01b1423
--- /dev/null
+++ b/include/drm/drm_crtc_helper.h
-@@ -0,0 +1,96 @@
+@@ -0,0 +1,97 @@
+/*
+ * Copyright © 2006 Keith Packard
+ * Copyright © 2007 Intel Corporation
@@ -49557,7 +49700,8 @@
+extern bool drm_helper_crtc_in_use(struct drm_crtc *crtc);
+
+extern int drm_helper_mode_fill_fb_struct(struct drm_framebuffer *fb,
-+ struct drm_mode_fb_cmd *mode_cmd);
++ struct drm_mode_fb_cmd *mode_cmd,
++ void *mm_private);
+
+static inline void drm_crtc_helper_add(struct drm_crtc *crtc, const struct drm_crtc_helper_funcs *funcs)
+{
Index: kernel.spec
===================================================================
RCS file: /cvs/pkgs/rpms/kernel/devel/kernel.spec,v
retrieving revision 1.970
retrieving revision 1.971
diff -u -r1.970 -r1.971
--- kernel.spec 23 Sep 2008 01:52:47 -0000 1.970
+++ kernel.spec 23 Sep 2008 05:06:11 -0000 1.971
@@ -609,9 +609,6 @@
Patch1811: drm-modesetting-radeon.patch
Patch1812: drm-modesetting-i915.patch
Patch1813: drm-nouveau.patch
-Patch1814: drm-create-handle-for-fb.patch
-Patch1815: drm-modesetting-intel-mm-private.patch
-Patch1816: drm-modesetting-fix-external-tmds-check.patch
# kludge to make ich9 e1000 work
Patch2000: linux-2.6-e1000-ich9.patch
@@ -1170,9 +1167,6 @@
ApplyPatch drm-modesetting-radeon.patch
ApplyPatch drm-modesetting-i915.patch
ApplyPatch drm-nouveau.patch
-ApplyPatch drm-create-handle-for-fb.patch
-ApplyPatch drm-modesetting-intel-mm-private.patch
-ApplyPatch drm-modesetting-fix-external-tmds-check.patch
# linux1394 git patches
ApplyPatch linux-2.6-firewire-git-update.patch
@@ -1764,6 +1758,9 @@
%kernel_variant_files -k vmlinux %{with_kdump} kdump
%changelog
+* Tue Sep 23 2008 Dave Airlie <airlied at redhat.com>
+- rebase drm patches with latest upstream GEM bits
+
* Mon Sep 22 2008 Jeremy Katz <katzj at redhat.com>
- Enable Geode framebuffer so that we can have a console on the XO
- Previous message (by thread): rpms/cman/F-9 fix-init.diff,NONE,1.1 cman.spec,1.108,1.109
- Next message (by thread): rpms/libUnihan/F-9 .cvsignore, 1.3, 1.4 import.log, 1.2, 1.3 libUnihan.spec, 1.2, 1.3 sources, 1.3, 1.4
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the fedora-extras-commits
mailing list