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
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
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
Keith Whitwell
6fc41e25e5
Use spldrm/splx around tsleep() in DRM_WAIT_ON
2003-09-09 07:45:12 +00:00
Eric Anholt
6f563cd513
Fix for older -stable.
...
Obtained from: FreeBSD CVS
2003-09-07 23:27:04 +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
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
Eric Anholt
02675a470e
Merge from FreeBSD r1.11: We have memset in the kernel, no need to define
...
it to bzero (which it was always used for).
2003-08-12 21:18:05 +00:00
Michel Daenzer
4b60cae90e
IRQ code cleanup suggested by Linus Torvalds
...
i830 build fix
2003-07-29 10:11:48 +00:00
Eric Anholt
983db58a26
Fix FreeBSD build after IRQ changes.
2003-07-26 03:18:34 +00:00
Michel Daenzer
bef7017749
Compile fixes for recent 2.5/2.6 Linux kernels. I hope this doesn't break
...
the i830 driver or the BSDs. :)
2003-07-25 10:50:39 +00:00
Michel Daenzer
e5d3c7f260
Support AGP bridges where the AGP aperture can't be accessed directly by
...
the CPU (David Mosberger, Benjamin Herrenschmidt, myself, Paul
Mackerras, Jeff Wiedemeier)
2003-05-16 23:41:27 +00:00
Eric Anholt
87ed795ff3
Fix a typo: On takedown the mtrr operation is MEMRANGE_SET_REMOVE, not
...
_UPDATE.
2003-04-28 23:18:43 +00:00
Eric Anholt
22b9b720d5
Use real endian conversion functions.
2003-04-27 00:43:14 +00:00
Eric Anholt
9828bd24c8
Fix formatting of hw.dri sysctl.
2003-04-26 23:55:30 +00:00
Eric Anholt
766a1da2e5
Remove the map argument from DRM_*MEMORYBARRIER. Not all of the uses of
...
DRM_*MEMORYBARRIER we had were related to an MMIO space. This means
arch-specific code on the BSDs, unfortunately. Also add
DRM_MEMORYBARRIER() and change the DRM_READMEMORYBARRIER()s that used
to be read/write barriers to it.
2003-04-26 23:32:00 +00:00
Eric Anholt
a172ee2a18
MFL: Don't install irq handler unless the driver has been initialized.
2003-04-26 23:04:22 +00:00
Eric Anholt
ce514e08aa
Add PCI DMA memory functions and make addbufs_pci and associated code use
...
it. To do this we need to save the bus address along with the virtual
address in the seglist. Also fix some error handling and a few bits of
whitespace.
2003-04-26 22:52:39 +00:00
Eric Anholt
a79adaab72
Missed files in the last commit: Remove memory debugging sysctl unless
...
MEMORY_DEBUG is set.
2003-04-26 22:21:37 +00:00
Eric Anholt
8621ae310b
Move the memory functions with debugging info to drm_memory_debug.h, and
...
remove a couple of dead functions.
2003-04-26 22:18:39 +00:00
Eric Anholt
79a0c5757e
Remove #if 0'ed code.
2003-04-26 21:57:43 +00:00
Eric Anholt
e60eb69bc0
Replace the C atomic_cmpset_int compatibility function for -stable with the
...
real i386 atomic_cmpset_int from -current. FreeBSD-stable won't ever
have DRM support for non-i386.
2003-04-26 06:53:22 +00:00
Eric Anholt
acb5d6b273
Disable MTRRs on FreeBSD-stable. Without this, it hangs on boot in the MTRR
...
setting for AGP cards on SMP machines.
2003-04-26 06:39:55 +00:00
Eric Anholt
77ee73f8cd
Merge from FreeBSD-current.
2003-04-25 02:27:21 +00:00
Eric Anholt
58650c3a9d
Clean up the DRM_COPY_TO_USER()ing of DRM(infobufs), making it more
...
legible.
2003-04-25 00:02:14 +00:00
Eric Anholt
781828b26e
Clean up the style of the linux-compat code and use ioctl() directly rather
...
than reimplementing it.
2003-04-24 23:57:29 +00:00
Eric Anholt
a147df879b
Remove more gamma DMA infrastructure. Most of this code was copied straight
...
from linux, so it could be added back if some driver needed it in the
future.
2003-04-24 19:09:55 +00:00
Eric Anholt
01178567eb
Remove more gamma DMA code. This isn't all of it, but it's a major portion.
2003-04-24 06:19:54 +00:00
Eric Anholt
c6d2af70cb
Move some common code from addbufs_<type> to addbufs. Make buf_alloc be
...
protected by the count_lock and make it non-atomic.
2003-04-24 05:56:44 +00:00
Eric Anholt
af3bfdef26
Remove the ioctl_count variable from the device. A reference is held to the
...
fp throughout the ioctl syscall, so the device can't be closed out from
under us.
2003-04-24 05:14:05 +00:00
Eric Anholt
bcd527ee71
Remove a bunch of dead code and fix spelling of a couple of comments.
2003-04-24 04:50:07 +00:00
Eric Anholt
9b2b2337b3
Move one definition to drm_drv.h and remove the rest of drm_init.h which
...
was all unused.
2003-04-24 00:46:03 +00:00
Eric Anholt
e21473c888
Remove DRM_DMA_HISTOGRAM and associated code.
2003-04-24 00:37:35 +00:00
Eric Anholt
1fc0a5e1e4
Make DRM(read) and DRM(poll) stubs and remove DRM(write) and
...
DRM(write_string). This is the first part of removing much of the
support code for gamma from the BSD DRM, since it appears that no new
drivers are using it and nobody has ever shown interest in gamma on
BSD.
2003-04-24 00:25:36 +00:00
Eric Anholt
6f88a5351c
Whitespace and remove a dead commented line.
2003-04-01 18:53:24 +00:00
Eric Anholt
aea0418d0d
Remove dead vma code and remove the unused devstate struct definition.
2003-03-29 18:22:28 +00:00
Eric Anholt
6ef79263b6
Add DRMFILE definitions and supply filp for BSD in the
...
post-drm-filp-0-1-branch world. The filp is a void * cast from the
current pid. This is a temporary solution which maintains the status
quo until a proper solution is implemented.
What is really needed is a unique pointer per open, hopefully with a device
private area. This can be done in FreeBSD for all entry points except
mmap, but is difficult (sys/dev/streams/streams.c is an example). I
have partially completed code for this but have not had time to debug,
so this is a temporary fix.
2003-03-29 03:38:47 +00:00
Alan Hourihane
c14006ba9f
XFree86 4.3.0 merge
2003-03-25 00:29:14 +00:00
Eric Anholt
0bd0dd2300
Merge back from FreeBSD-current, adding FreeBSD ID tags to aid future
...
merging. Also includes an update to radeon PCI IDs.
2003-03-11 20:51:28 +00:00
Eric Anholt
638d45d2a0
Make dma_addr_t an unsigned long not a uint32, don't try to use memrange
...
functions on FreeBSD non-x86, and remove a dead define.
2003-03-08 05:05:41 +00:00
Eric Anholt
bf4b8ba753
Remove the vbl signal code because it's untested (and has lock issues on
...
-current).
2003-03-06 19:21:23 +00:00
Eric Anholt
a01d26f39d
Put cdevsw initialization in line with FreeBSD-current. (From r1.10,r1.11
...
of FreeBSD CVS)
2003-03-05 06:06:27 +00:00
Eric Anholt
3f786dbd18
Update mmap handling for FreeBSD-current (Based on r1.3 of FreeBSD CVS).
2003-03-05 06:04:50 +00:00
Eric Anholt
1434bfe4a8
Remove a paste-o in DRM_SPINUNINIT and add a volatile to the compatibility
...
atomic_cmpset_int.
2003-03-05 04:14:52 +00:00
Keith Whitwell
51e5f73d2a
DRM_FREE/2 patch from Philip Brown
2003-03-04 11:41:12 +00:00
Eric Anholt
b487f30ea5
Fix build on NetBSD.
2003-02-22 18:40:12 +00:00
Eric Anholt
cfa778af9c
Merge from bsd-4-0-0-branch.
2003-02-21 23:23:09 +00:00
Michel Daenzer
c7d471b6ae
don't inflate relative vblank sequence numbers on repeated calls (e.g. when
...
interrupted by a signal)
2003-02-02 03:06:47 +00:00
Eric Anholt
66f57c403c
Fix build on -current: Provide M_WAITOK define.
2003-01-24 00:49:15 +00:00
Eric Anholt
a885d6786f
Add vblank signal code for BSD DRM. Untested so far, but working with a
...
4.2.0 userland at least.
2002-12-06 02:27:30 +00:00
Eric Anholt
e656655a36
Kernel support for vblank syncing on Rage 128 and Matrox.
2002-10-30 06:10:34 +00:00
Eric Anholt
10900dab7c
Use bus_alloc_resource/bus_release_resource more properly: save the rid
...
returned by alloc.
2002-10-29 03:20:21 +00:00
Eric Anholt
9f21f02217
Catch up to -current.
2002-10-27 05:24:33 +00:00
Eric Anholt
5e9fad3588
Fix reversed test that broke vblank waiting on FreeBSD.
...
Pointy hat to: anholt
2002-10-14 23:35:24 +00:00
Eric Anholt
537f2208f0
Remove some noise being spit to the console.
2002-09-29 23:56:17 +00:00
Eric Anholt
506c1c02a4
Make our set_bit and friends match linux better (cleans up some warnings)
2002-09-29 23:21:55 +00:00
Eric Anholt
efda4ce353
warnings cleanup
2002-09-29 22:47:08 +00:00
Eric Anholt
33a51d8518
Fix some of my silliness in DRM_WAIT_ON (not returning EINTR).
2002-09-29 22:39:34 +00:00
Keith Whitwell
9243e642da
Move os-dependent stuff out of radeon_irq.c
2002-09-29 21:19:01 +00:00
Eric Anholt
e6901cad69
Fix up BSD irq handling.
2002-09-29 20:48:18 +00:00
Eric Anholt
97961e2c65
BSD vblank framework.
2002-09-26 07:45:07 +00:00
Eric Anholt
770d045d25
Fix one warning.
2002-09-26 07:21:05 +00:00
Keith Whitwell
f1c8fe9557
merged r200-0-2-branch to trunk
2002-09-23 17:26:43 +00:00
Eric Anholt
9797f0fd17
Remove some extra symlinking for kernel module building that hasn't been
...
needed since 2000.
2002-08-30 23:49:25 +00:00
Eric Anholt
5e81d590d5
Include non-radeon modules in the build.
2002-08-27 01:22:55 +00:00
Keith Whitwell
48cc350e21
merged r200-0-1-branch
2002-08-26 22:16:18 +00:00
Eric Anholt
77c35c043a
Remove drm_linux.h, move the two useful defines into drm_drv.h (the only
...
place they're used). Use fd locking on -current. Actually copy in data
from userspace to kernel in the linux-compat ioctl path. Make sure
ioctl sizes are as expected in the ioctl handler functions.
2002-08-21 07:14:21 +00:00
Alan Hourihane
74ef13fd00
merged bsd-3-0-0-branch
2002-07-05 08:31:11 +00:00
Alan Hourihane
2ab6ff7190
fixups for *BSD
2002-03-11 11:26:13 +00:00
Alan Hourihane
46cacdca85
first pass at merging mesa 4.0 kernel drivers into new bsd-3-0-0 branch.
2002-03-06 19:30:45 +00:00
David Dawes
44aa4d6297
First pass merge of XFree86 4.2.0 import.
2002-01-27 20:05:42 +00:00
David Dawes
14945ada16
Import of XFree86 4.2.0
2002-01-27 18:23:04 +00:00
David Dawes
16bd14926e
Initial revision
2002-01-27 18:23:04 +00:00
David Dawes
18fc5ee923
First pass of XFree86 4.0.99.2 merge.
2001-04-09 21:56:31 +00:00
David Dawes
1759c16ab9
Import -f XFree86 4.0.99.2
2001-04-09 16:27:54 +00:00
Alan Hourihane
8bc39d01ca
Import of XFree86 4.0.1
2000-07-10 21:32:06 +00:00
Doug Rabson
d399dbcd56
Merged bsd-1-0-1
2000-06-13 17:38:09 +00:00
Doug Rabson
fa0a35a25f
Merged bsd-1-0-0
2000-05-30 17:13:31 +00:00