Commit Graph

308 Commits (7586a655fc7d8e89a4fe37ec7926f4fbc13f358d)

Author SHA1 Message Date
Dave Airlie 300e0866d6 fix agp detection on linux 2005-02-07 10:44:28 +00:00
Eric Anholt 080a547d4d - 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.
2005-02-05 08:00:14 +00:00
Thomas Hellstrom 270ca5f3ce Via driver: Add missing drm_poll function to via driver in core. 2005-02-03 10:51:22 +00:00
Eric Anholt 7f7bbdcbed Declare r128_do_cleanup_pageflip static since it's only used here and its
prototype went away.
2005-02-03 01:06:10 +00:00
Eric Anholt ed31275144 Cast user data to correct type in radeon_surface_free's copyin. 2005-02-03 01:05:34 +00:00
Dave Airlie 0d6b7fcb79 cleanup patch from Adrian Bunk <bunk@stusta.de> 2005-02-01 11:08:31 +00:00
Dave Airlie 1dd948f280 make functions static in i915, remove unused functions 2005-02-01 10:43:42 +00:00
Thomas Hellstrom cd9ef39c76 Fixed multiple devices DMA bug. Fixed PCI path FIRE command detection 2005-01-27 22:48:47 +00:00
Dave Airlie 77045dc516 fix incorrect PCI id for ATI radeon 2005-01-27 09:13:42 +00:00
Roland Scheidegger 43c3223de6 (Stephane Marchesin,me) Add radeon framebuffer tiling support to radeon
drm. Add new ioctls to manage surfaces which cover the tiled areas
2005-01-26 17:48:59 +00:00
Roland Scheidegger 408376b203 replace magic number with macro constant RADEON_ZBLOCK16 2005-01-26 14:19:24 +00:00
Felix Kuehling 39d5c831a0 Removed one bogus Savage3D PCI ID. Corrected another one. Restored
numerical ordering.
2005-01-20 23:33:24 +00:00
Adam Jackson 36ec8d82e7 Add a Savage3D PCI ID 2005-01-20 19:05:42 +00:00
Felix Kuehling 858e68fbdc 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
2005-01-20 12:23:25 +00:00
Jose Fonseca d29e2369be Some code commenting concerning the FIFO & DMA engine. 2005-01-17 21:46:32 +00:00
Dave Airlie 0867ce78f6 This table is in radeon_drv.h along with the version number so remove it
from here
2005-01-16 06:41:34 +00:00
Dave Airlie 354dd17d25 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>
2005-01-16 05:40:12 +00:00
Felix Kuehling 9514ee39f7 Fixed a bug that prevented the driver from ever emitting triangle strips or
fans. Bumped patchlevel and driver date.
2005-01-16 01:22:09 +00:00
Felix Kuehling ffc51f1f32 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.
2005-01-15 16:55:01 +00:00
Felix Kuehling 17d893f567 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.
2005-01-10 22:46:02 +00:00
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