Commit Graph

472 Commits (184a50368505bb74f3efac3cf48e72db41487342)

Author SHA1 Message Date
Dave Airlie be3e54bc15 2.4 hotplug compat 2004-08-04 10:53:21 +00:00
Dave Airlie 4f8f02a192 fix for drm in /proc - from Jon Smirl 2004-08-03 09:21:11 +00:00
Jon Smirl 5e7e41819e Add a hotplug event to DRM. Parameters match the ones from the general PCI
hotplug event plus the addition of one requesting RESET. Put your
    scripts in /etc/hotplug.d/drm to run. kernel class_simple generates the
    ADD/REMOVE events. No cards currently request RESET, the flag is there
    to stop you from resetting your boot display.
2004-07-31 15:45:00 +00:00
Dave Airlie eb3d0635d4 fixes for using userspace pointers found by sparse utility
From: Dave Airlie
2004-07-31 07:26:52 +00:00
Dave Airlie dc4508c338 athe patch below optimises the drm code to not do put_user() on memory the
kernel allocated and then mmap-installed to userspace, but instead
    makes it use the kernel virtual address directly instead.
From: Arjan van de Ven <arjanv@redhat.com>
2004-07-31 07:25:58 +00:00
Dave Airlie 02df04d71d sync up with current 2.6 kernel bk tree - mostly __user annotations 2004-07-25 08:47:38 +00:00
Dave Airlie 1f132b7849 whitespace merge with kernel 2004-07-25 05:52:22 +00:00
Dave Airlie c54ba5691a if the driver has already register don't do another intermodule register 2004-07-25 05:41:44 +00:00
Dave Airlie 6ba31fb481 Patch from Tom Arbuckle for missing bus_address 2004-07-25 05:36:45 +00:00
Dave Airlie 6ed7e36f4c another logic error returns 0 or greater for success 2004-07-22 12:07:13 +00:00
Dave Airlie ea2155a2e1 ATI Rage 128 and Radeon DRM unconditionally depend on PCI
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
2004-07-21 09:36:16 +00:00
Dave Airlie c9911beb09 add some more debugging fix ++ and -- 2004-07-21 09:30:43 +00:00
Dave Airlie a776c5ec04 first set of __user annotations from kernel (Al Viro) 2004-07-20 12:43:12 +00:00
Dave Airlie 9266bf5301 Kconfig update add i915 bring over some stuff from kernel 2004-07-20 11:35:29 +00:00
Dave Airlie b20b00d4bc add x86_64 architecture defines from kernel (leave AMD64 defines in for
backwards compat)
2004-07-20 11:26:13 +00:00
Dave Airlie fdb6ae31cb fix some more NULLs from kernel 2004-07-20 11:22:26 +00:00
Dave Airlie 7ee263b94f attempt to clean up stub_register, register_chrdev isn't good enough to
make the decision for multiple cards with one drm ..
2004-07-20 10:59:02 +00:00
Dave Airlie 8efddd01e8 sparse cleanups from kernel: Al Viro 2004-07-15 13:03:55 +00:00
Dave Airlie bb5112b616 Fix reference counting for stub for new Linux PCI probe 2004-07-14 12:34:55 +00:00
Dave Airlie e86fc9f47f allow O= usage for Linux 2.6 kernel building in another directory 2004-07-14 12:14:37 +00:00
Dave Airlie 6c16cbd404 split out backwards compat into a separate file makes it easier for merging
to 2.6
2004-07-11 10:17:34 +00:00
Dave Airlie f9e2fe8470 fix issue in 2.4 kernels with returning NULL from this function 2004-07-11 09:58:49 +00:00
Jon Smirl 6e4bf5ead5 Add two items to Makefile clean XFree86 bug: Reported by: Submitted by:
Reviewed by: Obtained from:
2004-07-08 20:18:10 +00:00
Dave Airlie 3c9fb37e65 fixes from kernel for 0 vs NULL - mika 2004-07-05 11:56:51 +00:00
Dave Airlie 87832bc81a fix bug with pci_disable_device in the wrong place (Paul Mackerras) remove
hack code from me..
2004-06-21 11:46:52 +00:00
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 78d0fd6526 gamma_dma_priority and gamma_dma_send_buffers both deref d->send_indices
and/or d->send_sizes. When these functions are called from gamma_dma,
    these pointers are user pointers and are thus not safe to deref. This
    patch copies over the pointers inside gamma_dma_priority and
    gamma_dma_send_buffers.
Submitted-by: Robert T. Johnson <rtjohnso@eecs.berkeley.edu> Signed-off-by:
    Dave Airlie <airlied@linux.ie>
2004-06-10 09:43:53 +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
Michel Daenzer 7e39628577 Have CVS ignore some files produced by the build. 2004-04-10 16:20:00 +00:00
Dave Airlie 7e0f883501 include highmem.h 2004-04-10 13:25:30 +00:00
Dave Airlie 2b0292c739 update gamma_dma with patch from davej in 2.6 2004-04-10 12:58:18 +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 ab66cbc1c5 Adjust shared path in makefile XFree86 bug: Reported by: Submitted by:
Reviewed by: Obtained from:
2004-03-17 01:03:26 +00:00
Jon Smirl 537ac1a39e Makefile the makefile really clean everything XFree86 bug: Reported by:
Submitted by: Reviewed by: Obtained from:
2004-03-16 00:59:24 +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
Keith Whitwell 64006ef86b Add i865 pci id 2003-12-08 16:33: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
Eric Anholt 5864101ab4 Repo-copy linux/drm/kernel/drm.h to shared/drm/kernel/drm.h and use it on
both Linux and *BSD.
2003-11-05 01:43:47 +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 84dfe702e2 Add i852/i855 PCI ID. Also fix whitespace in the other ID definitions. 2003-11-03 05:11:04 +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 69d038eb49 Missed the sis.h header in Makefile.linux in the move to shared/. 2003-10-23 05:52:19 +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
Alan Hourihane 85c16d962d resolve merge conflicts 2003-09-12 14:24:17 +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