Ian Romanick
ec9e494eb9
Gut support for pre-2.6 kernels.
2007-06-26 13:15:22 -07:00
Ian Romanick
434657a258
dos2unix and Lindent
2007-06-26 13:10:30 -07:00
Ian Romanick
7af9d67037
Initial XP10 code drop from XGI.
...
See attachment 10246 on https://bugs.freedesktop.org/show_bug.cgi?id=5921
2007-06-26 13:05:29 -07:00
Ben Skeggs
341bc78207
nouveau: NV1X/2X/3X PFIFO engtab functions
...
Earlier NV1X chips use the NV04 code, see previous commits about NV10 RAMFC
entry size.
2007-06-24 18:58:14 +10:00
Ben Skeggs
05d86d950a
nouveau: NV04 PFIFO engtab functions
2007-06-24 18:57:09 +10:00
Ben Skeggs
f2e64d5276
nouveau: NV4X PFIFO engtab functions
2007-06-24 18:56:01 +10:00
Jesse Barnes
7f2a1cf275
Merge branch 'vblank-rework' into vblank
2007-06-22 11:12:02 -07:00
Jesse Barnes
97dcd7fd25
more vblank rework
...
- use a timer for disabling vblank events to avoid enable/disable calls too
often
- make i915 work with pre-965 chips again (would like to structure this
better, but this hack works on my test system)
2007-06-22 11:06:51 -07:00
Michel Dänzer
d2d53024fb
Fix vblank wait condition.
...
Sync-to-vblank actually works again for me with radeon.
2007-06-22 11:45:23 +02:00
Michel Dänzer
2738bca6f5
Use drm_calloc instead of assigning 0.
2007-06-22 11:44:38 +02:00
David Woodhouse
638ebbab54
fix radeon setparam on 32/64 systems, harder.
...
Commit 9b01bd5b284bbf519b726b39f1352023cb5e9e69 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.
Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64. And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.
Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386. It would be a no-op with
compat_u64 anyway.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
2007-06-18 12:46:00 +10:00
Jesse Barnes
b6610363e3
First cut at radeon support for the vblank rework.
2007-06-15 11:21:57 -07:00
Michel Dänzer
3d5d41fa98
i915: Fix handling of breadcrumb counter wraparounds.
2007-06-15 17:13:11 +02:00
Michel Dänzer
0f5334be2b
Remove DRIVER_IRQ_VBL(2).
...
If the driver doesn't support vertical blank interrupts, it won't call
drm_vblank_init(), and dev->num_crtcs will be 0.
Also fix an off-by-one test against dev->num_crtcs.
2007-06-15 11:01:51 +02:00
Michel Dänzer
fbee089aca
Make vblank waitqueue per CRTC.
2007-06-15 10:50:22 +02:00
Thomas Hellstrom
84bea38353
Fix i915 sequence mask.
2007-06-15 10:35:52 +02:00
Thomas Hellstrom
3ee31a1f35
Indentation fixes.
2007-06-15 10:31:32 +02:00
Thomas Hellstrom
d34b2c7b9e
Fix refcounting / lock race.
...
Reported by Steve Wilkins / Michel Dnzer.
2007-06-15 10:26:51 +02:00
Thomas Hellstrom
e1b8eabeee
Locking fixes and instrumentation.
2007-06-15 10:26:51 +02:00
Michel Dänzer
82e2c3304d
Wake up vblank waitqueue in drm_handle_vblank().
2007-06-15 10:25:50 +02:00
Michel Dänzer
7f95a06c61
Return current sequence number to userspace after blocking wait for vblank.
2007-06-15 10:12:23 +02:00
Michel Dänzer
1000d88ddf
Fix memory leaks in vblank error paths.
...
Also use drm_calloc instead of drm_alloc and memset, and use the size of the
struct instead of the size of the pointer for allocation...
2007-06-15 10:10:33 +02:00
Jesse Barnes
b06268294a
Comment new vblank routines and fixup several issues:
...
- use correct refcount variable in get/put routines
- extract counter update from drm_vblank_get
- make signal handling callback per-crtc
- update interrupt handling logic, drivers should use drm_handle_vblank
- move wakeup and counter update logic to new drm_handle_vblank routine
- fixup usage of get/put in light of counter update extraction
- fix longstanding bug in signal code, update pending counter only
*after* we're sure we'll setup signal handling
2007-06-14 11:32:31 -07:00
Thomas Hellstrom
62082ab3e6
Make sure we read fence->signaled while spinlocked.
2007-06-13 15:38:59 +02:00
Thomas Hellstrom
5156f1c897
Fix fence object deref race.
2007-06-13 15:19:30 +02:00
Jesse Barnes
ca47fa90b7
Update vblank code:
...
- move pre/post modeset ioctl to core
- fixup i915 buffer swap
- fix outstanding signal count code
- create new core vblank init routine
- test (works with glxgears)
- simplify i915 interrupt handler
2007-06-12 13:35:41 -07:00
Jesse Barnes
db689c7b95
Initial checkin of vblank rework. Code attempts to reduce the number
...
of vblank interrupt in order to save power.
2007-06-12 10:44:21 -07:00
Thomas Hellstrom
f984b1b8d1
Fix some obvious bugs.
2007-06-12 12:30:33 +02:00
Thomas Hellstrom
b6b5df24b9
Try to make buffer object / fence object ioctl args 64-bit safe.
...
Introduce tile members for future tiled buffer support.
Allow user-space to explicitly define a fence-class.
Remove the implicit fence-class mechanism.
64-bit wide buffer object flag member.
2007-06-12 12:21:38 +02:00
Dave Airlie
280083d4a2
use krh's idr mods to remove lists from idr code
2007-06-10 15:40:21 +10:00
Dave Airlie
7426da7538
oops must fix this properly at some point
2007-06-07 18:45:00 +10:00
Dave Airlie
e22f428f5f
drm: fix radeon setparam alignment issues on 32/64-bit
2007-06-07 18:41:18 +10:00
Dave Airlie
abf35cbdcf
radeon: PCIGART memory is Can't map aperture as well there is one
...
on the CPU.... with this my indirect buffers at least start to live..
(cherry picked from commit 699cd9fc6c3794856f7e602088c77d0dfc11a122)
2007-06-07 15:37:03 +10:00
Dave Airlie
03ce98aa28
set start to gart_vm_start at least
2007-06-05 18:23:24 +10:00
Dave Airlie
96705ce664
add wbinvd calls
2007-06-05 18:23:05 +10:00
Dave Airlie
5bd0ca125e
remove include of linux ioctl32.h from drm drivers
2007-06-05 18:16:44 +10:00
Dave Airlie
4294dcc050
complete PCIE backend for ttm
...
ttm test runs with it at least, needs to do more testing on it
2007-06-05 12:26:06 +10:00
Dave Airlie
234a906200
WIP cleanup
2007-06-05 10:47:42 +10:00
Dave Airlie
77b9d9d16b
cleanup pcigart ttm for new backend layout
2007-06-05 10:35:41 +10:00
Dave Airlie
07345af838
Merge branch 'origin' into radeon-ttm
...
Conflicts:
shared-core/radeon_drv.h
2007-06-05 10:09:11 +10:00
root
a4cddc6596
Revert "drm: add new drm_wait_on function to replace macro"
...
This reverts commit 6e860d08d0
.
As I said not a good plan - this macro will have to stay for now,
trying to do the vbl code with the inline was a bit messy - may need specialised
drm wait on functions
2007-06-03 18:12:28 +10:00
Dave Airlie
4e9d215bdf
radeon: add support for vblank on crtc2
...
This add support for CRTC2 vblank on radeon similiar to the i915 support
2007-06-03 16:28:21 +10:00
Dave Airlie
638c8087de
drm: fixup initialisation of list heads and idr
2007-06-01 19:00:24 +10:00
David Airlie
704ca06389
WIP more code for radeon
2007-06-01 18:12:45 +10:00
Dave Airlie
056c2f249a
drm: move context handling code to use linux idr
2007-05-27 08:44:38 +10:00
Dave Airlie
f64674743a
drm: convert drawable handling to use Linux idr
...
This cleans this code up a lot and uses the generic Linux idr which is
designed for this.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-27 07:26:52 +10:00
Michel Dänzer
8e083c522e
drm: make sure the drawable code doesn't call malloc(0).
...
Signed-off-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:35:54 +10:00
Dave Airlie
58b2ed7832
Revert "drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls."
...
This reverts commit 3fdef0dc20
.
ditto not on master yet
2007-05-26 03:48:08 +10:00
Dave Airlie
375f3f2884
Revert "drm/ttm: cleanup most of fence ioctl split out"
...
This reverts commit 3dfc1400e9
.
this shouldn't have gone on master yet
2007-05-26 03:47:48 +10:00
Dave Airlie
ce58e53a01
whitespace fixups from kernel
2007-05-26 03:32:34 +10:00
Dave Airlie
adee6f52e6
ati_pcigart: cut to 80 chars
2007-05-26 03:32:34 +10:00
Dave Airlie
3dfc1400e9
drm/ttm: cleanup most of fence ioctl split out
2007-05-26 03:32:34 +10:00
Dave Airlie
3fdef0dc20
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-26 03:32:34 +10:00
Dave Airlie
7b48f0022a
drm: cleanup use of Linux list handling macros
...
This makes the drms use of the list handling macros a lot cleaner
and more along the lines of how they should be used.
2007-05-26 04:26:24 +10:00
Jesse Barnes
fa92e1f2ec
Suspend/resume shouldn't call drm_initial_config (seems to work ok for me now),
...
also we should fail if we can't enable the device at resume time.
2007-05-24 18:41:44 -07:00
Jesse Barnes
462d5a0dfc
Suspend/resume support (incomplete).
2007-05-22 17:49:04 -07:00
Jesse Barnes
e918d2b781
Call preallocated space VRAM instead of PRIV0 to be more consistent with
...
other drivers.
2007-05-22 13:38:58 -07:00
Jesse Barnes
a4929b921e
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
linux-core/drm_crtc.c - reconcile with locking changes
2007-05-18 09:42:51 -07:00
Jesse Barnes
f894587221
Add locking. The main lock is dev->mode_config.config_lock. It should be
...
held across any operations that modify mode lists, crtc config, output
config, etc. It should be taken at high level entry points (currently just
initial config and user IOCTL).
Seems to work ok on my system, but needs more testing (with lockdep) and
review from some fresh eyes.
2007-05-18 09:40:01 -07:00
Alan Hourihane
d42c1de3fb
Change some printk's to DRM_DEBUG's
2007-05-18 14:16:27 +01:00
Alan Hourihane
0c33a2cd2e
Move fbo creation to the specified fb driver which gives
...
it a chance to allocate the memory from whichever buffer it wants to.
2007-05-18 14:16:10 +01:00
Alan Hourihane
315cf14af8
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101
...
Conflicts:
shared-core/i915_dma.c
2007-05-18 13:48:56 +01:00
Alan Hourihane
95945bbf22
Set crtcinfo on temporary mode
2007-05-17 23:33:48 +01:00
Jesse Barnes
f3beabedc3
Remove unused edid.h header from X.Org.
2007-05-17 13:48:46 -07:00
Alan Hourihane
c0479dad8e
bring in change from drm_fb.c
2007-05-17 19:32:46 +01:00
Alan Hourihane
07a5fbaa61
Move destruction of crtc as intelfb_remove uses the crtc to locate the fb.
2007-05-17 19:28:03 +01:00
Jesse Barnes
b7bf317f42
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
linux-core/drm_crtc.c
linux-core/drm_fb.c
Lots of changes to merge with alanh's latest stuff:
o fix use of fb->pitch now that it has the right value
o add new helper for finding the CRTC given an FB
o fix new fb_probe/fb_remove functions to take a CRTC
o fixup callers of new FB routines
o port drm_fb changes to intel_fb
o check for errors after creating fb buffer object
o go back to using cfb_imageblit since the accel stubs aren't ready
2007-05-17 10:35:07 -07:00
Alan Hourihane
fd63ea9713
Grab the default mode if the preferred mode isn't available.
...
Fix an overflow problem.
2007-05-17 17:00:11 +01:00
Jesse Barnes
a18b4befb9
Fix FB pitch value (we had it wrong and were working around it in a few
...
places).
Add new FB hooks to the drm driver structure and make i915 use them for an
Intel specific FB driver. This will allow acceleration and better handling
of the command stream.
2007-05-17 09:00:06 -07:00
Stephane Marchesin
ea98d7e796
nouveau: don't build the module by default
2007-05-17 17:35:51 +02:00
Alan Hourihane
2222bd767f
Fix build problem
2007-05-17 13:19:56 +01:00
root
5ce8aaae72
Large changes for fbdev support.
...
Change from DIRECTCOLOR to TRUECOLOR, and enable
support for PSEUDOCOLOR. DIRECTCOLOR support needs more work.
Add the ability to change the mode on the fbdev device.
Support depth 8, 15, 16 and 24 (and 32).
Add a /dev/fbX device per CRTC, but there's some code which
doesn't allocate the fbX device unless the output is actually
enabled. Read the code on this as it impacts the fbcon map flags.
Pick CRTC's based on the available outputs. More work could
be done here to match modes, so cloning could be achieved on
outputs. This fits more inline with what the X code does.
2007-05-17 12:46:36 +01:00
Alan Hourihane
eba00df120
Just some minor cleanups.
2007-05-10 13:16:05 +01:00
Dave Airlie
b2a875ba89
ttm: complete drm buffer object ioctl split
...
retain the op operation for validate/fence operations
2007-05-08 18:25:15 +10:00
Dave Airlie
ae677472af
drm/ttm: remove old fence ioctl
2007-05-08 17:55:57 +10:00
Dave Airlie
25c51f539f
drm/ttm: ioctl cleanup for buffer object - user side only
...
This just cleans up the xf86drm.c to what I want and drm.h,
I need to fix up the kernel internals to suit these changes now.
I've moved to using struct instead of typedefs for the bo and it doesn't look
that bad so I'll do the same thing for mm and fence..
2007-05-08 17:53:58 +10:00
Brian
c4e2caec44
s/OJBECTS/OBJECTS/
2007-05-06 10:09:59 -06:00
Dave Airlie
6a62941eca
drm/ttm: cleanup most of fence ioctl split out
2007-05-06 11:35:11 +10:00
Dave Airlie
ee8954cb53
drm/ttm: cleanup mm_ioctl ioctls to be separate ioctls.
...
This is the first bunch of ioctls
2007-05-06 11:17:30 +10:00
Dave Airlie
c9cd2c768b
drm: remove unused define DRM_HAS_TTM
2007-05-06 10:50:10 +10:00
Dave Airlie
3a69e2484a
cleanup usermodes on drm mode setting shutdown
2007-05-01 14:20:22 +10:00
Dave Airlie
89231953d1
Add support for user defined modes
...
This allows userspace to specify modes and add them to the modesetting
system and attach modes to outputs
2007-05-01 13:16:29 +10:00
Dave Airlie
8e8e37515e
fix unusued variable
2007-05-01 13:15:41 +10:00
Dave Airlie
6e860d08d0
drm: add new drm_wait_on function to replace macro
2007-04-28 15:07:43 +10:00
Dave Airlie
e9b3acd257
remove register usage
2007-04-28 15:07:43 +10:00
Dave Airlie
9f9c19065c
remove DRM_GETSAREA and replace with drm_getsarea function
2007-04-28 15:07:43 +10:00
George Sapountzis
3a2c9f4621
linux: minor indent.
2007-04-26 14:16:28 +03:00
Dave Airlie
afc029e935
whitespace cleanup
2007-04-26 16:25:43 +10:00
Dave Airlie
e5c1f1caa2
remove some whitespace violation
2007-04-26 16:22:28 +10:00
Dave Airlie
4b72759b30
drm: nopfn warning on 64-bit
2007-04-26 16:22:11 +10:00
Jesse Barnes
71d44cda52
drm/ttm: allow drm_buffer_object_create to be used in-kernel
2007-04-26 16:09:24 +10:00
Jesse Barnes
3c384a9ad5
Add new buffer object type for kernel allocations that don't initially have a user mapping.
...
(cherry picked from commit 2e21779992
)
2007-04-26 16:04:09 +10:00
Dave Airlie
b589b846e7
Merge branch 'origin' into modesetting-101
2007-04-26 15:56:21 +10:00
Dave Airlie
34be91fe4e
i915: fix vblank pipe setup
2007-04-26 14:50:00 +10:00
Dave Airlie
ceb44021ad
drm: make mode numbers no change by comparing probed modes
...
The mode list sets all the output modes to UNVERIFIED, then probes a new list,
If a mode is on the new list and not on the old, it adds it to the old,
if a mode is on the new list and old, it just updates the status to the new
mode status.
If a mode is on the old list and not on the new, prune invalid modes should
remove all UNVERIFIED modes
2007-04-23 11:42:29 +10:00
Dave Airlie
0f3c5148f0
fixup vrefresh reporting, it should now be *1000 in userspace
2007-04-23 09:10:46 +10:00
Jesse Barnes
97b5599982
Oops, edid data should just be a char *, as edid.h is private to edid.c
...
(we can just recombine them now).
2007-04-20 18:00:44 -07:00
Jesse Barnes
eb892fb09d
Add a monitor information structure separate from the EDID data for tracking
...
monitor limits, etc.
2007-04-20 17:59:30 -07:00
Jesse Barnes
a21ff375c6
Document drm_modes.c functions.
2007-04-20 17:03:50 -07:00
Jesse Barnes
9ca4932054
Add a mode name generation wrapper to make name format changes easier.
2007-04-20 16:32:58 -07:00
Kristian Høgsberg
2d1de1fc6b
Initialize rwlock using rwlock_init to appease lockdep validator.
2007-04-20 18:12:18 -04:00
Kristian Høgsberg
af3ffcd822
Initialize rwlock using rwlock_init to appease lockdep validator.
2007-04-20 18:06:31 -04:00
Kristian Høgsberg
6238ebee21
Clean up and return if no outputs are found.
2007-04-20 16:52:04 -04:00
Thomas Hellstrom
a8a8108e45
Avoid a fence timeout problem when a signal is pending.
2007-04-20 15:57:41 +02:00
Thomas Hellstrom
1ce9c09231
Fix via compile error
...
(Reported by Benno Schulenberg.)
2007-04-20 15:49:31 +02:00
Dave Airlie
8d893e49ec
backout SDVO control bus check and comment why this is a bad idea
2007-04-19 09:43:46 +10:00
Jesse Barnes
5587961cfe
Document main drm_crtc.c functions, and rename drm_crtc_mode_create to
...
drm_mode_create to be consistent with the other functions. Also document
where we need locking fixes and what the locks are for.
2007-04-18 11:49:42 -07:00
Thomas Hellstrom
2df2c70e20
Simplify the ttm backend interface and the agp ttm backend.
2007-04-18 16:33:28 +02:00
Alan Hourihane
dfc02547ff
Shouldn't free the mode here. It's done later on.
2007-04-18 14:18:56 +01:00
Alan Hourihane
b642ced083
Fix return status
2007-04-18 13:52:46 +01:00
Alan Hourihane
0207b51acc
Fix build problem
2007-04-18 12:19:16 +01:00
Alan Hourihane
87b46bd436
free the duplicated mode.
2007-04-18 12:10:06 +01:00
Alan Hourihane
191594ebd5
When no valid EDID modes are available, we bail.
...
This snippet adds a standard 640x480 @ 60Hz mode when
that occurs, so we can continue with a basic mode.
Should we do this here though ???
2007-04-18 12:07:55 +01:00
Alan Hourihane
ef2bce3a16
Merge remote branch 'origin/modesetting-101' into modesetting-101
2007-04-18 11:55:09 +01:00
Alan Hourihane
51e867c578
Support the RGB outputs of SDVO cards, which are essentially
...
VGA outs.
The drm_initial_config path has specific handling code to name
match for VGA, TMDS or LVDS. This is pretty restrictive and should
probably be dealt with to be more generic.
2007-04-18 11:53:25 +01:00
Alan Hourihane
ea8bcb466b
Check status after SDVO command for sdvo_set_control_bus_switch
2007-04-18 11:47:21 +01:00
Alan Hourihane
dc03e07f23
Move SDVO PENDING check to read_response so all SDVO commands
...
benefit from the spin loop.
2007-04-18 11:46:04 +01:00
Dave Airlie
20b2949e37
make sure TMDS gets a crtc
2007-04-18 14:55:43 +10:00
Dave Airlie
e46e028bd2
Merge branch 'origin' into modesetting-101
...
Conflicts:
linux-core/drm_bo.c
Merge in changes from master from Thomas fixiing TTM problems
2007-04-18 14:11:49 +10:00
Jesse Barnes
c71c44bb92
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
2007-04-17 18:20:05 -07:00
Jesse Barnes
4f0841a31c
Just use drm_output_destroy to cleanup LVDS failures. It'll call our cleanup
...
routine, which will take care of freeing our dev_priv and i2c ddc bus.
2007-04-17 18:03:14 -07:00
Dave Airlie
d20aaf4858
don't crash if no desired mode
2007-04-18 10:41:39 +10:00
Dave Airlie
2352ec9bfa
backout alanh's broken commit
2007-04-18 10:39:58 +10:00
David Airlie
7c9e19ba55
clean up ring buffer and TTM in i915_driver_unload
...
I've commented out the framebuffer for now
2007-04-18 10:39:27 +10:00
Jesse Barnes
73b031df61
Add framebuffer bo freeing to drm_mode_config_cleanup (seems like the best
...
place for now).
2007-04-17 17:30:46 -07:00
Jakob Bornecrantz
a45fa264f2
Lvds now power up backlight on commit
...
Now saves previous power level in prepare and sets
that power level in commit, should power level
be 0 it will set maximum level.
2007-04-17 22:27:46 +02:00
Jesse Barnes
1c7f895fa6
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
shared-core/i915_init.c - reconcile with airlied's new code
2007-04-17 10:14:18 -07:00
Jesse Barnes
4e4d9cbeb3
Move initial framebuffer allocation and configuration to drm_initial_config,
...
remove i915_driver_load fb related stuff. Add a small helper for setting up
outputs.
2007-04-17 10:00:37 -07:00
Jesse Barnes
5e6c345396
Add prototypes for drm_bo_init_mm and drm_buffer_object_create for use by
...
in-kernel code.
2007-04-17 09:57:08 -07:00
Alan Hourihane
b729b919ba
Fix a register read that was swapped SDVOB/SDVOC
...
Check for the PENDING message when reading the attached
displays. Ensures the command has completed before continuing.
(probably need to check PENDING in other SDVO calls too)
2007-04-17 16:11:00 +01:00
Alan Hourihane
ecd9801c3c
Fix SDVO outputs
2007-04-17 16:09:40 +01:00
Thomas Hellstrom
5a96d59ce9
Don't always free up memory space when we unpin buffers.
2007-04-17 14:15:37 +02:00
Thomas Hellstrom
5432cc4abf
Fix buffer object reference problems.
...
(Reported by Dave Airlie).
2007-04-17 10:53:19 +02:00
Dave Airlie
1a5e647f63
I don't think this dec is necessary and my stuff all works without ..
...
with it everything falls over
2007-04-17 18:18:42 +10:00
Dave Airlie
56ef1ab8ac
add some missing export symbols
2007-04-17 18:18:25 +10:00
Dave Airlie
79aa1d5474
another large overhaul of interactions with userspace...
...
We need to keep a list of user created fbs to nuke on master exit.
We also need to use the bo properly.
2007-04-17 18:16:38 +10:00
Thomas Hellstrom
e91ceff6c9
Add a code comment.
2007-04-17 08:46:45 +02:00
Jakob Bornecrantz
cd5769c3b5
Fix offset should from pci device address
2007-04-16 20:54:24 +02:00
Thomas Hellstrom
e6e4946c82
Require the hardware lock for buffer creation
...
(since that implies a validate).
Fix drm_bo_wait_unfenced error messages and codes.
Fix some return codes from libdrm.
2007-04-16 16:23:05 +02:00
Jesse Barnes
2aa183db1f
Use drm_mem_reg_ioremap to map buffer object.
2007-04-14 15:35:38 -07:00
Jesse Barnes
65619cab27
Fix PRIV0 memory initialization (mm_init takes pages, not bytes), align fb
...
allocation correctly, and use drm_mem_reg_iomap to map ring buffer object.
2007-04-14 15:35:21 -07:00
Jakob Bornecrantz
c4e944182d
Added debug messages so we know which output we are dealing with
2007-04-13 10:13:25 +02:00
David Airlie
cc471a361f
i915/drm: clean up a lot of the i915/drm startup/teardown sequences
...
When the kernel driver is loaded it sets up a lot of stuff..
it tears down the same stuff on unload.
This add a new map type called DRM_DRIVER which means the driver will clean the mapping up
and fix up the map cleaner
2007-04-13 14:51:16 +10:00
David Airlie
27598bacfd
export drm_bo_driver_finish symbol
2007-04-13 14:50:31 +10:00
David Airlie
a890d596fc
revert LVDS destroy - this oops on sysfs on sdvo init of i2c bus
2007-04-13 14:50:31 +10:00
Jesse Barnes
9f0f6509f5
Move driver load call to after AGP init, in case the load routine needs AGP stuff.
2007-04-12 18:30:36 -07:00
Jesse Barnes
79b7a588bb
Oops, forgot to push the msleep() in the hotplug test. Wouldn't want to
...
spin in the kernel for a whole second w/o it...
2007-04-12 14:57:07 -07:00
Jesse Barnes
9a39cb9b9a
Use crtc_from_pipe call in intel_lvds.c and add get_mode panel mode detection. Also fix up error case for when LVDS mode can't be determined. Leave placeholder code in place for BIOS mode probing and platform quirks.
2007-04-12 12:43:47 -07:00
Jesse Barnes
6b229c1e59
Add new function for getting a CRTC pointer given a pipe number.
2007-04-12 12:41:56 -07:00
Jesse Barnes
9e5d61d5b8
Fix 945+ hotplug detection, remove some unused variables.
2007-04-12 12:40:51 -07:00
Jesse Barnes
fb3c82f1d8
Don't need a NULL check prior to calling kfree.
2007-04-12 11:50:57 -07:00
Jesse Barnes
c2fce380c2
Move i2c init back to where it belongs and add i2c unregistration in *_destroy.
2007-04-12 08:57:58 -07:00
Jesse Barnes
258e1cf703
Whitespace cleanup
2007-04-12 08:56:34 -07:00
Jesse Barnes
e7b97f5523
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
2007-04-12 08:55:51 -07:00
Jesse Barnes
f2e3d790ac
Revert "Export drm_setup for use by new driver init code.", we don't really want to use this function
...
This reverts commit e114b981bc
.
2007-04-12 08:53:03 -07:00
Alan Hourihane
cf01689143
Use drm_framebuffer instead of drm_crtc for fb & fbt
2007-04-12 15:12:00 +01:00
Alan Hourihane
a85440c8a6
Remove extraneous drm_crtc.h include
2007-04-12 15:11:38 +01:00
Alan Hourihane
9420ab4b41
Merge remote branch 'origin/modesetting-101' into modesetting-101
2007-04-12 15:10:08 +01:00
Dave Airlie
1bba3cb3b3
cleanup framebuffers on drm unload
2007-04-12 11:55:10 +10:00
Dave Airlie
fb6c5aacb9
only initialise modes when fbcon or fbset asks for it
2007-04-12 11:54:49 +10:00
Dave Airlie
b49b3ba4c1
set bracing style like Linux
2007-04-12 11:43:13 +10:00
Dave Airlie
a5cf4cc369
fix unbalanced lock and make sure mode list has modes so lvds code doesn't crash
2007-04-12 11:28:55 +10:00
Dave Airlie
981f8156de
allow framebuffer changes on the crtc setup
2007-04-12 08:54:31 +10:00
Dave Airlie
a81558d8b3
add getfb ioctl
2007-04-12 08:45:40 +10:00
Jesse Barnes
2e21779992
Add new buffer object type for kernel allocations that don't initially have a user mapping.
2007-04-11 12:51:52 -07:00
Jesse Barnes
63d4d40463
Fix i2c unregistration, cleanup panel_fixed_mode assignment.
2007-04-11 11:46:37 -07:00
Jesse Barnes
425da42e95
Whitespace cleanups.
2007-04-11 11:44:54 -07:00
Jesse Barnes
c731b68091
Fix EDID pixel clock calculation.
2007-04-11 11:42:00 -07:00
Jesse Barnes
cc7faa4de8
fix modeset cleanup for LVDS and reenable it in i915.
2007-04-11 07:21:24 -07:00
Jesse Barnes
dd00aa5851
export vblank routine for use by intel_display.c and intel_sdvo.c.
2007-04-11 07:08:48 -07:00
Jesse Barnes
f35db66906
Fixup DDC probing. We only have one DDC bus so we have to use it only
...
on demand, and unregister when we're done.
2007-04-11 07:08:29 -07:00
Jesse Barnes
78598fdaa8
Various changes for in-kernel modesetting:
...
- allow drm_buffer_object_create to be called w/o dev_mapping
- fixup i915 init code to allocate memory, fb and set modes right
- pass fb to drm_initial_config for setup
- change some debug output to make it easier to spot
- fixup lvds code to use DDC probing correctly
2007-04-11 07:07:54 -07:00
David Airlie
7e48d47fb5
line_length calculation was incorrect.. I now can get fbcon to run
2007-04-11 17:35:00 +10:00
David Airlie
0392badd84
oops for 32 pitch.. hey I can see stuff on fbcon now.. it looks like text.. just a bit garbled
2007-04-11 17:25:37 +10:00
David Airlie
1147fefed8
fixup framebuffer depth
2007-04-11 17:13:57 +10:00
David Airlie
a6cc6a778f
add support for setting a framebuffer depth
2007-04-11 17:13:45 +10:00
Dave Airlie
c582eaac19
add copyright statement
2007-04-11 16:34:40 +10:00
Dave Airlie
32f6a58db2
add initial drm_fb framebuffer
...
So far I can load fbcon, once I use my miniglx to add a framebuffer.
fbcon doesn't show anything on screen but baby steps and all that.
2007-04-11 16:33:03 +10:00
Dave Airlie
9d12da5917
only bo finish at driver unload
2007-04-11 14:34:22 +10:00
root
7e58276c76
Revert "Remove some delays from Intel i2c code, we'll need a more comprehensive fix"
...
This reverts commit c033698988
.
this break SDVO
2007-04-11 13:40:50 +10:00
David Airlie
44be9c9d59
add an fb count + id get to the get resources code path
2007-04-11 13:26:21 +10:00
David Airlie
3e994a56be
use fb pitch and fix up some whitespace
2007-04-11 13:26:21 +10:00
Jesse Barnes
f50eec752c
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
2007-04-10 17:58:30 -07:00
David Airlie
b62ffb8e91
fixup calculation to make sdvo work
2007-04-11 09:56:09 +10:00
Jesse Barnes
44a8761302
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into origin/modesetting-101
...
Conflicts:
linux-core/drm_crtc.c - trivial merge
linux-core/drm_crtc.h - trivial merge
linux-core/intel_display.c - crtc_config -> mode_config
shared-core/i915_dma.c - accommodate new init code in i915_init.c
2007-04-10 10:45:55 -07:00
Jesse Barnes
e114b981bc
Export drm_setup for use by new driver init code.
2007-04-10 10:31:58 -07:00
Jesse Barnes
b59285d738
Move i915 init code to new file, i915_init.c, and create a new high level
...
init routine that runs at driver load time.
2007-04-10 10:31:10 -07:00
Jesse Barnes
8785679f89
Remove some debug #if 0 codes and add a reminder to check locking around
...
output enumeration stuff.
2007-04-10 09:49:02 -07:00
Jesse Barnes
c033698988
Remove some delays from Intel i2c code, we'll need a more comprehensive fix
...
in the Linux i2c layer to make DDC reliable on old monitors.
2007-04-10 09:48:20 -07:00
Jesse Barnes
183cbd92dd
Finish bringing in LVDS code, re-add to Makefile. Needed other changes too:
...
- move EDID structures to drm_edid.h
- add EDID info structure to drm_output
- add a few routines to intel_display for getting current mode info
- add some prototypes to intel_drv.h and drm_crtc.h
2007-04-10 09:47:37 -07:00
David Airlie
50672adb31
add sdvo debugging output
2007-04-10 16:49:36 +10:00
David Airlie
b9c7fa55e2
fixup sarea writes for set pipe base and dpms
2007-04-10 16:32:17 +10:00
David Airlie
23a66fd506
fixup true/false in intel_sdvo.c
2007-04-10 16:26:07 +10:00
David Airlie
f1476e4e5c
re-tab and fixup the i915GM get core clock function to actually work
2007-04-10 16:25:52 +10:00
David Airlie
1e39dc4323
export output name to userspace
2007-04-10 16:25:31 +10:00
David Airlie
40bd6dcd86
set the base address of the CRTC correctly
2007-04-10 15:20:50 +10:00
David Airlie
65f465ed5a
fixup numerous issues with adding framebuffer support
...
This still isn't perfect but it fixes a few oopses and cleans up
some of the tabs and bugs in the original fb limit code
2007-04-10 14:49:49 +10:00
Jesse Barnes
c446bf50e3
Slam in most of X.Org's i830_lvds (not quite done yet so removed from Makefile.kernel too).
2007-04-09 20:46:38 -07:00
David Airlie
eb9bdc2787
mode: fixup problems with framebuffer add function
2007-04-10 11:51:31 +10:00
Dave Airlie
ed0ebd9d3d
make crtc_config be named mode_config
...
X.org calls this crtc_config but this is a bad name and will confuse ppl later
(and me now :-)
2007-04-10 18:56:02 +10:00
Jakob Bornecrantz
b50bda002b
add addfb/rmfb ioctls
...
Originally from Jakob, cleaned up by airlied.
2007-04-10 18:44:47 +10:00
Jesse Barnes
7e2b1a6cf5
Fix refresh calculation (mistakenly removed 1000 factor needed for integer calulations, fixed mode printout debugging routine instead).
2007-04-09 08:52:53 -07:00
Dave Airlie
a70f8e0ab2
radeon: add support for reverse engineered xpress200m
...
The IGPGART setup code was traced using mmio-trace on fglrx by myself
and Phillip Ezolt <phillipezolt@gmail.com> on dri-devel.
This code doesn't let the 3D driver work properly as the card has no
vertex shader support.
Thanks to Matthew Garrett + Ubuntu for providing me some hardware to do this
work on.
2007-04-09 21:52:59 +10:00
Jesse Barnes
ab7ee9c1af
remove a printk to make things less verbose
2007-04-07 19:26:55 -07:00
Jesse Barnes
2430d0c315
just codingstyle cleanups
2007-04-07 19:25:25 -07:00
Jesse Barnes
491ed9e4c2
document drm_mode_duplicate and fix vrefresh calculation (off by 1000 error)
2007-04-07 19:24:53 -07:00
Jesse Barnes
13d4ea90c0
various cleanups to EDID code:
...
- pull in FB DDC code (we'll have to rewrite it anyway it appears)
- add comments
- note a few FIXMEs
- make it less quiet, and more informative when it actually does print
2007-04-07 19:24:09 -07:00
Jesse Barnes
a35ba455b2
make drmP.h include drm_crtc.h for CRTC related stuff.
...
fixup drm_crtc.c so it matches VGA and other outputs properly.
make drm_crtc.c less verbose.
add function declarations in drm_crtc.h for other files.
2007-04-07 19:22:39 -07:00
Dave Airlie
b25558bb73
fixup install target, not sure what I was smokin...
2007-04-07 07:21:05 +10:00
Eric Anholt
1c9ba24c2f
Add required permission notices for code copied from X.Org source.
2007-04-05 11:34:11 -07:00
Jesse Barnes
50ee722e01
Merge branch 'modesetting-101' of git+ssh://git.freedesktop.org/git/mesa/drm into modesetting-101
2007-04-05 09:27:12 -07:00
Jesse Barnes
6f3534a13a
Add copyrights before I forget
2007-04-05 09:21:31 -07:00
Dave Airlie
652bbb77f6
add back compat for bool
2007-04-05 20:20:33 +10:00
Dave Airlie
b4094864f1
checkpoint commit: implement SetCrtc so modes can in theory be set from user
...
This hooks up the userspace mode set it "seems" to work.
2007-04-05 18:01:02 +10:00
Dave Airlie
7bb112feca
checkpoint commit: added getresources, crtc and output
...
This adds the user interfaces from Jakob and hooks them up for 3 ioctls
GetResources, GetCrtc and GetOutput.
I've made the ids for everything fbs, crtcs, outputs and modes go via idr as
per krh's suggestion on irc as it make the code nice and consistent.
2007-04-05 17:06:42 +10:00
Dave Airlie
5bffbd6e27
initial userspace interface to get modes
2007-04-05 13:34:50 +10:00
Dave Airlie
52f9028c84
Initial import of modesetting for intel driver in DRM
2007-04-05 11:21:06 +10:00
Dave Airlie
8fe8793a0f
borrow edid.h from fb directory
2007-04-05 11:20:23 +10:00
Dave Airlie
9c79371659
add an install target to the drm modules makefile
2007-04-05 11:18:00 +10:00
Dave Airlie
29ac7b1fe3
radeon: add setup for PCIE GART ttm
2007-04-03 21:20:00 +10:00
Dave Airlie
e835820e23
add initial PCIE GART framework for TTM
2007-04-03 19:04:48 +10:00
Thomas Hellstrom
c496827921
Fix user object reference when caller is not object creator.
...
(Reported by Dave Airlie).
2007-04-03 10:54:23 +02:00
Thomas Hellstrom
38d18acb8f
Add a fence flush event to each fence-signaled check when lazy-waiting
...
to make sure we don't lose any sequence numbers if, for some reason,
they don't generate an IRQ.
2007-04-03 10:29:15 +02:00
Thomas Hellstrom
7743af9449
Evicted no-move buffers can get lost if they end up in another
...
memory type than local.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom
d85e243259
Fix an oops when trying to clean a not yet initialized memory type.
2007-04-03 10:29:14 +02:00
Thomas Hellstrom
72d457fc19
Make sure CMA (Can't map aperture) pages are mapped uncached.
...
(Should really make this write-combined using PATs, at some point).
2007-04-03 10:29:14 +02:00
Dave Airlie
b1f0b2d960
radeon: de-static irq function, fixup fence/buffer
2007-04-01 18:24:23 +10:00
Dave Airlie
be5bf1346e
copy over some files and reorg radeon to add ttm fencing not working yet
2007-04-01 16:48:38 +10:00
Dave Airlie
3f70518f0b
drm/bo: avoid oops if the memory manager for this type isn't initialised
2007-03-29 09:25:04 +10:00
Dave Airlie
81b811da37
drm/i915: set the bo up at firstopen time not after DMA init
...
This is required to use TTM to allocate the ring buffer.
2007-03-27 18:01:31 +10:00
Dave Airlie
72a1190f6d
drm/ttm: make sure dev_mapping is set-up for the first opener of the drm
...
This was causing an oops in my miniglx code to try and use a TTM-only setup.
2007-03-27 17:59:30 +10:00
Ben Skeggs
674cefd4fe
nouveau: move card initialisation into the drm
...
The PGRAPH init for the various cards will need cleaning up at some point,
a lot of the values written there are per-context state left over from the
all the hardcoding done in the ddx.
It's possible some cards get broken by this commit, let me know.
Tested on: NV5, NV18, NV28, NV35, NV40, NV4E
2007-03-26 20:59:37 +10:00
Dave Airlie
5ad43f4675
vm: cleanup drm_vm.c along lines of cleanups queued for kernel
2007-03-24 17:58:27 +11:00
Dave Airlie
8d918b0b63
cleanup more whitespace from ttm merge
2007-03-23 14:56:39 +11:00
Dave Airlie
39795501a8
drm: remove second spinlock init for tasklet lock
2007-03-23 14:56:28 +11:00
Dave Airlie
209870a882
rename badly named define
2007-03-20 10:13:58 +11:00
Alan Hourihane
ef71b6230b
remove i830 reference
2007-03-19 11:46:35 +00:00
Alan Hourihane
cbe31d0dc7
Remove old i830 kernel driver.
2007-03-19 11:46:35 +00:00
Dave Airlie
1e77e52755
more return values fixup
2007-03-19 09:20:04 +11:00
Dave Airlie
46fac17082
fixup return values in drm ioctl
2007-03-19 09:12:08 +11:00
Dave Airlie
c991f8e049
cleanup ioctl expansion code
2007-03-19 08:46:39 +11:00
Dave Airlie
a2e3bae8e2
oops missing else
2007-03-19 08:46:25 +11:00
Dave Airlie
bbb6fc9307
make drm fops const from kernel
2007-03-19 08:36:01 +11:00
Dave Airlie
483f6a113d
use ARRAY_SIZE
2007-03-19 08:32:25 +11:00
Dave Airlie
2d7ecb8422
more tab/space conversion
2007-03-19 08:29:07 +11:00
Dave Airlie
2463b03cb4
whitespace cleanup pending a kernel merge
2007-03-19 08:23:43 +11:00
Dave Airlie
6c4428d40c
clean up more of inline functions agp_remap/drm_lookup_map
2007-03-19 08:09:21 +11:00
Dave Airlie
27197d7836
deinline agp_remap along lines of kernel
2007-03-18 21:45:07 +11:00
Dave Airlie
c4808e206b
remove drm_lookup_map unused now
2007-03-18 21:42:48 +11:00
Maarten Maathuis
6a60b47d12
replace instance of SA_SHIRQ with IRQF_SHARED
...
backwards compat added by airlied
2007-03-11 12:13:58 +11:00
Dave Airlie
c9178c3d01
ati: make pcigart code able to handle variable size PCI GART aperture
...
This code doesn't enable a variable aperture it just modifies the codebase
to allow me fix it up later
2007-03-04 18:16:29 +11:00
Jay Estabrook
6a51da7325
Fix Alpha domain/bus issue
2007-02-27 08:56:20 +00:00
Thomas Hellstrom
80468e7532
Fix build for 2.6.21-rc1.
...
The vm subsystem of 2.6.21 is fully compatible with the buffer object
vm code.
2007-02-26 18:17:54 +01:00
Thomas Hellstrom
2b7a9afa09
Some fencing cleanup.
2007-02-22 17:04:20 +01:00
Dave Airlie
a253de2fcf
drm: remove last usage of VM_OFFSET
2007-02-18 17:59:40 +11:00
Thomas Hellstrom
6d8ed5aedd
Leftover files from previous commit.
2007-02-16 20:25:26 +01:00
Thomas Hellstrom
e0f53e59be
Simple fence object sample driver for via, based on idling the GPU.
...
Buffer object driver for via.
Some changes to buffer object driver callbacks.
Improve fence flushing.
2007-02-16 20:22:24 +01:00
Thomas Hellstrom
7766378d97
Initial support for fence object classes.
...
(Fence objects belonging to different command submission mechanisms).
2007-02-15 12:11:38 +01:00
Michel Dänzer
7803977aa9
Fix build against older kernels.
2007-02-15 09:26:16 +01:00
Thomas Hellstrom
a78f70faad
Merge branch 'ttm-vram-0-1-branch'
2007-02-14 15:33:40 +01:00
Thomas Hellstrom
35eb12d8bf
Fix multiple spinlock unlocking
2007-02-14 15:32:08 +01:00
Thomas Hellstrom
1345076c8f
Rename drm_ttm.h to drm_objects.h
...
Fix up some header incompatibilities in drm_fence.c caused by the previous
commit.
2007-02-14 14:10:10 +01:00
Thomas Hellstrom
8ffc1844b0
Move fence- and buffer-object related header stuff to drm_ttm.h
2007-02-14 14:05:40 +01:00
Thomas Hellstrom
5c9a7b0f94
Remove an intel-specific hack and replace it with a fence driver callback.
2007-02-14 13:31:35 +01:00
Thomas Hellstrom
04760563b8
Set the drm bus map type for each buffer object memory type.
2007-02-14 12:39:02 +01:00
Thomas Hellstrom
7bcb62b45d
Rework buffer object vm code to use nopfn() for kernels >= 2.6.19.
2007-02-14 10:49:37 +01:00
Thomas Hellstrom
6b289db054
Remove debug printout.
2007-02-13 20:47:30 +01:00
Thomas Hellstrom
e1460426b8
Bugzilla Bug #9457
...
Add refcounting of user waiters to the DRM hardware lock, so that we can use the
DRM_LOCK_CONT flag more conservatively.
Also add a kernel waiter refcount that if nonzero transfers the lock for the kernel context,
when it is released. This is useful when waiting for idle and can be used
for very simple fence object driver implementations for the new memory manager.
It also resolves the AIGLX startup deadlock for the sis and the via drivers.
i810, i830 still require that the hardware lock is really taken so the deadlock remains
for those two. I'm not sure about ffb. Anyone familiar with that code?
2007-02-13 20:47:30 +01:00
Thomas Hellstrom
9efdae317c
More bugfixes.
...
Fixed memory, pinned buffers and unmappable memory now seems
fully functional.
2007-02-13 20:05:32 +01:00
Adam Jackson
5bd13c5e15
Fix some outdated URLs, remove others.
2007-02-12 15:45:51 -05:00
Thomas Hellstrom
398913dc0e
Lindent.
2007-02-12 20:34:50 +01:00
Thomas Hellstrom
b0c5339ed6
More bugfixes.
2007-02-12 20:32:03 +01:00
Thomas Hellstrom
f02f83ee08
Cleanup and fix support for pinned buffers.
2007-02-12 17:47:57 +01:00
Thomas Hellstrom
85ee2a8d04
Various bugfixes.
2007-02-10 12:06:36 +01:00
Thomas Hellstrom
53aee3122a
I915 accelerated blit copy functional.
...
Fixed - to System memory copies are implemented by
flipping in a cache-coherent TTM,
blitting to it, and then flipping it out.
2007-02-09 16:36:53 +01:00
Thomas Hellstrom
57df398072
Reinstate some LRU handling.
2007-02-09 12:43:18 +01:00
Thomas Hellstrom
d32b21e016
Remove some code that should have gone in
...
commit 6a49d9a8ab
2007-02-09 00:11:53 +01:00
Thomas Hellstrom
99acdaee48
Fix copyright statements.
2007-02-09 00:07:29 +01:00
Thomas Hellstrom
6a49d9a8ab
Fix evict_mutex locking range.
...
Implement unmappable buffers. (fault moves them to mappable when needed).
Various bugfixes.
2007-02-09 00:02:02 +01:00
Thomas Hellstrom
b2bcbf874b
Add an accelerated buffer copy cleanup helper.
...
Export helper functions and make some important buffer-object functions non-static.
Add an i915 accelerated blit buffer move for pci memory buffers.
2007-02-08 21:28:33 +01:00
Thomas Hellstrom
a0ed808d05
Don't create a ttm just to copy from.
2007-02-08 19:06:39 +01:00
Thomas Hellstrom
bf8f46d4c6
Fix mm_block leak.
...
Some other minor fixes.
2007-02-08 18:59:02 +01:00
Thomas Hellstrom
e4b2da4406
A minor function interface change and some memcpy bugfixing.
...
Hooray!! it sort of works with a fixed AGP area as faked VRAM.
2007-02-08 16:21:38 +01:00
Thomas Hellstrom
1257907fa9
Simplify external ttm page allocation.
...
Implement a memcpy fallback for copying between buffers.
2007-02-08 13:29:08 +01:00
Thomas Hellstrom
09984ad77b
Update memory compatibility tests.
...
Now only pinned buffers are broken.
2007-02-08 11:55:24 +01:00
Thomas Hellstrom
c1fbd8a566
Checkpoint commit.
...
Flag handling and memory type selection cleanup.
glxgears won't start.
2007-02-07 17:25:13 +01:00
Thomas Hellstrom
af24465b2e
Fix a stray unlock_kernel() in drm_vm.c
...
Add a file for memory move helpers, drm_bo_move.c
Implement generic memory move.
Cached, no_move and unmapped memory temporarily broken.
2007-02-07 12:52:23 +01:00
Thomas Hellstrom
71b9e876f9
Simplify pci map vs no pci map choice.
2007-02-06 16:59:45 +01:00
Thomas Hellstrom
40ce53dfde
Implement a drm_mem_reg_t substructure in the buffer object type.
2007-02-06 15:56:43 +01:00
Thomas Hellstrom
609e3b0375
Implement a policy for selecting memory types.
2007-02-06 14:20:33 +01:00
Thomas Hellstrom
2d962332de
i915: Add copy-blit operation.
2007-02-05 16:13:32 +01:00
Stephane Marchesin
ebf22aed9a
nouveau: add missing nv04_graph.c symlink.
2007-02-03 06:02:12 +01:00
Stephane Marchesin
d69902db3b
nouveau: fix nv04 graph routines for new register names.
2007-02-03 05:25:36 +01:00
Thomas Hellstrom
63f2abd721
Make also later kernels work with buffer object vm
...
and clean up some function names.
2007-02-02 19:49:11 +01:00
Thomas Hellstrom
c269d560e4
Make vm handle buffer objects instead of ttm objects.
...
Remove ttm objects.
Make vm aware of PCI memory type buffer objects.
(Only works for pre 2.6.16 kernels for now).
2007-02-02 14:47:44 +01:00
Thomas Hellstrom
dd733dea38
Fix missing ttm_open_vma call from previous commit.
...
Honour the ttm backend cant-use-aperture flag.
2007-02-01 13:19:05 +01:00
Thomas Hellstrom
9677c5ecc6
Prepare for removal of the ttm_object type.
2007-02-01 10:53:55 +01:00
Thomas Hellstrom
333c6af47a
Protect drm_mmap against disappearing maps.
...
The map lists and hash tables are protected using dev->struct_mutex,
but drm_mmap strangely never locked this mutex.
2007-02-01 00:38:57 +01:00
Thomas Hellstrom
3024f23c65
memory manager: Make device driver aware of different memory types.
...
Memory types are either fixed (on-card or pre-bound AGP) or not fixed
(dynamically bound) to an aperture. They also carry information about:
1) Whether they can be mapped cached.
2) Whether they are at all mappable.
3) Whether they need an ioremap to be accessible from kernel space.
In this way VRAM memory and, for example, pre-bound AGP appear
identical to the memory manager.
This also makes support for unmappable VRAM simple to implement.
2007-01-31 14:50:57 +01:00
Thomas Hellstrom
36d50687dd
Fix an error-path oops.
2007-01-31 11:03:53 +01:00
Thomas Hellstrom
d399fcf46f
Add a buffer object transfer function.
...
Creates a placeholder for the old buffer contents
when it is transfered to / from static memory like VRAM.
2007-01-30 16:20:23 +01:00
Thomas Hellstrom
9bbdc0fb10
Clean up buffer object destruction somewhat.
2007-01-30 12:35:49 +01:00
Thomas Hellstrom
9a654e71bd
Use pre-defined list_splice function.
2007-01-29 13:37:02 +01:00
Thomas Hellstrom
45418bb1b1
s/buf/bo/ for consistency.
2007-01-29 13:37:02 +01:00
Thomas Hellstrom
1e4c7d69f5
Some cleanup. A buffer object should only have one active memory type.
2007-01-29 13:37:02 +01:00
Thomas Hellstrom
582637641a
Remove a scary error printed when we were leaking memory caches.
...
We don't use memory caches anymore...
Fix memory accounting initialization to only use low or DMA32 memory.
2007-01-25 14:27:29 +01:00
Matthieu Castet
f04347f371
nouveau: nv20 graph ctx switch.
...
Untested...
2007-01-13 23:19:41 +01:00
Matthieu Castet
cd5f543b2f
nouveau: first step to make graph ctx works
...
It is still not working, but now we could use some 3D commands
without needed to run nvidia blob before.
2007-01-13 21:44:50 +01:00
Dave Airlie
69a98d89d5
nouveau: add missing symlink
2007-01-13 08:43:15 +11:00
Jeremy Kolb
4297a83b48
nouveau: get nv30 context switching to work.
...
* Pulled in some registers from nv10reg.h. Needed for context switching.
* Filled in nv30 graphics context (based on nv40_graph.c).
* Figure out nv30 context table, set up on context creation. Allows the cards automatic switching to work.
2007-01-12 00:14:54 -05:00
Dave Airlie
125f3ff367
Revert "nouveau: Fill in context_init for nv10-nv3x."
...
This reverts ac076cb9af
commit.
Well it didn't do anything interesting...
2007-01-10 15:19:47 +11:00
Jeremy Kolb jkolb@brandeis.edu
ac076cb9af
nouveau: Fill in context_init for nv10-nv3x.
...
Fill in the context with the values from PFIFO_CACH1. This should work from nv10 through the nv30 series.
2007-01-09 23:12:37 -05:00
Stephane Marchesin
ec12209c76
nouveau: Don't use DRIVER_USE_MTRR, we already setup our own mtrr over vram.
2007-01-10 04:42:09 +01:00
Dave Airlie
f6ba3b2603
ttm: make ttm alloc/free into alloc_pages/free_pages
...
Add a vmalloc flag to the page flags
2007-01-09 15:51:29 +11:00
Dave Airlie
22821cf01d
add export symbol for memory manager
2007-01-08 22:27:27 +11:00
Dave Airlie
5bf60c9d6c
i830: complete fix for i830 maps
2007-01-08 13:09:51 +11:00
Christoph Hellwig
b147c39263
drm: remove drm_follow_page, and drm_ioremap and ioremapfree
...
This comes from the Re: [patch] paravirt: isolate module ops on lkml
It needs some testing, please report any regressions caused.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-01-08 11:47:15 +11:00
Dave Airlie
fe5770b89e
fixup i810/i830 to use drm_core_ioremap instead of drm_ioremap
2007-01-08 11:46:54 +11:00
Stephane Marchesin
025f281bbf
nouveau: Add an mtrr over the whole FB
2007-01-05 20:49:34 +01:00
Michel Dänzer
972074b5d6
linux-core: Make git ignore generated module symbol version files.
2007-01-02 10:02:44 +01:00
Ben Skeggs
0e0d954584
nouveau: Add nv40-specific PGRAPH code, not hooked up yet.
2007-01-02 14:52:43 +11:00
Dave Airlie
2dcbf6a599
make build against 2.6.20 hopefully
2007-01-01 11:30:38 +11:00
Dave Airlie
87faf62fae
fixup permission along line of kernel
2007-01-01 11:22:35 +11:00
Thomas Hellstrom
975136d6e5
Proper allocation of AGP pages for ttms.
2006-12-27 15:32:09 +01:00
Thomas Hellstrom
72cb361c5c
Bug #9120 .
...
Require at least agpgart version 0.102 for the AGP TTM backend.
This should hopefully avoid crashes when the wrong agpgart
driver is installed.
2006-12-21 12:05:49 +01:00
Thomas Hellstrom
ae58225613
Improve memory manager accounting printout formatting.
2006-12-21 10:43:47 +01:00
Thomas Hellstrom
a467d24829
Fix buggy aligned allocations.
2006-12-21 10:43:46 +01:00
Thomas Hellstrom
9acd4a13f2
Remove the stupid root_node field from the core memory manager.
2006-12-20 19:33:50 +01:00
Thomas Hellstrom
672593f611
Replace vmalloc_32.
...
The vmalloc_32 function together with the memset to clear
the new pages are replaced with a vmalloc_user.
A pre-2.6.18 compat vmalloc_user is added.
Please replace any breakage on machines with > 1GB of memory.
2006-12-20 14:40:36 +01:00
Thomas Hellstrom
3b47b27558
Some via PCI posting flushes.
2006-12-20 13:04:21 +01:00
Dave Airlie
e5c4a26a29
Merge branch 'nouveau-1'
2006-12-20 10:30:16 +11:00
Dave Airlie
dc1b68aacb
fixup symlinks via Makefile
2006-12-20 10:29:43 +11:00
Dave Airlie
744f9ac9c7
add nouveau symlinks via git
2006-12-20 10:28:55 +11:00
Thomas Hellstrom
3b8e6ccd25
Security fix. Zero pages before they are handed to user space.
...
TTM pages were not cleared when allocated and handed to user space.
Sensitive information may leak.
2006-12-19 23:45:59 +01:00
Thomas Hellstrom
72b5d1507a
Security fix. Zero pages before they are handed to user space.
...
Shared memory areas were not cleared when they are allocated and
handed to user space. Sensitive information may leak.
2006-12-19 23:23:17 +01:00
Thomas Hellstrom
81251bf78f
Reclaim buffers locked fixup.
...
Avoid calling reclaim_buffers_locked if we don't have a
hardware lock.
Improve reclaim_buffers_locked deadlock error formatting.
2006-12-19 23:14:11 +01:00
Dave Airlie
737c73d1a0
add kcalloc compat for before 2.6.10
2006-12-19 22:10:34 +11:00
Dave Airlie
bc4c835731
remove do munmap 4 args
2006-12-19 21:51:30 +11:00
Dave Airlie
6333bfdb58
fixup inclusion of agp.h
2006-12-19 21:37:50 +11:00
Dave Airlie
aa07b2ab0e
remove drm pci from 2.5 days
2006-12-19 21:33:47 +11:00
Dave Airlie
ff4b5ccdb4
remove legacy taskqueue code
2006-12-19 21:30:27 +11:00
Dave Airlie
86ff2aeb9b
drm: remove all 2.4 support for drm development tree.
...
Bye bye 2.4 you served us well..
2006-12-19 20:29:03 +11:00
Dave Airlie
656c3a3737
[SPARC]: Respect vm_page_prot in io_remap_page_range().
...
Make sure the callers do a pgprot_noncached() on
vma->vm_page_prot.
Pointed out by Hugh Dickens.
Signed-off-by: David S. Miller <davem@davemloft.net>
2006-12-19 18:27:20 +11:00
Dave Airlie
0ab48b0841
[PATCH] mm: incorrect VM_FAULT_OOM returns from drivers
...
Some drivers are returning OOM when it is not in response to a memory
shortage.
Signed-off-by: Nick Piggin <npiggin@suse.de>
2006-12-19 18:24:44 +11:00
Dave Airlie
303307d254
fix irq args compatiblity with pre 2.6.19
2006-12-19 18:03:20 +11:00
Dave Airlie
2253e334cc
make sizeof match the copy struct
2006-12-19 17:58:14 +11:00
Dave Airlie
6c8712ba8a
use spin_lock_init in via dmablit
2006-12-19 17:58:07 +11:00
Dave Airlie
696f2bfbd1
Revert "drm: ioremap balanced with iounmap for drivers/char/drm"
...
This reverts cc22cd8bde
commit.
I put this patch incorrectly in .. will fix now
2006-12-19 16:44:57 +11:00
Dave Airlie
cc22cd8bde
drm: ioremap balanced with iounmap for drivers/char/drm
...
ioremap must be balanced by an iounmap and failing to do so can result
in a memory leak.
Tested (compilation only) to make sure the files are compiling without
any warning/error due to new changes
Signed-off-by: Amol Lad <amol@verismonetworks.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-12-19 16:41:10 +11:00
Michael Buesch
b3c88d31e1
drm/linux-core: drmP.h compilation fix
...
I need the following patch to fix compilation of
latest drm/linux-core on my ppc64 machine.
/home/mb/develop/git/drm/linux-core/savage_bci.c: In function ‘savage_driver_firstopen’:
/home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: ‘DRM_MTRR_WC’ undeclared (first use in this function)
/home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: (Each undeclared identifier is reported only once
/home/mb/develop/git/drm/linux-core/savage_bci.c:587: error: for each function it appears in.)
/home/mb/develop/git/drm/linux-core/savage_bci.c: In function ‘savage_driver_lastclose’:
/home/mb/develop/git/drm/linux-core/savage_bci.c:664: error: ‘DRM_MTRR_WC’ undeclared (first use in this function)
I looked at in-kernel drmP.h and it actually
has the same fix in it.
Signed-off-by: Michael Buesch <mb@bu3sch.de>
2006-12-16 11:27:22 +01:00
Thomas Hellstrom
38ed67196f
Remove the memory caches for fence objects and memory manager nodes,
...
since the support for memory caches has gone from 2.6.20.
2006-12-15 12:37:24 +01:00
Michel Dänzer
a97bb85c2a
Unshare drm_drawable.c again for now.
...
The current version didn't build on BSD, where the new functionality isn't used
yet anyway. Whoever changes that will hopefully be able to make the OSes share
this file as well.
2006-12-01 10:46:21 +01:00
Michel Dänzer
4a0e61d910
Track linux-core symlinks in git.
2006-12-01 10:37:55 +01:00
Dave Airlie
f7affda35b
drm: fixup page alignment on SAREA map on ppc64
2006-11-06 11:44:36 +11:00
Dave Airlie
1e90b7ee8c
Merge branch 'master' into nouveau-1
...
Conflicts:
linux-core/Makefile.kernel
2006-11-06 08:03:18 +11:00
Dave Airlie
94ab96c4d8
nouveau: add compat ioc32 support
2006-11-05 20:39:13 +11:00
Dave Airlie
1e118aeb39
remove config.h
2006-11-05 19:46:30 +11:00
Thomas Hellstrom
4b04c0cc45
Bugzilla Bug #8819
...
Build fixes for powerpc.
Reported by Katerina Barone-Adesi
2006-10-30 11:18:44 +01:00
Thomas Hellstrom
f6d5fecdd2
Last minute changes to support multi-page size buffer offset alignments.
...
This will come in very handy for tiled buffers on intel hardware.
Also add some padding to interface structures to allow future binary backwards
compatible changes.
2006-10-27 11:28:37 +02:00
Thomas Hellstrom
e09544a2d3
New mm function names. Update header.
2006-10-26 21:20:34 +02:00
Thomas Hellstrom
47dbfc4e4a
Add improved alignment functionality to the core memory manager.
...
This makes an allocated block actually align itself and returns any
wasted space to the manager.
Also add some functions to grow and shrink the managed area.
This will be used in the future to manage the buffer object swap cache.
2006-10-26 21:17:43 +02:00
Thomas Hellstrom
b4fba1679b
Add a one-page hole in the file offset space between buffers.
2006-10-26 21:14:23 +02:00
Thomas Hellstrom
7ea059ae07
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
2006-10-21 14:20:28 +02:00
Thomas Hellstrom
9ed4656799
The CPU cache must be flushed _before_ we start modifying the kernel map ptes,
...
otherwise data will be missing, which becomes apparent when the kernel evicts
batch buffers which are likely to be written into in the evicted state,
and then rebound to the AGP aperture.
This means we cannot rely on the AGP module to flush the
cache for us.
2006-10-21 14:17:51 +02:00
Tilman Sauerbeck
a8909a0ebc
Bug #1746 : Set dev_priv_size for the MGA driver.
2006-10-20 17:05:07 +02:00
Thomas Hellstrom
9321592149
We apparently need this global cache flush anyway.
2006-10-20 15:07:21 +02:00
Thomas Hellstrom
3624e43282
Bug #8707 , 2.6.19-rc compatibility for memory manager code.
2006-10-20 15:06:31 +02:00
Thomas Hellstrom
d70347bfc0
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
2006-10-19 17:07:26 +02:00
Thomas Hellstrom
5de4665747
Importing fixes from drm-ttm-0-2-branch
2006-10-19 17:00:03 +02:00
Thomas Hellstrom
e8ba62db72
Make sure delayed delete list is empty on lastclose.
...
Fix some refcounting errors.
Fix some error messages.
2006-10-19 16:58:00 +02:00
Thomas Hellstrom
e22b04f807
Merging drm-ttm-0-2-branch
...
Conflicts:
linux-core/drmP.h
linux-core/drm_drv.c
linux-core/drm_irq.c
linux-core/drm_stub.c
shared-core/drm.h
shared-core/i915_drv.h
shared-core/i915_irq.c
2006-10-18 17:33:19 +02:00
Thomas Hellstrom
11aaa358a0
Remove stray softlink.
2006-10-18 17:18:23 +02:00
Thomas Hellstrom
e172945d66
Avoid driver-specific AGP user-populated types, since we don't know what AGP
...
driver we're on.
Avoid global cache flushes before inserting pages.
In general, they are never mapped, and not accessed through the kernel map, so
a cache flush should not be necessary. The exception is pages that are bound
cached. We might need a cache flush for those.
2006-10-18 16:54:17 +02:00
Thomas Hellstrom
c34faf224b
Remove max number of locked pages check and call, since
...
that is now handled by the memory accounting.
2006-10-17 20:03:26 +02:00
Thomas Hellstrom
89b9441798
Lindent.
2006-10-17 19:57:06 +02:00
Thomas Hellstrom
f22f89e6b3
Add vma list memory usage to memory accounting.
...
Use byte unit for /proc printout of memory usage for small sizes to be
able to detect memory allocation bugs more easily.
2006-10-17 19:52:34 +02:00
Thomas Hellstrom
d515936ea7
Add memory usage accounting to avoid DOS problems.
2006-10-17 19:40:57 +02:00
Thomas Hellstrom
5443dbe35f
Implement mm_lock and mm_unlock functions.
...
The mm_lock function is used when leaving vt. It evicts _all_ buffers.
Buffers with the DRM_BO_NO_MOVE attribute set will be guaranteed to
get the same offset when / if they are rebound.
2006-10-17 16:00:25 +02:00
Thomas Hellstrom
db5c671e86
Remove the memory manager parameter from the put_block function, as this
...
makes the client code a lot cleaner. Prepare buffer manager for lock and
unlock calls.
2006-10-17 11:28:48 +02:00
Thomas Hellstrom
5881ce1b91
Extend generality for more memory types.
...
Fix up init and destruction code.
2006-10-17 11:05:37 +02:00
Thomas Hellstrom
5b2a60f550
Change Intel AGP memory type numbers.
2006-10-16 14:22:27 +02:00
Stephane Marchesin
93fee5cf22
Merge branch 'master' of git://anongit.freedesktop.org/git/mesa/drm into nouveau-1
2006-10-15 00:12:13 +02:00
Dave Airlie
1bab514c0a
remove config.h from build no longer exists kbuild does it
2006-10-14 23:38:20 +10:00
Thomas Hellstrom
540c64c378
Bugfixes.
2006-10-12 16:10:47 +02:00
Thomas Hellstrom
10150df02b
Simplify the AGP backend interface somewhat.
...
Fix buffer bound caching policy changing, Allow
on-the-fly changing of caching policy on bound buffers if the hardware
supports it.
Allow drivers to use driver-specific AGP memory types for TTM AGP pages.
Will make AGP drivers much easier to migrate.
2006-10-12 12:09:16 +02:00
Thomas Hellstrom
3070389367
Compatibility code for 2.6.15-2.6.18. It is ugly but a little comfort is that
...
it will go away in the mainstream kernel.
Some bugfixes, mainly in error paths.
2006-10-11 22:21:01 +02:00
Thomas Hellstrom
f2db76e2f2
Big update:
...
Adapt for new functions in the 2.6.19 kernel.
Remove the ability to have multiple regions in one TTM.
This simplifies a lot of code.
Remove the ability to access TTMs from user space.
We don't need it anymore without ttm regions.
Don't change caching policy for evicted buffers. Instead change it only
when the buffer is accessed by the CPU (on the first page fault).
This tremendously speeds up eviction rates.
Current code is safe for kernels <= 2.6.14.
Should also be OK with 2.6.19 and above.
2006-10-11 13:40:35 +02:00
Thomas Hellstrom
c58574c605
Use a nopage-based approach to fault in pfns.
2006-10-10 10:37:26 +02:00
Thomas Hellstrom
cee659afb5
Get rid of all ugly PTE hacks.
2006-10-03 12:08:07 +02:00
George Sapountzis
f3deef730d
Bug 6242: [mach64] Use private DMA buffers, part #3 .
...
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.
2006-10-02 22:47:23 +03:00
Michel Dänzer
16be6ba63a
Fix type of second argument to spin_lock_irqsave().
...
(cherry picked from f6238cf624
commit)
2006-10-02 15:42:07 +02:00
Michel Dänzer
f6238cf624
Fix type of second argument to spin_lock_irqsave().
2006-10-02 15:33:19 +02:00
Thomas Hellstrom
eacedf41a6
Make the user_token 44-bit for TTMs, and have them occupy a unique file space
...
starting at 0x00100000000. This will hopefully allow us to use
unmap_mapping_range(). Note that user-space will need
64-bit file offset support.
2006-10-02 15:06:35 +02:00
Thomas Hellstrom
a31046b873
Add a buffer object manager for TTM maps.
2006-10-02 14:03:15 +02:00
Thomas Hellstrom
d85b99435f
Allow for 44 bit user-tokens (or drm_file offsets)
2006-10-02 13:49:43 +02:00
Thomas Hellstrom
418b81c65c
Add a comment to previos commit.
2006-10-02 13:37:54 +02:00
Thomas Hellstrom
c6be27401f
Trap and be verbose about a deadlock that occurs with AIGLX and drivers that
...
use drm_reclaim_buffers_locked().
2006-10-02 13:34:30 +02:00
Michel Dänzer
3a16e615ca
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.
2006-10-02 11:04:42 +02:00
Michel Dänzer
cef0f24325
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.
(cherry picked from cf6b2c5299
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
ed82172378
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.
(cherry picked from 89e323e490
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
00531cecad
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.
(cherry picked from df7551ef73
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
ca3a1b5ec4
Drop tasklet locked driver callback when uninstalling IRQ.
...
(cherry picked from b9f3009160
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
67e88e5628
Hook up DRM_IOCTL_UPDATE_DRAW ioctl.
...
(cherry picked from 98a8950458
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
9810ec2737
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.
(cherry picked from 29598e5253
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
a7b8c8d523
Add support for interrupt triggered driver callback with lock held to DRM core.
...
(cherry picked from d817cc1f30
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
596d7e9984
Add support for secondary vertical blank interrupt to i915 driver.
...
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 0c7d7f4361
commit)
2006-09-29 12:55:08 +02:00
Michel Dänzer
2735f9e290
Add support for secondary vertical blank interrupt to DRM core.
...
(cherry picked from ab351505f3
commit)
2006-09-29 12:55:08 +02:00
Thomas Hellstrom
3802f9adbf
Fix buffer manager takedown error.
...
Prepare for the possibility to evict all buffers from vram / agp.
This will be used by the X server when, for example, switching vts.
2006-09-29 11:15:59 +02:00
Michel Dänzer
cf6b2c5299
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.
2006-09-28 15:41:36 +02:00
Michel Dänzer
89e323e490
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.
2006-09-28 15:41:36 +02:00
Michel Dänzer
df7551ef73
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.
2006-09-28 15:41:36 +02:00
Michel Dänzer
b9f3009160
Drop tasklet locked driver callback when uninstalling IRQ.
2006-09-28 15:41:35 +02:00
Michel Dänzer
98a8950458
Hook up DRM_IOCTL_UPDATE_DRAW ioctl.
2006-09-28 15:41:35 +02:00
Michel Dänzer
29598e5253
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.
2006-09-28 15:41:35 +02:00
Michel Dänzer
d817cc1f30
Add support for interrupt triggered driver callback with lock held to DRM core.
2006-09-28 15:41:35 +02:00
Michel Dänzer
0c7d7f4361
Add support for secondary vertical blank interrupt to i915 driver.
...
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.
2006-09-28 15:41:35 +02:00
Michel Dänzer
ab351505f3
Add support for secondary vertical blank interrupt to DRM core.
2006-09-28 15:41:35 +02:00
Thomas Hellstrom
c52fafa628
Don't enable fence / buffer objects on non-linux systems.
...
Bump driver minor and date.
2006-09-28 11:33:03 +02:00
Thomas Hellstrom
1c6f0ea43c
Activate error message that was never hit since it was masked
...
by drm_lock_transfer.
Ifdef out drm_lock_transfer. I see no use for it currently. Should be removed.
2006-09-27 19:11:27 +02:00
Thomas Hellstrom
f2c03ecae6
Fix racy buffer object destruction.
2006-09-27 19:07:55 +02:00
Thomas Hellstrom
c97149b45b
Fix tt fixed size that slipped through in previous commit.
2006-09-27 09:31:39 +02:00
Thomas Hellstrom
235f6fc650
Adapt to architecture-specific hooks for gatt pages.
2006-09-27 09:27:31 +02:00
Thomas Hellstrom
26528627a6
Remove the call to drm_lock_transfer, since it is not used anymore.
...
Fix up drm_lock_free to retain the last locking context information.
2006-09-26 14:40:11 +02:00
Thomas Hellstrom
711f077b74
Allow for a driver to overload the ttm backend object methods.
2006-09-26 14:36:53 +02:00
Thomas Hellstrom
273eb7833d
Add /proc filesystem buffer / fence object accounting.
...
Check for NULL pointer in the i915 flush handler.
Remove i915_sync_flush declaration.
2006-09-25 11:51:08 +02:00
Thomas Hellstrom
a02155a0d9
Fix proc formatting broken by last commit.
...
GPU lockup error reporting.
2006-09-22 09:25:36 +02:00
Felix Kuhling
62f6ea2256
bug 5942: add stubs for drm_mtrr_add/del for non-MTRR configured linux
2006-09-22 03:46:54 +10:00
Thomas Hellstrom
fa511a3ff5
Allow for 64-bit map handles of ttms and buffer objects.
2006-09-20 16:31:15 +02:00
Thomas Hellstrom
aac918e7c7
Fence handler fix
2006-09-18 21:50:00 +02:00
Thomas Hellstrom
ca1b15d645
Alternative implementation of page table zeroing using zap page_range.
...
(Disabled for now)
Fix bo_wait_idle bug.
Remove stray debug message.
2006-09-18 20:43:31 +02:00
Thomas Hellstrom
c4fad4c961
More verbose error reporting in some cases.
...
Add a buffer object waitIdle user-space function.
Fix some names and minor glitches.
2006-09-18 16:02:33 +02:00
Dave Airlie
ef98a8e20d
drm: put domain number back to 0, domain support is seriously fubar..
2006-09-18 21:23:34 +10:00
Thomas Hellstrom
f613022cee
Allow a "native type" to be associated with a fence sequence.
...
In the intel case, we can associate a flush with a sequence.
2006-09-15 16:47:09 +02:00
Thomas Hellstrom
49fbeb339c
Some bugfixes.
...
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.
2006-09-15 11:18:35 +02:00
Thomas Hellstrom
7223b4e264
Simplify ttm alloc and free.
2006-09-14 16:42:00 +02:00
Thomas Hellstrom
682c6ed029
Remove the use of reserved pages, and use locked pages instead.
...
Update compatibility for latest linux versions.
2006-09-14 12:17:38 +02:00
Thomas Hellstrom
9adc9584a7
Fix some debug messages.
2006-09-12 17:39:44 +02:00
Thomas Hellstrom
861b26578c
Use lazy fence wait when possible even for RW fences. Saves some CPU.
...
Lindent.
2006-09-12 16:28:34 +02:00
Thomas Hellstrom
191e284709
More bugfixes.
...
Disable the i915 IRQ turnoff for now since it seems to be causing problems.
2006-09-12 12:01:00 +02:00
Dave Airlie
3cc64a943a
drm: use radeon specific names for radeon flags
2006-09-12 06:13:14 +10:00
Thomas Hellstrom
99acb79366
Various bugfixes.
2006-09-08 17:24:38 +02:00
Eric Anholt
55057660f0
Put the PCI device/vendor id in the drm_device_t.
...
This helps us unbreak FreeBSD DRM from the 965 changes.
2006-09-06 23:25:14 -07:00
Thomas Hellstrom
6042153968
Fence all unfenced buffers function.
2006-09-05 18:00:25 +02:00
Thomas Hellstrom
034fc31292
i915: Only turn on user IRQs when they are needed.
2006-09-05 14:23:18 +02:00
Thomas Hellstrom
8c613a8363
Fix memory cache initialization.
2006-09-05 11:00:52 +02:00
Thomas Hellstrom
550f51b4bf
Buffer object wait IOCTL operation.
...
Remove option to wait for fence / buffers and block signals.
2006-09-04 21:50:12 +02:00
Thomas Hellstrom
a6b8e3eaf4
Make memory caches global so that they can be used with
...
multiple heads.
2006-09-04 16:57:20 +02:00
Thomas Hellstrom
a96b61fdc4
Lindent drm_bo.c
2006-09-01 18:11:34 +02:00
Thomas Hellstrom
405b5d9ca8
Flag bit pattern bugfixes. Remove some error messages.
2006-09-01 18:11:05 +02:00
Thomas Hellstrom
ef8e618cf3
Export buffer info on map and validate ioctls.
...
Add an info ioctl operation.
2006-09-01 16:38:06 +02:00
Thomas Hellstrom
11f51a9a87
Bugfixes,
...
Memory allocation optimizations.
Buffer manager takedown.
2006-09-01 15:41:55 +02:00
Thomas Hellstrom
4edb95d6e0
Various bugfixes.
2006-09-01 11:23:21 +02:00
Thomas Hellstrom
44f6d08988
Validation and fencing.
2006-08-31 21:42:29 +02:00
Thomas Hellstrom
03c137c5f8
Remove the buffer manager mutex. Use dev->struct_mutex instead.
...
Add a function to free buffers on hold for destruction if their
fence object has expired.
Add a timer to periodically call that function when there are
buffers pending deletion.
2006-08-31 15:36:40 +02:00
Thomas Hellstrom
ec8c79b79d
More mapping synchronization.
...
libdrm validate and fencing functions.
2006-08-31 14:10:13 +02:00
Thomas Hellstrom
ed9de124cc
Lindenting drm_bo.c and drm_ttm.c
2006-08-30 21:31:38 +02:00
Thomas Hellstrom
914a77a15a
Buffer object binding.
...
Some code reordering.
2006-08-30 21:30:47 +02:00
Thomas Hellstrom
611662ab28
Buffer eviction.
...
Reworked map refcounting so that any process waiting on buffer object unmap
will allow in other processes to unmap the buffer object.
2006-08-30 20:23:40 +02:00
Thomas Hellstrom
d39055174b
Remove the buffer object hint field and use it only
...
as an argument.
Validate stub.
2006-08-30 17:40:07 +02:00
Thomas Hellstrom
14a835be61
Buffer object mapping and mapping synchronization for multiple clients.
2006-08-30 15:08:40 +02:00
Thomas Hellstrom
e47a4fda2e
Memory manager init and takedown.
2006-08-30 13:04:08 +02:00
Thomas Hellstrom
033bda07e9
Buffer object reply fill in.
...
Lindent of drm_bo.c drm_ttm.c
2006-08-30 09:57:35 +02:00
Thomas Hellstrom
23f01c9fe8
Checkpoint commit. Buffer object flags and IOCTL argument list.
2006-08-29 18:40:08 +02:00
Thomas Hellstrom
0dedfc2cd0
Checkpoint ttm addition to buffer objects.
2006-08-29 14:52:02 +02:00
Thomas Hellstrom
279e8d26c6
64-bit IOCTL integer (Michel Dnzer & Brian Paul)
2006-08-29 10:45:34 +02:00
Thomas Hellstrom
2057406470
Buffer object creation.
2006-08-28 17:51:53 +02:00
Thomas Hellstrom
0d67356de4
Proper TTM dereferencing
...
Initial buffer object creation.
2006-08-28 16:36:37 +02:00
Dave Airlie
3cfab681b3
Merge branch 'master' into nouveau-1
2006-08-29 00:01:19 +10:00
Thomas Hellstrom
05536a6478
Buffer object idle and mapping synchronization.
2006-08-28 13:51:39 +02:00
Thomas Hellstrom
480ea65ee4
Checkpoint buffer object IOCTL stub.
2006-08-28 10:58:21 +02:00
Thomas Hellstrom
e181f594a4
Add a 64-bit drm unsigned type for 64-bit clean IOCTLS.
...
Conversion functions in drmP.h and xf86drm.c.
2006-08-28 09:49:09 +02:00
Thomas Hellstrom
4ddabd1562
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
...
Conflicts:
linux-core/drmP.h
2006-08-28 09:28:10 +02:00
Dave Airlie
9b984b34e9
drm: lots of small cleanups and whitespace issues fixed up
...
remove a mach64 warning, align a lot of things from linux kernel
2006-08-28 11:31:43 +10:00
Dave Airlie
60ddaaf2e0
add static function, and remove bad attributions
2006-08-28 11:28:38 +10:00
Dave Airlie
3586ecd060
fix const pointer warnings with file_operations
2006-08-28 11:27:13 +10:00
Dave Airlie
205c573e44
remove local copies of pci domain/bus/slot/num
2006-08-28 11:27:09 +10:00
Dave Airlie
b4feb2c04e
remove some DRM_ARRAY_SIZE from linux core code
2006-08-28 11:27:05 +10:00
Dave Airlie
3a91e1a5fb
fixup some of the comments in drm_context.c
2006-08-28 11:27:01 +10:00
Dave Airlie
27c72b67ec
drm: i810_dma.c: fix pointer arithmetic for 64-bit target
...
First warning result from open-coded PTR_ERR,
the rest is caused by code like this:
*(u32 *) ((u32) buf_priv->kernel_virtual + used)
I've also fixed a missing PTR_ERR in i830_dma.c
From: Denis Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-08-28 11:26:57 +10:00
Thomas Hellstrom
886d3b3061
Bugfixes.
2006-08-27 22:01:33 +02:00
Thomas Hellstrom
b4b7b99760
Remove the ioctl multiplexing, and instead allow for generic
...
drm ioctls 0x80 - 0xFF.
2006-08-27 21:16:13 +02:00
Thomas Hellstrom
ac26b51503
Have TTM create and reference ioctl call return the actual TTM size.
2006-08-27 19:45:38 +02:00
Thomas Hellstrom
4fa58aa152
Add TTM map handle on reference.
2006-08-27 19:07:38 +02:00
Thomas Hellstrom
65e7274008
ttm create / destroy / ref / unref ioctl.
2006-08-27 19:03:20 +02:00
Dave Airlie
fef9b30a2b
initial import of nouveau code from nouveau CVS
2006-08-27 08:55:02 +10:00
Thomas Hellstrom
c488e25ceb
More ioctl stubs.
...
Buffer object locking order documentation.
2006-08-25 20:03:39 +02:00
Thomas Hellstrom
35c8ce6c29
ttm and buffer objects ioctl stubs.
2006-08-25 19:03:42 +02:00
Thomas Hellstrom
1d3cf107d2
Module protection map access is moving into mainline kernels.
...
Update drm_compat accordingly.
(Reported by Dave Airlie)
2006-08-25 18:14:22 +02:00
Thomas Hellstrom
4c03030b12
Checkpoint commit
...
Buffer object code.
2006-08-25 18:05:35 +02:00
Thomas Hellstrom
ea57099973
Fix previous commit: Only fall back to hashed handles
...
when there is a duplicate handle error. Not for other errors.
2006-08-23 13:49:13 +02:00
Thomas Hellstrom
8fa43d4b2f
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm into drm-ttm-0-2-branch
2006-08-23 13:31:45 +02:00
Thomas Hellstrom
459b234d79
Allow multiple addMaps with the same 32-bit map offset.
...
(Reported by Dave Airlie)
2006-08-23 11:31:10 +02:00
Thomas Hellstrom
8dfe917cb2
Fix hashtab implementation leaking illegal error codes to user space.
...
(Reported by Dave Airlie)
2006-08-23 11:21:33 +02:00
Thomas Hellstrom
e201511a0f
More ttm cleanups.
2006-08-22 11:57:08 +02:00
Thomas Hellstrom
ca4e34e532
ttm code cleanup.
...
Fix the sleep-in-page-table-spinlock bug discovered by Dave Airlie
2006-08-22 11:19:53 +02:00
Thomas Hellstrom
a6535c8db4
Add a fence object class field for future use (For example VSYNC fence objects)
2006-08-22 10:44:09 +02:00
Thomas Hellstrom
7058d06317
Initial i915 buffer object driver
2006-08-22 10:24:48 +02:00
Thomas Hellstrom
b81ca5e031
AGP backends for TTM.
2006-08-22 10:09:57 +02:00
Thomas Hellstrom
700bf80ca9
Bring in stripped TTM functionality.
2006-08-22 09:47:33 +02:00
Thomas Hellstrom
8d5b7c77f9
Allow longer sequence lifetimes.
2006-08-21 21:37:43 +02:00
Thomas Hellstrom
e089de33e8
i915 fence object driver implementing 2 fence object types:
...
0x00 EXE fence. Signals when command stream interpreter has reached the point
where the fence was emitted.
0x01 FLUSH fence. Signals when command stream interpreter has reached the point
where the fence was emitted, and all previous drawing operations have been
completed and flushed.
Implements busy wait (for fastest response time / high CPU) and
lazy wait (User interrupt or timer driven).
2006-08-21 21:36:00 +02:00
Thomas Hellstrom
6571f74a49
Remove some accidently included TTM code.
2006-08-21 21:12:29 +02:00
Thomas Hellstrom
657bacc395
Add missing fence type define.
...
Add drm_fence.o to Makefile
2006-08-21 21:04:36 +02:00
Thomas Hellstrom
166da9355d
User / Kernel space fence objects (device-independent part).
2006-08-21 21:02:08 +02:00
Thomas Hellstrom
1c787f0d39
Backwards compatibility code for ttms.
2006-08-21 20:38:57 +02:00
Thomas Hellstrom
42c2cfcf7d
Generic DRM support base-class support for user-space objects, like
...
fence objects and buffer objects:
Refcounting,
Inter-process sharing,
Synchronization
Destruction.
2006-08-21 20:30:19 +02:00
Thomas Hellstrom
11f9e404fb
Avoid using vmalloc for small hash tables.
2006-08-21 17:02:44 +02:00
Dave Airlie
0afb877a37
drm: lots of small cleanups and whitespace issues fixed up
...
remove a mach64 warning, align a lot of things from linux kernel
2006-08-19 17:59:18 +10:00
Dave Airlie
78634c14a8
add static function, and remove bad attributions
2006-08-19 16:56:03 +10:00
Dave Airlie
d90a55fe34
fix const pointer warnings with file_operations
2006-08-19 16:55:30 +10:00
Dave Airlie
3a681bb4c1
remove local copies of pci domain/bus/slot/num
2006-08-19 16:55:00 +10:00
Dave Airlie
cc71393559
remove some DRM_ARRAY_SIZE from linux core code
2006-08-19 16:43:16 +10:00
Dave Airlie
4b38f72672
fixup some of the comments in drm_context.c
2006-08-19 16:36:26 +10:00
Dave Airlie
f89a576aec
drm: i810_dma.c: fix pointer arithmetic for 64-bit target
...
First warning result from open-coded PTR_ERR,
the rest is caused by code like this:
*(u32 *) ((u32) buf_priv->kernel_virtual + used)
I've also fixed a missing PTR_ERR in i830_dma.c
From: Denis Vlasenko <vda.linux@googlemail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-08-19 16:31:34 +10:00
Thomas Hellstrom
0316f93d51
Remove hash tables on DRM exit.
2006-08-16 16:36:56 +02:00
Thomas Hellstrom
4daa024918
Avoid kernel oops in some error paths calling drm_lastclose().
2006-08-14 17:11:14 +02:00
Dave Airlie
0d60cd0036
remove all TRUE instances as well
2006-08-14 11:52:34 +10:00
Dave Airlie
18a48a9267
remove all TRUE/FALSE no need for this in the drm, use 0 or 1
2006-08-14 11:49:52 +10:00
Dave Airlie
5340a70227
cleanup some whitespace issue and move compat code to compat header
2006-08-10 14:32:18 +10:00
Dave Airlie
28069ff10f
drm: ati_pcigart cleanup
...
use NULL instead of 0, cleanup some whitespace
2006-08-10 14:31:22 +10:00
Dave Airlie
e524028630
drm: whitespace cleanup in new files
2006-08-07 21:34:40 +10:00
Dave Airlie
4b3ea90bc4
drm: remove extra whitespace from drm_mm.c
2006-08-07 21:00:13 +10:00
Dave Airlie
248d1a32a2
drm: fixup whitespace and style for Linux kernel import
2006-08-07 20:56:38 +10:00
Dave Airlie
09c901e4bd
remove incorrect exit marking on cleanup pci as this is called from other paths
2006-07-24 11:09:41 +10:00
Dave Airlie
5cfbd5dbab
switch drm to use Linux mutexes instead of semaphore.
...
I hope the fallback compat code works if not shout at me.
2006-07-24 10:51:27 +10:00
Michel Dänzer
b9243ce3d5
.cvsignore -> .gitignore
...
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
2006-07-19 18:31:43 +02:00
Thomas Hellstrom
126673d62a
Keep hashed user tokens, with the following changes:
...
32-bit physical device addresses are mapped directly to user-tokens. No
duplicate maps are allowed, and the addresses are assumed to be outside
of the range 0x10000000 through 0x30000000. The user-token is identical
to the 32-bit physical start-address of the map.
64-bit physical device addressed are mapped to user-tokens in the range
0x10000000 to 0x30000000 with page-size increments. The user_token should
not be interpreted as an address.
Other map types, like upcoming TTM maps are mapped to user-tokens in the
range
0x10000000 to 0x30000000 with page-size increments. The user_token should
not be interpreted as an address.
This keeps compatibility with buggy drivers, while still implementing a
hashed map lookup. The SiS and via device driver major bumps are
reverted.
2006-07-11 14:37:37 +00:00
Thomas Hellstrom
a392349691
Change drm Map handles to be arbitrary 32-bit hash tokens in the range
...
0x10000000 to 0x90000000 in PAGE_SIZE increments.
Implement hashed map lookups.
This potentially breaks both 2D and 3D drivers. If so, the corresponding
2D and 3D driver should be fixed, and it's corresponding drm device driver
should have its major bumped as soon as possible.
Bump sis and via drm device driver majors.
The SiS and Unichrome 3D drivers are fixed in Mesa CVS HEAD and
mesa_6_4_branch.
2006-07-10 13:00:21 +00:00
Thomas Hellstrom
c21a7b763a
SiS 315 Awareness.
2006-07-05 15:52:35 +00:00
Thomas Hellstrom
264f60ded4
Add missing semaphore release.
2006-07-05 14:39:22 +00:00
Alan Hourihane
aafedbf7c5
Fix compilation problem on 2.6.9 kernels (bug #6211 )
2006-06-23 16:29:39 +00:00
Thomas Hellstrom
58b63ee5cc
Fix buffer cleanup on close. Move memory manager reset from final_context
...
to lastclose.
2006-06-19 09:12:50 +00:00
Thomas Hellstrom
0203edaa21
via: Return the requested size instead of the correct size of the allocated
...
regions. The 2D driver and XvMC lib has problems when the returned size
is not the same as the allocated size.
2006-06-16 15:20:20 +00:00
Thomas Hellstrom
ca1a77683d
via:
...
-Remove out of memory error message.
-Move sman cleanup from final_context to lastclose.
-Add the P4VM800PRO (?) PCI ID.
2006-06-15 18:37:05 +00:00
Thomas Hellstrom
6c7faf5814
s/list_entry/drm_hash_entry/ for "drm_hash_item"s.
2006-06-06 17:52:03 +00:00
Thomas Hellstrom
1a9e5bae10
Fix drm_remove_magic potential memory leak / corruption. Move drm
...
authentication token hashing to new generic hash table implementation.
2006-06-06 17:46:17 +00:00
Thomas Hellstrom
6bacb180ce
Merge in the drm-sman-branch
2006-06-06 14:19:00 +00:00
Dave Airlie
79e5969172
rip out unneeded back compat code
2006-05-19 04:11:22 +00:00
Dave Airlie
d365f03129
fixup GFP_COMP for older kernels and get_page/put_page for newer
2006-04-23 09:05:05 +00:00
Dave Airlie
4f53bf3545
remove stupid init and exit flags..
2006-04-05 01:23:57 +00:00
Dave Airlie
ac5bd25208
make add context non master...
2006-04-03 08:06:51 +00:00
Dave Airlie
6bb92ab086
fix issue in mga from kernel
2006-03-19 07:53:46 +00:00
Dave Airlie
9c0634bbad
set dma pages reserved
2006-02-21 11:10:05 +00:00
Dave Airlie
abd3904bf0
use coherent memory for PCI allocations with COMP flag
2006-02-21 10:28:47 +00:00
Dave Airlie
0a211db23c
experimental PCI DMA fixes use proper Linux interfaces
2006-02-19 12:08:14 +00:00
Dave Airlie
a25667894a
make some functions static from the kernel
2006-02-18 05:43:19 +00:00
Dave Airlie
b2523e7aa1
always enable and set master on pci device
2006-02-18 04:18:45 +00:00
Dave Airlie
08fafc424a
fix build wrong function call
2006-02-18 03:01:38 +00:00
Dave Airlie
4791dc8856
major realigment of DRM CVS with kernel code, makes integration much easier
2006-02-18 02:53:36 +00:00
Dave Airlie
585f34c3e5
fix card unload
2006-02-18 02:38:07 +00:00
Dave Airlie
ff9ecc09f9
Fixup test for memory at end of memory space
2006-02-18 02:34:53 +00:00
Alan Hourihane
07e1126bde
add missing name, desc, date, major, minor and patchlevel entries
2006-01-26 12:14:09 +00:00
Thomas Hellstrom
d394c9fa08
via: direction bug in get_user_pages call in via_dmablit.c fixed. Bumped
...
minor since this causes the via DDX to fail with vlc video player.
2006-01-12 19:08:16 +00:00
Thomas Hellstrom
661004544c
via: Combine PCI DMA transfers with stride==width (Idea from Luc
...
Verhaegen). A somewhat saner PCI DMA transfer size check. Fix some
typos. Bump patchlevel.
2006-01-06 11:19:06 +00:00
Dave Airlie
3f23f9b99d
nothing from VIA or S3 in this
2006-01-02 09:17:41 +00:00
Dave Airlie
92150972e5
use drm_cards_limit instead of cards_limit
2006-01-02 05:54:10 +00:00
Dave Airlie
781d96c61f
use common read/write routines
2006-01-02 05:52:17 +00:00
Dave Airlie
8fef6fe4f0
sparse cleanups
2006-01-02 05:43:04 +00:00
Dave Airlie
dcbcc60864
align spacing with kernel
2006-01-02 05:38:03 +00:00
Dave Airlie
42cd50fa90
Realign via driver with changes in Linux kernel (mainly whitespace)
2006-01-02 03:25:49 +00:00
Dave Airlie
b14d15ac41
Add vblank support to i915 DRM..
2005-12-28 23:49:59 +00:00
Dave Airlie
be16e93537
Fix from SuSE for issue with context creation failure
2005-12-04 01:24:23 +00:00
Dave Airlie
0db80529d5
Fix from Hugh Dickins for consistent mapping
2005-11-29 09:46:27 +00:00
Thomas Hellstrom
c8261e3d24
Loosen via dmablit alignment checks somewhat. Adapt stride check to maximum
...
sceen size for EXA.
2005-11-15 11:20:47 +00:00
Dave Airlie
b5d71f63cd
enable i915 32/64 bit ioctls
2005-11-11 12:23:18 +00:00
Dave Airlie
eff1b8fbdf
i810 should be fine with i810.. no idea what this crack is ..
2005-11-11 10:52:23 +00:00
Dave Airlie
cd4a9ad8e2
whitespace align with kernel
2005-11-11 09:21:05 +00:00
Dave Airlie
a204d5acb2
realign whitespace with kernel
2005-11-11 09:09:03 +00:00
Dave Airlie
36356df3cb
A bunch of create_proc_dir_entry() calls creating directories had crept in
...
since the last sweep; converted to proc_mkdir().
From: Al Viro (via kernel)
2005-11-11 08:59:57 +00:00
Dave Airlie
ea07fefcbf
convert to use __set_current_state, align some header includes
2005-11-11 08:42:36 +00:00
Dave Airlie
33fbf8b7e2
whitespace align closer with kernel
2005-11-11 08:07:11 +00:00
Dave Airlie
9a91674d45
cleanup ioctl/max_ioctl to use header file for extern symbols
2005-11-11 07:45:46 +00:00
Dave Airlie
b84daa8f32
Fix cpu_to_le32 same as kernel not sure it is correct for ppc
2005-11-10 10:14:48 +00:00
Dave Airlie
fb22dfbfc1
cleanup / whitespace align with kernel
2005-11-10 10:13:25 +00:00
Eric Anholt
a10d8178e3
Initial port of savage to FreeBSD for the AGP and !ShadowStatus case. Adds
...
drm_mtrr_{add,del} for handling the MTRR setup. Still has a LOR issue
with DRM_VERIFYAREA_READ/DRM_COPY_FROM_USER_UNCHECKED in savage_bci.c
-- this won't work with the fine-grained locking in use, and just doing
a single copyin to a temporary will probably work fine. Also note that
the module leaks approximately 4 kb on unload.
2005-11-08 20:25:00 +00:00
Eric Anholt
1a256df480
Catch FreeBSD up to the pcie gart changes. Required minor modification to
...
radeon_cp.c to use a drm_local_map_t-type mapping (drm_core_ioremap
rather than drm_ioremap), which contains private device mapping
information on BSD. I also changed the ati_pcigart interface to use
"void *" for pointers to kva rather than "unsigned long". While PCIGART
support appears to be broken on FreeBSD currently, I think this is not
new, and BusType PCI remains working on my r100 in Linux.
2005-11-08 02:38:01 +00:00
Alan Hourihane
3fce085e13
Fix bug #4908 for now. Alternative is highlighted in this bug report as the
...
better future direction.
2005-11-07 13:17:41 +00:00
Ian Romanick
39615ec06e
Converts the remaining drm_agp_foo functions to be a drm_agp_foo and
...
drm_agp_foo_ioctl pair. Modifies the MGA DRM to use the drm_agp_foo
functions instead of the drm_foo_agp functions. The drm_foo_agp
functions are no longer exported by drm.ko.
Ensures that dma->seg_count and dma->page_count are properly set in
drm_addbufs_{agp,sg,fb}. drm_addbufs_pci was already correct.
Ensures that mga_do_agp_dma_bootstrap correctly sets agp_buffer_token.
At this point PCI DMA is still broken.
Xorg bug: #4797 Reviewed by: Dave Airlie, Eric Anholt Signed-off-by: Ian
Romanick <idr@us.ibm.com>
2005-11-03 00:38:25 +00:00
Dave Airlie
bcbf5ff797
we don't use this stuff anymore .. remove 1k buffer from driver ..
2005-10-23 04:07:50 +00:00
Alan Hourihane
00d4957d62
Don't set MTRR's for intel hardware
2005-10-21 08:59:56 +00:00
Thomas Hellstrom
cf8ce0888a
via: PCI DMA bugfixes and DOS due to too many mapped pages checks.
2005-10-20 17:37:32 +00:00
Ian Romanick
308b40ea09
The Linux 2.6.9 (and earlier) fops structure does not contain a
...
.compat_ioctl field. This change makes the DRM build on those kernels.
Signed-off-by: Ian Romanick <idr@us.ibm.com>
2005-10-11 17:34:49 +00:00
Adam Jackson
62a4673034
Skeleton nv drm driver, to enable DMA in EXA. (Lars Knoll, minor updates by
...
me)
2005-10-06 23:31:29 +00:00
Dave Airlie
908ad0ed96
remove version not used anymore
2005-10-06 23:08:58 +00:00
Dave Airlie
ace8b912fb
fix header this is now a c file
2005-09-30 09:09:03 +00:00
Dave Airlie
f42cdc8dcb
Add support to turn writeback off via radeon module option
2005-09-30 06:41:10 +00:00
Dave Airlie
856bdf0f67
fixup bens fix so it works..
2005-09-30 03:39:02 +00:00
Dave Airlie
68b4ad3cce
Add Bens fix for radeon maps on ppc
2005-09-30 03:14:18 +00:00
Thomas Hellstrom
9d24d951f7
via: fix stray error printout message.
2005-09-25 14:38:07 +00:00
Thomas Hellstrom
903e5701ff
Add the via PCI DMA blit code.
2005-09-25 12:54:12 +00:00
Dave Airlie
c1b7df95be
add __ATTR
2005-09-25 05:19:06 +00:00
Dave Airlie
3a0230ef9c
use linux kernel macros don't make our own
2005-09-25 03:09:51 +00:00
Dave Airlie
cd16d96856
remove pci_find_class use for alpha
2005-09-18 09:31:06 +00:00
Dave Airlie
f5c81b2620
compat for pci_pretty_name
2005-09-17 04:16:51 +00:00
Dave Airlie
3f6fcbc676
back out change as gart is now in framebuffer for PCIE
2005-09-11 09:58:19 +00:00
Dave Airlie
5565a00916
Add GART in FB support for ati pcigart, and PCIE support for r300
2005-09-11 08:51:23 +00:00
Dave Airlie
29326c1a89
fix makefile bug
2005-09-11 07:08:46 +00:00
Dave Airlie
0d346a07a8
convert ioctl flags to use flags instead of separate ints
2005-09-03 03:27:14 +00:00
Dave Airlie
80ed93c7bf
check is the map containing the lock
2005-09-03 02:21:22 +00:00
Alan Hourihane
01e4364a8f
remove i915_pm code as it causes too many issues with current software
...
suspend, and the DDX driver re-inits the board successfully anyway.
2005-08-22 09:50:12 +00:00
Dave Airlie
54947504ac
allocating the PCIE table from GFP_DMA seems to stop it NMI'ing
2005-08-21 11:07:03 +00:00
Dave Airlie
5c4ce6d93c
add x86_64 to the list as well
2005-08-20 07:38:11 +00:00
Dave Airlie
d12768f79a
remove checks that make ppc64 not work properly... also fix ppc64 check..
...
we should be safe doing this..
2005-08-20 07:33:07 +00:00
Dave Airlie
2e9bd9ac18
add powerpc64 to the list of archs that this test doesn't make sense on
2005-08-20 07:12:45 +00:00
Dave Airlie
7779659390
revert reversion of a part of a patch from Jon, that I did last night while
...
checking things in in my sleep
2005-08-17 10:48:38 +00:00
Dave Airlie
7af0186f4c
add Egberts 32/64 bit patch (its in kernel already...)
2005-08-16 12:51:57 +00:00
Eric Anholt
8c21b783c3
Port the VIA DRM to FreeBSD. Original patch by Jake, with some cleanup by
...
me to match other drivers and avoid ifdeffing. The linux via_drv.c will
be moved from shared-core to linux-core soon by repocopy.
Submitted by: Jake Burkholder <jake@FreeBSD.org> Tested by: unichrome
2005-08-15 18:07:12 +00:00
Thomas Hellstrom
cdf49e5732
Reverting the previous via security-fix commit, since the assumption of
...
contexts registered with the callers filp was wrong.
2005-08-12 14:19:33 +00:00
Thomas Hellstrom
4931d785ed
Missing symbol export from previous via context check commit.
2005-08-11 13:05:12 +00:00
Thomas Hellstrom
d5e8ab13ff
Security fix on via: Checking that the specified context belongs to the
...
caller on fb / agp memory alloc and free. Otherwise malicious clients
can register allocations on other clients or free memory used by other
clients which will lead to severe memory manager inconsistensies.
2005-08-10 19:46:46 +00:00
Dave Airlie
3a61e9f96c
make some functions static in the savage drm driver
2005-08-07 05:37:25 +00:00
Dave Airlie
fcdb53867d
remove bus address
2005-08-07 04:38:11 +00:00
Dave Airlie
99c3f88c69
Fix bug in return to userspace resctx code
...
From: Egbert Eich <eich@suse.de>
2005-08-05 13:04:21 +00:00
Eric Anholt
c789ea1521
Rename the driver hooks in the DRM to something a little more
...
understandable: preinit -> load postinit -> (removed) presetup ->
firstopen postsetup -> (removed) open_helper -> open prerelease ->
preclose free_filp_priv -> postclose pretakedown -> lastclose
postcleanup -> unload release -> reclaim_buffers_locked version ->
(removed)
postinit and version were replaced with generic code in the Linux DRM
(drivers now set their version numbers and description in the driver
structure, like on BSD). postsetup wasn't used at all. Fixes the savage
hooks for initializing and tearing down mappings at the right times.
Testing involved at least starting X, running glxgears, killing
glxgears, exiting X, and repeating.
Tested on: FreeBSD (g200, g400, r200, r128) Linux (r200, savage4)
2005-08-05 03:50:23 +00:00
Jon Smirl
143622a987
Implement permanent sarea maps
2005-08-04 14:48:43 +00:00
Jon Smirl
28e123eb3a
Tighten up AGP security. Verify that all uses of AGP are done inside
...
buffers that have been allocated from AGP. This includes some new
capable(CAP_SYS_ADMIN) checks, these functions are also protected by
the root requirement on the IOCTL macros.
2005-08-04 14:39:25 +00:00
Jon Smirl
ea2c7a895d
Split the control of master vs root priv. Everything is still marked as
...
needing root.
2005-08-04 13:15:27 +00:00
Eric Anholt
ab59dd285c
Add latest r300 support from r300.sf.net CVS. Patch submitted by volodya,
...
with BSD fix from jkim and the r300_reg.h license from Nicolai Haehnle.
Big thanks to everyone involved!
2005-07-20 21:17:47 +00:00
Eric Anholt
026e12ea93
Add .cvsignore file.
2005-07-19 20:59:57 +00:00
Jon Smirl
7130662aa0
IRQ must be assigned and enabled or this will hang
2005-07-11 18:27:39 +00:00
Jon Smirl
04fea06002
Simplify the sysfs code
2005-07-03 18:07:03 +00:00
Jon Smirl
d41af11ee3
Add sysfs attribute dri_library_name on Linux. code in share-core/via_drv.c
...
is ok to be shared, it will be passive on BSD.
2005-07-03 17:16:12 +00:00
Jon Smirl
e2ba08d283
release can happen before dev->ctxlist is allocated
2005-06-30 16:00:35 +00:00
Ian Romanick
1b4ce02506
Remove the AGP requirement from Makefile and Kconfig for MGA. Remove the
...
AGP requirement from Kconfig for SIS. There never was a requirement in
Makefile, and Eric Anholt confirms that the Makefile was correct.
2005-06-29 23:20:30 +00:00
Alan Hourihane
eeaeefca54
add remaining calls
2005-06-29 13:19:47 +00:00
Alan Hourihane
fc83d76e5a
add i915_ioc32.c
2005-06-29 13:13:22 +00:00
Alan Hourihane
6496c5d1e7
silence warning
2005-06-29 13:00:29 +00:00
Dave Airlie
6975571c3b
fix some warnings from cross compiler
2005-06-29 12:02:18 +00:00
Dave Airlie
62b55eb433
make r128/mga compile properly on sparc cross-compiler
2005-06-29 11:56:42 +00:00
Alan Hourihane
2b427bee9b
Move to linux specific directory
2005-06-29 11:36:37 +00:00
Dave Airlie
964c57e71f
add mga and r128 32/64 bits
...
This is Egberts code, ported to Pauls framework by me..
2005-06-29 11:22:39 +00:00
Dave Airlie
ae7d8d8a85
these don't need reclaim buffers their release functions handle it
2005-06-29 03:06:47 +00:00
Dave Airlie
2ce5ddec83
Bug in conversion from old DRM to core DRM....
2005-06-29 02:57:18 +00:00
Eric Anholt
5d96c74ff1
- Remove drm_initmap and replace its usage with drm_addmap. This reduces
...
code duplication, and it also hands you the map pointer so you don't
need to re-find it.
- Remove the permanent maps flag. Instead, for register and framebuffer
maps, we always check whether there's already a map of that type and
offset around. Move the Radeon map initialization into presetup (first
open) so it happens again after every takedown.
- Remove the split cleanup of maps between driver takedown (last close) and
cleanup (module unload). Instead, always tear down maps on takedown,
and drivers can recreate them on first open.
- Make MGA always use addmap, instead of allocating consistent memory in
the PCI case and then faking up a map for it, which accomplished nearly
the same thing, in a different order. Note that the maps are exposed to
the user again: we may want to expose a flag to avoid this, but it's
not a security concern, and saves us a lot of code.
- Remove rmmaps in the MGA driver. Since the function is only called during
takedown anyway, we can let them die a natural death.
- Make removal of maps happen in one function, which is called by both
drm_takedown and drm_rmmap_ioctl.
Reviewed by: idr (previous revision) Tested on: mga (old/new/pci dma),
radeon, savage
2005-06-28 20:58:34 +00:00
Dave Airlie
6397722f19
add compat code from Paul Mackerras
2005-06-28 13:02:20 +00:00
Dave Airlie
827806f697
Add compat to Makefile
2005-06-28 12:52:41 +00:00
Dave Airlie
170bf94a36
Add drm and radeon 32/64-bit compat code from Paul Mackerras
2005-06-28 12:50:15 +00:00
Alan Hourihane
b6b270a260
Given that BenH says using the sysdev approach for DRM is bogus, I'll yank
...
the code for it, rather than introducing something that isn't going to
work 100% of the time.
2005-06-28 08:03:33 +00:00
Alan Hourihane
75ba453365
Comment out the .resume function as without programming their dependent
...
registers things tend to lock up in certain situations.
The BIOS repost will fix things up.
2005-06-28 07:34:49 +00:00
Alan Hourihane
e2d76b0642
Reverse the pm_message_t patch for now, it appears that the 2.6.12 release
...
didn't have it.
2005-06-27 15:17:12 +00:00
Alan Hourihane
1a6780348c
Check for 2.6.12 suspend/resume changes (pm_message_t)
2005-06-27 12:39:02 +00:00
Jon Smirl
afdabdabf5
removed dev->sysdev_registered
2005-06-26 13:31:15 +00:00
Jon Smirl
9deb276a06
Ref count the sysdev class to support multiple DRM cards
2005-06-24 22:48:16 +00:00
Jon Smirl
2b845f25c5
Make sysdev class only register when fbdev detected
2005-06-24 21:50:40 +00:00
Jon Smirl
5b0e93de32
More err path clean up for drm_pm Add mandatory sysdev shutdown function
2005-06-24 19:31:06 +00:00
Alan Hourihane
fe42d43a63
Fix the sysdev approach for power management.
...
We need to use the container_of() call to access our device private.
2005-06-24 09:28:50 +00:00
Jon Smirl
7586a655fc
Fix drm_memory_debug.c to compile, doesn't seem to be working Clean up
...
error return path in drm_stub.c
2005-06-23 05:29:16 +00:00
Jon Smirl
4152605ea1
Get the power management hooks into the right place so that everything gets
...
freed correctly.
2005-06-22 05:49:56 +00:00
Jon Smirl
ae2264d3c9
Remove I2C support from radeon driver. Same support is available from
...
radeonfb.
2005-06-19 04:15:58 +00:00
Dave Airlie
71df0eed34
fix up drm_alloc_agp to take a dev arg and not pass crappy agpgart around
2005-06-17 09:09:17 +00:00