Commit Graph

514 Commits (4b43ee63f90c93701c9f1cdf7fefd1816b316d33)

Author SHA1 Message Date
Ben Skeggs 97291a6ad0 Use DMA_IN_MEMORY for DMA objects. This is needed for a DDX change that will
be committed soon after this.  Without the change, MEMFORMAT_DMA_OUT appears
to have no effect.
2006-09-02 22:25:26 +10:00
Ben Skeggs 24dddc2754 Add stub {get,set}param ioctls. 2006-08-30 16:55:02 +10:00
Dave Airlie 3cfab681b3 Merge branch 'master' into nouveau-1 2006-08-29 00:01:19 +10: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 88928380c8 add pci ids for nouveau 2006-08-27 08:59:50 +10:00
Dave Airlie fef9b30a2b initial import of nouveau code from nouveau CVS 2006-08-27 08:55:02 +10:00
Michel Dänzer b99e332236 Bug #7595: Avoid u32 overflows in radeon_check_and_fixup_offset().
The overflows could cause valid offsets to get rejected under some
circumstances, e.g. when the framebuffer resides at the very end of the card's
address space.
2006-08-26 12:23:47 +02:00
Dave Airlie 0afb877a37 drm: lots of small cleanups and whitespace issues fixed up
remove a mach64 warning, align a lot of things from linux kernel
2006-08-19 17:59:18 +10:00
Dave Airlie 7a46d41399 i965 code and Linux coding style < 0
smack my whitespace up.
2006-08-10 14:38:50 +10:00
Alan Hourihane 48cb9aceed Add support for Intel i965G chipsets.
This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's
final code drop.
2006-08-08 15:05:54 -07:00
Michel Dänzer 35066b51ef Revert "Make sure busmastering gets disabled on module unload."
This reverts af7b89d724 commit. It causes an oops
on X server shutdown here, and for the reporter of bug #7629 as well.
2006-07-26 18:21:32 +02:00
Michel Dänzer 645453ce11 Bug #7629: Fix for CHIP_IS_AGP getting 'restored' with non-AGP cards
Commit 2a47f6bfec caused the CHIP_IS_AGP flag to
get 'restored' with PCI(e) cards. I can't think of a way to fix this without
introducing a (otherwise redundant) CHIP_IS_PCI flag.
2006-07-26 18:19:27 +02:00
Adam Jackson af7b89d724 Make sure busmastering gets disabled on module unload. 2006-07-19 15:35:31 -04:00
Michel Dänzer d5e0f8bdaf Use RADEON_RB3D_DSTCACHE_CTLSTAT instead of RADEON_RB2D_DSTCACHE_CTLSTAT.
The latter seems to be a read-only mirror of the former.
2006-07-19 19:18:32 +02:00
Michel Dänzer 2a47f6bfec Make sure CHIP_IS_AGP flag is set when not overriding to PCI mode.
This allows using AGP after overriding to PCI mode in a previous session
without reloading the DRM.
2006-07-19 19:16:26 +02:00
Michel Dänzer c91748e702 When writeback isn't used, actually disable it in the hardware.
Not doing this might waste bus bandwidth or even cause memory corruption or
system crashes on systems that check bus transfers. No such incident has been
reported though.
2006-07-19 19:13:00 +02:00
Michel Dänzer e337eadcec Implement RADEON_PARAM_SCRATCH_OFFSET getparam.
When this succeeds, userspace can read the scratch register contents from the
mapped writeback page directly.
2006-07-19 19:07:06 +02:00
Michel Dänzer 7dea64677b Some debug output when the getparam ioctl is called with an unknown parameter. 2006-07-19 19:01:33 +02:00
Michel Dänzer b9243ce3d5 .cvsignore -> .gitignore
Sort the merged file, remove the redundant explicit .ko lines and add
some generated symlinks.
2006-07-19 18:31:43 +02:00
Thomas Hellstrom 126673d62a Keep hashed user tokens, with the following changes:
32-bit physical device addresses are mapped directly to user-tokens. No
    duplicate maps are allowed, and the addresses are assumed to be outside
    of the range 0x10000000 through 0x30000000. The user-token is identical
    to the 32-bit physical start-address of the map.
64-bit physical device addressed are mapped to user-tokens in the range
0x10000000 to 0x30000000 with page-size increments. The user_token should
    not be interpreted as an address.
Other map types, like upcoming TTM maps are mapped to user-tokens in the
    range
0x10000000 to 0x30000000 with page-size increments. The user_token should
    not be interpreted as an address.
This keeps compatibility with buggy drivers, while still implementing a
    hashed map lookup. The SiS and via device driver major bumps are
    reverted.
2006-07-11 14:37:37 +00:00
Thomas Hellstrom a392349691 Change drm Map handles to be arbitrary 32-bit hash tokens in the range
0x10000000 to 0x90000000 in PAGE_SIZE increments.
Implement hashed map lookups.
This potentially breaks both 2D and 3D drivers. If so, the corresponding
2D and 3D driver should be fixed, and it's corresponding drm device driver
    should have its major bumped as soon as possible.
Bump sis and via drm device driver majors.
The SiS and Unichrome 3D drivers are fixed in Mesa CVS HEAD and
    mesa_6_4_branch.
2006-07-10 13:00:21 +00:00
Thomas Hellstrom c21a7b763a SiS 315 Awareness. 2006-07-05 15:52:35 +00:00
Keith Packard da143d0606 Remove spurious debug messages from i915 vblank config paths 2006-06-22 21:34:44 +00:00
Keith Packard f8891ef802 i915: Save vblank pipe configuration to restore on resume 2006-06-21 00:15:10 +00:00
Keith Packard 83f256e60e Add i915 ioctls to configure pipes for vblank interrupt.
i915 vblanks can be generated from either pipe a or b, however a disabled
    pipe generates no interrupts. This change allows the X server to select
    which pipe generates vblank interrupts.
2006-06-19 20:15:53 +00:00
Thomas Hellstrom 58b63ee5cc Fix buffer cleanup on close. Move memory manager reset from final_context
to lastclose.
2006-06-19 09:12:50 +00:00
Thomas Hellstrom 96f272884d via: Bump version number and date. 2006-06-19 09:01:31 +00:00
Thomas Hellstrom ca1a77683d via:
-Remove out of memory error message.
-Move sman cleanup from final_context to lastclose.
-Add the P4VM800PRO (?) PCI ID.
2006-06-15 18:37:05 +00:00
Thomas Hellstrom 6bacb180ce Merge in the drm-sman-branch 2006-06-06 14:19:00 +00:00
Roland Scheidegger f4e6e4499c Add support for r200 vertex programs (R200_EMIT_VAP_PVS_CNTL, and new
packet type for making it possible to address whole tcl vector space
    and have a larger count)
2006-05-24 18:36:24 +00:00
Roland Scheidegger 9e0320a0ad add forgotten register define for previous commit 2006-05-20 09:20:05 +00:00
Roland Scheidegger e1b627c17e Do a tcl state flush before accessing tcl vector space. This fixes some
more problems with flickering (bug #6637). drm may not be appropriate
    place for this, since doing that flush there might both be overkill and
    insufficient in some cases. However, it's hard to figure out when that
    flush is needed, so this has to suffice. There does not seem to be a
    performance penalty associated with it.
2006-05-20 09:08:18 +00:00
Dave Airlie b1a64b8136 add consts to radeon microcode.
From: tilman
2006-05-18 07:32:37 +00:00
Dave Airlie 30a5787d36 Fix from Benh for ppc r300 scratch 2006-04-23 08:07:57 +00:00
Brian Paul 4a49e6c366 check for __FreeBSD_kernel__ (bug 3810) 2006-04-20 14:26:59 +00:00
Eric Anholt 1327222f9b Err, use "ifndef" rather than "if !", to avoid compiler warning. 2006-04-18 06:12:22 +00:00
Eric Anholt 40b70e3244 Use __LP64__ instead of checking the linux-specific BITS_PER_LONG. 2006-04-18 05:57:28 +00:00
Eric Anholt 63c4d02576 Revert a change that accidentally went in with whitespace changes from
Linux, which broke on FreeBSD. DRM_COPY_*_IOCTL checks for the size
    parameter matching the ioctl's command size there, since the copin/out
    happened earlier.
2006-04-09 20:10:32 +00:00
Eric Anholt 6cb366b5a8 Compile fixes for FreeBSD. 2006-04-08 09:45:43 +00:00
Dave Airlie 299aad03c2 coverity bugfix from the kernel 2006-04-05 08:34:24 +00:00
Dave Airlie 985738f203 radeon fix up the PCI ids for new memory map like the kernel one.. not
perfect but should be very safe... align some other kernel bits i810
    align with kernel
2006-03-25 07:16:14 +00:00
Adam Jackson 9c92b55953 Bump driver date to reflect airlied's last fix. 2006-03-20 21:40:54 +00:00
Dave Airlie 8c8f937b3d make some functions static in via driver 2006-03-19 07:52:53 +00:00
Roland Scheidegger 38376c7fa6 Add missing pci ids for new radeons (most but not all are pcie, r420,
rv380, rv410), with the exception of the rs400 igps. Hopefully they no
    longer lock up with new ddx, but no guarantees... (bug #5413)
2006-03-17 01:35:34 +00:00
Dave Airlie ea40d3dd41 Fix bug I reintroduced 2006-03-08 23:01:32 +00:00
Dave Airlie ef835973b2 fix some use before NULL check 2006-03-08 06:03:45 +00:00
Aapo Tahkola 4436ab86d8 ia64 support for r300_scratch. (not tested) 2006-03-07 01:08:35 +00:00
Aapo Tahkola b3fdf9bb7a Add general-purpose packet for manipulating scratch registers (r300) 2006-03-06 20:08:50 +00:00
Roland Scheidegger 06e8bd2a0d Add all radeon pci ids known by ddx, but only r350/rv350 and below (new
chips may be problematic). Leave the existing entries for new chips in
    though. Remove ids not known by ddx (secondary ids, non-existant,...).
    Correct some entries (name/family). Make the radeon family enum look
    more alike the ddx/dri versions. See #5413
2006-02-25 09:51:15 +00:00
Dave Airlie 4c1c05ad96 missed a piece of benh patch 2006-02-19 12:06:27 +00:00
Dave Airlie d75fa645ed fix brace placement 2006-02-18 05:30:03 +00:00
Dave Airlie eb5666b089 clear i915 interrupts sources on server exit 2006-02-18 04:13:36 +00:00
Dave Airlie 7c18b2565e add proper checking for bitblt multi 2006-02-18 03:21:29 +00:00
Dave Airlie 9fad101da9 add benh's memory management patch 2006-02-18 03:04:30 +00:00
Dave Airlie 4791dc8856 major realigment of DRM CVS with kernel code, makes integration much easier 2006-02-18 02:53:36 +00:00
Thomas Hellstrom 659e9a091d via: Change via_drm.h versioning scheme after lenghty discussion on
unichrome-users.
2006-02-17 17:25:41 +00:00
Keith Whitwell 292d4a5b28 Update the hardware breadcrumb in the sarea on irq reception so that
clients can avoid an ioctl waiting on fences that have already been
    received. Would be even better if the hardware did the update itself.
2006-02-09 23:14:16 +00:00
Alan Hourihane 1f0da9daca fix an error message typo Unkown -> Unknown 2006-01-24 21:24:53 +00:00
Alan Hourihane f19c9eecd1 other part of revert 2006-01-24 21:18:41 +00:00
Alan Hourihane 788750fc8c put back some of Dave's code related to vblank support - accidentally
reverted.
2006-01-24 21:16:54 +00:00
Alan Hourihane 270cffbe43 Fix CMDBUFFER path, add heap destroy and flesh out sarea for rotation
(Tungsten Graphics)
2006-01-23 10:05:22 +00:00
Aapo Tahkola 9a01593f1a Add support for texture cache flushes (R300_TX_CNTL) 2006-01-20 21:45:28 +00:00
Aapo Tahkola 534bfb3742 Sync from r300_reg.h from Mesa. 2006-01-20 21:30:07 +00:00
Alan Hourihane e9732865b7 add Intel i945GM support 2006-01-19 14:14:06 +00:00
Thomas Hellstrom d394c9fa08 via: direction bug in get_user_pages call in via_dmablit.c fixed. Bumped
minor since this causes the via DDX to fail with vlc video player.
2006-01-12 19:08:16 +00:00
Thomas Hellstrom 2e0c281d1a via: Version via_drm.h Alter the drm_via_dmablit_t IOCTL arg. 2006-01-06 11:57:40 +00:00
Thomas Hellstrom a019c10c30 via: Last commit really required a bump of minor. Fix. 2006-01-06 11:52:01 +00:00
Thomas Hellstrom 661004544c via: Combine PCI DMA transfers with stride==width (Idea from Luc
Verhaegen). A somewhat saner PCI DMA transfer size check. Fix some
    typos. Bump patchlevel.
2006-01-06 11:19:06 +00:00
Dave Airlie 2a9dbb2895 make max minor more rational 2006-01-02 05:55:31 +00:00
Dave Airlie bbcba83ef7 The radeon DRM wasn't passing sparse checking in the kernel, this fixes it
by adding a new kernel internal cmd buffer type, that has no userspace
    members, and passes it around.
2006-01-02 05:39:19 +00:00
Dave Airlie 1ad5dfc369 whitespace cleanup/aligment with kernel 2006-01-02 05:22:50 +00:00
Dave Airlie b2be72c444 some fixes from linux kernel 2006-01-02 03:44:23 +00:00
Dave Airlie fb91c500bf complete fix for historic attribution 2006-01-02 03:32:03 +00:00
Dave Airlie 1d86c36655 complete fix for attribution 2006-01-02 03:30:57 +00:00
Dave Airlie 42cd50fa90 Realign via driver with changes in Linux kernel (mainly whitespace) 2006-01-02 03:25:49 +00:00
Dave Airlie 780e90e4a2 add radeon card type get param so userspace can avoid walking PCI 2005-12-29 00:17:51 +00:00
Dave Airlie b14d15ac41 Add vblank support to i915 DRM.. 2005-12-28 23:49:59 +00:00
Dave Airlie 4c988520a8 step back one reported bugs against that patch 2005-12-28 22:36:51 +00:00
Dave Airlie 274fdf482b fix radeon memory mapping from Ben Herrenschmidt 2005-12-16 08:02:17 +00:00
Dave Airlie e7b0176584 Lindent some via files 2005-12-16 07:59:13 +00:00
Dave Airlie 0b4fdc81d1 add texrect support for r300 2005-12-05 01:11:20 +00:00
Eric Anholt f5a9f27bf6 Add RV410 X700PRO PCI ID
Submitted by: Adam K Kirchhoff <adamk@voicenet.com>
2005-12-02 23:55:21 +00:00
Eric Anholt c6344e8df5 Assert an MIT copyright on sis_drm.h, since one was lacking and I created
that particular file. Its contents have changed a good bit since the
    original sis code, and the original sis code didn't care much about
    attribution since it routinely disclaims Precision Insight/VA Linux
    from responsibility. Also, adjust formatting around license headers
    (have a comment open immediately before the "Copyright" line, not as a
    runon of any previous comments) for automatic processing into FreeBSD,
    where /*- is used to signal the beginning of license headers for
    automatic compilation of license lists.
2005-11-28 23:10:41 +00:00
Thomas Hellstrom a5747964ec Fixed long standing 64-bit bug in via memory manager. Bumped via date and
patchlevel.
2005-11-16 10:55:53 +00:00
Thomas Hellstrom c8261e3d24 Loosen via dmablit alignment checks somewhat. Adapt stride check to maximum
sceen size for EXA.
2005-11-15 11:20:47 +00:00
Dave Airlie b5d71f63cd enable i915 32/64 bit ioctls 2005-11-11 12:23:18 +00:00
Dave Airlie 224ebd2c8d RV200 < R200 2005-11-11 10:56:31 +00:00
Dave Airlie 97528041df fix up radeon whitespace 2005-11-11 10:02:10 +00:00
Dave Airlie 3eb577c7c5 mixing breaks in r128 driver.. fixed in kernel 2005-11-11 09:20:34 +00:00
Dave Airlie cec83bf6d3 remove extra spaces 2005-11-11 09:07:08 +00:00
Dave Airlie 9a91674d45 cleanup ioctl/max_ioctl to use header file for extern symbols 2005-11-11 07:45:46 +00:00
Eric Anholt 6481a2e4cd Correct a LOR issue on FreeBSD by allocating temporary space and doing a
single DRM_COPY_FROM_USER rather than DRM_VERIFYAREA_READ followed by
    tons of DRM_COPY_FROM_USER_UNCHECKED. I don't like the look of the
    temporary space allocation, but I like the simplification in the rest
    of the file. Tested with glxgears, tuxracer, and q3 on a savage4.
2005-11-08 21:40:03 +00:00
Eric Anholt a10d8178e3 Initial port of savage to FreeBSD for the AGP and !ShadowStatus case. Adds
drm_mtrr_{add,del} for handling the MTRR setup. Still has a LOR issue
    with DRM_VERIFYAREA_READ/DRM_COPY_FROM_USER_UNCHECKED in savage_bci.c
    -- this won't work with the fine-grained locking in use, and just doing
    a single copyin to a temporary will probably work fine. Also note that
    the module leaks approximately 4 kb on unload.
2005-11-08 20:25:00 +00:00
Eric Anholt 2c6308fe54 Correct a LOR on FreeBSD by allocating a temporary buffer and doing a
single COPY_FROM_USER into it, rather than VERIFYAREA followed by many
    COPY_FROM_USER_UNCHECKEDs.
2005-11-08 09:02:02 +00:00
Eric Anholt 71f9b7357c Fix FreeBSD DRM for latest MGA changes to agp support, which cleans things
up a good bit, I think. Also, remove the agp_uninit() function which
    has lain around as a noop for years now. The FreeBSD DRM is now all
    compiling, with the exception of via. One known sleeping-with-lock-held
    issue remains.
2005-11-08 05:29:26 +00:00
Eric Anholt 1a256df480 Catch FreeBSD up to the pcie gart changes. Required minor modification to
radeon_cp.c to use a drm_local_map_t-type mapping (drm_core_ioremap
    rather than drm_ioremap), which contains private device mapping
    information on BSD. I also changed the ati_pcigart interface to use
    "void *" for pointers to kva rather than "unsigned long". While PCIGART
    support appears to be broken on FreeBSD currently, I think this is not
    new, and BusType PCI remains working on my r100 in Linux.
2005-11-08 02:38:01 +00:00
Ian Romanick 39615ec06e Converts the remaining drm_agp_foo functions to be a drm_agp_foo and
drm_agp_foo_ioctl pair. Modifies the MGA DRM to use the drm_agp_foo
    functions instead of the drm_foo_agp functions. The drm_foo_agp
    functions are no longer exported by drm.ko.
Ensures that dma->seg_count and dma->page_count are properly set in
    drm_addbufs_{agp,sg,fb}. drm_addbufs_pci was already correct.
Ensures that mga_do_agp_dma_bootstrap correctly sets agp_buffer_token.
At this point PCI DMA is still broken.
Xorg bug: #4797 Reviewed by: Dave Airlie, Eric Anholt Signed-off-by: Ian
    Romanick <idr@us.ibm.com>
2005-11-03 00:38:25 +00:00
Thomas Hellstrom b63b771285 via: Sync via_drm.h with 3D driver. Bump via patchlevel and date. 2005-10-22 15:12:05 +00:00
Dave Airlie 6cd0282f64 fix G550 cards 2005-10-20 22:41:26 +00:00
Adam Jackson ea83db57e3 via and r300 still need installed reg headers. 2005-10-20 17:51:57 +00:00