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
Jon Smirl
0569fe7a52
Fix 810/830 build
2005-06-17 04:47:30 +00:00
Alan Hourihane
53e950b344
Force AGP always for Intel chipsets.
...
Fixes bug #3552
2005-06-16 19:58:00 +00:00
Ian Romanick
72cfc797b5
Adds support for PCI cards to MGA DRM
...
This patch adds serveral new ioctls and a new query to get_param query to
support PCI MGA cards.
Two ioctls were added to implement interrupt based waiting. With this
change, the client-side driver no longer needs to map the primary DMA
region or the MMIO region. Previously, end-of-frame waiting was done by
busy waiting in the client-side driver until one of the MMIO registers
(the current DMA pointer) matched a pointer to the end of primary DMA
space. By using interrupts, the busy waiting and the extra mappings are
removed.
A third ioctl was added to bootstrap DMA. This ioctl, which is used by the
X-server, moves a *LOT* of code from the X-server into the kernel. This
allows the kernel to do whatever needs to be done to setup DMA buffers.
The entire process and the locations of the buffers are hidden from
user-mode.
Additionally, a get_param query was added to differentiate between G4x0
cards and G550 cards. A gap was left in the numbering sequence so that,
if needed, G450 cards could be distinguished from G400 cards. According
to Ville Syrjälä, the G4x0 cards and the G550 cards handle
anisotropic filtering differently. This seems the most compatible way
to let the client-side driver know which card it's own. Doing this very
small change now eliminates the need to bump the DRM minor version
twice.
http://marc.theaimsgroup.com/?l=dri-devel&m=106625815319773&w=2
A number of ioctl handlers in linux-core were also modified so that they
could be called in-kernel. In these cases, the in-kernel callable
version kept the existing name (e.g., drm_agp_acquire) and the ioctl
handler added _ioctl to the name (e.g., drm_agp_acquire_ioctl).
This patch also replaces the drm_agp_do_release function with
drm_agp_release. drm_agp_release (drm_core_agp_release in the previous
patch) is very similar to drm_agp_do_release, and I saw no reason to
have both.
This commit *breaks the build* on BSD. Eric said that he would make the
required updates to the BSD side soon.
Xorg bug: 3259 Reviewed by: Eric Anholt
2005-06-14 22:34:11 +00:00
Ian Romanick
dfc650bd80
Completely re-initialize DMA settings
...
There were two problems. First, the 'warp' and 'primary' pointers weren't
cleared, so mga_do_cleanup_dma, which gets called multiple times, would
try to ioremapfree them multiple times. This resulted in the new error
messages to syslog. The second problem was the, since the dev_private
structure isn't reallocated and cleaned out in mga_do_init_dma, when
the server is reloaded idle-waits would wait for impossible values.
I have given this patch some more riggorous testing. This includes:
- Load module, start server, run GL app, stop server, unload module.
- Load module, start server, run GL app, stop server, unload module, reload
module, restart server, run GL app.
- Load module, start server, run GL app, stop server, restart server, run
GL app, stop server, unload module.
In all three cases, everything worked as expected. Please let me know if
there are any further regressions with this patch.
Xorg bug: 3408 Reported by: Chris Rankin
2005-06-09 21:18:56 +00:00
Jon Smirl
1252890ff1
drm_mem_init should be done at core load, not driver init
2005-06-09 13:22:12 +00:00
Alan Hourihane
246c617c87
Fix copyrights
2005-06-06 09:18:44 +00:00
Dave Airlie
805a07714f
misc cleanup patch from Adrian Bunk
2005-06-04 06:18:11 +00:00
Eric Anholt
9cad6fb4e0
Bugzilla #3217 : Create a new __drm_pci_free which is used internally in
...
linux-core to free pci memory without freeing the structure. Linux-core
internals often create pci dma handle structures on the stack due to
the lack of a drm_local_map_t to store them in properly. Fix the
original drm_pci_free to actually free the dma handle structure instead
of leaking it.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
2005-05-28 20:36:22 +00:00
Eric Anholt
d7756397d6
Bugzilla #3217 : The size field in the new dma handle structure was
...
uninitialized, and its use in drm_pci_free later resulted in panics.
Signed-off-by: Sergey Vlasov <vsu@altlinux.ru>
2005-05-28 20:25:04 +00:00
Alan Hourihane
54fbf85125
Actually check for drm_fb_loaded before trying to initialize the sysdev
...
approach.
2005-05-28 00:08:53 +00:00
Alan Hourihane
45f1db8db9
Re-implement the power management.
...
There's two choices when fb is or isn't loaded as we treat ourselves as a
PCI driver in the latter case.
If we are a PCI driver, then register the suspend/resume functions
directly. If not, then we register as a sysdev and pick up the
suspend/resume actions and pump them down into a generic *power
function.
It'll be nice when this little mess is sorted out with regard to being a
real PCI driver ;-/
2005-05-28 00:00:08 +00:00
Ian Romanick
4a84416c45
Modify drm_driver::device_is_agp to return a tri-state value to indicate
...
that a device absolutely is, absolutely is not, or may or may not be
AGP. Modify the i915 DRM to use this to force all i9x5 devices to be
"AGP" (even the PCI-e devices).
Reported by: Lukas Hejtmanek
2005-05-27 23:42:11 +00:00
Ian Romanick
a686be5bc8
Change the MGA initialization and cleanup a bit. The dev_private structure
...
is now allocated (and partially filled in) by the new
mga_driver_preinit function.
This allows the driver to detect the type of card (i.e., G200 class vs.
G400 class) on its own. The chipset value passed to mga_dma_init is now
ignored. This same technique is used by the radeon DRM.
As a result of this, mga_driver_pretakedown was converted to
mga_driver_postcleanup. This routine gets called in some other places
than might be expected, and it sets the dev_private pointer to NULL.
That little gem took over an hour to track down. :(
2005-05-21 02:27:51 +00:00
Ian Romanick
fced784140
Refactor common, boilerplate ioctl code from drm_addbufs_* functions into
...
drm_addbufs. This makes the code more like the BSD code, and makes the
drm_addbufs_* functions callable in-kernel.
Reviewed by: Dave Airlie
2005-05-20 00:17:40 +00:00
Felix Kuehling
6d4b9a830b
Savage doesn't require AGP any more. Enable build even without CONFIG_AGP.
2005-05-17 02:08:02 +00:00
Ian Romanick
e051cd19c0
Added device_is_agp callback to drm_driver. This function is called by the
...
platform-specific drm_device_is_agp function. Added implementation of
this function the the Linux-specific portion of the MGA driver to
detect PCI G450 cards. Added code to the Linux-specific portion of the
generic DRM layer to not initialize AGP infrastructure if the card is
not AGP (this matches what already existed in BSD).
Bumped the driver date and the driver patch-level for MGA.
This mostly fixes bugzilla #3248 . The BSD side still needs an
implementation of mga_driver_device_is_agp.
2005-05-16 17:37:10 +00:00
Eric Anholt
ec111d70fe
Convert BSD code to mostly use bus_dma, the dma abstraction for dealing
...
with IOMMUs and such. There is one usage of the forbidden vtophys()
left in drm_scatter.c which will be fixed up soon. This required a KPI
change for drm_pci_alloc/free() to return/use a drm_dma_handle_t that
keeps track of os-specific bits, rather than just passing around the
vaddr/busaddr/size.
Submitted by: Tonnerre Lombard (partially) Tested on: FreeBSD: Rage128
AGP/PCI Linux: Savage4 AGP/PCI
2005-04-26 05:19:11 +00:00
Thomas Hellstrom
699d4ad53a
A fix for a locking bug which is triggered when a client tries to lock with
...
flag DMA_QUIESCENT (typically the X server), but gets interrupted by a
signal. The locking IOCTL should then return an error, but if
DMA_QUIESCENT succeeds it returns 0, and the client falsely thinks it
has the lock. In addition The client waits for DMA_QUISCENT and
possibly DMA_READY without having the lock.
2005-04-20 18:50:49 +00:00
Dave Airlie
b0c461c8e3
Revert last commit, it affect via things
2005-04-19 00:31:16 +00:00
Adam Jackson
0a5e02c7b5
Add skeletal imagine driver (but don't build it yet).
2005-03-29 01:47:38 +00:00
Thomas Hellstrom
532ccb98b5
Via updates:
...
New PCI command parser. Moved from via_dma.c to via_verifier.c so functions
with similar functionality are close to eachother.
Moved video related functions to via_video.c, which might be extended in
the future, as new video functionality is added.
New device-specific generic IRQ IOCTL, similar to the general VBLANK IOCTL,
but with support for multiple device IRQ sources and functionality.
Support for Unichrome Pro PM800/CN400 video DMA commands in verifier and
PCI parser.
Support for Unichrome Pro PM800/CN400 HQV IRQs in the new generic IRQ
IOCTL.
Bumped minor. New version 2.6.0.
2005-03-28 21:21:42 +00:00
Dave Airlie
c6161eff86
Description: Rather than use custom code in DRM_WAIT_ON() to do exactly
...
what wait_event_interruptible_timeout() does, use the function and just
change the return values appropriately.
Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
2005-03-27 07:05:28 +00:00
Dave Airlie
385f927692
Some ia64 platforms may not support write combining on all type of memory,
...
so we need to consult the EFI memory map before we try to set the write
combine attribute of a page. This patch will try to map a page write
combined if it's not an AGP page and the EFI memory map says it's ok,
otherwise it falls back to a regular, uncached mapping. Can someone
please apply this to the drm tree?
From: Jesse Barnes
2005-03-27 06:58:12 +00:00
Dave Airlie
956a701544
fix up AGP multi-head support for kernel 2.6.12
2005-03-25 09:48:34 +00:00
Dave Airlie
2ad8387428
verify_area is deprecated, replaced by access_ok. Seems I missed this one
...
when I did the big overall conversion.
Signed-off-by: Jesper Juhl <juhl-lkml@dif.dk>
2005-03-25 09:47:36 +00:00
Dave Airlie
ca04fbc7ba
fix bug with XFree86 4.3 on core drm
...
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-03-25 09:05:10 +00:00
Dave Airlie
c8d2d5d419
3dfx DRM depends on PCI
...
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2005-03-25 09:02:20 +00:00
Dave Airlie
df6ef4836e
For 2.6.12 and 2.6.11.x:
...
Remove incorrect "drm_"-prefix from parameter description.
Signed-off-by: Magnus Damm <damm@opensource.se>
2005-03-25 09:01:27 +00:00
Dave Airlie
7d3c42b589
Fix for bug 2673 from Egbert Eich - memset the version
2005-03-08 23:47:11 +00:00
Eric Anholt
81459d6e50
Close a race which could allow for privilege escalation by users with DRI
...
privileges on Radeon hardware. Essentially, a malicious program could
submit a packet containing an offset (possibly in main memory) to be
rendered from/to, while a separate thread switched that offset in
userspace rapidly between a valid value and an invalid one.
radeon_check_and_fixup_offset() would pull the offset in from user
space, check it, and spit it back out to user space to be copied in
later by the emit code. It would sometimes catch the bad value, but
sometimes the malicious program could modify it after the check and get
an invalid offset rendered from/to.
Fix this by allocating a temporary buffer and copying the data in at once.
While here, make the cliprects stuff not do the VERIFYAREA_READ and
COPY_FROM_USER_UNCHECKED gymnastics, avoiding a lock order reversal on
FreeBSD. Performance impact is negligible -- no difference on r200 to
~1% improvement on rv200 in quake3 tests (P4 1Ghz, demofour at
1024x768, n=4 or 5).
2005-02-08 04:17:14 +00:00
Dave Airlie
dc4defe742
Invalid bound check of driver defined ioctls in drm_ioctl
...
Bug 2489 Reporter: Aapo Tahkola <aet@rasterburn.org>
2005-02-07 22:55:54 +00:00
Dave Airlie
03ddea5b27
change DRIVER_ to CORE_ makes things look nicer, also change it so the
...
driver name is marked on resource allocations
2005-02-07 11:20:43 +00:00
Dave Airlie
300e0866d6
fix agp detection on linux
2005-02-07 10:44:28 +00:00
Eric Anholt
080a547d4d
- Implement drm_initmap, and extend it with the resource number to help
...
FreeBSD. Add drm_get_resource_{start|len} so linux-specific stuff
doesn't need to be in shared code.
- Fix mach64 build by using __DECONST to work around passing a const
pointer to useracc, which is unfortunately not marked const.
- Get rid of a lot of maplist code by not having dev->maplist be a pointer,
and by sticking the link entries directly in drm_local_map_t rather
than having a separate structure for the linked list.
- Factor out map uninit and removal into its own routine, rather than
duplicating in both drm_takedown() and drm_rmmap().
- Hook up more driver functions, and correct FreeBSD-specific bits of
radeon_cp.c, making radeon work.
- Baby steps towards using bus_space as we should.
2005-02-05 08:00:14 +00:00
Dave Airlie
1dd948f280
make functions static in i915, remove unused functions
2005-02-01 10:43:42 +00:00
Dave Airlie
62e0a58ecf
update i830 similiar to the kernel, add statics
2005-02-01 10:33:51 +00:00
Dave Airlie
8d4c731aa1
make more functions static in i810 and fix pageflip cleanup
2005-02-01 10:18:27 +00:00
Dave Airlie
41cbbb47af
fix radeon drv
2005-01-29 23:05:35 +00:00
Dave Airlie
311da0f212
hopefully fix drm_core setversion ioctl... pointed out by Eric on irc
2005-01-24 01:05:07 +00:00
Alan Hourihane
9620a0b8bb
Fix cut & paste problem
2005-01-19 10:03:33 +00:00
Dave Airlie
37318f1675
remove duplicate drm_sysfs.o
2005-01-16 07:49:55 +00:00
Dave Airlie
354dd17d25
The patch makes drmAddBufs/drmMapBufs can handle buffers in video memory
...
The attached patch adds a new buffer type DRM_FB_BUFFER. It works like AGP
memory but uses video memory.
From: austinyuan@viatech.com.cn (fd.o bug 1668) Signed-off-by: Dave Airlie
<airlied@linux.ie>
2005-01-16 05:40:12 +00:00
Felix Kuehling
ffc51f1f32
Setup MTRRs for frame buffer and aperture manually on Savage3D and
...
Savage4-based cards. Automatic setup in drm_initmap doesn't work due to
the weird alignment and size of the aperture.
2005-01-15 16:55:01 +00:00
Felix Kuehling
d4a8f16eb6
Use virt_to_page instead of vmalloc_to_page in drm_do_vm_shm_nopage for
...
consistent pages allocated with drm_pci_alloc.
2005-01-12 16:07:49 +00:00
Jon Smirl
6e38fd3576
Adjust 4 level page check for <= 2.6.10
2005-01-09 17:30:44 +00:00
Thomas Hellstrom
fb6a4d0a7d
via updates: moved the verifier state struct to dev_priv. Implemented AGP
...
alignment check.
2005-01-07 11:37:01 +00:00
Jon Smirl
c6c7496ca0
Adjust drm-memory for 4 level page tables in 2.6.10 ifdef'd to use 3 levels
...
in kernels older than 2.6.10
2005-01-06 17:09:22 +00:00
Felix Kuehling
04842e8bcf
Completeley rewritten Savage DRM which can be considered secure (modulo
...
implementation errors). Direct hardware (MMIO, BCI) access is no longer
needed in the Mesa driver. Bumped version to 2.0.0. Corresponding
changes to the DDX and Mesa drivers are being committed.
2005-01-01 20:22:58 +00:00
Felix Kuehling
ed165a2529
Added a new DRM map type _DRM_CONSISTENT for consistent PCI memory. It uses
...
drm_pci_alloc/free for allocating/freeing the memory. Only implemented
in the Linux DRM so far.
2005-01-01 20:03:15 +00:00
Dave Airlie
fe4ade81bb
i810/i830 bug with Jon's file operations changes
2005-01-01 12:07:51 +00:00
Dave Airlie
b4782ba76b
Use wbinvd macro instead of assembly for it,
...
From: Stefan Dirsch <sndirsch@suse.de> Signed-off-by: Dave Airlie
<airlied@linux.ie>
2004-12-10 11:53:24 +00:00
Thomas Hellstrom
98d01f9542
Patch from Jon Smirl from Nov. 2nd that makes older X servers behave well
...
with linux-core. Without this, they will fail on their second
invocation since the drm already has a busID assigned.
Submitted by: Jon Smirl
2004-12-07 12:18:47 +00:00
Thomas Hellstrom
267e064527
Added 3D functionality to the via command verifier. Modified the via
...
ring-buffer code somewhat to workaround hardware problems. Bumped via
minor version number.
2004-12-03 23:03:36 +00:00
Dave Airlie
f0a86288fa
patch from bug 1803 - will try and push to kernel soon
2004-11-11 11:09:11 +00:00
Jon Smirl
4b4df875b2
Fix more build problems on linux-core
2004-11-09 16:58:02 +00:00
Jon Smirl
76b1a7f2b4
make linux-core build again
2004-11-09 03:36:06 +00:00
Eric Anholt
cb5aaa8987
Convert more drivers for bsd-core, moving the ioctl definitions to shared
...
code. Remove the "drv" from sisdrv, as it's unnecessary. Use the
drm_pci functions in i915 instead of per-os implementations of the
same. Avoid whitespace within fields in drm_pciids.txt (one of the r300
definitions), since it breaks the bsd pciids script. Tested on sis,
mga, r128. i915 needs more work.
2004-11-06 23:02:07 +00:00
Jon Smirl
000c8eb18e
Fix Linux build. Why won't this complile? extern int const foo; static
...
struct drm_driver driver = { .var = foo }; error says foo is not
constant
2004-11-06 16:41:24 +00:00
Eric Anholt
c9202c8965
Commit WIP of BSD conversion to core model. Compiles for r128, radeon, but
...
doesn't run yet. Moves the ioctl definitions for these two drivers back
to the shared code -- they aren't OS-specific.
2004-11-06 01:41:47 +00:00
Jon Smirl
39a23640b2
Move ati_pcigart shared routines into drm-core module
2004-11-05 17:29:14 +00:00
Felix Kuehling
5128542814
Allow drivers to override reclaim_buffers in an OS-independent way by
...
passing drm_device_t* as first parameter, like in the BSD version.
2004-10-31 15:16:44 +00:00
Jon Smirl
816a291709
Switch SPIN_LOCK_UNLOCKED to spin_lock_init()
2004-10-29 17:09:54 +00:00
Jon Smirl
c611cb9f17
Add include of moduleparam.h
2004-10-29 14:38:07 +00:00
Jon Smirl
b974e2cd68
Break poll() to make it match the Xserver's broken expectations.
2004-10-28 15:52:31 +00:00
Jon Smirl
b37efdadca
Round 2 of getting rid of inter_module_get()
2004-10-23 18:12:34 +00:00
Jon Smirl
43cbf43a5f
Revert symbol_get() changes from drm_drv
2004-10-23 14:43:06 +00:00
Dave Airlie
4b29f85768
fix inter module put/get
2004-10-23 14:00:53 +00:00
Dave Airlie
1473556e06
actually 2.6.10 introduced pfn range so it should work now..
2004-10-23 07:02:29 +00:00
Dave Airlie
182a0e5dac
fix pfn vs page for older kernels (2.6.9-rc kernels many not work..)
2004-10-23 06:59:15 +00:00
Jon Smirl
9ea6fe7aa6
Prepare to eliminate inter_module_get("agp")
2004-10-23 04:21:27 +00:00
Jon Smirl
ad87dd8427
Bring in patch from kernel for remap_pfn_range
2004-10-22 16:03:21 +00:00
Jon Smirl
d76f734f68
Fix up the radeon i2c error handing
2004-10-21 16:58:28 +00:00
Jon Smirl
17ce33835a
Don't release an i2c channel that has not initialized correctly
2004-10-20 16:23:42 +00:00
Jon Smirl
7ebbebf3d3
Switch linux-core from using dev->pdev->driver->name to
...
dev->driver->pci_driver.name. This avoids the stealth mode case where
pdev is pointing to the wrong driver or no driver.
2004-10-20 05:11:49 +00:00
Jon Smirl
5ae6c5af75
Fix dd vs di version typo in drm_setversion
2004-10-20 04:41:38 +00:00
Jon Smirl
157a814be6
Add a protective check against a possible buffer overflow
2004-10-19 18:18:02 +00:00
Jon Smirl
bcfbd73536
Fix missing I2C busses to be non-fatal error.
2004-10-19 16:30:02 +00:00
Jon Smirl
ca1ec9268f
drm-core, Clean up bug error path on stealth mode exit
2004-10-19 02:50:14 +00:00
Jose Fonseca
0d89b19325
Update Doxygen configuration & comments.
2004-10-18 14:16:41 +00:00
Jon Smirl
a8b2c94c18
Remove drm_init.c
2004-10-15 20:37:01 +00:00
Jon Smirl
91aa32742c
Move drm_cpu_valid out of drm_init. drm_init is empty now.
2004-10-15 20:36:15 +00:00
Jon Smirl
fa50e2b513
Switch linux-core over to 2.6 parameter model to enable debug use
...
drm_debug=1
2004-10-15 02:59:35 +00:00
Jon Smirl
5e8838fd11
Add a poll function that alternates between zero and normal poll return to
...
bring DRM into conformance with normal poll().
2004-10-13 16:40:53 +00:00
Jon Smirl
ad70dc676e
Breakout heads into their own data structures.
2004-10-12 03:59:17 +00:00
Jon Smirl
ad549c5ae6
Rename fn_tbl to driver. Core driver now uses pci_driver name which
...
reflects the personality name.
2004-10-10 22:54:55 +00:00
Dave Airlie
efcb9fb7ae
fix up whitespacing in Kconfig
2004-10-09 11:16:20 +00:00
Dave Airlie
e09229d6c8
remove unused dma remnants that were gamma only - these could cause an oops
...
on via
2004-10-09 10:58:19 +00:00
Jon Smirl
3981f17227
Fix refcount bug in stealth mode
2004-10-08 14:31:25 +00:00
Jon Smirl
61d36f6179
Revert back to drm_order() instead of using kernel get_order(). The
...
functions are not identical.
2004-10-06 16:27:55 +00:00
Dave Airlie
4dbc1e8728
Patch for Kconfig for making i830/i915 not build together
2004-10-05 12:12:01 +00:00
Jon Smirl
6dee8401a6
enable the device in the right order, remove __devinit from drm_int
2004-10-05 02:58:14 +00:00
Jon Smirl
e17abf5d5d
Make the debug memory functions compile for the core model.
2004-09-30 23:47:45 +00:00
Jon Smirl
a36a6a291d
Remove DRM() macros from core ffb driver. DaveA says he'll make it compile
...
someday.
2004-09-30 21:27:59 +00:00
Jon Smirl
9f9a8f1382
Lindent of core build. Drivers checked for no binary diffs. A few files
...
weren't Lindent's because their comments didn't convert very well. A
bunch of other minor clean up with no code implact included.
2004-09-30 21:12:10 +00:00
Jon Smirl
368493edc9
savage.h not used in core builds
2004-09-30 21:06:53 +00:00
Jon Smirl
e1d74a9899
core ffb.h is not used anymore
2004-09-30 20:46:59 +00:00
Jon Smirl
b3d70ad6a7
Remove unused drm_module.h
2004-09-30 20:25:13 +00:00
Jon Smirl
1c0a437fa2
Move things around to reduce public symbols and even out files. Switch to
...
get_order from drm_order.
2004-09-30 19:26:35 +00:00
Jon Smirl
3aef3841d0
Make fops per driver instead of global, remove default flush, poll, read
...
functions
2004-09-30 18:13:33 +00:00
Jon Smirl
0bff0d9eb6
Getting the AGP module is a global resource. Make sure a dual PCI/AGP
...
driver doesn't release it on unload since an AGP driver may also be
loaded.
2004-09-28 22:25:06 +00:00
Jon Smirl
6d6526fdf9
core needs three new files
2004-09-27 19:53:51 +00:00
Jon Smirl
fa6b1d129e
First check in for DRM that splits core from personality modules
2004-09-27 19:51:38 +00:00
Jon Smirl
77fa7b9548
Flip the 2.4 check so that it looks for 2.6 instead. This will allow builds
...
where we can't determine the version through.
2004-09-27 15:42:48 +00:00
Jon Smirl
1d6392f1fd
Makefile reminder to build in 2.6 when on 2.6
2004-09-24 04:21:21 +00:00
Jon Smirl
74f063fc9d
Create new linux-2.6 build. Move all gpl files into the 2.6 build. If you
...
edit files for 2.6 be sure and break the link to the 2.4 directory and
copy the cvs history.
2004-09-24 03:12:17 +00:00
Jon Smirl
36a257cfe9
Remove 2.6 code that allow DRM major device number to be shared. We can add
...
it back later if needed. Checked DRM on both 2.4 and
2.6 to ensure that it builds and runs.
2004-09-23 17:22:27 +00:00
Jon Smirl
55c5e24089
Add new sysfs support files
2004-09-23 05:40:05 +00:00
Jon Smirl
c158a36c4c
1) switches from class_sysfs to drm sysfs implementation to allow
...
customization
2) compiles again on 2.4, but doesn't work
2004-09-23 05:39:15 +00:00
Felix Kuehling
af326f6f0c
Create permanent maps of framebuffer, aperture and MMIO registers. Added
...
chipset-type information in driver data field of Savage PCI-IDs. Added
missing PCI-ID 0x8d03 (ProSavageDDR on Pentium boards). Don't require
AGP.
2004-09-22 22:51:18 +00:00
Jon Smirl
27fc998f7d
Remove hotplug reset support from DRM driver. This will be handled by the
...
VGA driver when it gets written.
2004-09-22 19:13:02 +00:00
Jon Smirl
2ad068005a
Make DRM permanent maps match broken X behavior. X is mapping regions that
...
are both smaller and larger than what the hardware supports. If DRM
tries to fix these requests X will fail.
2004-09-21 05:13:21 +00:00
Jon Smirl
6f31c42fe9
Remove size restriction on permanent addmap
2004-09-20 19:23:27 +00:00
Jon Smirl
59cc1d8256
Felix's fix for map request smaller than permanent map size
2004-09-20 17:09:26 +00:00
Dave Airlie
5654880eee
remove HAVE_COUNTERS
2004-09-20 11:29:16 +00:00
Dave Airlie
fa75a81c9a
another fix after the macro stuff
2004-09-20 10:45:53 +00:00
Jon Smirl
c15b1d15ff
Fix from: Nishanth Aravamudan replace direct assignment with
...
__set_current_state()
2004-09-18 16:44:43 +00:00
Jon Smirl
0c6fb0fbe1
Add linux sysfs i2c support to radeon driver. This patch adds GPL licensed
...
files to the linux build but not to the BSD directories.
2004-09-17 04:02:28 +00:00
Jon Smirl
c7c9d3ef7b
Let's try adding the dyn-minor patch again. This patch will reuse minor
...
numbers if a card is hotplugged in/out instead of just having them
increase.
2004-09-16 18:42:03 +00:00
Jon Smirl
5dfd89ae0a
Fix drm_scatter to properly report it's availability
2004-09-16 14:32:17 +00:00
Jon Smirl
eeb0ef1a70
Back dyn-minor patch out for now. fops handling is broken on some cards
2004-09-15 17:44:30 +00:00
Jon Smirl
941d2cf431
Don't use module_param if it isn't defined in older kernels.
2004-09-15 16:06:50 +00:00
Jon Smirl
64ef12c55c
Dynamic device minor support. Minor device numbers will be reused if the
...
device is hotplugged in/out of the system
2004-09-15 00:20:21 +00:00
Jon Smirl
13cb3f1b00
Fix error path in probe() to release resources if there is an error.
2004-09-12 19:24:08 +00:00
Jon Smirl
15407efd46
Make the comment match the code
2004-09-12 03:30:30 +00:00
Jon Smirl
36050cc958
Fix DRM to compile cleanly with recent kernel changes in PCI IO and
...
DRM_COPY_FROM_USER. PCI IO changes in 2.6.9-rc1 bk currently.
2004-09-12 03:23:50 +00:00
Jon Smirl
e6d468ad7f
More general patch to mark resources in use by all DRM drivers. Makes the
...
code Linux specific.
2004-09-10 16:44:28 +00:00
Jose Fonseca
1fb27632c3
Update doxygen configuration file. Minor documentation updates/fixes.
2004-09-08 20:57:39 +00:00
Jon Smirl
3bf785c912
Adjust permanent mapping code to account for more than one framebuffer map
2004-09-08 01:49:06 +00:00
Dave Airlie
c33f4449fc
missed fix as part of last checkin
2004-09-05 23:33:57 +00:00
Dave Airlie
eeae6a0a38
merge back bunch of whitespace and misc changes from kernel
2004-09-05 10:54:59 +00:00
Dave Airlie
f96e00595d
bad code copy for alpha.. fix the member names
2004-09-05 10:10:34 +00:00
Dave Airlie
3dcbc1f4a1
make the AMD64 check a compat thing
2004-09-05 02:36:48 +00:00
Dave Airlie
4499ea42ea
Fixup OS_HAS_AGP/OS_HAS_MTRR along lines of patches going to kernel, as
...
suggested by Arjan..
Signed-off-by: Dave Airlie <airlied@linux.ie>
2004-09-04 23:21:40 +00:00
Dave Airlie
3d9e16aa6e
doh.. that makes no sense.. thinko in removal of OS_HAS_AGP
2004-09-04 13:15:40 +00:00
Dave Airlie
838bb7af71
oops called ctor instead of dtor.. found this on the kernel merge
2004-09-02 12:33:03 +00:00
Jon Smirl
a070d15b53
Fix ref count problem in stealth mode. pci_get_subsys() with last parameter
...
set does the pci_dev_put for you.
2004-09-02 04:11:27 +00:00
Dave Airlie
da6b448497
implement drm_core_check_feature and use it .. looks lots nicer
2004-08-30 11:34:51 +00:00
Dave Airlie
7809efc8c3
drm-memory patch, cleans up alloc/free and makes calloc look more libc like
2004-08-30 09:01:50 +00:00
Dave Airlie
0844f3e9f3
add context include so fn are defined
2004-08-29 12:39:17 +00:00
Dave Airlie
b9c82926bc
fix up some small things ffb (no idea if it works or not ..)
2004-08-29 12:37:11 +00:00
Dave Airlie
55c6e72306
remove hacky context thing that was gamma only
2004-08-29 12:17:26 +00:00
Dave Airlie
1430163b4b
Drop GAMMA DRM from a great height ...
2004-08-29 12:04:35 +00:00
Dave Airlie
6916572c1c
fixup issue caused by fntbl-2 merge
2004-08-29 10:09:23 +00:00
Jon Smirl
4a89c75456
Initialize pdev to NULL correctly so that pci_get_subsys() will work.
2004-08-28 23:59:51 +00:00
Dave Airlie
73e606753f
run i915 through lindent
2004-08-27 09:14:30 +00:00
Dave Airlie
019fd38a3c
__NO_VERSION__ hasn't been needed since 2.3 days ditch it...
2004-08-27 09:11:07 +00:00
Jon Smirl
60f23ebc5c
Make DRM detect vesafb and revert to stealth mode to avoid resource
...
conflicts
2004-08-27 02:26:07 +00:00
Dave Airlie
d4dbf45781
Merged drmfntbl-0-0-2
2004-08-24 11:15:53 +00:00
Dave Airlie
eac498baea
addmap-base-2 patch from Jon Smirl:
...
sets up the DRM to have the ability to have permanent maps while the driver
is loaded...
2004-08-24 10:43:45 +00:00
Erdi Chen
25e319c1ef
This patch adds three new ioctl's to the VIA Unichrome/Pro DRM driver:
...
DRM_IOCTL_VIA_DMA_INIT DRM_IOCTL_VIA_CMDBUFFER DRM_IOCTL_VIA_FLUSH
The first ioctl sets up an area in AGP memory that will be used as the ring
buffer. The second ioctl copies a command buffer from user space memory
to the ring buffer. The third ioctl waits for engine idle until it
returns.
The motivation for this patch is to avoid the wait for engine idle call
before each buffer flush in the current DRI driver. With this patch,
the DRI driver can continue to flush its buffer as long as there is
free space in the ring buffer.
This patch adds an additional copy operation on the command buffer. This
buffer copying is necessary to support multiple DRI clients rendering
simultaneously. Otherwise, more CPU time will be spent in the busy loop
waiting for engine idle between DRI context switch. Even in the single
client case, the tradeoff is reasonable in comparision to the kernel
call to check for free buffer space for the client to render directly
to the ring buffer.
2004-08-24 01:44:37 +00:00
Dave Airlie
5c9ed83094
Merged drmfntbl-0-0-1
2004-08-17 13:10:05 +00:00
Dave Airlie
02ef96053c
2.6.8.1 has changed the links in /lib/modules
2004-08-17 10:36:46 +00:00
Jon Smirl
c360d6f4f2
Fix warning about unused ddev variable
2004-08-15 15:46:28 +00:00
Jon Smirl
23bbff24aa
Add dev to DRIVER_CTX_DTOR( dev, pos->handle) so that sis driver will
...
compile #if 0 get_pci_driver use in hotplug function until fbdev work
around is written
2004-08-15 15:35:14 +00:00
Eric Anholt
dd83f39f03
Add a "dev" argument to DRIVER_CTX_[CD]TOR. This will be used in an
...
upcoming commit for the SiS driver.
2004-08-14 00:46:15 +00:00
Dave Airlie
ecf1458b2c
minor patch from Jon Smirl : sets up some things for later use
2004-08-11 09:07:36 +00:00
Dave Airlie
9277f9eef3
Patch from Jon Smirl to add attribute field to the pciids, and use this for
...
certain radeon combinations - intel drivers can probably use this for
dual head capable devices etc..
2004-08-10 11:14:07 +00:00
Dave Airlie
42e9187460
2.4 compat
2004-08-04 10:56:48 +00:00
Dave Airlie
be3e54bc15
2.4 hotplug compat
2004-08-04 10:53:21 +00:00
Dave Airlie
4f8f02a192
fix for drm in /proc - from Jon Smirl
2004-08-03 09:21:11 +00:00
Jon Smirl
5e7e41819e
Add a hotplug event to DRM. Parameters match the ones from the general PCI
...
hotplug event plus the addition of one requesting RESET. Put your
scripts in /etc/hotplug.d/drm to run. kernel class_simple generates the
ADD/REMOVE events. No cards currently request RESET, the flag is there
to stop you from resetting your boot display.
2004-07-31 15:45:00 +00:00
Dave Airlie
dc4508c338
athe patch below optimises the drm code to not do put_user() on memory the
...
kernel allocated and then mmap-installed to userspace, but instead
makes it use the kernel virtual address directly instead.
From: Arjan van de Ven <arjanv@redhat.com>
2004-07-31 07:25:58 +00:00
Dave Airlie
02df04d71d
sync up with current 2.6 kernel bk tree - mostly __user annotations
2004-07-25 08:47:38 +00:00
Dave Airlie
1f132b7849
whitespace merge with kernel
2004-07-25 05:52:22 +00:00
Dave Airlie
c54ba5691a
if the driver has already register don't do another intermodule register
2004-07-25 05:41:44 +00:00
Dave Airlie
6ba31fb481
Patch from Tom Arbuckle for missing bus_address
2004-07-25 05:36:45 +00:00
Dave Airlie
6ed7e36f4c
another logic error returns 0 or greater for success
2004-07-22 12:07:13 +00:00
Dave Airlie
ea2155a2e1
ATI Rage 128 and Radeon DRM unconditionally depend on PCI
...
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2004-07-21 09:36:16 +00:00
Dave Airlie
c9911beb09
add some more debugging fix ++ and --
2004-07-21 09:30:43 +00:00
Dave Airlie
a776c5ec04
first set of __user annotations from kernel (Al Viro)
2004-07-20 12:43:12 +00:00
Dave Airlie
9266bf5301
Kconfig update add i915 bring over some stuff from kernel
2004-07-20 11:35:29 +00:00
Dave Airlie
b20b00d4bc
add x86_64 architecture defines from kernel (leave AMD64 defines in for
...
backwards compat)
2004-07-20 11:26:13 +00:00
Dave Airlie
fdb6ae31cb
fix some more NULLs from kernel
2004-07-20 11:22:26 +00:00
Dave Airlie
7ee263b94f
attempt to clean up stub_register, register_chrdev isn't good enough to
...
make the decision for multiple cards with one drm ..
2004-07-20 10:59:02 +00:00
Dave Airlie
8efddd01e8
sparse cleanups from kernel: Al Viro
2004-07-15 13:03:55 +00:00
Dave Airlie
bb5112b616
Fix reference counting for stub for new Linux PCI probe
2004-07-14 12:34:55 +00:00
Dave Airlie
e86fc9f47f
allow O= usage for Linux 2.6 kernel building in another directory
2004-07-14 12:14:37 +00:00
Dave Airlie
6c16cbd404
split out backwards compat into a separate file makes it easier for merging
...
to 2.6
2004-07-11 10:17:34 +00:00
Dave Airlie
f9e2fe8470
fix issue in 2.4 kernels with returning NULL from this function
2004-07-11 09:58:49 +00:00
Jon Smirl
6e4bf5ead5
Add two items to Makefile clean XFree86 bug: Reported by: Submitted by:
...
Reviewed by: Obtained from:
2004-07-08 20:18:10 +00:00
Dave Airlie
3c9fb37e65
fixes from kernel for 0 vs NULL - mika
2004-07-05 11:56:51 +00:00
Dave Airlie
87832bc81a
fix bug with pci_disable_device in the wrong place (Paul Mackerras) remove
...
hack code from me..
2004-06-21 11:46:52 +00:00
Dave Airlie
1ee210e3b5
dirty hack to make mach64 work, (don't worry I'll get around to fixing it
...
asap..)
2004-06-12 02:30:52 +00:00
Keith Whitwell
373d67702c
A few changes for recent redhat.
2004-06-10 12:48:35 +00:00
Keith Whitwell
0faa00ae64
i915 drm module
2004-06-10 12:47:50 +00:00
Dave Airlie
cfa5bf3129
The dev->devname being passed to request_irq in drm_irq.h is null. With the
...
old DRM interface, the devname was set in DRM(setunique), but with the
current DRM interface >=1.1 the devname is not being set in
DRM(set_busid).
From: Alan Swanson Approved-by: Dave Airlie <airlied@linux.ie>
2004-06-07 01:42:35 +00:00
Dave Airlie
024fd4b150
2.4 compat
2004-05-30 23:38:08 +00:00
Dave Airlie
412f9909c6
fixes from kernel: Make users of page->count use the provided macros
2004-05-30 23:34:23 +00:00
Dave Airlie
8350382cb1
another 2.4 fix
2004-05-18 09:46:31 +00:00
Dave Airlie
df6c37fc88
2.4 compat fix
2004-05-18 09:42:22 +00:00
Dave Airlie
a1160ba279
do some real testing and fix the DRM initialising and unloading
2004-05-10 11:16:26 +00:00
Dave Airlie
a2f7a9fa5f
Commit sysfs and drm PCI changes for 2.6 kernel
2004-05-09 06:45:17 +00:00
Dave Airlie
0b481856dd
use drm.. not dri for class...
2004-05-03 00:06:04 +00:00
Dave Airlie
a9d2438999
fix 2.4 build
2004-05-02 13:03:51 +00:00
Dave Airlie
a3612f450b
better device class support from Jon Smirls patches..
2004-05-02 12:27:17 +00:00
Dave Airlie
d40443534c
Add __user annotations from kernel
2004-04-22 12:41:43 +00:00
Dave Airlie
87812e82f4
add sparc ffb files from kernel just to keep things in sync
2004-04-22 11:31:55 +00:00
Dave Airlie
2d9bbba0e1
bug from Linux kernel list caught by checker
2004-04-21 12:18:42 +00:00
Dave Airlie
93bd67ef62
centralise pci ids into one place and use scripts to generate files for
...
kernel
2004-04-21 12:13:31 +00:00
Michel Daenzer
0f32a88527
Move Makefile.linux to Makefile.
...
Get rid of Makefile juggling hacks which are no longer necessary.
2004-04-18 22:59:01 +00:00
Dave Airlie
6fa5c5d958
more files for mach64
2004-04-12 05:44:16 +00:00
Dave Airlie
873e1c4d38
Add mach64 to the trunk
2004-04-12 05:27:40 +00:00
Dave Airlie
7e0f883501
include highmem.h
2004-04-10 13:25:30 +00:00
Dave Airlie
e375a3dc10
patch from Andrew Morton tree from Arjan van de Ven fixes some oopses seen
...
with 4G/4G split
2004-04-10 08:15:48 +00:00
Dave Airlie
23ec8875fc
align code with Linux kernel.
2004-04-10 07:41:19 +00:00
Dave Airlie
6aad146173
remove unused code
2004-04-10 07:39:00 +00:00
Dave Airlie
fd47335798
update from linux kernel for ia64
2004-04-10 07:36:30 +00:00
Alan Hourihane
ce601f3647
disable PCI DMA ioctls as they are not used currently until SAVAGE_CMD_DMA
...
is made to work.
2004-04-08 23:19:15 +00:00
Dave Airlie
c47597b484
big whitespace .. this aligns all the whitespace in this file with the bk
...
checkout linux tree
2004-04-08 14:15:36 +00:00
Dave Airlie
13724f032e
2.6 sysfs patches + stubs in drmP.h for 2.4 compatibility
2004-04-08 13:11:04 +00:00
Dave Airlie
c3e2685e82
long dev_t patches from 2.6 tree
2004-04-08 12:25:31 +00:00
Dave Airlie
9cff4b45e7
2.6 patches for larger dev_t
2004-04-08 12:22:22 +00:00
Dave Airlie
3e0f3c1fbb
more 2.4 compat fns
2004-04-08 12:20:39 +00:00
Dave Airlie
1bc7576474
patch from Linux kernel 2.6.5
2004-04-08 12:09:10 +00:00
Dave Airlie
ee2889ec0d
patch from lk
2004-04-08 11:26:52 +00:00
Thomas Hellstrom
994fa063cd
VIA module fixes:
...
1. Fixed up PCI-id's.
2. Fixed 2.6 warning in kernel Makefile.
2004-03-31 22:05:57 +00:00
Thomas Hellstrom
9b7bf9127e
Added via driver to drm/linux/Config.in Reported by: Terry Barnaby
2004-03-26 13:42:48 +00:00
Thomas Hellstrom
1da595d797
Exported symbols cause compilation failure of via_mm.c on 2.4 kernels.
...
Added via_mm.o to export-objs:
Reported by: HMX, Via Arena Forum
2004-03-24 23:22:22 +00:00
Thomas Hellstrom
b15deb2392
Modified linux/Kconfig to include the via drm driver.
2004-03-24 10:07:37 +00:00
Thomas Hellstrom
89d67d9087
Merged via-1-2-0: Altered Makefiles in drm/linux
2004-03-23 21:14:17 +00:00
Jon Smirl
0b6f155dbd
Add a missing ifdef CTX to get rid of the waring in the gamma driver build.
...
XFree86 bug: Reported by: Submitted by: Reviewed by: Obtained from:
2004-03-16 00:52:24 +00:00
Jon Smirl
24115068e4
Fixes need to clean up the mess I made with the mesa merge. This code
...
allows the mesa drivers to use a single definition of the DRM
sarea/IOCTLS located in the drm driver directory. Adjustments were made
to the 2D drivers to not include these changes. Changes to the mesa
copy of DRM were copied to the DRI copy. XFree86 bug: Reported by:
Submitted by: Reviewed by: Obtained from:
2004-03-12 21:22:52 +00:00
Michel Daenzer
f47ed99143
Remove extraneous code accidentally added with revision 1.86
2004-02-28 14:29:44 +00:00
Michel Daenzer
b61f07def3
More differentiated error codes for DRM(agp_acquire)
...
Obtained from: Linux kernel
2004-02-28 11:52:19 +00:00
Felix Kuehling
ce21dca4aa
Use DO_MUNMAP_4_ARGS macro defined in Makefile.linux (Steve Holland).
...
Silence a warning about a format-argument mismatch in printk.
2004-02-24 14:24:07 +00:00
Felix Kuehling
3dea36d843
Merged the Savage DRM driver from the savage-2-0-0-branch into the trunk.
2004-02-22 16:20:16 +00:00
Felix Kuehling
d0031f22cf
Conditionally add definition of list_for_each_entry_safe for kernel
...
versions that don't have it.
2004-02-21 19:54:51 +00:00
Keith Whitwell
82157579b5
drm_ctx_dtor.patch Submitted by: Erdi Chen
2004-02-20 22:55:12 +00:00
Michel Daenzer
2b9c12ef83
Adapt to nopage() prototype change in Linux 2.6.1.
...
Reviewed by: Arjan van de Ven <arjanv@redhat.com>, additional feedback from
William Lee Irwin III and Linus Torvalds.
2004-01-11 00:14:28 +00:00
Eric Anholt
9fb6986e83
Don't ioremap the framebuffer area. The ioremapped area wasn't used by
...
anything, and took up valuable KVA. While I'm in the area, clean up BSD
MTRR stuff some more.
Suggested by: jonsmirl
2003-12-16 08:57:08 +00:00
Eric Anholt
1f7598245a
Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it if
...
dev->lock.hw_lock is already set. This fixes the case of two X Servers
running on the same head on different VTs with interface 1.1, by making
the 2nd head fail to inizialize like before.
2003-11-06 04:48:06 +00:00
Alan Hourihane
a41a479f74
Changes to DRM(irq_install)...... wrap dev->dma usage with __HAVE_DMA in
...
irq handler, fixes kernel ooops. comment out some setting of flags that
are done in DRM(setup) (not sure why both of the above is done in the
irq handler)
2003-11-05 20:47:28 +00:00
Eric Anholt
66c9e3053f
- Tie the DRM to a specific device: setunique no longer succeeds when given
...
a busid that doesn't correspond to the device the DRM is attached to.
This is a breaking of backwards-compatibility only for the
multiple-DRI-head case with X Servers that don't use interface 1.1.
- Move irq_busid to drm_irq.h and make it only return the IRQ for the
current device. Retains compatibility with previous X Servers, cleans
up unnecessary code. This means no irq_busid on !__HAVE_IRQ, but can be
changed if necessary.
- Bump interface version to 1.2. This version when set signifies that the
control ioctl should ignore the irq number passed in and enable the
interrupt handler for the attached device. Otherwise it errors out when
the passed-in irq is not equal to the device's.
- Store the highest version the interface has been set to in the device.
- Fix a recursion on DRM_LOCK in irq_uninstall on FreeBSD. This leaves
irq_uninstall being done without the lock in some cases, but it was
racey anyways.
2003-11-05 08:13:52 +00:00
Michel Daenzer
2655ccddf4
Memory layout transition:
...
the 2D driver initializes MC_FB_LOCATION and related registers sanely
the DRM deduces the layout from these registers
clients use the new SETPARAM ioctl to tell the DRM where they think the
framebuffer is located in the card's address space
the DRM uses all this information to check client state and fix it up if
necessary
This is a prerequisite for things like direct rendering with IGP chips and
video capturing.
2003-11-04 00:46:05 +00:00
Jon Smirl
e4a2a9c040
Switch pci enumeration call to work on both 2.4 and 2.6 pci_for_each_dev is
...
not supported on 2.6
2003-10-24 17:40:54 +00:00
Eric Anholt
b79d1b341f
Move to "old-style" probing as documented in linux/Documentation/pci.txt.
...
This should resolve the probe problems with radeon framebuffer due to
pci_driver attachment being exclusive.
2003-10-23 05:56:13 +00:00
Eric Anholt
06cb132e86
- Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the
...
server or client to notify the DRM that it expects a certain version of
the device dependent or device independent interface. If the major
doesn't match or minor is too large, EINVAL is returned. A major of -1
means that the requestor doesn't care about that portion of the
interface. The ioctl returns the actual versions in the same struct.
- Introduce DRM DI interface version 1.1. If the server requests version
1.1, then the DRM sets the unique itself according to the busid of the
device it probed, which may then be accessed as normal using getunique.
- Request version 1.1 in libdrm's drmOpenByBusID, allowing the X Server to
request based on a BusID. Introduce a wrapper for DRM_IOCTL_SET_VERSION
and bump libdrm minor version.
- Pass the busid in DRIScreenInit if libdrm can handle both a busid and
name. This allows drmOpenByBusID to be used to find the DRM instead of
just the driver name, which allows us in the future to tie a DRM more
strongly to the device it probed to. Introduce a function
DRICreatePCIBusID which creates a busid in the form pci:oooo:bb:dd.f
similar to linux's pci_name() function. This matches the format used by
the DRM in version 1.1. libdrm knows how to match both this format and
the old PCI🅱️ d:f format.
- Use the new DRICreatePCIBusID function in the *_dri.c to request the new,
more exact busid format.
2003-10-23 02:23:31 +00:00
Eric Anholt
86e6325e5a
- Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to
...
get the drm_file_t * based on the filp passed in ioctl handlers.
- Use this macro on BSD for simplification and improve its error reporting.
Make failure to find the drm_file_t * print as an error, not debug.
This failure may be part of the problem with KDE.
- Make debug and error print macros include the pid on BSD.
2003-10-22 22:08:53 +00:00
Eric Anholt
63ce8af555
Fix probing on 2.5+ kernels, which require that drivers have .id_table set.
...
We use PCI_ANY_ID to ask that our probe is called for every available
device.
Submitted by: jonsmirl
2003-10-19 20:06:03 +00:00
Eric Anholt
2950f9e682
- Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them
...
from __HAVE_DMA. This will be useful for adding vblank sync support to
sis and tdfx. Rename dma_service to irq_handler, which is more
accurately what it is.
- Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have
the right number of underscores. This may have been a problem in the
case that the server died without doing its DRM_IOCTL_CONTROL to
uninit.
2003-10-17 05:13:48 +00:00
Eric Anholt
ff58476011
- Converted Linux drivers to initialize DRM instances based on PCI IDs, not
...
just a single instance. Moved the PCI ID lists from <card>_drv.c in BSD
to <card>.h. The PCI ID lists include a driver private field, which may
be used by drivers for chip family or other information. Based on work
by jonsmirl.
- Make tdfx_drv.c and tdfx.h match other drivers.
- Fixed up linking of sis shared files.
Tested with Radeon and SiS on Linux and FreeBSD, including a Linux setup
with
2 SiS cards in a machine, but only one head being used (with DRI)
2003-10-17 03:14:39 +00:00
Leif Delgass
5d4b137076
Fix typo in SiS help message (and testing cvs commit to
...
dri.freedesktop.org)
2003-09-28 21:27:09 +00:00
Eric Anholt
28aee7fb1c
Whitespace cleanup (spaces before tabs or instead of tabs).
2003-09-25 23:04:10 +00:00
Eric Anholt
a0a38f8bd6
Fix Kconfig for SiS DRM now that it doesn't require sisfb.
...
Submitted by: Linus Torvalds <torvalds@osdl.org>
2003-09-25 19:08:11 +00:00
Alan Hourihane
c5168016cc
linux drm fixes
2003-09-12 20:00:59 +00:00
Eric Anholt
a7aebb6dac
Add DRM(calloc), which is convenient, used by the new sis code, and takes
...
advantage of M_ZERO on BSDs.
2003-08-29 19:16:13 +00:00
Michel Daenzer
ba804e7864
Remove superfluous TLB flush
2003-08-28 12:14:17 +00:00
Michel Daenzer
9d7b01ebbe
Merge from 2.6 kernel (Linus Torvalds)
2003-08-15 10:31:54 +00:00
Dave Airlie
a073ff7dc7
DA: loads of whitespace .. some from Linus, some from me
2003-08-15 01:05:24 +00:00
Dave Airlie
428cbe0b91
DA: patch from Matthew upgraded to latest DRI head to solve issue with i810
...
compatibility
2003-08-13 23:35:40 +00:00
Dave Airlie
447d8c56bb
DA: code cleanups for i810_dma.c from 2.4 kernel
2003-08-11 01:46:02 +00:00
Michel Daenzer
e7944efc45
build fix for kernels >= 2.6
2003-08-07 10:13:50 +00:00
Michel Daenzer
da16867c84
Fix maplist entries being used after they were freed; thanks to Benjamin
...
Herrenschmidt for tracking this down
2003-08-06 11:46:21 +00:00
Michel Daenzer
4b60cae90e
IRQ code cleanup suggested by Linus Torvalds
...
i830 build fix
2003-07-29 10:11:48 +00:00
Michel Daenzer
bef7017749
Compile fixes for recent 2.5/2.6 Linux kernels. I hope this doesn't break
...
the i830 driver or the BSDs. :)
2003-07-25 10:50:39 +00:00
Michel Daenzer
32ef0f59a8
Fail in DRM(agp_acquire) if the AGP aperture can't be used, such that the X
...
server falls back to PCI GART or disables the DRI gracefully
2003-07-25 10:31:37 +00:00
Keith Whitwell
3669639b21
Restore __HAVE_KERNEL_CTX_SWITCH, required for the sparc drm module in the
...
kernel tree. Added comments to that effect.
2003-07-11 15:27:55 +00:00
Dave Airlie
1654bc5752
DA: fix for bug 484 in Bugzilla, originally from me, reworked by David
...
Dawes to avoid backword incompatibilities...
2003-07-09 23:21:15 +00:00
Keith Whitwell
2daf147652
Removed unused __HAVE_KERNEL_CTX_SWITCH, whatever that was.
2003-07-08 17:10:13 +00:00
Leif Delgass
39e1c534c0
Don't need to include linux/wrapper.h - we only use Set/ClearPageReserved
...
from linux/mm.h now and wrapper.h has been removed in 2.5.69 and later.
2003-07-04 18:31:42 +00:00
Jose Fonseca
93522f6d3a
Revert the janitorial - that works is now on the new branch
...
newdrm-0-0-1-branch.
2003-06-19 00:09:52 +00:00
Jose Fonseca
fdf320a1b8
Move the linux AGP includes into drm_agp.h and only define the AGP data
...
structures if AGP support is enabled in the kernel (__REALLY_HAVE_AGP).
This fixes the compile errors on kernels without AGP support.
2003-06-14 15:18:49 +00:00
Dave Airlie
f723f743c5
fix pitch compile error
2003-06-07 01:44:15 +00:00
Dave Airlie
8eaa2d2450
add page flipping support to the DRM, up version number to 1.3.0...
2003-06-05 23:31:40 +00:00
Jose Fonseca
8e7cd92f35
Added the Doxygen configuration file. Minor documentation fixes.
2003-06-03 23:50:23 +00:00
Jose Fonseca
6611a5fb7f
Split declarations/definitions in drm_scatter.h into drm_sg.h/drm_sg_tmp.h
...
respectively. Splited the work out of the ioctls and renamed (with the
_ioctl prefix). Added some more documentation. Did the same for
drm_sgpsupport.h.
2003-06-03 23:27:01 +00:00
Leif Delgass
ccf6d6a513
Restore DRM_*MEMORYBARRIER change reverted with documentation merge
2003-05-28 01:44:49 +00:00
Jose Fonseca
d2443b2186
Merged DRM documentation.
2003-05-27 00:37:33 +00:00
Michel Daenzer
b942999b59
do allow reading from read only mappings...
2003-05-17 00:37:34 +00:00
Michel Daenzer
e5d3c7f260
Support AGP bridges where the AGP aperture can't be accessed directly by
...
the CPU (David Mosberger, Benjamin Herrenschmidt, myself, Paul
Mackerras, Jeff Wiedemeier)
2003-05-16 23:41:27 +00:00
Leif Delgass
7e1a4bfab3
remove unused variables
2003-04-29 16:59:00 +00:00
Leif Delgass
5f1e2399eb
Restore Eric Anholt's DRM_*MEMORYBARRIER changes from rev 1.11
2003-04-28 17:49:26 +00:00
Leif Delgass
a57d320461
Only free original pagelist in addbufs_pci if one already exists (fixes
...
oops).
2003-04-28 16:20:31 +00:00
Alan Hourihane
6eb5364eb8
DRM_READ/WRITEMEMORYBARRIER was given an argument in the bsd tree, fix for
...
linux
2003-04-28 15:29:46 +00:00
Keith Whitwell
c584292e30
Put back __HAVE_KERNEL_CTX_SWITCH for David Miller's sparc drm driver
...
(which doesn't live in our cvs).
2003-04-27 09:53:58 +00:00
Eric Anholt
766a1da2e5
Remove the map argument from DRM_*MEMORYBARRIER. Not all of the uses of
...
DRM_*MEMORYBARRIER we had were related to an MMIO space. This means
arch-specific code on the BSDs, unfortunately. Also add
DRM_MEMORYBARRIER() and change the DRM_READMEMORYBARRIER()s that used
to be read/write barriers to it.
2003-04-26 23:32:00 +00:00
Leif Delgass
f2a0c5438d
Ensure driver has been initialized (dev_private != NULL) before installing
...
irq handler in DRM(irq_install). Modify all drivers to ensure irq
handler is removed before cleanup and cleanup is called at takedown.
Remove unused buffer private struct fields in i810, i830. Check for
lock on init/cleanup in all drivers except i810/i830. The current DDX
for i810 and i830 doesn't hold the lock on kernel init (FIXME?).
2003-04-26 22:28:56 +00:00
Keith Whitwell
f5844cea13
2.5.x sync patch from Linus Torvalds
2003-04-26 21:33:44 +00:00
Keith Whitwell
2c40a56393
move prototypes for gamma functions to gamma_drv.h
2003-04-26 21:22:08 +00:00
Keith Whitwell
2142b7840a
Remove #if 0'd code
2003-04-26 21:21:36 +00:00
Leif Delgass
cb32dde3be
Fix potential oops and memory leaks when allocations fail in
...
addbufs_agp/pci. Add support for buffer private structs with PCI DMA
buffers. Also some debug format string fixes.
2003-04-25 19:42:47 +00:00
Leif Delgass
16fda821eb
Pass dma handle from pci_alloc_consistent to the card for status page,
...
rather than using virt_to_bus() on the virtual address.
2003-04-24 23:18:33 +00:00
Leif Delgass
d6a82ff9c1
Remove unused dev->map_count. We always iterate the maplist with
...
list_for_each() and the count is not updated or used for stats.
2003-04-24 16:55:22 +00:00
Leif Delgass
cd3d6090b7
Remove unused variables
2003-04-24 15:29:30 +00:00
Keith Whitwell
57406077e5
Move the debug versions of the DRM memory functions to a new file and
...
implement non-debug ones as standard.
2003-04-24 10:02:18 +00:00
Keith Whitwell
a41594e8df
Remove #if 0'd code and some unused string functions
2003-04-24 09:41:33 +00:00
Keith Whitwell
e15b0b6a1b
Install dummy/noop read & poll fops unless the driver has replacements.
2003-04-23 23:42:29 +00:00
Leif Delgass
5ee61c18f4
Remove AGP dependency in kernel config for radeon, sis. Remove
...
PCIGART_ENABLED define for radeon, pcigart support now included for any
arch.
2003-04-22 21:30:24 +00:00
Alan Hourihane
9c5d16216d
remove unused variable
2003-04-22 12:42:22 +00:00
Keith Whitwell
73e20998b4
Rename drm_lists.h to gamma_lists.h
2003-04-22 12:14:59 +00:00
Keith Whitwell
928c25d14f
Move the excitingly named DRM(flush_block_and_flush) and friends to
...
gamma-specific code.
Fix templates so i8x0 drivers don't have to define __HAVE_DMA_WAITLIST.
2003-04-22 12:07:24 +00:00
Keith Whitwell
aba6bf7eb3
remove unused __HAVE_KERNEL_CTX_SWITCH code
2003-04-22 11:39:34 +00:00
Keith Whitwell
a1780925fb
Move a chunk of gamma-specific code out of drm_dma.h. Remove unused
...
'DRM_FLAG_NOCTX' option.
2003-04-22 11:31:55 +00:00
Keith Whitwell
056762a910
remove unused dma histogram code
2003-04-22 10:18:29 +00:00
Keith Whitwell
5141da97f6
Move a bunch of gamma-specific code into a gamma-specific file. Restore the
...
kooky DRM(write_string) code for gamma.
2003-04-22 10:13:14 +00:00
Keith Whitwell
fc4fb6b51b
remove DRM read, poll and write_string
2003-04-22 08:06:14 +00:00
Leif Delgass
46e06192a8
Check for NULL map before calling DRM(ioremapfree) on cleanup. Prevents an
...
oops if a map wasn't found (e.g. XFree86 Bugzilla #108 )
2003-04-21 16:07:17 +00:00
David Dawes
da35a90d99
Add a Kconfig file as used in recent 2.5.x kernels.
2003-04-17 18:52:05 +00:00
David Dawes
21af320287
Make Config.in look more like a recent 2.4.x kernel version.
2003-04-17 18:48:06 +00:00
David Dawes
dbb7beb51d
Rework the Linux drm kernel module build to leverage off the standard
...
kernel build system. This is based on suggestions and examples from
David Woodhouse. This approach has the advantage that the build
requirements of a wider range of standard kernels are now supported
transparently, but the disadvantage of some extra complexity to handle
building against clean vendor-distributed kernel source trees. This has
been tested with some recent Red Hat and SuSE distributions.
2003-04-17 18:44:38 +00:00
David Dawes
c2d7ff1bf9
Bring some drm module changes over from the XFree86 trunk:
...
- Reset 'bound' flag for an agp entry after undbind succeeded in
drm_agpsupport.h (Egbert Eich).
- Ignore hw_lock for drm device if lock was set by a different instance (ie
Xserver) to prevent second server from spinning in driver release
function (currently only relevant for i8xx drm drivers) (David Dawes).
- Use the agpgart "key" for the unique handle for bindings rather than the
memory address (the key is guaranteed to be unique) (David Dawes).
2003-04-17 18:41:28 +00:00
David Dawes
d1b7f551e6
Fix DRM module build on 2.5.41 and later kernels (tqueue -> workqueue).
2003-04-17 15:27:34 +00:00
Leif Delgass
10444e06d4
Use list_entry() to get container struct from struct list_head pointers.
...
Build fix for RedHat 9 kernel (5 args to remap_page_range()).
2003-04-08 01:30:43 +00:00
Leif Delgass
3f7769921b
add 'SG' map type identifier string (pci scatter/gather) to /proc vm info
2003-04-05 19:49:16 +00:00
Leif Delgass
8e51112fe0
Warning fix (use %p format for filp)
2003-03-31 04:14:35 +00:00
Eric Anholt
8926acac37
Spelling fixes in comments.
...
Submitted by: Linus Torvalds <torvalds@transmeta.com>
2003-03-30 07:23:03 +00:00
Keith Whitwell
1728bc637d
merged drm-filp-0-1-branch
2003-03-28 14:27:37 +00:00
Keith Whitwell
37cb114bd9
Add 2nd arg for DRM_FREE
2003-03-26 16:37:47 +00:00
Alan Hourihane
b3eb34e0ea
linux merge for drm
2003-03-25 11:36:43 +00:00
Alan Hourihane
c14006ba9f
XFree86 4.3.0 merge
2003-03-25 00:29:14 +00:00
Keith Whitwell
51e5f73d2a
DRM_FREE/2 patch from Philip Brown
2003-03-04 11:41:12 +00:00
Leif Delgass
eb0fd431c8
Update object targets
2003-02-28 19:39:46 +00:00
Eric Anholt
cfa778af9c
Merge from bsd-4-0-0-branch.
2003-02-21 23:23:09 +00:00
Michel Daenzer
c7d471b6ae
don't inflate relative vblank sequence numbers on repeated calls (e.g. when
...
interrupted by a signal)
2003-02-02 03:06:47 +00:00
Michel Daenzer
826aad0aba
limit number of pending vblank signals to 100 to prevent DoS, and minor
...
cleanups
2003-01-11 20:58:20 +00:00
Keith Whitwell
786228bd26
bring in jantorial changes from 2.5.51
2002-12-12 16:45:31 +00:00
Keith Whitwell
fd621fd4a0
remove agpgart informational
2002-12-11 13:40:27 +00:00
Michel Daenzer
85025d4f2a
further vertical blank interrupt cleanups: remove unused variable,
...
non-ambiguous variable names, don't express subtraction in
unnecessarily complicated ways
2002-12-04 15:39:53 +00:00
Michel Daenzer
4acba63bb7
vertical blank interrupt cleanups: use spinlock instead of semaphore, send
...
signal directly from interrupt handler instead of using a taskqueue
(based on feedback by Linus Torvalds)
2002-12-03 00:43:47 +00:00
Michel Daenzer
40891ac190
vertical blank ioctl can send signal instead of blocking
2002-11-30 14:24:07 +00:00
Jens Owen
344c7f6b41
updated e-mail addresses for Keith, Alan and Jens
2002-10-29 20:29:05 +00:00
Alan Hourihane
b3a20ce219
final part of XFree86 4.2.99.2 merge
2002-10-22 23:38:53 +00:00
Brian Paul
2af90a581d
replaced max() macro with conditional expression
2002-10-09 16:29:01 +00:00
Keith Whitwell
aa1ca406d6
Fix error condition...
2002-10-08 08:32:06 +00:00
Keith Whitwell
a653224403
Call pci_enable_device() in DRM(irq_busid).
2002-10-08 08:29:47 +00:00
Keith Whitwell
9243e642da
Move os-dependent stuff out of radeon_irq.c
2002-09-29 21:19:01 +00:00
Michel Daenzer
ec48dfa835
add support for 16K and 64K page sizes (Bjorn Helgaas)
2002-09-29 00:12:28 +00:00
Michel Daenzer
cc9a169d08
DRM(vblank_wait) is driver specific
2002-09-26 12:49:18 +00:00
Michel Daenzer
55acd0d5a6
common ioctl to wait for vertical blank IRQs
2002-09-25 17:18:19 +00:00
Keith Whitwell
f1c8fe9557
merged r200-0-2-branch to trunk
2002-09-23 17:26:43 +00:00
Michel Daenzer
cfa1a918b6
make sure we never oops because the hardware lock pointer in the sigdata
...
structure is out of date
2002-09-21 23:18:54 +00:00
David Dawes
c4318a5c64
- Fix various bugs in the DRI support for the i830 and i845G (Keith
...
Whitwell).
- Major rework of the 2D i830/i845G support, including:
- Improve VESA mode selection, and fix refresh rate selection.
- Don't duplicate functions provided in the vbe modules.
- Don't duplicate functions provided in the vgahw module.
- Rewrite memory allocation.
- Rewrite initialisation and save/restore state handling.
- Decouple the i810 support from i830 and later.
- Remove various unnecessary hacks and workarounds.
- Fix an 845G problem with the ring buffer not in pre-allocated memory.
- Fix screen blanking.
- Fix some HW cursor glitches, and turn HW cursor off at VT switch and
exit.
- Don't attempt to use the i830's function 1 entity.
- Fix problems with option handling. (David Dawes).
- Add mode VBE-aware mode handling functions to the vbe module (David
Dawes).
2002-09-11 00:57:49 +00:00
Keith Whitwell
4fcde1efc1
standardize use of __FUNCTION__ (Linus)
2002-08-29 07:34:49 +00:00
Leif Delgass
a697941d4c
Don't (re)define vmalloc_to_page for kernel >= 2.4.19, as it has been
...
backported from 2.5.x. Also fix a couple of incorrect
LINUX_VERSION_CODE tests and fix header dependency for r128, radeon
when building without AGP.
2002-08-22 19:35:31 +00:00
Leif Delgass
2febcafd66
SetPageLocked only defined in 2.5.x (x=?), use LockPage for 2.4.x (x>=9).
...
Also apply build fixes from i810_dma.c to i830_dma.c
2002-08-22 18:43:39 +00:00
Jose Fonseca
18d3fac990
Change the linux kernel version condition in the i810 driver (according to
...
Alan Cox)
2002-08-21 14:09:28 +00:00
Leif Delgass
8eedac5833
add missing include (for udelay), remove unused counter.
2002-08-21 01:14:43 +00:00
Rik Faith
977b420d5d
Updates from Rusty Russell to:
...
1) Remove redundant header inclusion
2) Silence bitop on non-long argument warnings (change int to long)
3) Move to ISO C (gcc 2.6) initializers (accepted by older gccs also) All
of these are syntax changes that should not impact functionality.
2002-08-06 18:00:57 +00:00
Alan Hourihane
74ef13fd00
merged bsd-3-0-0-branch
2002-07-05 08:31:11 +00:00
Alan Hourihane
8aecdbea76
gamma_alloc -> DRM(alloc)
2002-06-25 12:13:20 +00:00
Keith Whitwell
2dcada361d
merged tcl-0-0-branch
2002-06-12 15:50:28 +00:00
Michel Daenzer
5676a2a610
fixes for big endian in general and powerpc in particular
2002-06-02 16:00:45 +00:00
Jeff Hartmann
6ac48cddd0
Import Mesa 4.0 port of I830M/I845G 3D driver funded by 2d3d. Import
...
Lastest i810 ddx driver changes from XFree86 CVS to support the I845G.
Fixup warnings in I830M kernel driver.
-Jeff
2002-05-29 21:21:50 +00:00
Alan Hourihane
cd37583281
Remove some older Linux 2.3.99 code
2002-05-17 08:35:47 +00:00
Alan Hourihane
91d7b17e82
same udelay fixes
2002-05-17 08:21:34 +00:00
Keith Whitwell
9e67da5626
Allow drm to build under 2.4 and 2.5(.14)
2002-05-16 23:47:15 +00:00
Jens Owen
3903e5ac94
Merged drmcommand-0-0-1
2002-04-09 21:54:56 +00:00
David Dawes
ab87c5d0d1
First pass of mesa-4-0 branch merge into trunk.
2002-02-14 02:00:26 +00:00
Michel Daenzer
65d25572de
wrapper for ioremap_nocache() like for ioremap() (Paul Mundt)
2002-02-02 17:03:51 +00:00
David Dawes
44aa4d6297
First pass merge of XFree86 4.2.0 import.
2002-01-27 20:05:42 +00:00
David Dawes
14945ada16
Import of XFree86 4.2.0
2002-01-27 18:23:04 +00:00
David Dawes
16bd14926e
Initial revision
2002-01-27 18:23:04 +00:00
Alan Hourihane
f18a6d836b
merge with linux kernel 2.4.15
2001-12-10 23:29:37 +00:00
Keith Whitwell
727abee235
Put back i810 major version number (same reasons as for r128)
2001-11-27 11:43:12 +00:00
Keith Whitwell
13e11e1f94
Put drm version back from 3.0 to 2.2; XFree86 4.1 is the baseline for
...
versioning information.
2001-11-26 13:28:38 +00:00
Alan Hourihane
05fb3e93f2
wrap the MODULE_LICENSE definition.
2001-11-02 17:40:11 +00:00
Alan Hourihane
92ad1b60e1
merge kernel 2.4.13-pre6.
2001-10-22 19:15:04 +00:00
Alan Hourihane
bdd84e8958
commit Abraham vd Merwe fix.
2001-10-08 12:58:20 +00:00
Alan Hourihane
ca820fca87
merge with 2.4.10 kernel
2001-09-25 09:32:16 +00:00
Alan Hourihane
390440c939
remove Linux 2.3.x cruft.
2001-09-18 11:00:23 +00:00
Alan Hourihane
b1c44c8ac1
bumped the DRM versions (already done in ddx and client side drivers).
2001-09-17 21:12:10 +00:00
Alan Hourihane
f4c2f14002
No one's maintaining 2.2.x support - so remove all the cruft.
2001-08-19 15:20:08 +00:00
Jeff Hartmann
8aaf82d45c
A few warning fixes when actually building under 2.4.9-pre2 + some
...
reformating
2001-08-14 00:35:07 +00:00
Jeff Hartmann
aa09e36114
Sync with Linus 2.4.9-pre2 + make all nopage routines more alike
2001-08-13 23:23:47 +00:00
Alan Hourihane
2d4b2cf6f6
new multihead code was missing Voodoo3 2000 and Voodoo4 support.
2001-08-11 15:48:00 +00:00
Jeff Hartmann
97b8aa52bb
Commit Keith Owens kernel Makefile changes, merge and commit alpha patch
...
set from Jay Estabrook (sans some mga modifications which broke other
arch's.)
2001-08-10 16:29:21 +00:00