Michel Dänzer
237172b767
vblank: Clean up compensation for spurious wraparounds of driver counter.
...
Only compensate when the driver counter actually appears to have moved
backwards.
The compensation deltas need to be incremental instead of absolute; drop the
vblank_offset field and just use atomic_sub().
2008-06-03 11:28:10 +02:00
Michel Dänzer
d1dcb2b32e
vblank: Special-case driver vblank counter going back by 1.
...
Turns out the radeon driver is affected by the same problem that prompted i915
to revert to less useful counter flipping at the end of the vblank interval. In
the long term, we can hopefully implement more reliable methods to achieve
counter flipping at the beginning of vblank, but otherwise this should be an
acceptable workaround.
2008-06-03 11:28:09 +02:00
Michel Dänzer
0144ebeb8a
vblank: Don't return current sequence number and time if interrupted by signal.
2008-06-03 11:28:09 +02:00
Michel Dänzer
6b520005c6
Revert "don't copy back if an error was returned."
...
This reverts commit 6671ad1917
.
The vblank ioctl needs to update the userspace parameters when interrupted by
a signal, which was prevented by this. Let's see if this breaks other ioctls...
2008-06-03 11:27:39 +02:00
Dave Airlie
d5ae19ebcf
drm: sg alloc should write back the handle to userspace
2008-06-03 12:44:06 +10:00
Dave Airlie
f1e12d40af
drm/ati_pcigart: use proper page mapping function
...
This should be pci_map_page not pci_map_single
2008-06-03 12:44:06 +10:00
Keith Packard
867c2bb461
[intel-gem] reloc_and_validate_object → object_bind_and_relocate
...
Just renaming this function and related parameters to match terminology used
elsewhere in the driver.
2008-06-02 12:37:10 -07:00
Keith Packard
1cb2940a25
[intel-gem] Propagate set_domain errors.
...
set_domain can block waiting for rendering to complete. If that process is
interrupted by a signal, it can return -EINTR. Catch this error in all
callers and correctly deal with the result.
2008-06-02 10:59:15 -07:00
Alan Hourihane
3ed17803d8
more checks for NULL encoder so we don't segfault.
2008-06-02 10:44:29 +01:00
Alan Hourihane
dc022084cd
Fix warnings
2008-06-02 10:03:28 +01:00
Dave Airlie
149b17311a
drm: initial mode object groups.
...
This creates a default group attached to the legacy drm minor nodes.
It covers all the objects in the set. make set resources only return
objects for this set. Need to fix up other functions to only work on
objects in their allowed set.
2008-06-02 16:45:44 +10:00
Dave Airlie
50d3e5bd02
drm/modesetting: redo object handles around a core object.
...
handle crtc/encoders/connectors/fb/mode/property/blob using this system.
2008-06-02 16:19:21 +10:00
Dave Airlie
c321bc4f92
drm: only report framebuffers available on this fd.
...
Not 100% sure this is a good idea, but I think I'd rather things
communicate with bo handles not fb ids.
2008-06-02 14:33:42 +10:00
Dave Airlie
4e7b246398
drm: add functions to get/set gamma ramps
2008-06-02 14:04:41 +10:00
Robert Noland
416754f1cc
[FreeBSD] Declare vblank_disable_fn callout MPSAFE.
2008-06-01 20:33:30 -07:00
Robert Noland
4ce47fd328
[FreeBSD] Get rid of vbl_lock and re-use irq_lock.
2008-06-01 20:33:30 -07:00
Dave Airlie
eba6cdc936
Merge branch 'modesetting-101-encoders' into modesetting-101
2008-06-02 12:58:10 +10:00
Dave Airlie
7fec6c0e2a
drm: fixup encoder picking in set_config stage
2008-06-02 12:57:09 +10:00
Dave Airlie
46c78a2223
drm/modesetting: add best encoder finding for modesetting
...
This asks the driver to suggest the best encoder for the connector
during the pick crtcs stage.
Need to also do this during mode setting stages
2008-06-02 11:44:35 +10:00
Dave Airlie
0dd000b578
drm/modesetting: move some connector functions to helper.
...
Migrated the output mode collection into the helper.
2008-06-02 11:12:28 +10:00
Dave Airlie
dba95ec343
drm: fixup some interfaces so test code works again
2008-06-02 10:41:12 +10:00
Dave Airlie
e439e74776
drm/modesetting: another re-org of some internals.
...
Move dpms into the helper functions.
Move crtc into the encoder.
Move disable unused functions into the helper.
2008-06-02 10:05:54 +10:00
Robert Noland
ac4da86928
[FreeBSD] Add symlink for radeon_microcode.h
2008-06-01 12:07:54 -07:00
Robert Noland
2186f9f6ef
[FreeBSD] Call drm_vblank_cleanup during irq uninstall
...
I needed to re-arrange some functions for this.
Also needed to call DRM_SPINUNINIT on the vbl_lock during cleanup.
2008-06-01 12:07:54 -07:00
Alex Deucher
a12cbf8aa5
RADEON: fix typo in last commit
2008-05-30 18:20:01 -04:00
Eric Anholt
461bfa3da6
Merge commit 'origin/master' into drm-gem
...
Conflicts:
linux-core/Makefile.kernel
shared-core/i915_drv.h
shared-core/nouveau_state.c
2008-05-30 14:42:08 -07:00
Eric Anholt
50bce2bc62
[intel-gem] Only update obj->write_domain if we're actually changing it.
...
The problem was revealed where on 965, the display list vertex buffer would see:
create -> (CPU, CPU)
set_domain (CPU, CPU) -> (CPU, CPU)
set_comain (CPU, 0) -> (CPU, 0) (no clflush occurred)
execbuf (GPU, 0) -> (CPU+GPU, 0) (still no clflush)
instead of:
create -> (CPU, CPU)
set_domain (CPU, CPU) -> (CPU, CPU)
set_comain (CPU, 0) -> (CPU, CPU)
execbuf (GPU, 0) -> (CPU+GPU, 0) (clflushed)
2008-05-30 13:47:34 -07:00
Eric Anholt
4f92ed3427
[intel-gem] Add an option to check GTT versus CPU coherency at execbuf time.
2008-05-30 12:42:48 -07:00
Kristian Høgsberg
efb48c6cf7
Fix ivch i2c read function to use the "special" i2c format.
2008-05-30 14:24:21 -04:00
Dave Airlie
6e8a2cff66
r500: attempt to make AGP work by programming agp base in the MC correctly
2008-05-30 20:27:31 +10:00
Dave Airlie
5d47185eb6
drm: switch possible crtc/clones over to encoders
2008-05-30 15:32:58 +10:00
Dave Airlie
30fc88fdf9
modesetting: drop crtcs/clones from the connectors
2008-05-30 15:18:07 +10:00
Dave Airlie
9d38448ed3
modesetting: the great renaming.
...
Okay we have crtc, encoder and connectors.
No more outputs exposed beyond driver internals
I've broken intel tv connector stuff.
Really for TV we should have one TV connector, with a sub property for the
type of signal been driven over it
2008-05-30 15:10:04 +10:00
Dave Airlie
6aeef92c0c
drm: attach an encoder.
...
Time to do some renaming on the connectors I think
2008-05-30 13:57:27 +10:00
Dave Airlie
1c4b25a2b1
drm: fix a couple of bugs in the encoder return to userspace
2008-05-30 13:49:39 +10:00
Dave Airlie
9239cf511f
drm: add encoder attach/detach
2008-05-30 13:31:16 +10:00
Dave Airlie
4403c59b76
tests: add basic encoder reading to test
2008-05-30 13:22:51 +10:00
Dave Airlie
514147e3f3
drm: add encoder free function
2008-05-30 12:29:45 +10:00
Dave Airlie
1542492b79
drm: init the encoder list/count
2008-05-30 12:24:30 +10:00
Dave Airlie
6b5592790d
drm: add red hat copyright.
2008-05-30 12:20:36 +10:00
Dave Airlie
b72419a8f7
drm: add encoder ids to the output handling
2008-05-30 12:19:13 +10:00
Dave Airlie
fae2c17b31
drm: add more encoder interfaces
2008-05-30 12:14:44 +10:00
Dave Airlie
16a8f824fa
libdrm: add encoder retrival
2008-05-30 12:10:01 +10:00
Dave Airlie
8ae82f3a2f
drm: add encoder / get encoder to the modesetting resources interface
2008-05-30 12:03:36 +10:00
Dave Airlie
6b970f193b
drm: remove unused init func from outputs
2008-05-30 11:48:41 +10:00
Dave Airlie
9654c776fd
drm/modesetting: add initial encoder structures and setup functions
2008-05-30 11:47:57 +10:00
Dave Airlie
98c5cf7f6f
modesetting: reorganise out crtc/outputs are allocated.
...
Use subclassing from the drivers to allocate the objects. This saves
two objects being allocated for each crtc/output and generally makes
exit paths cleaner.
2008-05-30 11:25:41 +10:00
Eric Anholt
3b1e4e6dc3
[intel-gem] Write the presumed_offset back out after updating it.
...
Otherwise, 965 constant state buffers get re-relocated every exec. Ouch.
2008-05-29 12:53:21 -07:00
Keith Packard
19ff3366e4
[intel-gem] Clean up active/inactive/flushing list debugging.
2008-05-28 23:56:31 -07:00
Dave Airlie
df8cd54286
modesetting: reorganise code into core and helper functions.
...
This splits a lot of the core modesetting code out into a file of
helper functions, that are only called from themselves and/or the driver.
The driver gets called into more often or can call these functions from itself
if it is a helper using driver.
I've broken framebuffer resize doing this but I didn't like the API for that
in any case.
2008-05-29 14:02:14 +10:00