Commit Graph

39 Commits (73b031df613b58c4462a65818b88200bed0a97de)

Author SHA1 Message Date
Thomas Hellstrom e0f53e59be Simple fence object sample driver for via, based on idling the GPU.
Buffer object driver for via.
Some changes to buffer object driver callbacks.
Improve fence flushing.
2007-02-16 20:22:24 +01:00
Thomas Hellstrom 6c04185857 via: Try to improve command-buffer chaining.
Bump driver date and patchlevel.
2007-02-02 09:22:30 +01:00
Thomas Hellstrom 70bba11bc7 Disable AGP DMA for chips with the new 3D engine. 2007-02-02 09:22:15 +01:00
Thomas Hellstrom 3b47b27558 Some via PCI posting flushes. 2006-12-20 13:04:21 +01: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 8c8f937b3d make some functions static in via driver 2006-03-19 07:52:53 +00:00
Dave Airlie 42cd50fa90 Realign via driver with changes in Linux kernel (mainly whitespace) 2006-01-02 03:25:49 +00:00
Thomas Hellstrom 903e5701ff Add the via PCI DMA blit code. 2005-09-25 12:54:12 +00:00
Dave Airlie 0d346a07a8 convert ioctl flags to use flags instead of separate ints 2005-09-03 03:27:14 +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 567113788c VIA: Fix sparse warnings (Alexey Dobriyan) 2005-07-15 21:22:51 +00:00
Thomas Hellstrom e0fc400b68 VIA: Fix for oops when AGP ring-buffer initialization is called and there
is no AGP memory acquired.
2005-05-08 20:33:04 +00:00
Thomas Hellstrom a08343e3e0 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.
2005-04-18 08:26:00 +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 0d6b7fcb79 cleanup patch from Adrian Bunk <bunk@stusta.de> 2005-02-01 11:08:31 +00:00
Thomas Hellstrom cd9ef39c76 Fixed multiple devices DMA bug. Fixed PCI path FIRE command detection 2005-01-27 22:48:47 +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
Thomas Hellstrom e34b560191 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.
2005-01-05 17:44:43 +00:00
Thomas Hellstrom 590b230119 VIA DRM: Stability enhancements and cleanups in via_dma.c Added explicit
licence notice in via_dma.c
2004-12-31 11:27:57 +00:00
Thomas Hellstrom 02c35ec0a2 via DRM: Tightened the security for some functions of the
DRM_IOCTL_VIA_DMA_INIT IOCTL. Bumped patchlevel and driver date.
XFree86 bug: 2119
2004-12-21 17:13:22 +00:00
Thomas Hellstrom ae0db704b4 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.
2004-12-19 19:13:47 +00:00
Thomas Hellstrom aff0a25485 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.
2004-12-13 13:53:12 +00:00
Thomas Hellstrom 1fbfd9eb32 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.
2004-12-06 11:19:23 +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
Thomas Hellstrom 4f8fa60286 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.
2004-11-27 22:55:31 +00:00
Thomas Hellstrom f08a01c0e2 Fixed bug in via_dma.c. The code didn't check that the lock was held by the
caller. Just that it was held.
2004-11-03 13:37:37 +00:00
Thomas Hellstrom 9409d8231c Reworked the jump-code in via_dma.c. The command regulator now seems to
pause correctly after a jump. Removed the debug message from within the
    interrupt handler of via_irq.c
2004-11-01 20:48:49 +00:00
Thomas Hellstrom 8264e2c8aa Some stabilizing work to the DMA ring-buffer code. Temporarily replaced the
rewind jump with a reinitialization. This makes the code stable on
    CLE266 and KM400.
2004-10-30 13:01:48 +00:00
Thomas Hellstrom bbfe18e3bf Via updates. Fixed unlikely but possible uint32_t overflow in ring-buffer
code. bumped patchlevel.
2004-10-12 18:46:26 +00:00
Dave Airlie fec94a8274 Lindent the via stuff so I can include it in kernel 2004-10-09 11:12:24 +00:00
Thomas Hellstrom d24194e904 Changed unsigned to uint32_t in some ioctl parameters. Introduced first
rudimentary command verifier for dma buffers. Changed the decoder futex
    ioctl parameters. Bumped the via major version number.
2004-10-08 21:11:02 +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 fa6b1d129e First check in for DRM that splits core from personality modules 2004-09-27 19:51:38 +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
Thomas Hellstrom b0c73b7fcb Added IOCTL for writing 2D DMA command buffers over PCI. Bumped minor
version number.
2004-09-07 16:48:44 +00:00
Erdi Chen 08de6e5b04 Fix copy_from_user return value ignored warning at via_dma.c:168. 2004-08-30 04:58:24 +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 e068fcbfdd Rearrange things so that via_dma.c will compile with inline via_check_dma 2004-08-26 03:54:01 +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