Age | Commit message (Collapse) | Author |
|
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.
(cherry picked from 257771fa290b62d4d2ad896843cf3a207978d0bb commit)
|
|
(cherry picked from 23d2833aaa37a33b9ddcf06cc796f59befc0d360 commit)
|
|
(cherry picked from 43f8675534c7e95efbc92eaf2c8cc43aef95f125 commit)
|
|
Also improve diagnostic output.
(cherry picked from af48be1096221d551319c67a9e782b50ef58fefd commit)
|
|
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.
(cherry picked from 29598e5253ff5c085ccf63580fd24b84db848424 commit)
|
|
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.
(cherry picked from 0c7d7f43610f705e8536a949cf2407efaa5ec217 commit)
|
|
(cherry picked from ab351505f36a6c66405ea7604378268848340a42 commit)
|
|
Fix up some comments.
|
|
This fixes issues on X server startup with versions of xf86-video-intel that
enable the IRQ before they have a context ID.
|
|
It looks like 'after a while', I915REG_INT_IDENTITY_R for some reason always has
VSYNC_PIPEB_FLAG set in the interrupt handler, even though pipe B is disabled.
So we only increase dev->vbl_received if the corresponding bit is also set in
dev->vblank_pipe.
|
|
|
|
|
|
|
|
When this flag is set and the target sequence is missed, wait for the next
vertical blank instead of returning immediately.
|
|
|
|
|
|
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.
|
|
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().
|
|
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.
|
|
|
|
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.
|
|
|
|
|
|
Also improve diagnostic output.
|
|
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.
|
|
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.
|
|
|
|
Bump driver minor and date.
|
|
Check for NULL pointer in the i915 flush handler.
Remove i915_sync_flush declaration.
|
|
|
|
when enabling/disabling vertex programs
|
|
|
|
|
|
This takes up two more ring buffer entries per rectangle blitted but makes sure
the blit is performed top to bottom, reducing the likelyhood of tearing.
|
|
In the intel case, we can associate a flush with a sequence.
|
|
Change the fence object interface somewhat to allow some more flexibility.
Make list IOCTLS really restartable.
Try to avoid busy-waits in the kernel using immediate return to user-space with an -EAGAIN.
|
|
Disable the i915 IRQ turnoff for now since it seems to be causing problems.
|
|
|
|
|
|
|
|
of other fixes.
- Mark the correct RAMIN slots as free (oops)
- Remove a VRAM alloc that shouldn't have been there (oops)
- Move HT init out of firstopen() and into dma_init()
- Setup PFIFO_RAM{HT,FC,RO} in pfifo_init()
|
|
This helps us unbreak FreeBSD DRM from the 965 changes.
|
|
|
|
|
|
|
|
|
|
Remove option to wait for fence / buffers and block signals.
|
|
|
|
be committed soon after this. Without the change, MEMFORMAT_DMA_OUT appears
to have no effect.
|
|
|