Commit Graph

2517 Commits (bc5423f16838257a040a55b88df9588d268fda06)

Author SHA1 Message Date
Eric Anholt ea7b4fdc22 Fix the possibility of sleeping with locks held in sysctls by copying the
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-20 05:09:21 +00:00
Eric Anholt 6b0424fdcd Clean up BSD MTRR handling. The NetBSD code is untested, but it's my best
shot.
2003-10-20 00:55:56 +00:00
Eric Anholt 0cf1887139 - SMPng lock the DRM. This is only partial -- there are a few code paths
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-19 23:35:58 +00:00
Eric Anholt 59fbe01fea Clean up extra zeroing of dev->dma, and use calloc to take advantage of
M_ZERO.
2003-10-19 22:29:08 +00:00
Eric Anholt 63ce8af555 Fix probing on 2.5+ kernels, which require that drivers have .id_table set.
We use PCI_ANY_ID to ask that our probe is called for every available
    device.
Submitted by: jonsmirl
2003-10-19 20:06:03 +00:00
Eric Anholt 2950f9e682 - Move IRQ functions from drm_dma.h to new drm_irq.h and disentangle them
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 05:13:48 +00:00
Eric Anholt ff58476011 - Converted Linux drivers to initialize DRM instances based on PCI IDs, not
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-17 03:14:39 +00:00
Michel Daenzer 355b204de0 Introduce COMMIT_RING() as in radeon DRM, stop using error prone writeback
for ring read pointer (Paul Mackerras)
Get rid of some superfluous stuff, minor fixes
2003-10-16 14:18:52 +00:00
Eric Anholt a64dab1323 Try that again. It's a long. 2003-10-16 03:20:03 +00:00
Eric Anholt a9e1a57d6d Debug printf format fix. 2003-10-16 03:19:06 +00:00
Eric Anholt 9fbfb7ca6a Some code cleanups done while working on locking. Reduces always-true
tests, excessive indenation, convoluted handling of errors, or code
    duplication.
2003-10-03 08:08:10 +00:00
Eric Anholt 929536172c Stylistic preparation for SMPng locking work: DRM_LOCK/DRM_UNLOCK have side
effects, so make them look like functions (add parenthesis).
2003-10-03 07:02:51 +00:00
Eric Anholt e187d665e4 Add an MIT-style copyright, assigned to myself, to these files. I think
I've touched enough of the code here, and there was no previous
    copyright. Do some drive-by style fixes while I'm here.
2003-10-02 20:52:44 +00:00
Eric Anholt 89dd7be3dd Axe more old gamma DMA infrastructure. 2003-10-02 07:02:34 +00:00
Eric Anholt a6b84f73e1 Mostly whitespace cleanups and style(9) fixes focused on "if(" -> "if ("
Change some nearby memset()s to bzero()s or to calloc allocations to
    take advantage of M_ZERO). Reverse some error tests to reduce high
    levels of indentation. Move the sg_cleanup() call out of the maplist
    loop in DRM(takedown)-- I can't see any need for it to be inside.
2003-10-02 04:48:54 +00:00
Eric Anholt 4dee75ff58 Wrap sys/endian.h usage with __FreeBSD_version >= 480000.
Obtained from: i865-agp-0-1-branch
2003-10-02 04:12:34 +00:00
Eric Anholt 4a55e75e97 Allow the DRM to attach to a "drmsub" device. This will be provided by the
i810 AGP module, working around the limitation of one driver per
    device.
Obtained from: i865-0-1-branch
2003-10-02 04:07:03 +00:00
Eric Anholt 8fe6a0d6c9 MTRR issue with SMP and -stable seems to be resolved. Re-enable MTRRs on
4.x
2003-10-02 03:51:49 +00:00
Jose Fonseca e5546d2f26 file via_drm.h was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 87c04835df file via.h was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 64828b7fe3 file via_drv.c was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 215a05721b file via_drv.h was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 37ff4d7dde file via_ds.c was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 53e11840a5 file via_ds.h was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 097d0a51e2 file via_map.c was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca 8d9d816807 file via_mm.c was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Jose Fonseca d04d1cf313 file via_mm.h was initially added on branch cle266-0-0-1-branch. 2003-09-30 22:43:23 +00:00
Leif Delgass 5d4b137076 Fix typo in SiS help message (and testing cvs commit to
dri.freedesktop.org)
2003-09-28 21:27:09 +00:00
Eric Anholt 28aee7fb1c Whitespace cleanup (spaces before tabs or instead of tabs). 2003-09-25 23:04:10 +00:00
Eric Anholt b0fab09c4d Whitespace cleanup.
Submitted by: Linus Torvalds <torvalds@osdl.org>
2003-09-25 19:08:46 +00:00
Eric Anholt a0a38f8bd6 Fix Kconfig for SiS DRM now that it doesn't require sisfb.
Submitted by: Linus Torvalds <torvalds@osdl.org>
2003-09-25 19:08:11 +00:00
Alan Hourihane b0a928557c post merge fix 2003-09-24 14:39:25 +00:00
Alan Hourihane decf9e2297 compatibility layer still uses agp (not gart) 2003-09-13 00:25:59 +00:00
Alan Hourihane dc17c4cdc3 bsd drm fixes 2003-09-12 20:03:17 +00:00
Alan Hourihane c5168016cc linux drm fixes 2003-09-12 20:00:59 +00:00
Alan Hourihane 85c16d962d resolve merge conflicts 2003-09-12 14:24:17 +00:00
Keith Whitwell 6fc41e25e5 Use spldrm/splx around tsleep() in DRM_WAIT_ON 2003-09-09 07:45:12 +00:00
Eric Anholt 4d6d357202 Correct format in debug printfs (free is a pointer, not an int). 2003-09-07 23:56:20 +00:00
Eric Anholt 6f563cd513 Fix for older -stable.
Obtained from: FreeBSD CVS
2003-09-07 23:27:04 +00:00
Eric Anholt ebca51d8da Update to reflect renaming of SIS ioctls. 2003-08-29 21:41:32 +00:00
Eric Anholt f634f68759 These files were missed in the SiS DRM commit. 2003-08-29 20:54:26 +00:00
Eric Anholt fabc64dd57 Port the SiS DRM to FreeBSD. This includes the ability for the DRM to
allocate framebuffer memory without sisfb, and a new ioctl to be used
    by the X Server which tells the DRM what region of framebuffer memory
    to allocate from. Also fixes a possibility to panic the kernel I
    believe. Tested on linux with sisfb and FreeBSD (without sisfb) with
    new DRI only.
2003-08-29 19:24:36 +00:00
Eric Anholt a7aebb6dac Add DRM(calloc), which is convenient, used by the new sis code, and takes
advantage of M_ZERO on BSDs.
2003-08-29 19:16:13 +00:00
Eric Anholt db78129116 Update radeon PCI IDs. 2003-08-29 19:08:06 +00:00
Eric Anholt bd3bc9f23d This PCI header has been living in dev/pci/ for a while now. 2003-08-29 19:07:27 +00:00
Michel Daenzer ba804e7864 Remove superfluous TLB flush 2003-08-28 12:14:17 +00:00
Michel Daenzer b83d2f909e Rename agp to gart for radeon 2003-08-26 16:49:33 +00:00
Michel Daenzer 062751ac47 Remove artificial PCI GART limitations, rename AGP to GART where
appropriate
2003-08-26 15:44:01 +00:00
Eric Anholt 963ad33cb6 Fix the debug build. 2003-08-19 02:22:57 +00:00
Eric Anholt ad78a613a4 - Remove $FreeBSD$ tags as they weren't too useful and merges are now being
done through perforce.
- Add copyright headers to drm_os_*bsd.h, still need to research the other
    copyright-less files better.
2003-08-19 00:41:00 +00:00