Dave Airlie
3664de7395
drm: move some of the OS stuff into the OS header
2007-11-05 12:11:39 +10:00
Ben Skeggs
5092865601
nouveau: Use a sw method instead of notify interrupt to signal fence completion.
2007-11-05 05:46:26 +11:00
Ben Skeggs
9096d50df7
nouveau: disable m2mf buffer move for the moment
2007-11-05 05:15:32 +11:00
Ben Skeggs
0a2ab1a900
nouveau: cleanups
2007-11-05 03:53:46 +11:00
Ben Skeggs
dfa449cf9a
nouveau: vram is bar1
2007-11-05 02:32:46 +11:00
Ben Skeggs
173a5be28f
nouveau: hook up an inital fence irq handler
2007-11-05 02:20:35 +11:00
Dave Airlie
a2e8e294d8
drm: fix oops since user objects..
2007-11-04 11:01:27 +11:00
Jeremy Kolb
998d120a47
nouveau: add darktama's email address to authors section.
2007-11-02 19:47:48 -04:00
Jeremy Kolb
2dc2ee7a5a
nouveau: put it all together.
2007-11-02 19:47:48 -04:00
Jeremy Kolb
c1aa08106e
nouveau: Add darktama's fencing code. Restructure some stuff.
2007-11-02 19:47:48 -04:00
Jeremy Kolb
2c6cbea7de
nouveau: incorporate darktama's buffer object work.
2007-11-02 19:47:47 -04:00
Jeremy Kolb
239e81093f
nouveau: more filling in for ttm. Change copyright since it's based off of radeon code.
2007-11-02 19:47:47 -04:00
Thomas Hellstrom
94c22c3349
User buffer support.
2007-11-02 16:05:25 +01:00
Jeremy Kolb
1b176e7613
nouveau: add missing file.
2007-10-31 21:27:00 -04:00
Jeremy Kolb
9416541fb2
Merge branch 'master' of git+ssh://git.freedesktop.org/git/mesa/drm
2007-10-31 20:14:48 -04:00
Jeremy Kolb
31847b4b62
nouveau: ttm stubs
2007-10-31 20:13:01 -04:00
Dave Airlie
61cbcb5dbe
drm/ttm: add support for cached un-snooped mappings.
...
This mapping allows cached objects to be mapped in/out of the TT space
with the appropriate flushing calls.
It should put back the old CACHED functionality for snooped mappings
2007-11-01 10:34:53 +11:00
Dave Airlie
6b0b2546c2
i915: fix compat code on 965/g33
2007-11-01 02:00:36 +10:00
Dave Airlie
17f0882d50
drm: add chipset flushing via agp support
2007-10-31 11:33:34 +11:00
Dave Airlie
2489062a33
i915: add backwards compat chipset flushing code
2007-10-31 11:27:44 +11:00
Dave Airlie
c106a7d8b9
drm: call driver load after initing agp subsystem
2007-10-31 11:21:05 +11:00
Dave Airlie
50dec29c80
drm/i915: add driver cache flush entry point
...
Use clflush on Intel hardware to flush cached objects.
2007-10-30 17:52:13 +10:00
Kristian Høgsberg
ff5889f831
Move struct drm_drawable_info out of public header file.
2007-10-29 19:32:46 -04:00
Jesse Barnes
1e2a2babab
i915: suspend/resume support
...
Add suspend/resume support to the i915 driver. Moves some of the
initialization into the driver load routine, and fixes up places where we
assumed no dev_private existed in some of the cleanup paths. This allows
us to suspend/resume properly even if X isn't running.
2007-10-26 16:10:02 -07:00
Jesse Barnes
6707ab8626
update DRM sysfs support
...
Make DRM devices use real Linux devices instead of class devices, which are
going away. While we're at it, clean up some of the interfaces to take
struct drm_device * or struct device * and use the global drm_class where
needed instead of passing it around.
2007-10-26 16:08:54 -07:00
Thomas Hellstrom
1681189e11
Buffer flags and masks are 64-bit.
...
don't mask off the high dword.
Signed-off-by: Thomas Hellstrom <thomas-at-tungstengraphics-dot-com>
2007-10-26 10:27:30 +02:00
Thomas Hellstrom
b9d9c30474
Tighten permissions on some buffer manager ioctls.
...
Set bo init minor to 0.
Add the version function to header.
2007-10-25 10:29:15 +02:00
Thomas Hellstrom
11f3e5e53f
Buffer manager:
...
Implement a version check IOCTL for drivers that don't use
drmMMInit from user-space.
Remove the minor check from the kernel code. That's really up
to the driver.
Bump major.
2007-10-25 10:12:21 +02:00
Thomas Hellstrom
b5cad27e05
Fix buffer object flag / mask checking.
2007-10-25 09:49:33 +02:00
Thomas Hellstrom
07706c9b79
Merge branch 'master' into drm-ttm-finalize
2007-10-25 09:24:45 +02:00
Roel Kluin
07abc3384e
missing mutex unlock bug
2007-10-25 16:50:23 +10:00
Thomas Hellstrom
3d4b32e916
Remove duplicate file.
2007-10-22 19:16:39 +02:00
Thomas Hellstrom
824330d0e6
Don't clobber the unfenced list with DONT_FENCE operations.
2007-10-22 19:09:36 +02:00
Thomas Hellstrom
4ebe7471cb
Disable i915 accelerated blit copy moves for now until we can
...
guarantee that it doesn't clash with the X server.
2007-10-21 12:31:00 +02:00
Thomas Hellstrom
3b19b50cb5
Remove the need for the hardware lock in the buffer manager.
...
Add interface entry cleaning a memory type without touching NO_EVICT buffers.
2007-10-21 12:20:56 +02:00
Thomas Hellstrom
48b5eaf303
Simple replacement for hardware lock in some cases.
...
Fix i915 since last commit.
2007-10-20 16:49:43 +02:00
Thomas Hellstrom
c0e3537e77
Some comment updates pending removal of the init mutex.
2007-10-19 16:44:12 +02:00
Thomas Hellstrom
733ff56834
No fence_class argument on drmBOSetStatus since it's not
...
associated with a particular command submission.
2007-10-19 16:28:47 +02:00
Thomas Hellstrom
cf2d1bba55
Remove the clean_unfenced function.
...
Change the restriction that non-creators can't change the buffer flags to
non-creators can't change EVICT and NO_MOVE flags.
2007-10-19 16:24:36 +02:00
Thomas Hellstrom
bb29ba7fa7
Only allow creator to change shared buffer mask.
2007-10-17 10:59:48 +02:00
Thomas Hellstrom
086c058a41
Remove the op ioctl, and replace it with a setuser ioctl.
...
Remove need for lock for now.
May create races when we clean memory areas or on takedown.
Needs to be fixed.
Really do a validate on buffer creation in order to avoid problems with
fixed memory buffers.
2007-10-17 10:59:48 +02:00
Thomas Hellstrom
0d1926d36e
Revert "Replace NO_MOVE/NO_EVICT flags to buffer objects with an ioctl to set pinning."
...
This reverts cf2d569dac
commit.
2007-10-17 10:59:48 +02:00
Thomas Hellstrom
cd276d9cab
Revert "Copy the important parts of object_validate into object_create()."
...
This reverts f9c27aa50b
commit.
2007-10-17 10:59:48 +02:00
Thomas Hellstrom
12b989a710
Revert "Remove the pinned buffer from the LRU when pinning."
...
This reverts 3a0bc518e3
commit.
2007-10-17 10:59:48 +02:00
Michel Dänzer
db1709f2f3
Revert part of earlier commit that caused an unresolved symbol for i915.
2007-10-16 15:10:22 +02:00
Kristian Høgsberg
a69c85fec8
Drop destroy ioctls for fences and buffer objects.
...
We now always create a drm_ref_object for user objects and this is then the only
things that holds a reference to the user object. This way unreference on will
destroy the user object when the last drm_ref_object goes way.
2007-10-16 22:03:05 +11:00
Kristian Høgsberg
dccefba71a
Take bo type argument out of the ioctl interface.
...
The buffer object type is still tracked internally, but it is no longer
part of the user space visible ioctl interface. If the bo create ioctl
specifies a non-NULL buffer address we assume drm_bo_type_user,
otherwise drm_bo_type_dc. Kernel side allocations call
drm_buffer_object_create() directly and can still specify drm_bo_type_kernel.
Not 100% this makes sense either, but with this patch, the buffer type
is no longer exported and we can clean up the internals later on.
2007-10-16 22:03:05 +11:00
[utf-8] Kristian Høgsberg
440fc5113e
Eliminate support for fake buffers.
2007-10-16 21:59:38 +11:00
Arthur Huillet
9d779e2c88
nouveau: mandatory "oops I forgot half of the files" commit
2007-10-12 22:40:08 +02:00
Dave Airlie
604f02ff61
i915: check mask instead of flags for buffer fence types
2007-10-12 09:46:11 +10:00
Ian Romanick
fc7d4d19d3
Eliminate trailing whitespace from last commit.
2007-10-10 15:27:07 -07:00
Ian Romanick
83da774b19
Fix command list submission on big-endian.
2007-10-10 15:25:47 -07:00
Thomas Hellstrom
d4680333dc
Only add native-type on EXE signals. Otherwise flush flags may
...
get out of sync.
2007-10-10 09:31:51 +02:00
Dave Airlie
19b7cc3444
Merge branch 'pre-superioctl-branch'
2007-10-05 12:11:43 +10:00
Maarten Maathuis
b510517d59
nouveau: Switch over to using PMC_BOOT_0 for card detection.
2007-10-04 09:31:46 +02:00
Maarten Maathuis
5ca12104f8
linux-drm: Obey device class requirements when detecting devices.
2007-10-04 09:24:48 +02:00
Dave Airlie
495bbbaadc
drm: fix page count calculation
...
Also no need to do pre-populate work on single page
2007-10-04 16:13:22 +10:00
Ian Romanick
0379919e99
Use 'ifdef __BIG_ENDIAN' instead of 'if __BIG_ENDIAN'
2007-10-03 14:12:16 -07:00
Ian Romanick
7f99fd5d7a
First round of byte-ordering fixes for PowerPC.
...
This isn't 100% as command submission via PCI-e GART buffers doesn't work.
I've hacked around that for the time being. This is essentially the code
that was used at the POWER.org event to show Bimini.
2007-10-03 14:08:29 -07:00
Dave Airlie
b0473699ed
ttm: returning into dummy causes a buffer object leak
...
as nobody ever derefs dummy, however not returning does the deref
correctly.
2007-10-02 15:48:28 +10:00
Pekka Paalanen
aa135ba8e8
nouveau: rename nv30_graph.c to nv20_graph.c
2007-09-30 22:16:01 +03:00
Pekka Paalanen
205403aea8
nouveau: nv30 graph function renames, removed nv20_graph.c
...
All nv30 functions in nv30_graph.c that can be used on nv20 are renamed
as accordingly. nv20 specific parts from nv20_graph.c are moved into
nv30_graph.c.
2007-09-30 22:16:01 +03:00
Michel Dänzer
215eab6ccf
Don't build without any optimization on Linux.
...
Building without optimization causes the drm module not to link correctly on
ppc.
2007-09-29 18:07:55 +02:00
Keith Packard
24cdd2f8c4
Allow parallel module compile
2007-09-26 14:25:13 -07:00
Alan Hourihane
b44925b2a5
Add brackets
2007-09-26 16:18:19 +01:00
Alan Hourihane
6671ad1917
don't copy back if an error was returned.
2007-09-26 15:38:54 +01:00
Thomas Hellstrom
c4b3a0f602
Merge branch 'master' into pre-superioctl-branch
...
Conflicts:
linux-core/drm_bo.c
linux-core/drm_fence.c
linux-core/drm_objects.h
shared-core/drm.h
2007-09-25 18:03:31 +02:00
Dave Airlie
bb5516f4f4
drm/ttm: fixup fence class naming and interfaces
...
This is some code for nouveau that Ben Skeggs worked on, and also
fixes the naming (having class in a system header file == C++ keyword == bad plan)
2007-09-25 16:17:17 +10:00
Thomas Hellstrom
54df1b9ff3
Fix pinned buffer fence class.
2007-09-22 14:30:55 +02:00
Thomas Hellstrom
0774090d5b
Fix drm_bo.c compiling.
2007-09-22 13:59:56 +02:00
Thomas Hellstrom
bea727b838
Make nouveau compile on older kernels.
2007-09-22 13:57:21 +02:00
Thomas Hellstrom
da63f4ba0f
Add fence error member.
...
Modify the TTM backend bind arguments.
Export a number of functions needed for driver-specific super-ioctls.
Add a function to map buffer objects from the kernel, regardless of where they're
currently placed.
A number of error fixes.
2007-09-22 13:57:13 +02:00
Eric Anholt
24e33627c5
Merge branch 'bo-set-pin'
...
This branch replaces the NO_MOVE/NO_EVICT flags to buffer validation with a
separate privileged ioctl to pin buffers like NO_EVICT meant before. The
functionality that was supposed to be covered by NO_MOVE may be reintroduced
later, possibly in a different way, after the superioctl branch is merged.
2007-09-21 17:12:19 -07:00
Dave Airlie
bc5423f168
drm_sysfs: update sysfs code from kernel
2007-09-20 14:01:29 +10:00
Eric Anholt
3d3a96ad4e
Merge branch 'origin' into bo-set-pin
2007-09-19 15:55:58 -07:00
Ian Romanick
a3881ad2fe
Add ioc32 compat layer for XGI DRM.
2007-09-18 11:03:49 -07:00
Ian Romanick
e7d4a26913
Fix ioc32 compat layer
...
Previously any ioctls that weren't explicitly listed in the compat ioctl
table would fail with ENOTTY. If the incoming ioctl number is outside the
range of the table, assume that it Just Works, and pass it off to drm_ioctl.
This make the fence related ioctls work on 64-bit PowerPC.
2007-09-18 11:03:08 -07:00
Brian
41345b95a2
Added bool typedef added in kernel 2.6.19
...
This allows the xgi code to compile with older kernels.
2007-09-12 12:05:15 -06:00
Brian
c453135789
Added idr_replace() function which was apparently added in Linux 2.6.18
...
Someone should probably double-check my work here since this is the
first time I've touched drm_compat.[ch]
2007-09-12 11:49:51 -06:00
Ian Romanick
c597bd57ee
Bump version to 1.0.0.
2007-09-06 15:20:52 -07:00
Ian Romanick
fee49e2071
Merge branch 'master' of ssh+git://git.freedesktop.org/git/mesa/drm into xgi-0-0-2
2007-08-31 10:54:55 -07:00
Ian Romanick
bb3da88601
Acutally emit the IRQ (duh) when setting the fence post.
2007-08-31 10:48:13 -07:00
Ian Romanick
9c5b9d458b
Use ati_pcigart for PCI-e GART table handling.
2007-08-29 14:41:49 -07:00
Ian Romanick
c46ffd6b29
Fix late night dumb-dumb mistake.
2007-08-29 00:23:30 -07:00
Ian Romanick
2bcd5b5e33
Use DRM_SPINLOCK / DRM_UNSPINLOCK macros.
2007-08-29 00:04:18 -07:00
Dave Airlie
589707b765
drm: remove XFREE86_VERSION macros
2007-08-28 15:17:36 +10:00
Ian Romanick
3383e8bd6b
Remove unnecessary include.
2007-08-17 10:53:18 -07:00
Ian Romanick
0d3c741df1
Forgot to add this file on the last commit.
2007-08-16 13:43:04 -07:00
Eric Anholt
0055fd5c35
Merge branch 'master' into bo-set-pin
2007-08-16 09:23:09 -07:00
Ian Romanick
d8a800b63d
Implement fence support.
2007-08-15 21:05:26 -07:00
Eric Anholt
b668d6d905
Fix dev->agp->base initialization on BSD, and fix addmap range check on Linux.
...
With the previous linux commit, an AGP aperture at the end of the address space
would have wrapped to 0 and the test would have failed.
2007-08-15 14:29:31 -07:00
Ben Skeggs
c3faa589b0
nouveau: Allow GART notifiers when using sgdma code.
2007-08-15 13:36:54 +10:00
Ian Romanick
f563a50d14
Eliminate unused / useless ioctls.
2007-08-14 13:44:51 -07:00
Ian Romanick
7b12174aac
Clean up remaining C++ style comments.
2007-08-14 13:24:02 -07:00
Ian Romanick
d3c8e98dd9
Move dwWriteReg to xgi_cmdlist.c, the only file where it is used.
2007-08-14 13:20:37 -07:00
Ian Romanick
be76f0eea9
Remove unused interrupt related functions.
2007-08-14 13:19:48 -07:00
Ian Romanick
891714d8d7
Clean up xgi_(en|dis)able_(mmio|ge) and move to xgi_misc.c.
2007-08-14 13:18:44 -07:00
Eric Anholt
3ee211f4f7
Bug #11895 : Only add the AGP base to map offset if the caller didn't.
...
The i830 and newer intel 2D code adds the AGP base to map offsets already,
because it wasn't doing the AGP enable which used to set dev->agp->base.
Credit goes to Zhenyu for finding the issue.
2007-08-13 16:32:32 -07:00
Ian Romanick
15f841bd52
Strobe magic 0xB03F register to flush PCI-e GART table.
...
The original XGI kernel driver strobed 0xB03F each time a page was
allocated to back a GART page. When the driver was converted to use
the DRM SG interface, this code was lost. Returning it fixes a long
standing issue where the X-server would work fine the first time, but
acceleration commands would be ignored on the second X-server
invocation.
2007-08-13 16:21:20 -07:00
Ian Romanick
20a0e5e429
After calling drm_sman_cleanup, mark both heaps as uninitialized.
...
Since the heaps weren't marked as uninitialized, SG memory was never
re-allocated. This prevented the X-server from being able to restart
without re-loading the kernel module.
2007-08-09 18:57:15 -07:00