Commit graph

52 commits

Author SHA1 Message Date
Dave Airlie
5c9ed83094 Merged drmfntbl-0-0-1 2004-08-17 13:10:05 +00:00
Eric Anholt
d78db7c930 Enable MTRR usage on AMD64, and use DELAY() instead of rolling our own
udelay code.
Submitted by: Jung-uk Kim <jkim@niksun.com>
2004-08-13 23:17:17 +00:00
Dave Airlie
1cec18a5cd add read/write 16 2004-07-29 13:00:48 +00:00
Eric Anholt
694291fbd3 MFC as of 20040705: dev_t -> struct cdev * change. 2004-07-06 00:23:42 +00:00
Eric Anholt
853adb8be3 Merge from FreeBSD-current. Mostly 64-bit cleanliness fixes, but a few
driver interface changes from -current.
2004-05-11 04:43:43 +00:00
Eric Anholt
c47b611b08 Add mach64 DRM module for BSD (untested, but compiles). 2004-05-09 22:36:19 +00:00
Eric Anholt
6e56c39371 Fix a locking nit, and add asserts in some things that should be called
with locks held.
2003-11-12 20:30:51 +00:00
Eric Anholt
8feb046d8c Args for the BSD DRM_PUT_USER_UNCHECKED were swapped. 2003-11-05 02:41:50 +00:00
Michel Daenzer
2655ccddf4 Memory layout transition:
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-04 00:46:05 +00:00
Eric Anholt
3f7279cb8e Add a DRM_PUT_USER_UNCHECKED, which will be used by an upcoming radeon
change.
2003-10-27 22:05:38 +00:00
Eric Anholt
86e6325e5a - Add DRM_GET_PRIV_WITH_RETURN macro. This can be used in shared code to
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-22 22:08:53 +00:00
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
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
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
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
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
bd3bc9f23d This PCI header has been living in dev/pci/ for a while now. 2003-08-29 19:07:27 +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
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
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
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
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
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
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
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
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
cfa778af9c Merge from bsd-4-0-0-branch. 2003-02-21 23:23:09 +00:00
Eric Anholt
66f57c403c Fix build on -current: Provide M_WAITOK define. 2003-01-24 00:49:15 +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
506c1c02a4 Make our set_bit and friends match linux better (cleans up some warnings) 2002-09-29 23:21:55 +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
97961e2c65 BSD vblank framework. 2002-09-26 07:45:07 +00:00
Keith Whitwell
f1c8fe9557 merged r200-0-2-branch to trunk 2002-09-23 17:26:43 +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