summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2004-03-19merge up trunk to branch..mach64-0-0-7-branchDave Airlie2-20/+42
2004-03-08Bring in Linux list implementation for bsd from mach64-0-0-6-branchLeif Delgass4-0/+142
2004-03-07Bring over missing files and Makefile changes for bsd fromLeif Delgass8-3/+177
mach64-0-0-6-branch. (Build on bsd not tested, may still need work)
2004-03-07Bring mach64 option back into Kconfig from mach64-0-0-6-branchLeif Delgass2-0/+22
2004-03-01Don't need version checks for irqreturn_t, IRQ_HANDLED, IRQ_NONE sinceLeif Delgass2-18/+4
these are defined by drm_os_XXX.h. Only return IRQ_HANDLED for interrupts we handle and acknowledge. XFree86 bug: Reported by: Submitted by: Reviewed by: Obtained from:
2004-02-21add prototypes for pci functionsDave Airlie2-0/+8
2004-02-10change to irq_handlerDave Airlie2-4/+4
2004-02-09add mach64 drm to branchDave Airlie11-0/+7397
2004-02-09add mach64 DRM to new branchDave Airlie7-2/+467
2004-01-11Adapt to nopage() prototype change in Linux 2.6.1.Michel Daenzer4-110/+228
Reviewed by: Arjan van de Ven <arjanv@redhat.com>, additional feedback from William Lee Irwin III and Linus Torvalds.
2004-01-10Make sure that all state packets are handled inMichel Daenzer2-58/+236
radeon_check_and_fixup_packets() Fix state packet IDs of R200 cubic offsets
2004-01-10R200_PP_CUBIC_OFFSET_F1_[0-6] state packets only contain 5 offsets, not 6Michel Daenzer2-2/+2
(thanks to Andreas Stenglein for spotting this)
2004-01-06Fix some misuse of NULL where 0 is intended.Eric Anholt4-4/+4
Obtained from: FreeBSD CVS
2003-12-16Don't ioremap the framebuffer area. The ioremapped area wasn't used bydriinterface-0-0-2-branchEric Anholt22-132/+72
anything, and took up valuable KVA. While I'm in the area, clean up BSD MTRR stuff some more. Suggested by: jonsmirl
2003-12-16Add a collection of Radeon and R128 PCI IDs, including the IGP chipsets.Eric Anholt2-1/+44
Submitted by: Donnie Berkholz <spyderous@gentoo.org> (mostly)
2003-12-08Add i865 pci idtrunk-20031209newmesa-0-0-1-20031209-mergeKeith Whitwell1-0/+1
2003-11-12Fix a locking nit, and add asserts in some things that should be callednewmesa-0-0-1-20031209driinterface-0-0-1-branchEric Anholt8-14/+24
with locks held.
2003-11-06Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it ifEric Anholt4-0/+32
dev->lock.hw_lock is already set. This fixes the case of two X Servers running on the same head on different VTs with interface 1.1, by making the 2nd head fail to inizialize like before.
2003-11-06Remove unused variable.Eric Anholt2-2/+0
2003-11-05Changes to DRM(irq_install)...... wrap dev->dma usage with __HAVE_DMA inAlan Hourihane2-0/+8
irq handler, fixes kernel ooops. comment out some setting of flags that are done in DRM(setup) (not sure why both of the above is done in the irq handler)
2003-11-05- Tie the DRM to a specific device: setunique no longer succeeds when givenEric Anholt27-553/+511
a busid that doesn't correspond to the device the DRM is attached to. This is a breaking of backwards-compatibility only for the multiple-DRI-head case with X Servers that don't use interface 1.1. - Move irq_busid to drm_irq.h and make it only return the IRQ for the current device. Retains compatibility with previous X Servers, cleans up unnecessary code. This means no irq_busid on !__HAVE_IRQ, but can be changed if necessary. - Bump interface version to 1.2. This version when set signifies that the control ioctl should ignore the irq number passed in and enable the interrupt handler for the attached device. Otherwise it errors out when the passed-in irq is not equal to the device's. - Store the highest version the interface has been set to in the device. - Fix a recursion on DRM_LOCK in irq_uninstall on FreeBSD. This leaves irq_uninstall being done without the lock in some cases, but it was racey anyways.
2003-11-05Use int64_t instead of s64 -- fixes FreeBSD compile, works on linux.Eric Anholt1-1/+1
2003-11-05Args for the BSD DRM_PUT_USER_UNCHECKED were swapped.Eric Anholt2-2/+2
2003-11-05__linux__ is spelled with a lowercase 'l'Eric Anholt2-2/+2
2003-11-05Repo-copy linux/drm/kernel/drm.h to shared/drm/kernel/drm.h and use it onEric Anholt6-1150/+7
both Linux and *BSD.
2003-11-05Remove buf_alloc which is unused since the locking commit.Eric Anholt4-4/+0
2003-11-04build fixmach64-last-mergeMichel Daenzer1-0/+1
2003-11-04Memory layout transition:Michel Daenzer27-107/+710
the 2D driver initializes MC_FB_LOCATION and related registers sanely the DRM deduces the layout from these registers clients use the new SETPARAM ioctl to tell the DRM where they think the framebuffer is located in the card's address space the DRM uses all this information to check client state and fix it up if necessary This is a prerequisite for things like direct rendering with IGP chips and video capturing.
2003-11-03Add i852/i855 PCI ID. Also fix whitespace in the other ID definitions.savage-2-0-0-forkEric Anholt1-2/+3
2003-10-27Add a DRM_PUT_USER_UNCHECKED, which will be used by an upcoming radeonEric Anholt2-0/+4
change.
2003-10-24Don't try to use dev->dma_lock unless dma is initialized (dev->dma != NULL)Eric Anholt2-4/+2
in bufs_info sysctl handler. dev->dma and dev->dma_lock existence are protected by DRM_LOCK(). Fixes panic on sysctl hw.dri when the device is uninitialied (when you aren't in X).
2003-10-24Switch pci enumeration call to work on both 2.4 and 2.6 pci_for_each_dev isJon Smirl2-4/+4
not supported on 2.6
2003-10-24Move the REALLY_HAVE_AGP endif above the mtrr functions. Broke tdfx module.Eric Anholt2-2/+2
2003-10-23Move to "old-style" probing as documented in linux/Documentation/pci.txt.Eric Anholt2-40/+20
This should resolve the probe problems with radeon framebuffer due to pci_driver attachment being exclusive.
2003-10-23Missed the sis.h header in Makefile.linux in the move to shared/.Eric Anholt1-2/+2
2003-10-23The SiS300 pci id also covers the 305, so make the name reflect that.Eric Anholt1-1/+1
2003-10-23- Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows theEric Anholt17-17/+468
server or client to notify the DRM that it expects a certain version of the device dependent or device independent interface. If the major doesn't match or minor is too large, EINVAL is returned. A major of -1 means that the requestor doesn't care about that portion of the interface. The ioctl returns the actual versions in the same struct. - Introduce DRM DI interface version 1.1. If the server requests version 1.1, then the DRM sets the unique itself according to the busid of the device it probed, which may then be accessed as normal using getunique. - Request version 1.1 in libdrm's drmOpenByBusID, allowing the X Server to request based on a BusID. Introduce a wrapper for DRM_IOCTL_SET_VERSION and bump libdrm minor version. - Pass the busid in DRIScreenInit if libdrm can handle both a busid and name. This allows drmOpenByBusID to be used to find the DRM instead of just the driver name, which allows us in the future to tie a DRM more strongly to the device it probed to. Introduce a function DRICreatePCIBusID which creates a busid in the form pci:oooo:bb:dd.f similar to linux's pci_name() function. This matches the format used by the DRM in version 1.1. libdrm knows how to match both this format and the old PCI:b:d:f format. - Use the new DRICreatePCIBusID function in the *_dri.c to request the new, more exact busid format.
2003-10-22- Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code toEric Anholt12-60/+92
get the drm_file_t * based on the filp passed in ioctl handlers. - Use this macro on BSD for simplification and improve its error reporting. Make failure to find the drm_file_t * print as an error, not debug. This failure may be part of the problem with KDE. - Make debug and error print macros include the pid on BSD.
2003-10-22Fix warning about static DRM(bufs_info) defined but not used in theEric Anholt2-0/+4
!__HAVE_DMA case.
2003-10-20Fix the possibility of sleeping with locks held in sysctls by copying theEric Anholt9-208/+276
data into temporary variables with the lock held then outputting to sysctls with the lock released. Rearranged a little extra code to aid this. Note that drm_memory_debug.h hasn't had this fix applied, but I consider that code to be just about dead anyway.
2003-10-20Clean up BSD MTRR handling. The NetBSD code is untested, but it's my bestEric Anholt12-192/+180
shot.
2003-10-19- SMPng lock the DRM. This is only partial -- there are a few code pathsEric Anholt26-472/+470
used by root (the X Server) which are not locked. However, it should deal with lost-IRQ issues on -current which I think people have been experiencing but I am unable to reproduce (though I understand why they would occur, because of a bug of mine). Note that most of the locking (DRM_LOCK()/UNLOCK()) is all covered by Giant still, so it doesn't matter yet. - Remove locking on FreeBSD-stable and NetBSD. These are covered by the fact that there is no reentrancy of the kernel except by interrupts, which are locked using spldrm()/splx() instead.
2003-10-19Clean up extra zeroing of dev->dma, and use calloc to take advantage ofEric Anholt2-16/+4
M_ZERO.
2003-10-19Fix probing on 2.5+ kernels, which require that drivers have .id_table set.Eric Anholt2-2/+10
We use PCI_ANY_ID to ask that our probe is called for every available device. Submitted by: jonsmirl
2003-10-17- Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle themEric Anholt59-1140/+1301
from __HAVE_DMA. This will be useful for adding vblank sync support to sis and tdfx. Rename dma_service to irq_handler, which is more accurately what it is. - Fix the #if _HAVE_DMA_IRQ in radeon, r128, mga, i810, i830, gamma to have the right number of underscores. This may have been a problem in the case that the server died without doing its DRM_IOCTL_CONTROL to uninit.
2003-10-17- Converted Linux drivers to initialize DRM instances based on PCI IDs, notEric Anholt35-643/+382
just a single instance. Moved the PCI ID lists from <card>_drv.c in BSD to <card>.h. The PCI ID lists include a driver private field, which may be used by drivers for chip family or other information. Based on work by jonsmirl. - Make tdfx_drv.c and tdfx.h match other drivers. - Fixed up linking of sis shared files. Tested with Radeon and SiS on Linux and FreeBSD, including a Linux setup with 2 SiS cards in a machine, but only one head being used (with DRI)
2003-10-16Introduce COMMIT_RING() as in radeon DRM, stop using error prone writebackMichel Daenzer6-126/+130
for ring read pointer (Paul Mackerras) Get rid of some superfluous stuff, minor fixes
2003-10-16Try that again. It's a long.Eric Anholt2-2/+2
2003-10-16Debug printf format fix.Eric Anholt2-2/+2
2003-10-03Some code cleanups done while working on locking. Reduces always-trueEric Anholt4-262/+212
tests, excessive indenation, convoluted handling of errors, or code duplication.