Commit Graph

343 Commits (4499ea42eae887c45403cd9ea364fccf311fee8e)

Author SHA1 Message Date
Dave Airlie 1ee210e3b5 dirty hack to make mach64 work, (don't worry I'll get around to fixing it
asap..)
2004-06-12 02:30:52 +00:00
Keith Whitwell 373d67702c A few changes for recent redhat. 2004-06-10 12:48:35 +00:00
Keith Whitwell 0faa00ae64 i915 drm module 2004-06-10 12:47:50 +00:00
Dave Airlie cfa5bf3129 The dev->devname being passed to request_irq in drm_irq.h is null. With the
old DRM interface, the devname was set in DRM(setunique), but with the
    current DRM interface >=1.1 the devname is not being set in
    DRM(set_busid).
From: Alan Swanson Approved-by: Dave Airlie <airlied@linux.ie>
2004-06-07 01:42:35 +00:00
Dave Airlie 024fd4b150 2.4 compat 2004-05-30 23:38:08 +00:00
Dave Airlie 412f9909c6 fixes from kernel: Make users of page->count use the provided macros 2004-05-30 23:34:23 +00:00
Dave Airlie 8350382cb1 another 2.4 fix 2004-05-18 09:46:31 +00:00
Dave Airlie df6c37fc88 2.4 compat fix 2004-05-18 09:42:22 +00:00
Dave Airlie a1160ba279 do some real testing and fix the DRM initialising and unloading 2004-05-10 11:16:26 +00:00
Dave Airlie a2f7a9fa5f Commit sysfs and drm PCI changes for 2.6 kernel 2004-05-09 06:45:17 +00:00
Dave Airlie 0b481856dd use drm.. not dri for class... 2004-05-03 00:06:04 +00:00
Dave Airlie a9d2438999 fix 2.4 build 2004-05-02 13:03:51 +00:00
Dave Airlie a3612f450b better device class support from Jon Smirls patches.. 2004-05-02 12:27:17 +00:00
Dave Airlie d40443534c Add __user annotations from kernel 2004-04-22 12:41:43 +00:00
Dave Airlie 87812e82f4 add sparc ffb files from kernel just to keep things in sync 2004-04-22 11:31:55 +00:00
Dave Airlie 2d9bbba0e1 bug from Linux kernel list caught by checker 2004-04-21 12:18:42 +00:00
Dave Airlie 93bd67ef62 centralise pci ids into one place and use scripts to generate files for
kernel
2004-04-21 12:13:31 +00:00
Michel Daenzer 0f32a88527 Move Makefile.linux to Makefile.
Get rid of Makefile juggling hacks which are no longer necessary.
2004-04-18 22:59:01 +00:00
Dave Airlie 6fa5c5d958 more files for mach64 2004-04-12 05:44:16 +00:00
Dave Airlie 873e1c4d38 Add mach64 to the trunk 2004-04-12 05:27:40 +00:00
Dave Airlie 7e0f883501 include highmem.h 2004-04-10 13:25:30 +00:00
Dave Airlie e375a3dc10 patch from Andrew Morton tree from Arjan van de Ven fixes some oopses seen
with 4G/4G split
2004-04-10 08:15:48 +00:00
Dave Airlie 23ec8875fc align code with Linux kernel. 2004-04-10 07:41:19 +00:00
Dave Airlie 6aad146173 remove unused code 2004-04-10 07:39:00 +00:00
Dave Airlie fd47335798 update from linux kernel for ia64 2004-04-10 07:36:30 +00:00
Alan Hourihane ce601f3647 disable PCI DMA ioctls as they are not used currently until SAVAGE_CMD_DMA
is made to work.
2004-04-08 23:19:15 +00:00
Dave Airlie c47597b484 big whitespace .. this aligns all the whitespace in this file with the bk
checkout linux tree
2004-04-08 14:15:36 +00:00
Dave Airlie 13724f032e 2.6 sysfs patches + stubs in drmP.h for 2.4 compatibility 2004-04-08 13:11:04 +00:00
Dave Airlie c3e2685e82 long dev_t patches from 2.6 tree 2004-04-08 12:25:31 +00:00
Dave Airlie 9cff4b45e7 2.6 patches for larger dev_t 2004-04-08 12:22:22 +00:00
Dave Airlie 3e0f3c1fbb more 2.4 compat fns 2004-04-08 12:20:39 +00:00
Dave Airlie 1bc7576474 patch from Linux kernel 2.6.5 2004-04-08 12:09:10 +00:00
Dave Airlie ee2889ec0d patch from lk 2004-04-08 11:26:52 +00:00
Thomas Hellstrom 994fa063cd VIA module fixes:
1. Fixed up PCI-id's.
2. Fixed 2.6 warning in kernel Makefile.
2004-03-31 22:05:57 +00:00
Thomas Hellstrom 9b7bf9127e Added via driver to drm/linux/Config.in Reported by: Terry Barnaby 2004-03-26 13:42:48 +00:00
Thomas Hellstrom 1da595d797 Exported symbols cause compilation failure of via_mm.c on 2.4 kernels.
Added via_mm.o to export-objs:
Reported by: HMX, Via Arena Forum
2004-03-24 23:22:22 +00:00
Thomas Hellstrom b15deb2392 Modified linux/Kconfig to include the via drm driver. 2004-03-24 10:07:37 +00:00
Thomas Hellstrom 89d67d9087 Merged via-1-2-0: Altered Makefiles in drm/linux 2004-03-23 21:14:17 +00:00
Jon Smirl 0b6f155dbd Add a missing ifdef CTX to get rid of the waring in the gamma driver build.
XFree86 bug: Reported by: Submitted by: Reviewed by: Obtained from:
2004-03-16 00:52:24 +00:00
Jon Smirl 24115068e4 Fixes need to clean up the mess I made with the mesa merge. This code
allows the mesa drivers to use a single definition of the DRM
    sarea/IOCTLS located in the drm driver directory. Adjustments were made
    to the 2D drivers to not include these changes. Changes to the mesa
    copy of DRM were copied to the DRI copy. XFree86 bug: Reported by:
    Submitted by: Reviewed by: Obtained from:
2004-03-12 21:22:52 +00:00
Michel Daenzer f47ed99143 Remove extraneous code accidentally added with revision 1.86 2004-02-28 14:29:44 +00:00
Michel Daenzer b61f07def3 More differentiated error codes for DRM(agp_acquire)
Obtained from: Linux kernel
2004-02-28 11:52:19 +00:00
Felix Kuehling ce21dca4aa Use DO_MUNMAP_4_ARGS macro defined in Makefile.linux (Steve Holland).
Silence a warning about a format-argument mismatch in printk.
2004-02-24 14:24:07 +00:00
Felix Kuehling 3dea36d843 Merged the Savage DRM driver from the savage-2-0-0-branch into the trunk. 2004-02-22 16:20:16 +00:00
Felix Kuehling d0031f22cf Conditionally add definition of list_for_each_entry_safe for kernel
versions that don't have it.
2004-02-21 19:54:51 +00:00
Keith Whitwell 82157579b5 drm_ctx_dtor.patch Submitted by: Erdi Chen 2004-02-20 22:55:12 +00:00
Michel Daenzer 2b9c12ef83 Adapt to nopage() prototype change in Linux 2.6.1.
Reviewed by: Arjan van de Ven <arjanv@redhat.com>, additional feedback from
    William Lee Irwin III and Linus Torvalds.
2004-01-11 00:14:28 +00:00
Eric Anholt 9fb6986e83 Don't ioremap the framebuffer area. The ioremapped area wasn't used by
anything, and took up valuable KVA. While I'm in the area, clean up BSD
    MTRR stuff some more.
Suggested by: jonsmirl
2003-12-16 08:57:08 +00:00
Eric Anholt 1f7598245a Return EBUSY when attempting to addmap a DRM_SHM area with a lock in it if
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-06 04:48:06 +00:00
Alan Hourihane a41a479f74 Changes to DRM(irq_install)...... wrap dev->dma usage with __HAVE_DMA in
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 20:47:28 +00:00
Eric Anholt 66c9e3053f - Tie the DRM to a specific device: setunique no longer succeeds when given
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-05 08:13:52 +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
Jon Smirl e4a2a9c040 Switch pci enumeration call to work on both 2.4 and 2.6 pci_for_each_dev is
not supported on 2.6
2003-10-24 17:40:54 +00:00
Eric Anholt b79d1b341f Move to "old-style" probing as documented in linux/Documentation/pci.txt.
This should resolve the probe problems with radeon framebuffer due to
    pci_driver attachment being exclusive.
2003-10-23 05:56:13 +00:00
Eric Anholt 06cb132e86 - Introduce a new ioctl, DRM_IOCTL_SET_VERSION. This ioctl allows the
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🅱️d:f format.
- Use the new DRICreatePCIBusID function in the *_dri.c to request the new,
    more exact busid format.
2003-10-23 02:23:31 +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 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
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 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 c5168016cc linux drm fixes 2003-09-12 20:00:59 +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
Michel Daenzer ba804e7864 Remove superfluous TLB flush 2003-08-28 12:14:17 +00:00
Michel Daenzer 9d7b01ebbe Merge from 2.6 kernel (Linus Torvalds) 2003-08-15 10:31:54 +00:00
Dave Airlie a073ff7dc7 DA: loads of whitespace .. some from Linus, some from me 2003-08-15 01:05:24 +00:00
Dave Airlie 428cbe0b91 DA: patch from Matthew upgraded to latest DRI head to solve issue with i810
compatibility
2003-08-13 23:35:40 +00:00
Dave Airlie 447d8c56bb DA: code cleanups for i810_dma.c from 2.4 kernel 2003-08-11 01:46:02 +00:00
Michel Daenzer e7944efc45 build fix for kernels >= 2.6 2003-08-07 10:13:50 +00:00
Michel Daenzer da16867c84 Fix maplist entries being used after they were freed; thanks to Benjamin
Herrenschmidt for tracking this down
2003-08-06 11:46:21 +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
Michel Daenzer 32ef0f59a8 Fail in DRM(agp_acquire) if the AGP aperture can't be used, such that the X
server falls back to PCI GART or disables the DRI gracefully
2003-07-25 10:31:37 +00:00
Keith Whitwell 3669639b21 Restore __HAVE_KERNEL_CTX_SWITCH, required for the sparc drm module in the
kernel tree. Added comments to that effect.
2003-07-11 15:27:55 +00:00
Dave Airlie 1654bc5752 DA: fix for bug 484 in Bugzilla, originally from me, reworked by David
Dawes to avoid backword incompatibilities...
2003-07-09 23:21:15 +00:00
Keith Whitwell 2daf147652 Removed unused __HAVE_KERNEL_CTX_SWITCH, whatever that was. 2003-07-08 17:10:13 +00:00
Leif Delgass 39e1c534c0 Don't need to include linux/wrapper.h - we only use Set/ClearPageReserved
from linux/mm.h now and wrapper.h has been removed in 2.5.69 and later.
2003-07-04 18:31:42 +00:00
Jose Fonseca 93522f6d3a Revert the janitorial - that works is now on the new branch
newdrm-0-0-1-branch.
2003-06-19 00:09:52 +00:00
Jose Fonseca fdf320a1b8 Move the linux AGP includes into drm_agp.h and only define the AGP data
structures if AGP support is enabled in the kernel (__REALLY_HAVE_AGP).
    This fixes the compile errors on kernels without AGP support.
2003-06-14 15:18:49 +00:00
Dave Airlie f723f743c5 fix pitch compile error 2003-06-07 01:44:15 +00:00
Dave Airlie 8eaa2d2450 add page flipping support to the DRM, up version number to 1.3.0... 2003-06-05 23:31:40 +00:00
Jose Fonseca 8e7cd92f35 Added the Doxygen configuration file. Minor documentation fixes. 2003-06-03 23:50:23 +00:00
Jose Fonseca 6611a5fb7f Split declarations/definitions in drm_scatter.h into drm_sg.h/drm_sg_tmp.h
respectively. Splited the work out of the ioctls and renamed (with the
    _ioctl prefix). Added some more documentation. Did the same for
    drm_sgpsupport.h.
2003-06-03 23:27:01 +00:00
Leif Delgass ccf6d6a513 Restore DRM_*MEMORYBARRIER change reverted with documentation merge 2003-05-28 01:44:49 +00:00
Jose Fonseca d2443b2186 Merged DRM documentation. 2003-05-27 00:37:33 +00:00
Michel Daenzer b942999b59 do allow reading from read only mappings... 2003-05-17 00:37:34 +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
Leif Delgass 7e1a4bfab3 remove unused variables 2003-04-29 16:59:00 +00:00
Leif Delgass 5f1e2399eb Restore Eric Anholt's DRM_*MEMORYBARRIER changes from rev 1.11 2003-04-28 17:49:26 +00:00
Leif Delgass a57d320461 Only free original pagelist in addbufs_pci if one already exists (fixes
oops).
2003-04-28 16:20:31 +00:00
Alan Hourihane 6eb5364eb8 DRM_READ/WRITEMEMORYBARRIER was given an argument in the bsd tree, fix for
linux
2003-04-28 15:29:46 +00:00
Keith Whitwell c584292e30 Put back __HAVE_KERNEL_CTX_SWITCH for David Miller's sparc drm driver
(which doesn't live in our cvs).
2003-04-27 09:53:58 +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
Leif Delgass f2a0c5438d Ensure driver has been initialized (dev_private != NULL) before installing
irq handler in DRM(irq_install). Modify all drivers to ensure irq
    handler is removed before cleanup and cleanup is called at takedown.
    Remove unused buffer private struct fields in i810, i830. Check for
    lock on init/cleanup in all drivers except i810/i830. The current DDX
    for i810 and i830 doesn't hold the lock on kernel init (FIXME?).
2003-04-26 22:28:56 +00:00
Keith Whitwell f5844cea13 2.5.x sync patch from Linus Torvalds 2003-04-26 21:33:44 +00:00
Keith Whitwell 2c40a56393 move prototypes for gamma functions to gamma_drv.h 2003-04-26 21:22:08 +00:00
Keith Whitwell 2142b7840a Remove #if 0'd code 2003-04-26 21:21:36 +00:00
Leif Delgass cb32dde3be Fix potential oops and memory leaks when allocations fail in
addbufs_agp/pci. Add support for buffer private structs with PCI DMA
    buffers. Also some debug format string fixes.
2003-04-25 19:42:47 +00:00
Leif Delgass 16fda821eb Pass dma handle from pci_alloc_consistent to the card for status page,
rather than using virt_to_bus() on the virtual address.
2003-04-24 23:18:33 +00:00