Commit Graph

22 Commits (9b7bf9127e94e0c57a760aacef15db0ae3d6f1b3)

Author SHA1 Message Date
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 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 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
Michel Daenzer 4b60cae90e IRQ code cleanup suggested by Linus Torvalds
i830 build fix
2003-07-29 10:11:48 +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 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
Alan Hourihane c14006ba9f XFree86 4.3.0 merge 2003-03-25 00:29:14 +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
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
Alan Hourihane 74ef13fd00 merged bsd-3-0-0-branch 2002-07-05 08:31:11 +00:00