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
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
3624e43282
Bug #8707 , 2.6.19-rc compatibility for memory manager code.
2006-10-20 15:06:31 +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
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
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
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
Thomas Hellstrom
d85b99435f
Allow for 44 bit user-tokens (or drm_file offsets)
2006-10-02 13:49:43 +02:00
Thomas Hellstrom
235f6fc650
Adapt to architecture-specific hooks for gatt pages.
2006-09-27 09:27:31 +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
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
Thomas Hellstrom
14a835be61
Buffer object mapping and mapping synchronization for multiple clients.
2006-08-30 15:08:40 +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
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
e201511a0f
More ttm cleanups.
2006-08-22 11:57:08 +02:00
Thomas Hellstrom
700bf80ca9
Bring in stripped TTM functionality.
2006-08-22 09:47:33 +02: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
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
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
0db80529d5
Fix from Hugh Dickins for consistent mapping
2005-11-29 09:46:27 +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
7af0186f4c
add Egberts 32/64 bit patch (its in kernel already...)
2005-08-16 12:51:57 +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
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
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
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
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
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
ad87dd8427
Bring in patch from kernel for remap_pfn_range
2004-10-22 16:03:21 +00:00
Jose Fonseca
0d89b19325
Update Doxygen configuration & comments.
2004-10-18 14:16:41 +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
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
3aef3841d0
Make fops per driver instead of global, remove default flush, poll, read
...
functions
2004-09-30 18:13:33 +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
59cc1d8256
Felix's fix for map request smaller than permanent map size
2004-09-20 17:09:26 +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
da6b448497
implement drm_core_check_feature and use it .. looks lots nicer
2004-08-30 11:34:51 +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
Dave Airlie
d4dbf45781
Merged drmfntbl-0-0-2
2004-08-24 11:15:53 +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
Keith Whitwell
373d67702c
A few changes for recent redhat.
2004-06-10 12:48:35 +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
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
Alan Hourihane
c5168016cc
linux drm fixes
2003-09-12 20:00:59 +00:00
Michel Daenzer
9d7b01ebbe
Merge from 2.6 kernel (Linus Torvalds)
2003-08-15 10:31:54 +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
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
Eric Anholt
8926acac37
Spelling fixes in comments.
...
Submitted by: Linus Torvalds <torvalds@transmeta.com>
2003-03-30 07:23:03 +00:00
Alan Hourihane
b3a20ce219
final part of XFree86 4.2.99.2 merge
2002-10-22 23:38:53 +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
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
Keith Whitwell
9e67da5626
Allow drm to build under 2.4 and 2.5(.14)
2002-05-16 23:47:15 +00:00
Alan Hourihane
f18a6d836b
merge with linux kernel 2.4.15
2001-12-10 23:29:37 +00:00
Alan Hourihane
92ad1b60e1
merge kernel 2.4.13-pre6.
2001-10-22 19:15:04 +00:00
Alan Hourihane
ca820fca87
merge with 2.4.10 kernel
2001-09-25 09:32:16 +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
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
Jeff Hartmann
51e38d96ea
Lots of DRM fixes: added new pieces of template code so the ffb driver can
...
be ported, rolled back r128 and i810 version bumps so 4.1.0 works with
cvs kernel modules, added Config.in and updated Makefile.kernel,
incorporated lots of drm fixes inspired by patches sent by Redhat, made
DRM(realloc) usage check for NULL allocations, restructure driver init
routines to export dev_priv only when initialized and to check for all
error conditions.
2001-08-07 18:15:10 +00:00
Jeff Hartmann
84a5e71087
Fixes that allow the modules to be built into the kernel
2001-07-23 20:25:38 +00:00
Gareth Hughes
dca245e37c
Only authenticated clients can mmap() (Jeff Hartmann).
2001-05-23 17:41:31 +00:00
David Dawes
a576d41498
Import of XFree86 4.0.99.3
2001-05-01 17:07:59 +00:00
David Dawes
1759c16ab9
Import -f XFree86 4.0.99.2
2001-04-09 16:27:54 +00:00
Kevin E Martin
5d6ddbca26
Merged ati-pcigart-1-0-0
2001-04-05 22:16:12 +00:00
Gareth Hughes
f2ad4d9beb
__REALLY_HAVE_MTRR, vmalloc_32 fixes from Jeff Wiedemeier.
2001-03-18 23:54:41 +00:00
Kevin E Martin
74e19a4018
Merged sarea-1-0-0
2001-03-14 22:22:50 +00:00
Gareth Hughes
360475376c
Merge mga-1-0-0-branch into trunk.
2001-02-15 08:12:14 +00:00