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
Felix Kuehling [Mon, 10 Jan 2005 22:46:02 +0000 (22:46 +0000)]
Only try to find the agp_buffer_map if dma_type is AGP. This is all that's
needed on the DRM side to support PCI Savages. Bumped patch level and
driver date.
Felix Kuehling [Sun, 9 Jan 2005 19:49:21 +0000 (19:49 +0000)]
Improved workaround for Savage3D DMA lockup to emit NOPs only before the
first indexed drawing command of a cmdbuf or if a wait command was
emitted since the last indexed drawing command.
Jon Smirl [Sun, 9 Jan 2005 17:30:44 +0000 (17:30 +0000)]
Adjust 4 level page check for <= 2.6.10
Felix Kuehling [Sat, 8 Jan 2005 23:28:27 +0000 (23:28 +0000)]
Fixed off-by-one error in savage_bci_wait_fifo_shadow.
Thomas Hellstrom [Fri, 7 Jan 2005 11:37:01 +0000 (11:37 +0000)]
via updates: moved the verifier state struct to dev_priv. Implemented AGP
alignment check.
Thomas Hellstrom [Fri, 7 Jan 2005 08:21:29 +0000 (08:21 +0000)]
Updated via DRM with check for stray FIRE commands primitive list.
Alan Hourihane [Thu, 6 Jan 2005 17:51:32 +0000 (17:51 +0000)]
Add i915GM support Add resume functionality (must be used with later DDX)
Bump to 1.2
Jon Smirl [Thu, 6 Jan 2005 17:09:22 +0000 (17:09 +0000)]
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
Thomas Hellstrom [Thu, 6 Jan 2005 15:53:38 +0000 (15:53 +0000)]
via DRM: Updated the verifier to check the vertex lists more thorough. This
should hopefully stop it from getting out of sync.
The PCI command parser is still not updated.
Felix Kuehling [Wed, 5 Jan 2005 23:45:42 +0000 (23:45 +0000)]
3D scissor regs are now managed by the DRM to iterate over clip rects
passed to the cmdbuf ioctl (try xeyes on top of glxgears ;-)
Tightened the texture state check
Bumped Savage DRM version to 2.1.0 so that DRI driver can (theoretically)
depend on the DRM to manage the scissor registers
Thomas Hellstrom [Wed, 5 Jan 2005 17:46:34 +0000 (17:46 +0000)]
Bumped driver date and minor version.
Thomas Hellstrom [Wed, 5 Jan 2005 17:44:43 +0000 (17:44 +0000)]
VIA update:
Release video futexes when context is destroyed (This was previously done
by the X server).
Added New Unichrome Pro VIDEO DMA commands to the verifier.
Added Quiescent heavyweight lock mode.
Felix Kuehling [Wed, 5 Jan 2005 14:34:12 +0000 (14:34 +0000)]
Fixed the DMA buffer age test. Should fix occasional "soft" lockups. Bumped
patch level and driver date.
Felix Kuehling [Sat, 1 Jan 2005 20:22:58 +0000 (20:22 +0000)]
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.
Felix Kuehling [Sat, 1 Jan 2005 20:03:15 +0000 (20:03 +0000)]
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.
Dave Airlie [Sat, 1 Jan 2005 12:07:51 +0000 (12:07 +0000)]
i810/i830 bug with Jon's file operations changes
Thomas Hellstrom [Fri, 31 Dec 2004 11:44:27 +0000 (11:44 +0000)]
VIA DRM: verifier: Added verbose palette error reporting, and support for
stipple palettes together with rudimentary checks for texture palette
sizes.
other: Bumped version patchlevel and driver date.
Thomas Hellstrom [Fri, 31 Dec 2004 11:27:57 +0000 (11:27 +0000)]
VIA DRM: Stability enhancements and cleanups in via_dma.c Added explicit
licence notice in via_dma.c
Thomas Hellstrom [Tue, 21 Dec 2004 17:13:22 +0000 (17:13 +0000)]
via DRM: Tightened the security for some functions of the
DRM_IOCTL_VIA_DMA_INIT IOCTL. Bumped patchlevel and driver date.
XFree86 bug: 2119
Keith Whitwell [Mon, 20 Dec 2004 12:03:02 +0000 (12:03 +0000)]
Copy HC_ParaType_Auto change to shared-core. Bump version numbers and
dates.
Keith Whitwell [Mon, 20 Dec 2004 11:57:10 +0000 (11:57 +0000)]
Add a very simple install target. I expect there are more correct ways to
do this.
Thomas Hellstrom [Sun, 19 Dec 2004 19:13:47 +0000 (19:13 +0000)]
via changes: Fixed typecasting bug in via_dma.c, and possible short-circuit
bug in the cmdbuf_size ioctl. Modified ring-buffer jump code AGAIN, due
to new oddities discovered on the Unichrome Pro with faster processors.
Bumped patchlevel and driver date.
Keith Whitwell [Fri, 17 Dec 2004 14:11:05 +0000 (14:11 +0000)]
Add the 'Auto' pageflipping command to the verifier. I don't think any
verification is required for the arguments of this packet from a
security point of view.
Alan Hourihane [Thu, 16 Dec 2004 11:07:20 +0000 (11:07 +0000)]
drm_pciids.h should only 'cleaned' when the shared/ directory exists. Which
the Makefile already knows about, but it was cleaning this file anyway.
Eric Anholt [Wed, 15 Dec 2004 03:34:09 +0000 (03:34 +0000)]
Use SYSCTL_ADD_OID macro instead of calling function directly.
Submitted by: reffie@FreeBSD.org
Thomas Hellstrom [Mon, 13 Dec 2004 13:53:12 +0000 (13:53 +0000)]
VIA drm updates:
1. Improved security check of AGP texture adresses.
2. Hopefully last fix of ring-buffer jump oddities.
3. Added ioctl to check available space and command regulator lag in
ring-buffer. This is needed for 3D application responsiveness.
Dave Airlie [Fri, 10 Dec 2004 11:53:24 +0000 (11:53 +0000)]
Use wbinvd macro instead of assembly for it,
From: Stefan Dirsch <sndirsch@suse.de> Signed-off-by: Dave Airlie
<airlied@linux.ie>
Roland Scheidegger [Wed, 8 Dec 2004 16:43:00 +0000 (16:43 +0000)]
(Stephane Marchesin, me) add hyperz support to radeon drm. Only fast z
clear and z buffer compression are working correctly, hierarchical-z is
not.
Thomas Hellstrom [Tue, 7 Dec 2004 12:18:47 +0000 (12:18 +0000)]
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
Thomas Hellstrom [Tue, 7 Dec 2004 12:09:11 +0000 (12:09 +0000)]
Fix up linux 2.4 series Makefiles for via_verifier.c
Thomas Hellstrom [Mon, 6 Dec 2004 11:19:23 +0000 (11:19 +0000)]
Security and optimization fixes for the via drm:
1. The command verifier was never initialized in the non-core source tree.
2. Check added that the AGP ring buffer has been initialized before
accepting command buffer.
3. Free space check in the AGP buffer is moved to after command
verification, which is more optimal in most cases.
Thomas Hellstrom [Fri, 3 Dec 2004 23:03:36 +0000 (23:03 +0000)]
Added 3D functionality to the via command verifier. Modified the via
ring-buffer code somewhat to workaround hardware problems. Bumped via
minor version number.
Dave Airlie [Fri, 3 Dec 2004 10:22:15 +0000 (10:22 +0000)]
Make 1-bit fields be unsigned (no sign bit :). sparse complains about them:
drivers/char/drm/sis_ds.h:88:12: warning: dubious one-bit signed
bitfield drivers/char/drm/sis_ds.h:89:16: warning: dubious one-bit
signed bitfield
Signed-off-by: Randy Dunlap <rddunlap@osdl.org> Signed-off-by: Dave Airlie
<airlied@linux.ie>
Thomas Hellstrom [Sat, 27 Nov 2004 22:55:31 +0000 (22:55 +0000)]
Reworked PCI MMIO command buffer parser, and imported code from the Mesa
driver. It can now handle the 3D OpenGL commands from the Mesa
unichrome driver.
Added vsync frequency detection support. This will be used in the future
for XvMC and better frame timing.
Bumped minor version number and driver date.
Dave Airlie [Thu, 11 Nov 2004 11:09:11 +0000 (11:09 +0000)]
patch from bug 1803 - will try and push to kernel soon
Jon Smirl [Tue, 9 Nov 2004 16:58:02 +0000 (16:58 +0000)]
Fix more build problems on linux-core
Jon Smirl [Tue, 9 Nov 2004 03:36:06 +0000 (03:36 +0000)]
make linux-core build again
Roland Scheidegger [Tue, 9 Nov 2004 00:54:19 +0000 (00:54 +0000)]
add missing CHIP_RV350 to radeon_enums
Eric Anholt [Sun, 7 Nov 2004 04:11:15 +0000 (04:11 +0000)]
Refine the locking of the DRM. Most significant is covering the driver
ioctls with dev_lock, which is a major step toward being able to remove
Giant. Covers some new pieces (dev->unique*) in the core, and avoids
one call down into system internals with the drm lock held, which is
usually bad (FreeBSD LOR #23, #27).
Dave Airlie [Sun, 7 Nov 2004 02:19:58 +0000 (02:19 +0000)]
add some more r300 pci ids