Ian Romanick [Fri, 20 May 2005 00:17:40 +0000 (00:17 +0000)]
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
Dave Airlie [Wed, 18 May 2005 06:35:16 +0000 (06:35 +0000)]
Add i945G pci ids to drm
From: Christopher Allen Wing <wingc@engin.umich.edu> Signed-off-by: Dave
Airlie <airlied@linux.ie>
Felix Kuehling [Tue, 17 May 2005 02:08:02 +0000 (02:08 +0000)]
Savage doesn't require AGP any more. Enable build even without CONFIG_AGP.
Ian Romanick [Mon, 16 May 2005 17:37:10 +0000 (17:37 +0000)]
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.
Dave Airlie [Sun, 15 May 2005 10:19:21 +0000 (10:19 +0000)]
wrap config.h include with defined for KERNEL
Thomas Hellstrom [Sun, 8 May 2005 20:33:04 +0000 (20:33 +0000)]
VIA: Fix for oops when AGP ring-buffer initialization is called and there
is no AGP memory acquired.
Eric Anholt [Tue, 26 Apr 2005 15:27:58 +0000 (15:27 +0000)]
Convert NOMAN to the new preferred spelling NO_MAN to quiet warnings.
Eric Anholt [Tue, 26 Apr 2005 06:03:39 +0000 (06:03 +0000)]
Clean up some const qualifier cast warnings.
Eric Anholt [Tue, 26 Apr 2005 05:19:11 +0000 (05:19 +0000)]
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
Eric Anholt [Tue, 26 Apr 2005 05:11:20 +0000 (05:11 +0000)]
Use msleep instead of tsleep to drop the DRM device lock and avoid a
sleep-with- mutex held. This probably ought to be an os-independent
sleep function ala DRM_USLEEP.
Eric Anholt [Sun, 24 Apr 2005 19:09:09 +0000 (19:09 +0000)]
Fix a panic on startup with non-initmapping drivers by assigning the
drm_ioremap return value to the map handle again.
Submitted by: Tor Egge, tegge at freebsd dot org
Thomas Hellstrom [Wed, 20 Apr 2005 18:50:49 +0000 (18:50 +0000)]
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.
Thomas Hellstrom [Wed, 20 Apr 2005 10:16:52 +0000 (10:16 +0000)]
VIA: Interrupt handler bugfixes. Bumped patchlevel to 2.6.2.
Dave Airlie [Tue, 19 Apr 2005 00:31:16 +0000 (00:31 +0000)]
Revert last commit, it affect via things
Thomas Hellstrom [Mon, 18 Apr 2005 08:26:00 +0000 (08:26 +0000)]
VIA:
1) Security fix: Stopped possible MMIO access to PCI DMA area for the
unichrome Pro.
2) Fixed an odd cpu usage problem by padding small AGP DMA submissions.
Bumped patchlevel.
Eric Anholt [Sat, 16 Apr 2005 03:02:52 +0000 (03:02 +0000)]
Use /*- to begin license blocks in BSD code to reduce diffs against FreeBSD
CVS.
Eric Anholt [Wed, 13 Apr 2005 04:20:08 +0000 (04:20 +0000)]
Fix build on FreeBSD-current, thanks to jhb@.
Dave Airlie [Mon, 4 Apr 2005 04:08:29 +0000 (04:08 +0000)]
mirror changes made in main tree.. just happened to be doing this myself
Thomas Hellstrom [Tue, 29 Mar 2005 09:48:12 +0000 (09:48 +0000)]
Missing file via_video.c commited.
Adam Jackson [Tue, 29 Mar 2005 01:47:38 +0000 (01:47 +0000)]
Add skeletal imagine driver (but don't build it yet).
Thomas Hellstrom [Mon, 28 Mar 2005 21:21:42 +0000 (21:21 +0000)]
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.
Dave Airlie [Sun, 27 Mar 2005 07:05:28 +0000 (07:05 +0000)]
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>
Dave Airlie [Sun, 27 Mar 2005 06:58:12 +0000 (06:58 +0000)]
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
Alan Hourihane [Fri, 25 Mar 2005 13:44:47 +0000 (13:44 +0000)]
Don't know who set the i915GM PCI ID incorrectly but it should be 0x2592
Dave Airlie [Fri, 25 Mar 2005 13:16:38 +0000 (13:16 +0000)]
From Xorg CVS realign the i915_drv.h
From: Tungsten Graphics Signed-off-by: Dave Airlie <airlied@linux.ie>
Dave Airlie [Fri, 25 Mar 2005 13:06:53 +0000 (13:06 +0000)]
use linux-core for 2.6 not this stuff..
Dave Airlie [Fri, 25 Mar 2005 09:48:34 +0000 (09:48 +0000)]
fix up AGP multi-head support for kernel 2.6.12
Dave Airlie [Fri, 25 Mar 2005 09:47:36 +0000 (09:47 +0000)]
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>
Dave Airlie [Fri, 25 Mar 2005 09:05:10 +0000 (09:05 +0000)]
fix bug with XFree86 4.3 on core drm
Signed-off-by: Dave Airlie <airlied@linux.ie>
Dave Airlie [Fri, 25 Mar 2005 09:02:20 +0000 (09:02 +0000)]
3dfx DRM depends on PCI
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Dave Airlie [Fri, 25 Mar 2005 09:01:27 +0000 (09:01 +0000)]
For 2.6.12 and 2.6.11.x:
Remove incorrect "drm_"-prefix from parameter description.
Signed-off-by: Magnus Damm <damm@opensource.se>
Michel Daenzer [Fri, 18 Mar 2005 22:51:43 +0000 (22:51 +0000)]
Add support for production version of ATI RN50/ES1000. (ATI Technologies
Inc.)
Roland Scheidegger [Tue, 15 Mar 2005 22:12:30 +0000 (22:12 +0000)]
add R200_EMIT_PP_TRI_PERF_CNTL packet to support brilinear filtering on
r200
Thomas Hellstrom [Mon, 14 Mar 2005 22:50:21 +0000 (22:50 +0000)]
via changes:
1. Initialize futex locks to zero on device init.
2. Remove some stray defines from via_drm.h
3. Prepare via_drm.h for drm client inclusion. The goal is to share a
common file with common definitions.
4. Sync shared / shared-core via_drm.h
5. Bump minor, because of the futex lock initialization.
Felix Kuehling [Sun, 13 Mar 2005 02:16:10 +0000 (02:16 +0000)]
Command DMA optimizations:
- don't waste DMA memory when small command buffers are flushed
- minimized padding with noops
- slightly simplified faked DMA flushing
Dave Airlie [Tue, 8 Mar 2005 23:47:11 +0000 (23:47 +0000)]
Fix for bug 2673 from Egbert Eich - memset the version
Felix Kuehling [Mon, 7 Mar 2005 12:19:49 +0000 (12:19 +0000)]
Tracked down random lockups related to command DMA that occurred in Quake3
after ~5min: buffer aging was subtly broken. Part of this may have also
affected vertex DMA buffer aging and client-side texture heap aging,
though with less fatal consequences. Bumped minor version and driver
date.
Dave Airlie [Mon, 7 Mar 2005 09:40:18 +0000 (09:40 +0000)]
minor pointer cast typo
Felix Kuehling [Sun, 6 Mar 2005 01:41:06 +0000 (01:41 +0000)]
Added support for command DMA on Savage4-based hardware. Unfortunately
command and vertex DMA don't work at the same time. Command DMA
performance is superior and works with all vertex formats. Bumped minor
version and driver date.
Dave Airlie [Fri, 4 Mar 2005 03:04:37 +0000 (03:04 +0000)]
add some idct type 3 packets for reference
Felix Kuehling [Wed, 23 Feb 2005 16:34:30 +0000 (16:34 +0000)]
Use wrap counter to extend 16-bit hardware event tags to 32-bit logical
event counters in the SAVAGE_EVENT_EMIT/WAIT ioctls. This is needed for
reliable client-side texture heap aging. Slightly simplified DMA buffer
aging while at it. Bumped minor version and driver date.
Thomas Hellstrom [Sun, 20 Feb 2005 00:05:43 +0000 (00:05 +0000)]
Fix VIA K8M800 PCI ID.
Eric Anholt [Sat, 19 Feb 2005 22:07:07 +0000 (22:07 +0000)]
Fix a couple of gcc warnings in DRM_INFOs.
Eric Anholt [Sat, 19 Feb 2005 20:00:55 +0000 (20:00 +0000)]
Merge r1.26 from FreeBSD: Now that mem(4) is a kernel module, we need to
depend on it.
Michel Daenzer [Fri, 18 Feb 2005 20:06:10 +0000 (20:06 +0000)]
fd.o bug #2576: Add support for ATI RN50/ES1000. (ATI Technologies Inc.)
Adam Jackson [Fri, 18 Feb 2005 16:40:54 +0000 (16:40 +0000)]
Bug #2567: Fix reversed memset arguments. (David Krause)
Keith Whitwell [Tue, 15 Feb 2005 13:15:08 +0000 (13:15 +0000)]
Run depmod after installing new modules
Eric Anholt [Mon, 14 Feb 2005 03:28:01 +0000 (03:28 +0000)]
Use fuword32 for DRM_GET_USER_UNCHECKED when available. May help on 64-bit
platforms.
Submitted by: Jung-uk Kim, jkim at niksun dot com
Eric Anholt [Mon, 14 Feb 2005 03:26:52 +0000 (03:26 +0000)]
Use the proper API to get PCI vendor/device number for a dev.
PR: ports/76879 Submitted by: Alex, lesha at intercaf dot ru.
Eric Anholt [Mon, 14 Feb 2005 03:22:58 +0000 (03:22 +0000)]
Initialize kbuf to NULL to quiet the compiler about uninit variables
(wasn't an issue). Don't forget to free kbuf if the copyin fails.
Thomas Hellstrom [Sun, 13 Feb 2005 23:03:48 +0000 (23:03 +0000)]
Fixed Futex release bug. Bumped driver date and patchlevel.
Eric Anholt [Sun, 13 Feb 2005 01:18:25 +0000 (01:18 +0000)]
Fix bad copy'n'pastage of copyrights -- don't disclaim anything for VA
Linux or PI in my copyrights when I should be doing it for myself.
Eric Anholt [Sun, 13 Feb 2005 01:08:29 +0000 (01:08 +0000)]
Add the first bits necessary for a port of savage to FreeBSD. More to
follow later.
Roland Scheidegger [Thu, 10 Feb 2005 19:29:58 +0000 (19:29 +0000)]
add support for texture micro tiling for radeon/r200. Add support for cube
maps for r100. (Stephane Marchesin's port of the core version).
Roland Scheidegger [Thu, 10 Feb 2005 19:22:43 +0000 (19:22 +0000)]
add support for texture micro tiling on radeon/r200. Add support for r100
cube maps (since it also requires a version bump) at the same time.
Keith Whitwell [Thu, 10 Feb 2005 11:02:56 +0000 (11:02 +0000)]
Stephane's port of Eric's race fix
Roland Scheidegger [Tue, 8 Feb 2005 22:46:56 +0000 (22:46 +0000)]
fix incorrect PCI id for ATI radeon
Eric Anholt [Tue, 8 Feb 2005 04:17:14 +0000 (04:17 +0000)]
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).
Dave Airlie [Mon, 7 Feb 2005 22:55:54 +0000 (22:55 +0000)]
Invalid bound check of driver defined ioctls in drm_ioctl
Bug 2489 Reporter: Aapo Tahkola <aet@rasterburn.org>
Roland Scheidegger [Mon, 7 Feb 2005 21:11:59 +0000 (21:11 +0000)]
Cast user data to correct type in radeon_surface_free's copyin.
Dave Airlie [Mon, 7 Feb 2005 11:20:43 +0000 (11:20 +0000)]
change DRIVER_ to CORE_ makes things look nicer, also change it so the
driver name is marked on resource allocations
Dave Airlie [Mon, 7 Feb 2005 10:44:28 +0000 (10:44 +0000)]
fix agp detection on linux
Eric Anholt [Mon, 7 Feb 2005 03:10:03 +0000 (03:10 +0000)]
Restore a debugging message to DRM_DEBUG instead of DRM_ERROR.
Eric Anholt [Mon, 7 Feb 2005 01:14:42 +0000 (01:14 +0000)]
Remove some annoying trailing whitespace.
Eric Anholt [Sat, 5 Feb 2005 08:00:14 +0000 (08:00 +0000)]
- 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.
Thomas Hellstrom [Thu, 3 Feb 2005 10:51:22 +0000 (10:51 +0000)]
Via driver: Add missing drm_poll function to via driver in core.
Eric Anholt [Thu, 3 Feb 2005 01:06:10 +0000 (01:06 +0000)]
Declare r128_do_cleanup_pageflip static since it's only used here and its
prototype went away.
Eric Anholt [Thu, 3 Feb 2005 01:05:34 +0000 (01:05 +0000)]
Cast user data to correct type in radeon_surface_free's copyin.
Adam Jackson [Tue, 1 Feb 2005 22:09:46 +0000 (22:09 +0000)]
momentary revert. libdrm build may be broken now, but no one uses it yet...
Dave Airlie [Tue, 1 Feb 2005 11:08:31 +0000 (11:08 +0000)]
cleanup patch from Adrian Bunk <bunk@stusta.de>
Dave Airlie [Tue, 1 Feb 2005 10:43:42 +0000 (10:43 +0000)]
make functions static in i915, remove unused functions
Dave Airlie [Tue, 1 Feb 2005 10:33:51 +0000 (10:33 +0000)]
update i830 similiar to the kernel, add statics
Dave Airlie [Tue, 1 Feb 2005 10:18:27 +0000 (10:18 +0000)]
make more functions static in i810 and fix pageflip cleanup
Adam Jackson [Sun, 30 Jan 2005 03:30:45 +0000 (03:30 +0000)]
Final pass of libdrm.so work:
- Add $(DESTDIR) for distributors doing package creation
- Remove OS-specific include path from build
- Add /usr/include/drm for driver-kernel API
- Install all of shared-core/*.h in /usr/include/drm
- Rename xf86drm.h to libdrm.h since we're not X biased anymore
- Include backwards compat for xf86drm.h name, with a warning
- Fix libdrm source to account for drm.h living in /usr/include/drm
Dave Airlie [Sat, 29 Jan 2005 23:05:35 +0000 (23:05 +0000)]
fix radeon drv
Thomas Hellstrom [Thu, 27 Jan 2005 22:48:47 +0000 (22:48 +0000)]
Fixed multiple devices DMA bug. Fixed PCI path FIRE command detection
Dave Airlie [Thu, 27 Jan 2005 09:13:42 +0000 (09:13 +0000)]
fix incorrect PCI id for ATI radeon
Roland Scheidegger [Wed, 26 Jan 2005 17:48:59 +0000 (17:48 +0000)]
(Stephane Marchesin,me) Add radeon framebuffer tiling support to radeon
drm. Add new ioctls to manage surfaces which cover the tiled areas
Roland Scheidegger [Wed, 26 Jan 2005 14:19:24 +0000 (14:19 +0000)]
replace magic number with macro constant RADEON_ZBLOCK16
Dave Airlie [Mon, 24 Jan 2005 08:39:22 +0000 (08:39 +0000)]
use libdrm after it was updated
Dave Airlie [Mon, 24 Jan 2005 01:05:07 +0000 (01:05 +0000)]
hopefully fix drm_core setversion ioctl... pointed out by Eric on irc
Adam Jackson [Sat, 22 Jan 2005 08:24:36 +0000 (08:24 +0000)]
Add drm.h to the install target.
Felix Kuehling [Thu, 20 Jan 2005 23:33:24 +0000 (23:33 +0000)]
Removed one bogus Savage3D PCI ID. Corrected another one. Restored
numerical ordering.
Adam Jackson [Thu, 20 Jan 2005 19:05:42 +0000 (19:05 +0000)]
Add a Savage3D PCI ID
Felix Kuehling [Thu, 20 Jan 2005 12:23:25 +0000 (12:23 +0000)]
Corrected some confusion of vb_stride and vtx_size
Implemented SAVAGE_CMD_DMA_IDX and SAVAGE_CMD_VB_IDX for ELTs support in
the _savage_render_stage of the 3D driver
Bumped minor version and driver date
Alan Hourihane [Wed, 19 Jan 2005 10:03:33 +0000 (10:03 +0000)]
Fix cut & paste problem
Alan Hourihane [Wed, 19 Jan 2005 08:55:53 +0000 (08:55 +0000)]
Fix a cut & paste problem
Jose Fonseca [Mon, 17 Jan 2005 21:46:32 +0000 (21:46 +0000)]
Some code commenting concerning the FIFO & DMA engine.
Eric Anholt [Mon, 17 Jan 2005 20:24:52 +0000 (20:24 +0000)]
Add detection of whether the device is AGP by walking the capabilities
list.
Adam Jackson [Mon, 17 Jan 2005 00:02:04 +0000 (00:02 +0000)]
Add xf86drm.h to the install target.
Adam Jackson [Sun, 16 Jan 2005 23:50:58 +0000 (23:50 +0000)]
Shared libdrm work:
- create libdrm.so target
- build it by default
- drop xf86drmCompat.c from the build
- make 'clean' target never fail
- use pattern rules for .c -> .o for parallelism
- add 'install' target
Dave Airlie [Sun, 16 Jan 2005 07:49:55 +0000 (07:49 +0000)]
remove duplicate drm_sysfs.o
Dave Airlie [Sun, 16 Jan 2005 06:41:34 +0000 (06:41 +0000)]
This table is in radeon_drv.h along with the version number so remove it
from here
Dave Airlie [Sun, 16 Jan 2005 05:40:12 +0000 (05:40 +0000)]
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>
Felix Kuehling [Sun, 16 Jan 2005 01:22:09 +0000 (01:22 +0000)]
Fixed a bug that prevented the driver from ever emitting triangle strips or
fans. Bumped patchlevel and driver date.
Felix Kuehling [Sat, 15 Jan 2005 16:55:01 +0000 (16:55 +0000)]
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.
Dave Airlie [Thu, 13 Jan 2005 01:26:16 +0000 (01:26 +0000)]
due to backways compat crap for IRQ_HANDLED etc.. this wouldn't build on
2.4
Felix Kuehling [Wed, 12 Jan 2005 16:07:49 +0000 (16:07 +0000)]
Use virt_to_page instead of vmalloc_to_page in drm_do_vm_shm_nopage for
consistent pages allocated with drm_pci_alloc.
Keith Whitwell [Tue, 11 Jan 2005 10:59:01 +0000 (10:59 +0000)]
Import Thomas' changes upto 2.4.3 to shared. Small tweak to install target.
Keith Whitwell [Tue, 11 Jan 2005 10:42:52 +0000 (10:42 +0000)]
import Thomas' shared-core via changes up to 2.4.1