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.
hotplug event plus the addition of one requesting RESET. Put your
scripts in /etc/hotplug.d/drm to run. kernel class_simple generates the
ADD/REMOVE events. No cards currently request RESET, the flag is there
to stop you from resetting your boot display.
kernel allocated and then mmap-installed to userspace, but instead
makes it use the kernel virtual address directly instead.
From: Arjan van de Ven <arjanv@redhat.com>
and/or d->send_sizes. When these functions are called from gamma_dma,
these pointers are user pointers and are thus not safe to deref. This
patch copies over the pointers inside gamma_dma_priority and
gamma_dma_send_buffers.
Submitted-by: Robert T. Johnson <rtjohnso@eecs.berkeley.edu> Signed-off-by:
Dave Airlie <airlied@linux.ie>
old DRM interface, the devname was set in DRM(setunique), but with the
current DRM interface >=1.1 the devname is not being set in
DRM(set_busid).
From: Alan Swanson Approved-by: Dave Airlie <airlied@linux.ie>