Commit Graph

288 Commits (fced784140c7b347ea9d3091a8bc0c06c1a760f7)

Author SHA1 Message Date
Felix Kuehling d6af902ff7 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.
2005-01-09 19:49:21 +00:00
Felix Kuehling e7ba83bd6f Fixed off-by-one error in savage_bci_wait_fifo_shadow. 2005-01-08 23:28:27 +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 ca2b94cfa2 Updated via DRM with check for stray FIRE commands primitive list. 2005-01-07 08:21:29 +00:00
Alan Hourihane fcece3cf34 Add i915GM support Add resume functionality (must be used with later DDX)
Bump to 1.2
2005-01-06 17:51:32 +00:00
Thomas Hellstrom 50a6ffa878 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.
2005-01-06 15:53:38 +00:00
Felix Kuehling ae1bc4a6da 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
2005-01-05 23:45:42 +00:00
Thomas Hellstrom 4818014ab1 Bumped driver date and minor version. 2005-01-05 17:46:34 +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
Felix Kuehling 094f02c568 Fixed the DMA buffer age test. Should fix occasional "soft" lockups. Bumped
patch level and driver date.
2005-01-05 14:34:12 +00:00
Felix Kuehling 04842e8bcf 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.
2005-01-01 20:22:58 +00:00
Felix Kuehling ed165a2529 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.
2005-01-01 20:03:15 +00:00
Thomas Hellstrom e19fa7ada1 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.
2004-12-31 11:44:27 +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
Keith Whitwell 47c178da08 Copy HC_ParaType_Auto change to shared-core. Bump version numbers and
dates.
2004-12-20 12:03:02 +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
Roland Scheidegger c4a87c6883 (Stephane Marchesin, me) add hyperz support to radeon drm. Only fast z
clear and z buffer compression are working correctly, hierarchical-z is
    not.
2004-12-08 16:43:00 +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
Dave Airlie f197110e07 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>
2004-12-03 10:22:15 +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
Dave Airlie f0a86288fa patch from bug 1803 - will try and push to kernel soon 2004-11-11 11:09:11 +00:00
Dave Airlie c5bededa51 add some more r300 pci ids 2004-11-07 02:19:58 +00:00
Eric Anholt cb5aaa8987 Convert more drivers for bsd-core, moving the ioctl definitions to shared
code. Remove the "drv" from sisdrv, as it's unnecessary. Use the
    drm_pci functions in i915 instead of per-os implementations of the
    same. Avoid whitespace within fields in drm_pciids.txt (one of the r300
    definitions), since it breaks the bsd pciids script. Tested on sis,
    mga, r128. i915 needs more work.
2004-11-06 23:02:07 +00:00
Jon Smirl 069f53a93b Move radeon i2c include to top of file 2004-11-06 16:55:41 +00:00
Jon Smirl 642a8106d2 Export missing r128 ioctl symbol 2004-11-06 16:51:36 +00:00
Eric Anholt c9202c8965 Commit WIP of BSD conversion to core model. Compiles for r128, radeon, but
doesn't run yet. Moves the ioctl definitions for these two drivers back
    to the shared code -- they aren't OS-specific.
2004-11-06 01:41:47 +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
Keith Whitwell 08758b2fb7 correct historic mis-attribution of copyright 2004-11-01 10:52:18 +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
Ville Syrjala d403173005 Fixed off by one errors in clipping. 2004-10-16 11:21:56 +00:00
Ville Syrjala 52fdf10fd7 Fixed bad formatting. 2004-10-16 10:54:58 +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
Jon Smirl ad70dc676e Breakout heads into their own data structures. 2004-10-12 03:59:17 +00:00
Jon Smirl ad549c5ae6 Rename fn_tbl to driver. Core driver now uses pci_driver name which
reflects the personality name.
2004-10-10 22:54:55 +00:00
Dave Airlie 3f02a79351 Vladimir requested support so we can at least load r300 microcode for
helping
2D operations.
Ups radeon to version 1.12.0, Vladimir, you might want to add any extra
    pciids...
Approved-by: Dave Airlie <airlied@linux.ie>
2004-10-10 05:52:19 +00:00
Dave Airlie 8727326371 cleanup VIA driver to look a bit like others before kernel merge 2004-10-09 12:42:52 +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 61d36f6179 Revert back to drm_order() instead of using kernel get_order(). The
functions are not identical.
2004-10-06 16:27:55 +00:00
Jon Smirl aba12cfc0e janitor-list_for_each-drivers-char-drm-radeon_memc.patch from mm kernel 2004-10-02 19:11:30 +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 1c0a437fa2 Move things around to reduce public symbols and even out files. Switch to
get_order from drm_order.
2004-09-30 19:26:35 +00:00
Jon Smirl 3aef3841d0 Make fops per driver instead of global, remove default flush, poll, read
functions
2004-09-30 18:13:33 +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 74f063fc9d Create new linux-2.6 build. Move all gpl files into the 2.6 build. If you
edit files for 2.6 be sure and break the link to the 2.4 directory and
    copy the cvs history.
2004-09-24 03:12:17 +00:00
Jon Smirl c158a36c4c 1) switches from class_sysfs to drm sysfs implementation to allow
customization
2) compiles again on 2.4, but doesn't work
2004-09-23 05:39:15 +00:00
Felix Kuehling af326f6f0c Create permanent maps of framebuffer, aperture and MMIO registers. Added
chipset-type information in driver data field of Savage PCI-IDs. Added
    missing PCI-ID 0x8d03 (ProSavageDDR on Pentium boards). Don't require
    AGP.
2004-09-22 22:51:18 +00:00
Jon Smirl 27fc998f7d Remove hotplug reset support from DRM driver. This will be handled by the
VGA driver when it gets written.
2004-09-22 19:13:02 +00:00
Jon Smirl 6f31c42fe9 Remove size restriction on permanent addmap 2004-09-20 19:23:27 +00:00
Dave Airlie 5654880eee remove HAVE_COUNTERS 2004-09-20 11:29:16 +00:00
Jon Smirl 0c6fb0fbe1 Add linux sysfs i2c support to radeon driver. This patch adds GPL licensed
files to the linux build but not to the BSD directories.
2004-09-17 04:02:28 +00:00
Jon Smirl c7c9d3ef7b Let's try adding the dyn-minor patch again. This patch will reuse minor
numbers if a card is hotplugged in/out instead of just having them
    increase.
2004-09-16 18:42:03 +00:00
Jon Smirl eeb0ef1a70 Back dyn-minor patch out for now. fops handling is broken on some cards 2004-09-15 17:44:30 +00:00
Jon Smirl 64ef12c55c Dynamic device minor support. Minor device numbers will be reused if the
device is hotplugged in/out of the system
2004-09-15 00:20:21 +00:00
Jon Smirl 03c2e674e4 Add chip family names to the radeon driver 2004-09-14 03:59:25 +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
Jon Smirl e6d468ad7f More general patch to mark resources in use by all DRM drivers. Makes the
code Linux specific.
2004-09-10 16:44:28 +00:00
Jose Fonseca 1fb27632c3 Update doxygen configuration file. Minor documentation updates/fixes. 2004-09-08 20:57:39 +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
Dave Airlie eeae6a0a38 merge back bunch of whitespace and misc changes from kernel 2004-09-05 10:54:59 +00:00
Dave Airlie 7809efc8c3 drm-memory patch, cleans up alloc/free and makes calloc look more libc like 2004-08-30 09:01:50 +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 73e606753f run i915 through lindent 2004-08-27 09:14:30 +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
Dave Airlie d4dbf45781 Merged drmfntbl-0-0-2 2004-08-24 11:15:53 +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
Dave Airlie 7fe4f60768 set pointers to NULL after freeing, remove some extra debugging 2004-08-23 10:05:01 +00:00
Dave Airlie 5c9ed83094 Merged drmfntbl-0-0-1 2004-08-17 13:10:05 +00:00
Dave Airlie 93e8c201af preparation patch for radeon permanent mapping registers/framebuffer makes
dev_priv live always, and add AGP detection in kernel patch:
    radeon-pre-2.patch From: Jon Smirl
2004-08-17 11:24:50 +00:00
Eric Anholt dd83f39f03 Add a "dev" argument to DRIVER_CTX_[CD]TOR. This will be used in an
upcoming commit for the SiS driver.
2004-08-14 00:46:15 +00:00
Eric Anholt 211c37e250 Fix apparent copy'n'paste-o of the card attributes commit that broke the
FreeBSD build.
2004-08-13 23:32:39 +00:00
Dave Airlie 9277f9eef3 Patch from Jon Smirl to add attribute field to the pciids, and use this for
certain radeon combinations - intel drivers can probably use this for
    dual head capable devices etc..
2004-08-10 11:14:07 +00:00
Dave Airlie 33b740ad99 forgot to check these in.. thanks to Jon for reminding me .. 2004-08-02 11:45:23 +00:00
Dave Airlie bd71ba6428 patch from RH xorg-x11 tree ported to drm.h 2004-07-31 08:38:39 +00:00
Dave Airlie eb3d0635d4 fixes for using userspace pointers found by sparse utility
From: Dave Airlie
2004-07-31 07:26:52 +00:00
Dave Airlie 0b02bf9d45 initial port of i915 to BSD, not finished doesn't work.. no idea why... 2004-07-29 11:09:22 +00:00
Dave Airlie 862fcee057 check for __user if not there define it 2004-07-25 08:57:15 +00:00
Dave Airlie 02df04d71d sync up with current 2.6 kernel bk tree - mostly __user annotations 2004-07-25 08:47:38 +00:00
Keith Whitwell 1e5354e867 Correct a couple of packet length calculations. 2004-07-23 16:12:27 +00:00
Dave Airlie b35cba47d5 Add NULLs instead of 0 for i915 2004-07-20 11:48:25 +00:00
Dave Airlie 8efddd01e8 sparse cleanups from kernel: Al Viro 2004-07-15 13:03:55 +00:00
Dave Airlie 4cfd0d5cee whitespace align with kernel 2004-07-05 11:44:30 +00:00
Keith Whitwell 291ffeae9a i915.o drm driver 2004-06-10 12:45:38 +00:00
Ian Romanick 52e3a8a5d9 Added some comments copied from xf86drm.h. 2004-06-02 17:41:52 +00:00
Ian Romanick f994b1f31b Replace size_t with an ugly, ugly hack. This was done so that code in the
core X-server would compile. Hopefully, this will soon be replaced with
    explicitly sized types (i.e., uint32_t) and everyone will be happy.
2004-06-01 16:17:32 +00:00
Roland Scheidegger 43c244ebba fix whitespace issue in previous patch 2004-05-18 23:30:46 +00:00
Roland Scheidegger aa142ff1b5 add R200_EMIT_RB3D_BLENDCOLOR state packet to support GL_EXT_blend_color,
GL_EXT_blend_func_separate and GL_EXT_blend_equation_separate on r200
2004-05-18 23:03:22 +00:00
Erdi Chen 13894755a7 Add PCI id entry for VIA CN400 (UnichromePro) chip. XFree86 bug: Reported
by: Submitted by: Reviewed by: Obtained from:
2004-05-14 23:54:31 +00:00
Eric Anholt 853adb8be3 Merge from FreeBSD-current. Mostly 64-bit cleanliness fixes, but a few
driver interface changes from -current.
2004-05-11 04:43:43 +00:00
Eric Anholt 485b259b44 Add missing DRM_ERR()s. 2004-05-11 04:23:02 +00:00
Dave Airlie 06332524b5 add another tdfx 2004-04-26 06:43:53 +00:00
Dave Airlie 0edc2abf84 add new files to generate pci ids 2004-04-21 23:45:18 +00:00
Dave Airlie 93bd67ef62 centralise pci ids into one place and use scripts to generate files for
kernel
2004-04-21 12:13:31 +00:00
Thomas Hellstrom 6f6d2a553a 1. Added a PCI ID.
2. Big change to the XvMC part of the SAREA. OpenGL clients will not suffer
    from this, and via XvMC is still alpha. Needed to make future additions
    to XvMC (More decoders and overlays) possible.
3. Bumped version number to 1.3.0.
2004-04-12 10:18:18 +00:00
Dave Airlie 873e1c4d38 Add mach64 to the trunk 2004-04-12 05:27:40 +00:00