Dave Airlie [Thu, 8 Apr 2004 12:05:25 +0000 (12:05 +0000)]
fixes from Linux kernel
Dave Airlie [Thu, 8 Apr 2004 11:26:52 +0000 (11:26 +0000)]
patch from lk
Thomas Hellstrom [Wed, 31 Mar 2004 22:05:57 +0000 (22:05 +0000)]
VIA module fixes:
1. Fixed up PCI-id's.
2. Fixed 2.6 warning in kernel Makefile.
Dave Airlie [Fri, 26 Mar 2004 15:52:11 +0000 (15:52 +0000)]
copy correct Makefile
Thomas Hellstrom [Fri, 26 Mar 2004 13:42:48 +0000 (13:42 +0000)]
Added via driver to drm/linux/Config.in Reported by: Terry Barnaby
Thomas Hellstrom [Wed, 24 Mar 2004 23:22:22 +0000 (23:22 +0000)]
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
Thomas Hellstrom [Wed, 24 Mar 2004 10:07:37 +0000 (10:07 +0000)]
Modified linux/Kconfig to include the via drm driver.
Thomas Hellstrom [Tue, 23 Mar 2004 21:14:17 +0000 (21:14 +0000)]
Merged via-1-2-0: Altered Makefiles in drm/linux
Thomas Hellstrom [Tue, 23 Mar 2004 21:08:48 +0000 (21:08 +0000)]
Merged via-1-2-0
Dave Airlie [Tue, 23 Mar 2004 11:17:03 +0000 (11:17 +0000)]
make sure in DRM toplevel
Dave Airlie [Tue, 23 Mar 2004 11:06:47 +0000 (11:06 +0000)]
initial shell script to create linux kernel drm from the DRI one
Jon Smirl [Wed, 17 Mar 2004 01:03:26 +0000 (01:03 +0000)]
Adjust shared path in makefile XFree86 bug: Reported by: Submitted by:
Reviewed by: Obtained from:
Jon Smirl [Tue, 16 Mar 2004 00:59:24 +0000 (00:59 +0000)]
Makefile the makefile really clean everything XFree86 bug: Reported by:
Submitted by: Reviewed by: Obtained from:
Jon Smirl [Tue, 16 Mar 2004 00:52:24 +0000 (00:52 +0000)]
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:
Jon Smirl [Fri, 12 Mar 2004 21:22:52 +0000 (21:22 +0000)]
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:
Michel Daenzer [Sat, 28 Feb 2004 14:29:44 +0000 (14:29 +0000)]
Remove extraneous code accidentally added with revision 1.86
Michel Daenzer [Sat, 28 Feb 2004 11:52:19 +0000 (11:52 +0000)]
More differentiated error codes for DRM(agp_acquire)
Obtained from: Linux kernel
Felix Kuehling [Tue, 24 Feb 2004 14:24:07 +0000 (14:24 +0000)]
Use DO_MUNMAP_4_ARGS macro defined in Makefile.linux (Steve Holland).
Silence a warning about a format-argument mismatch in printk.
Felix Kuehling [Sun, 22 Feb 2004 16:20:16 +0000 (16:20 +0000)]
Merged the Savage DRM driver from the savage-2-0-0-branch into the trunk.
Felix Kuehling [Sat, 21 Feb 2004 19:54:51 +0000 (19:54 +0000)]
Conditionally add definition of list_for_each_entry_safe for kernel
versions that don't have it.
Keith Whitwell [Fri, 20 Feb 2004 22:55:12 +0000 (22:55 +0000)]
drm_ctx_dtor.patch Submitted by: Erdi Chen
Michel Daenzer [Wed, 18 Feb 2004 20:56:58 +0000 (20:56 +0000)]
Fix sisfb header location for 2.6 kernels
Submitted by: Andrew Morton
Michel Daenzer [Sun, 11 Jan 2004 00:14:28 +0000 (00:14 +0000)]
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.
Michel Daenzer [Sat, 10 Jan 2004 20:59:16 +0000 (20:59 +0000)]
Make sure that all state packets are handled in
radeon_check_and_fixup_packets()
Fix state packet IDs of R200 cubic offsets
Michel Daenzer [Sat, 10 Jan 2004 12:28:06 +0000 (12:28 +0000)]
R200_PP_CUBIC_OFFSET_F1_[0-6] state packets only contain 5 offsets, not 6
(thanks to Andreas Stenglein for spotting this)
Eric Anholt [Tue, 6 Jan 2004 04:54:25 +0000 (04:54 +0000)]
Fix some misuse of NULL where 0 is intended.
Obtained from: FreeBSD CVS
Eric Anholt [Tue, 16 Dec 2003 08:57:08 +0000 (08:57 +0000)]
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
Eric Anholt [Tue, 16 Dec 2003 07:39:43 +0000 (07:39 +0000)]
Add a collection of Radeon and R128 PCI IDs, including the IGP chipsets.
Submitted by: Donnie Berkholz <spyderous@gentoo.org> (mostly)
Keith Whitwell [Mon, 8 Dec 2003 16:33:08 +0000 (16:33 +0000)]
Add i865 pci id
Eric Anholt [Wed, 12 Nov 2003 20:30:51 +0000 (20:30 +0000)]
Fix a locking nit, and add asserts in some things that should be called
with locks held.
Eric Anholt [Thu, 6 Nov 2003 04:48:06 +0000 (04:48 +0000)]
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.
Eric Anholt [Thu, 6 Nov 2003 04:35:08 +0000 (04:35 +0000)]
Remove unused variable.
Alan Hourihane [Wed, 5 Nov 2003 20:47:28 +0000 (20:47 +0000)]
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)
Eric Anholt [Wed, 5 Nov 2003 08:13:52 +0000 (08:13 +0000)]
- 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.
Eric Anholt [Wed, 5 Nov 2003 02:42:56 +0000 (02:42 +0000)]
Use int64_t instead of s64 -- fixes FreeBSD compile, works on linux.
Eric Anholt [Wed, 5 Nov 2003 02:41:50 +0000 (02:41 +0000)]
Args for the BSD DRM_PUT_USER_UNCHECKED were swapped.
Eric Anholt [Wed, 5 Nov 2003 02:08:31 +0000 (02:08 +0000)]
__linux__ is spelled with a lowercase 'l'
Eric Anholt [Wed, 5 Nov 2003 01:43:47 +0000 (01:43 +0000)]
Repo-copy linux/drm/kernel/drm.h to shared/drm/kernel/drm.h and use it on
both Linux and *BSD.
Eric Anholt [Wed, 5 Nov 2003 00:49:35 +0000 (00:49 +0000)]
Remove buf_alloc which is unused since the locking commit.
Michel Daenzer [Tue, 4 Nov 2003 00:59:52 +0000 (00:59 +0000)]
build fix
Michel Daenzer [Tue, 4 Nov 2003 00:46:05 +0000 (00:46 +0000)]
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.
Eric Anholt [Mon, 3 Nov 2003 05:11:04 +0000 (05:11 +0000)]
Add i852/i855 PCI ID. Also fix whitespace in the other ID definitions.
Eric Anholt [Mon, 27 Oct 2003 22:05:38 +0000 (22:05 +0000)]
Add a DRM_PUT_USER_UNCHECKED, which will be used by an upcoming radeon
change.
Eric Anholt [Fri, 24 Oct 2003 21:49:28 +0000 (21:49 +0000)]
Don't try to use dev->dma_lock unless dma is initialized (dev->dma != NULL)
in bufs_info sysctl handler. dev->dma and dev->dma_lock existence are
protected by DRM_LOCK(). Fixes panic on sysctl hw.dri when the device
is uninitialied (when you aren't in X).
Jon Smirl [Fri, 24 Oct 2003 17:40:54 +0000 (17:40 +0000)]
Switch pci enumeration call to work on both 2.4 and 2.6 pci_for_each_dev is
not supported on 2.6
Eric Anholt [Fri, 24 Oct 2003 00:59:31 +0000 (00:59 +0000)]
Move the REALLY_HAVE_AGP endif above the mtrr functions. Broke tdfx module.
Eric Anholt [Thu, 23 Oct 2003 05:56:13 +0000 (05:56 +0000)]
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.
Eric Anholt [Thu, 23 Oct 2003 05:52:19 +0000 (05:52 +0000)]
Missed the sis.h header in Makefile.linux in the move to shared/.
Eric Anholt [Thu, 23 Oct 2003 05:51:35 +0000 (05:51 +0000)]
The SiS300 pci id also covers the 305, so make the name reflect that.
Eric Anholt [Thu, 23 Oct 2003 02:23:31 +0000 (02:23 +0000)]
- 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:b:d:f format.
- Use the new DRICreatePCIBusID function in the *_dri.c to request the new,
more exact busid format.
Eric Anholt [Wed, 22 Oct 2003 22:08:53 +0000 (22:08 +0000)]
- 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.
Eric Anholt [Wed, 22 Oct 2003 21:50:09 +0000 (21:50 +0000)]
Fix warning about static DRM(bufs_info) defined but not used in the
!__HAVE_DMA case.
Eric Anholt [Mon, 20 Oct 2003 05:09:21 +0000 (05:09 +0000)]
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.
Eric Anholt [Mon, 20 Oct 2003 00:55:56 +0000 (00:55 +0000)]
Clean up BSD MTRR handling. The NetBSD code is untested, but it's my best
shot.
Eric Anholt [Sun, 19 Oct 2003 23:35:58 +0000 (23:35 +0000)]
- 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.
Eric Anholt [Sun, 19 Oct 2003 22:29:08 +0000 (22:29 +0000)]
Clean up extra zeroing of dev->dma, and use calloc to take advantage of
M_ZERO.
Eric Anholt [Sun, 19 Oct 2003 20:06:03 +0000 (20:06 +0000)]
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
Eric Anholt [Fri, 17 Oct 2003 05:13:48 +0000 (05:13 +0000)]
- 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.
Eric Anholt [Fri, 17 Oct 2003 03:14:39 +0000 (03:14 +0000)]
- 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)
Michel Daenzer [Thu, 16 Oct 2003 14:18:52 +0000 (14:18 +0000)]
Introduce COMMIT_RING() as in radeon DRM, stop using error prone writeback
for ring read pointer (Paul Mackerras)
Get rid of some superfluous stuff, minor fixes
Eric Anholt [Thu, 16 Oct 2003 03:20:03 +0000 (03:20 +0000)]
Try that again. It's a long.
Eric Anholt [Thu, 16 Oct 2003 03:19:06 +0000 (03:19 +0000)]
Debug printf format fix.
Eric Anholt [Fri, 3 Oct 2003 08:08:10 +0000 (08:08 +0000)]
Some code cleanups done while working on locking. Reduces always-true
tests, excessive indenation, convoluted handling of errors, or code
duplication.
Eric Anholt [Fri, 3 Oct 2003 07:02:51 +0000 (07:02 +0000)]
Stylistic preparation for SMPng locking work: DRM_LOCK/DRM_UNLOCK have side
effects, so make them look like functions (add parenthesis).
Eric Anholt [Thu, 2 Oct 2003 20:52:44 +0000 (20:52 +0000)]
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.
Eric Anholt [Thu, 2 Oct 2003 07:02:34 +0000 (07:02 +0000)]
Axe more old gamma DMA infrastructure.
Eric Anholt [Thu, 2 Oct 2003 04:48:54 +0000 (04:48 +0000)]
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.
Eric Anholt [Thu, 2 Oct 2003 04:12:34 +0000 (04:12 +0000)]
Wrap sys/endian.h usage with __FreeBSD_version >= 480000.
Obtained from: i865-agp-0-1-branch
Eric Anholt [Thu, 2 Oct 2003 04:07:03 +0000 (04:07 +0000)]
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
Eric Anholt [Thu, 2 Oct 2003 03:51:49 +0000 (03:51 +0000)]
MTRR issue with SMP and -stable seems to be resolved. Re-enable MTRRs on
4.x
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_drm.h was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via.h was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_drv.c was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_drv.h was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_ds.c was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_ds.h was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_map.c was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_mm.c was initially added on branch cle266-0-0-1-branch.
Jose Fonseca [Tue, 30 Sep 2003 22:43:23 +0000 (22:43 +0000)]
file via_mm.h was initially added on branch cle266-0-0-1-branch.
Leif Delgass [Sun, 28 Sep 2003 21:27:09 +0000 (21:27 +0000)]
Fix typo in SiS help message (and testing cvs commit to
dri.freedesktop.org)
Eric Anholt [Thu, 25 Sep 2003 23:04:10 +0000 (23:04 +0000)]
Whitespace cleanup (spaces before tabs or instead of tabs).
Eric Anholt [Thu, 25 Sep 2003 19:08:46 +0000 (19:08 +0000)]
Whitespace cleanup.
Submitted by: Linus Torvalds <torvalds@osdl.org>
Eric Anholt [Thu, 25 Sep 2003 19:08:11 +0000 (19:08 +0000)]
Fix Kconfig for SiS DRM now that it doesn't require sisfb.
Submitted by: Linus Torvalds <torvalds@osdl.org>
Alan Hourihane [Wed, 24 Sep 2003 14:39:25 +0000 (14:39 +0000)]
post merge fix
Alan Hourihane [Sat, 13 Sep 2003 00:25:59 +0000 (00:25 +0000)]
compatibility layer still uses agp (not gart)
Alan Hourihane [Fri, 12 Sep 2003 20:03:17 +0000 (20:03 +0000)]
bsd drm fixes
Alan Hourihane [Fri, 12 Sep 2003 20:00:59 +0000 (20:00 +0000)]
linux drm fixes
Alan Hourihane [Fri, 12 Sep 2003 14:24:17 +0000 (14:24 +0000)]
resolve merge conflicts
Keith Whitwell [Tue, 9 Sep 2003 07:45:12 +0000 (07:45 +0000)]
Use spldrm/splx around tsleep() in DRM_WAIT_ON
Eric Anholt [Sun, 7 Sep 2003 23:56:20 +0000 (23:56 +0000)]
Correct format in debug printfs (free is a pointer, not an int).
Eric Anholt [Sun, 7 Sep 2003 23:27:04 +0000 (23:27 +0000)]
Fix for older -stable.
Obtained from: FreeBSD CVS
Eric Anholt [Fri, 29 Aug 2003 21:41:32 +0000 (21:41 +0000)]
Update to reflect renaming of SIS ioctls.
Eric Anholt [Fri, 29 Aug 2003 20:54:26 +0000 (20:54 +0000)]
These files were missed in the SiS DRM commit.
Eric Anholt [Fri, 29 Aug 2003 19:24:36 +0000 (19:24 +0000)]
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.
Eric Anholt [Fri, 29 Aug 2003 19:16:13 +0000 (19:16 +0000)]
Add DRM(calloc), which is convenient, used by the new sis code, and takes
advantage of M_ZERO on BSDs.
Eric Anholt [Fri, 29 Aug 2003 19:08:06 +0000 (19:08 +0000)]
Update radeon PCI IDs.
Eric Anholt [Fri, 29 Aug 2003 19:07:27 +0000 (19:07 +0000)]
This PCI header has been living in dev/pci/ for a while now.
Michel Daenzer [Thu, 28 Aug 2003 12:14:17 +0000 (12:14 +0000)]
Remove superfluous TLB flush
Michel Daenzer [Tue, 26 Aug 2003 16:49:33 +0000 (16:49 +0000)]
Rename agp to gart for radeon
Michel Daenzer [Tue, 26 Aug 2003 15:44:01 +0000 (15:44 +0000)]
Remove artificial PCI GART limitations, rename AGP to GART where
appropriate