aboutsummaryrefslogtreecommitdiff
path: root/drivers/char/drm/i915_irq.c
AgeCommit message (Collapse)Author
2007-09-27i915: make vbl interrupts work properly on i965g/gm hw.Dave Airlie
This code is ported from the DRM git tree and allows the vblank interrupts to function on the i965 hw. It also requires a change in Mesa's 965 driver to actually use them. [ Without this patch, my 965GM drops vblank interrupts - Jesse ] Signed-off-by: Dave Airlie <airlied@linux.ie> Acked-by: Jesse Barnes <jesse.barnes@intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-11drm: remove drm_file_t, drm_device_t and drm_head_t typedefsDave Airlie
some drivers still todo. Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11drm: remove a bunch of typedefs on the userspace interfaceDave Airlie
This moves a bunch of typedefs into a !defined __KERNEL__ to keep userspace API compatiblity, it changes all internal usages to structs/enum/unions. Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26drm: Spinlock initializer cleanupThomas Gleixner
Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-01-08i915: Fix a DRM_ERROR that should be DRM_DEBUG.=?utf-8?q?Michel_D=C3=A4nzer?=
It would clutter up the kernel output in a situation which is legitimate before X.org 7.2 and handled correctly by the 3D driver. Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-11i915_vblank_tasklet: Try harder to avoid tearing.=?utf-8?q?Michel_D=C3=A4nzer?=
Previously, if there were several buffer swaps scheduled for the same vertical blank, all but the first blit emitted stood a chance of exhibiting tearing. In order to avoid this, split the blits along slices of each output top to bottom. Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-07drm: i915 updates=?utf-8?q?Michel_D=C3=A4nzer?=
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@linux.ie>
2006-12-07drm: i915: fix up irqflags arg=?utf-8?q?Michel_D=C3=A4nzer?=
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-07drm: i915: Only return EBUSY after we've established we need to schedule a ↵=?utf-8?q?Michel_D=C3=A4nzer?=
new swap. Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-07drm: i915: Fix 'sequence has passed' condition in i915_vblank_swap().=?utf-8?q?Michel_D=C3=A4nzer?=
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-07drm: Make handling of dev_priv->vblank_pipe more robust.=?utf-8?q?Michel_D=C3=A4nzer?=
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@linux.ie>
2006-12-07drm: DRM_I915_VBLANK_SWAP ioctl: Take drm_vblank_seq_type_t instead=?utf-8?q?Michel_D=C3=A4nzer?=
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@linux.ie>
2006-12-07drm: i915: Add ioctl for scheduling buffer swaps at vertical blanks.=?utf-8?q?Michel_D=C3=A4nzer?=
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@linux.ie>
2006-12-07drm: add support for secondary vertical blank interrupt to i915=?utf-8?q?Michel_D=C3=A4nzer?=
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@linux.ie>
2006-09-22drm: Add support for Intel i965G chipsets.Alan Hourihane
This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's final code drop. From: Alan Hourihane <alanh@tungstengraphics.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-06-24Add i915 ioctls to configure pipes for vblank interrupt.Dave Airlie
i915 vblanks can be generated from either pipe a or b, however a disabled pipe generates no interrupts. This change allows the X server to select which pipe generates vblank interrupts. From: Keith Packard <keith.packard@intel.com> via DRM CVS Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-20drm: read breadcrumb in IRQ handlerDave Airlie
From: Keith Whitwell <keithw@tungstengraphics.com> Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-02-18drm: fixup i915 interrupt on X server exitDave Airlie
Fixes: IRQ disabled (i915?) when switchig between gnome themes (gnome-theme-manager) Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02drm: update to i915 1.3.0Dave Airlie
Add support for vblank ioctls to i915 driver From: Dave Airlie <airlied@linux.ie> Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-07-07drm: misc cleanupDave Airlie
This patch contains the following cleanups: - make needlessly global functions static - remove the following unused global functions: - drm_fops.c: drm_read - i915_dma.c: i915_do_cleanup_pageflip Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-06-23Add missing license texts from Tungsten Graphics.Dave Airlie
From: Alan Hourihane Signed-off-by: David Airlie <airlied@linux.ie>
2005-04-16Linux-2.6.12-rc2Linus Torvalds
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!