[git pull] DRM patches for 2.6.20

From: Dave Airlie
Date: Thu Dec 07 2006 - 00:16:29 EST



Hi Linus,

This tree has mainly driver updates for the i915 vblank + DRM drawable changes, along with some minor bugfixes.

Please pull from the 'drm-patches' branch:
git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-patches
(or from master if the mirroring is still fubar..)

drivers/char/drm/drm.h | 33 ++++
drivers/char/drm/drmP.h | 23 +++
drivers/char/drm/drm_bufs.c | 10 +
drivers/char/drm/drm_core.h | 8 +
drivers/char/drm/drm_drawable.c | 294 ++++++++++++++++++++++++++++++++++++++-
drivers/char/drm/drm_drv.c | 14 ++
drivers/char/drm/drm_irq.c | 155 +++++++++++++++++----
drivers/char/drm/drm_lock.c | 11 +
drivers/char/drm/drm_sman.c | 1
drivers/char/drm/drm_stub.c | 2
drivers/char/drm/drm_vm.c | 16 ++
drivers/char/drm/i915_dma.c | 2
drivers/char/drm/i915_drm.h | 19 +++
drivers/char/drm/i915_drv.c | 4 -
drivers/char/drm/i915_drv.h | 22 +++
drivers/char/drm/i915_irq.c | 265 ++++++++++++++++++++++++++++++++++-
16 files changed, 822 insertions(+), 57 deletions(-)
commit d942625c2d5f5d29cd3bb4fad8a4aadd59024317
Author: Andrew Morton <akpm@xxxxxxxx>
Date: Thu Dec 7 16:11:44 2006 +1100

Fix http://bugzilla.kernel.org/show_bug.cgi?id=7606

WARNING: "drm_sman_set_manager" [drivers/char/drm/sis.ko] undefined!

Cc: <daniel-silveira@xxxxxxxxxxxxx>
Cc: <stable@xxxxxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 3417f33e762bf7d4277031a655e3ad07e73ce0be
Author: George Sapountzis <gsap7@xxxxxxxx>
Date: Tue Oct 24 12:03:04 2006 -0700

drm: add flag for mapping PCI DMA buffers read-only.

Add DRM_PCI_BUFFER_RO flag for mapping PCI DMA buffer read-only. An additional
flag is needed, since PCI DMA buffers do not have an associated map.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 5c2df2bfb121a77d925dba580f53da08b4020528
Author: Dave Airlie <airlied@xxxxxxxx>
Date: Tue Oct 24 11:36:59 2006 -0700

drm: fix up irqflags in drm_lock.c

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 2228ed67223f3f22ea09df8854e6a31ea06d5619
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Oct 25 01:05:09 2006 +1000

drm: i915 updates

Add support for DRM_VBLANK_NEXTONMISS.
Bump minor for swap scheduling ioctl and secondary vblank support.
Avoid mis-counting vblank interrupts when they're only enabled for pipe A.
Only schedule vblank tasklet if there are scheduled swaps pending.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit a0b136bb696cfa744a79c4dbbbbd0c8f9f30fe3f
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Oct 25 00:12:52 2006 +1000

drm: i915: fix up irqflags arg

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 21fa60ed4eab5b3b28d05930bb086615ecc191b1
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Oct 25 00:10:59 2006 +1000

drm: i915: Only return EBUSY after we've established we need to schedule a new swap.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 2dbb232c4d6b6c89fc367f7566c7c87dd3b56cd7
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Oct 25 00:10:24 2006 +1000

drm: i915: Fix 'sequence has passed' condition in i915_vblank_swap().

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 376642cf2eb0f32d8502b0a2c4efd96a3f13a8b8
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Oct 25 00:09:35 2006 +1000

drm: i915: Add SAREA fileds for determining which pipe to sync window buffer swaps to.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 5b51694aff705c465ef5941a99073036f3e444d9
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Wed Oct 25 00:08:23 2006 +1000

drm: Make handling of dev_priv->vblank_pipe more robust.

Initialize it to default value if it hasn't been set by the X server yet.

In i915_vblank_pipe_set(), only update dev_priv->vblank_pipe and call
i915_enable_interrupt() if the argument passed from userspace is valid to avoid
corrupting dev_priv->vblank_pipe on invalid arguments.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 541f29aad766b6c7b911a7d900d952744369bf53
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:38:54 2006 +1000

drm: DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead

of pipe number.

Handle relative as well as absolute target sequence numbers.

Return error if target sequence has already passed, so userspace can deal with
this situation as it sees fit.

On success, return the sequence number of the vertical blank when the buffer
swap is expected to take place.

Also add DRM_IOCTL_I915_VBLANK_SWAP definition for userspace code that may want
to use ioctl() instead of drmCommandWriteRead().

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit a6b54f3f5050c0cbc0c35dd48064846c6302706b
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:37:43 2006 +1000

drm: i915: Add ioctl for scheduling buffer swaps at vertical blanks.

This uses the core facility to schedule a driver callback that will be called
ASAP after the given vertical blank interrupt with the HW lock held.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 049b323321bbcb476b799f50dc6444c0ed5a0e0e
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:34:58 2006 +1000

drm: Core vsync: Don't clobber target sequence number when scheduling signal.

It looks like this would have caused signals to always get sent on the next
vertical blank, regardless of the sequence number.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit ab285d74e6742422fd0465577a31fb03fe9ed241
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:34:18 2006 +1000

drm: Core vsync: Add flag DRM_VBLANK_NEXTONMISS.

When this flag is set and the target sequence is missed, wait for the next
vertical blank instead of returning immediately.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 8163e418f71e46a28bac6625b4c633c13bd53c8d
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:30:01 2006 +1000

drm: Make locked tasklet handling more robust.

Initialize the spinlock unconditionally when struct drm_device is filled in,
and return early in drm_locked_tasklet() if the driver doesn't support IRQs.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 507c0185a72e89002757a58f6c64de3df84da0de
Author: =?utf-8?q?Felix_K=C3=BChling?= <fxkuehl@xxxxxx>
Date: Tue Oct 24 23:28:23 2006 +1000

drm: drm_rmdraw: Declare id and idx as signed so testing for < 0 works as intended.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit cdec2f82b11afbe4933fa9a9b3ed567db14fd237
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:20:15 2006 +1000

drm: Change first valid DRM drawable ID to be 1 instead of 0.

This makes it easier for userspace to know when it needs to allocate an ID.

Also free drawable information memory when it's no longer needed.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit b03ed6f2fc519930fe3950365be59f0c079ce5d8
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:18:49 2006 +1000

drm: drawable locking + memory management fixes + copyright

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 2e54a007622ac75d63bdc1dd71d435446293f4a9
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:08:16 2006 +1000

drm: Add support for interrupt triggered driver callback with lock held to DRM core.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit bea5679f9cb97b7e41786c8500df56665cd21e56
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 23:04:19 2006 +1000

drm: Add support for tracking drawable information to core

Actually make the existing ioctls for adding and removing drawables do
something useful, and add another ioctl for the X server to update drawable
information. The only kind of drawable information tracked so far is cliprects.

Only reallocate cliprect memory if the number of cliprects changes.
Also improve diagnostic output.

hook up drm ioctl update draw
export drm_get_drawable_info symbol

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 68815bad7239989d92f315c10d9ef65a11945a75
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 22:28:51 2006 +1000

drm: add support for secondary vertical blank interrupt to i915

When the vertical blank interrupt is enabled for both pipes, pipe A is
considered primary and pipe B secondary. When it's only enabled for one pipe,
it's always considered primary for backwards compatibility.

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>

commit 776c9443e28dddbde9b513db6cb8221c45b3a269
Author: =?utf-8?q?Michel_D=C3=A4nzer?= <michel@xxxxxxxxxxxxxxxxxxxx>
Date: Tue Oct 24 22:24:38 2006 +1000

drm: add support for secondary vertical blank interrupt to DRM core

Signed-off-by: Dave Airlie <airlied@xxxxxxxx>
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/