summaryrefslogtreecommitdiff
path: root/shared/via_dma.c
AgeCommit message (Collapse)Author
2004-12-19via changes: Fixed typecasting bug in via_dma.c, and possible short-circuitThomas Hellstrom
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-13VIA drm updates:Thomas Hellstrom
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-06Security and optimization fixes for the via drm:Thomas Hellstrom
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-03Added 3D functionality to the via command verifier. Modified the viaThomas Hellstrom
ring-buffer code somewhat to workaround hardware problems. Bumped via minor version number.
2004-11-27Reworked PCI MMIO command buffer parser, and imported code from the MesaThomas Hellstrom
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-03Fixed bug in via_dma.c. The code didn't check that the lock was held by theThomas Hellstrom
caller. Just that it was held.
2004-11-01Reworked the jump-code in via_dma.c. The command regulator now seems toThomas Hellstrom
pause correctly after a jump. Removed the debug message from within the interrupt handler of via_irq.c
2004-10-30Some stabilizing work to the DMA ring-buffer code. Temporarily replaced theThomas Hellstrom
rewind jump with a reinitialization. This makes the code stable on CLE266 and KM400.
2004-10-12Via updates. Fixed unlikely but possible uint32_t overflow in ring-bufferThomas Hellstrom
code. bumped patchlevel.
2004-10-09Lindent the via stuff so I can include it in kernelDave Airlie
2004-10-08Changed unsigned to uint32_t in some ioctl parameters. Introduced firstThomas Hellstrom
rudimentary command verifier for dma buffers. Changed the decoder futex ioctl parameters. Bumped the via major version number.
2004-09-27Fix the shared directory I accidentally stomped onJon Smirl
2004-09-27First check in for DRM that splits core from personality modulesJon Smirl
2004-09-12Fix DRM to compile cleanly with recent kernel changes in PCI IO andJon Smirl
DRM_COPY_FROM_USER. PCI IO changes in 2.6.9-rc1 bk currently.
2004-09-07Added IOCTL for writing 2D DMA command buffers over PCI. Bumped minorThomas Hellstrom
version number.
2004-08-30Fix copy_from_user return value ignored warning at via_dma.c:168.Erdi Chen
2004-08-27__NO_VERSION__ hasn't been needed since 2.3 days ditch it...Dave Airlie
2004-08-26Rearrange things so that via_dma.c will compile with inline via_check_dmaJon Smirl
2004-08-24This patch adds three new ioctl's to the VIA Unichrome/Pro DRM driver:Erdi Chen
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.