Commit Graph

136 Commits

Author SHA1 Message Date
Greg Kroah-Hartman
0650fd5824 [PATCH] DRM: fix up classdev interface for drm core
Current drm code doesn't work with userspace programs that listen only
to the kernel event netlink socket as it is trying to create its own dev
interface.  Turns out lots of code can just be deleted as the driver
core can do all of this work automatically for you.

Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2006-02-06 12:17:17 -08:00
Linus Torvalds
cf41f8ac38 Merge branch 'drm-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2006-02-02 07:49:43 -08:00
Dave Airlie
30e2fb1881 sem2mutex: drivers/char/drm/
From: Arjan van de Ven <arjan@infradead.org>

Semaphore to mutex conversion.

The conversion was generated via scripts, and the result was validated
automatically via a script as well.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-02-02 19:37:46 +11:00
Dave Airlie
ce60fe02fb drm: drivers/char/drm/: make some functions static
From: Adrian Bunk <bunk@stusta.de>

This patch makes some needlessly global functions static.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-02-02 19:21:38 +11:00
Dave Airlie
339363c4c6 drm: Fixes sparse warnings in via_dmablit.c
Fixes the following sparse warnings:

 drivers/char/drm/via_dmablit.c:111:35: warning: Using plain integer as NULL pointer
 drivers/char/drm/via_dmablit.c:584:23: warning: Using plain integer as NULL pointer

Signed-off-by: Luiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-26 08:32:14 +11:00
Dave Airlie
de227f5f32 drm: i915 patches from Tungsten Graphics
Fix CMDBUFFER path, add heap destroy and flesh out sarea for rotation
(Tungsten Graphics)

From: Alan Hourihane <alanh@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-25 15:31:43 +11:00
Dave Airlie
507d256bae drm: ati_pcigart: simplify page_count manipulations
From: Nick Piggin <npiggin@suse.de>

Allocate a compound page for the user mapping instead of tweaking the page
refcounts.

Signed-off-by: Nick Piggin <npiggin@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-25 14:58:58 +11:00
Dave Airlie
f1e5c03d34 drm: use NULL instead of 0
From: Randy Dunlap <rdunlap@xenotime.net>

Use NULL instead of 0 (sparse warnings):

drivers/char/drm/ati_pcigart.c:64:10: warning: Using plain integer as NULL
pointer
drivers/char/drm/ati_pcigart.c:130:21: warning: Using plain integer as NULL
pointer
drivers/char/drm/ati_pcigart.c:171:14: warning: Using plain integer as NULL
pointer

Signed-off-by: Randy Dunlap <rdunlap@xenotime.net>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-25 14:54:15 +11:00
Dave Airlie
2fed3bd743 drm: add X600 PCI IDs
From: Brice Goglin <Brice.Goglin@ens-lyon.org>

Now that Xorg 6.9/7.0 has been released, DRI is supported on more Radeon
cards without ATI proprietary drivers.  I got my X300 to work without
problem.  But, another Radeon X600 required to add its PCI ids to the
Radeon driver.  Patch is attached.

I can't be sure about the "CHIP_RV350", I copied it from the X300 entry
(from http://dri.freedesktop.org/wiki/ATIRadeon, X600 is a rv380 chip while
X300 is a rv370).  But, at least it works now.

Signed-off-by: Brice Goglin <Brice.Goglin@ens-lyon.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-25 14:52:43 +11:00
Dave Airlie
5457f38e01 drm: add i945GM PCI ID
From: Charles F. Johnson <charles.f.johnson@intel.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-25 14:34:33 +11:00
Dave Airlie
d59cc22f7c drm: Fix sparce warning in radeon driver
From: Luiz Fernando Capitulino <lcapitulino@mandriva.com.br>

drivers/char/drm/radeon_cp.c:1643:31: warning: Using plain integer as NULL
pointer

Signed-off-by: Luiz Capitulino <lcapitulino@mandriva.com.br>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-25 14:31:45 +11:00
Arjan van de Ven
858119e159 [PATCH] Unlinline a bunch of other functions
Remove the "inline" keyword from a bunch of big functions in the kernel with
the goal of shrinking it by 30kb to 40kb

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Acked-by: Jeff Garzik <jgarzik@pobox.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-14 18:27:06 -08:00
Linus Torvalds
37ef4399a6 Merge branch 'drm-forlinus' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6 2006-01-12 13:53:40 -08:00
Dave Airlie
9c7d462eda drm: fix issues with systems with no MTRR
On systems with no MTRR we should still define the interface.

Original bug from apkm.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-12 20:44:30 +11:00
Dave Airlie
aab8df141f drm: cleanup properly on drm module unload
Cleanup multiple cards properly

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-11 22:32:51 +11:00
Dave Airlie
8d2ea62581 drm: fixup drm bufs being just under the EOM
If the mapping was just under the end of memory it would fail.
Lets DRM start on my PCI card.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-11 20:48:09 +11:00
Christoph Hellwig
7ff92053dd [PATCH] don't include ioctl32.h in drivers
These days ioctl32.h is only used for communication of fs/compat.c and
fs/compat_ioctl.c and doesn't contain anything of interest to drivers.

Remove inclusion in various drivers.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-10 08:01:34 -08:00
Dave Airlie
f8e0f2905b drm: fix radeon warnings on 64-bit
From: Andrew Morton <akpm@osdl.org>

drivers/char/drm/radeon_state.c: In function `radeon_cp_dispatch_texture':
drivers/char/drm/radeon_state.c:1653: warning: int format, different type arg
(arg 3)
drivers/char/drm/radeon_state.c:1661: warning: int format, different type arg
(arg 3)
drivers/char/drm/radeon_state.c:1689: warning: int format, different type arg
(arg 3)

sizeof() doesn't return an int.

Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-10 19:56:17 +11:00
Dave Airlie
2185200cd2 drm: fix warning on alpha
From: Andrew Morton <akpm@osdl.org>

On alpha:

drivers/char/drm/via_dmablit.h:44: error: field `direction' has incomplete type

Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-10 19:53:54 +11:00
Dave Airlie
4e4c62bd45 drm: remove is_pci flag completely...
this snuck back in, in the last merge.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-03 22:25:29 +11:00
Dave Airlie
97f2aab669 drm: merge in Linus mainline 2006-01-03 18:18:01 +11:00
Dave Airlie
d985c10881 drm: major update from CVS for radeon and core
This patch pull in a lot of changes from CVS to the main core DRM,
and updates the radeon driver to 1.21.0 that supports r300 texrect
and radeon card type ioctl.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 21:32:48 +11:00
Dave Airlie
b0cae664eb drm: update drm pci ids list
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 21:23:07 +11:00
Dave Airlie
fe34765be1 drm: drm_ioctl.c sync with fixes from CVS
Apply the fixes from CVS that were outstanding for this file

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 21:19:39 +11:00
Dave Airlie
b3a80a223d drm: update lock flags from userspace
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 21:15:01 +11:00
Dave Airlie
0d6aa60b4a drm: update to i915 1.3.0
Add support for vblank ioctls to i915 driver

From: Dave Airlie <airlied@linux.ie>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 20:14:23 +11:00
Dave Airlie
f0c408b564 drm: update drm_memory_debug.h
Update from DRM CVS for drm memory debug

From: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 19:52:09 +11:00
Dave Airlie
1e7d51902a drm: proper fix for drm_context
Bad patch in last version

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 19:25:35 +11:00
Dave Airlie
b5e9fc13dd drm: fix issue with contexts running out of RAM
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 19:23:44 +11:00
Dave Airlie
f26c473cdf drm: update PCIGART support from CVS
In order to work on FreeBSD the gart needed to use a local mapping
This patch moves the mainline to the new code and aligns some comment
changes

From: Eric Anholt <anholt@freebsd.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 17:18:39 +11:00
Dave Airlie
0a406877e6 drm: remove old reclaim_buffers from ix0 drivers
From: Dave Airlie <airlied@linux.ie>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 16:49:02 +11:00
Dave Airlie
269dc51296 drm: bring savage inline with latest CVS
apply some whitespace cleanup and add wrappers for MTRR for OS calls

From: Eric Anholt <anholt@freebsd.org> + Dave Airlie <airlied@linux.ie>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 16:23:01 +11:00
Dave Airlie
3528af1b18 drm: fix a LOR issue on FreeBSD for savage driver
Correct a LOR issue on FreeBSD by allocating temporary space and doing a single
DRM_COPY_FROM_USER rather than DRM_VERIFYAREA_READ followed by tons of
DRM_COPY_FROM_USER_UNCHECKED.  I don't like the look of the temporary space
allocation, but I like the simplification in the rest of the file.  Tested
with glxgears, tuxracer, and q3 on a savage4.

From: Eric Anholt <anholt@freebsd.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 16:11:44 +11:00
Dave Airlie
952d751a14 drm: bring sis + tdfx up to latest CVS
Cleanup SIS + TDFX drivers with latest changes from CVS.

From: Eric Anholt <anholt@freebsd.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 14:44:12 +11:00
Dave Airlie
443448d054 drm: via driver update to CVS version
This updates the DRM via driver to the latest CVS version, which contains
support for DMA blitting.

It also contains some whitespace and other minor fixes

From: Thomas Hellstrom <unichrome@shipmail.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 14:26:20 +11:00
Dave Airlie
a7a2cc315c drm: move ioctl flags to a bit field of flags
From: Dave Airlie

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-01-02 13:54:04 +11:00
Linus Torvalds
392c14beac Revert radeon AGP aperture offset changes
This reverts the series of commits

	67dbb4ea33
	281ab031a8
	47807ce381

that changed the GART VM start offset.  It fixed some machines, but
seems to continually interact badly with some X versions.

Quoth Ben Herrenschmidt:

  "So I think at this point, the best is that we keep the old bogus code
   that at least is consistent with the bug in the server. I'm working on a
   big patch to X that reworks the memory map stuff completely and fixes
   those issues on the server side, I'll do a DRM patch matching this X fix
   as well so that the memory map is only ever set in one place and with
   what I hope is a correct algorithm..."

Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-29 13:01:54 -08:00
Benjamin Herrenschmidt
67dbb4ea33 [PATCH] Fix more radeon GART start calculation cases
As reported by Jules Villard <jvillard@ens-lyon.fr> and some others, the
recent GART aperture start reconfiguration causes problems on some
setups.

What I _think_ might be happening is that the X server is also trying to
muck around with the card memory map and is forcing it back into a wrong
setting that also happens to no longer match what the DRM wants to do
and blows up.  There are bugs all over the place in that code (and still
some bugs in the DRM as well anyway).

This patch attempts to avoid that by using the largest of the 2 values,
which I think will cause it to behave as it used to for you and will
still fix the problem with machines that have an aperture size smaller
than the video memory.

Acked-by: Jules Villard <jvillard@ens-lyon.fr>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-27 19:57:52 -08:00
Jean Delvare
ee219e5e7c [PATCH] radeon drm: fix compilation breakage with gcc 2.95.3
Fix a typo which breaks radeon drm compilation with gcc 2.95.3.

The offending line was added back in 2.6.11-rc3, but was harmless
back then. A recent addition nearby changed it into a compilation
breaker: commit 281ab031a8.

The doubled semi-colon ends up being an empty instruction, and the
variable declaration thus ends up being in the middle of "code".

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-18 16:19:35 -08:00
Benjamin Herrenschmidt
281ab031a8 [PATCH] radeon drm: fix agp aperture map offset
This finally fixes the radeon memory mapping bug that was incorrectly
fixed by the previous patch.  This time, we use the actual vram size as
the size to calculate how far to move the AGP aperture from the
framebuffer in card's memory space.

If there are still issues with this patch, they are due to bugs in the X
driver that I'm working on fixing too.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Mark M. Hoffman <mhoffman@lightlink.com>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-15 22:22:57 -08:00
Dave Airlie
47807ce381 [drm] fix radeon aperture issue
Ben noticed that on certain cards we've landed the AGP space on top of
the second aperture instead of after it..  Which messes things up a lot
on those machines.

This just moves the gart further out, a more correct fix is in the works
from Ben for after 2.6.15.

Signed-off-by: Dave Airlie <airlied@linux.ie>
CC: Ben Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-12-12 21:02:22 -08:00
Egbert Eich
c801147c5a [PATCH] SiS DRM: Fix possible NULL dereference
This fixes a NULL pointer reference in DRM.  The SiS driver tries to
allocate a big chunk of memory, but the return value is never checked.

Reported in Novell bugzilla #132271:
  https://bugzilla.novell.com/show_bug.cgi?id=132271

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-30 08:45:40 -08:00
Dave Airlie
cf65f1623d drm: fix quiescent locking
A fix for a locking bug which is triggered when a client tries to lock with
flag DMA_QUIESCENT (typically the X server), but gets interrupted by a signal.
The locking IOCTL should then return an error, but if DMA_QUIESCENT succeeds
it returns 0, and the client falsely thinks it has the lock. In addition
The client waits for DMA_QUISCENT and possibly DMA_READY without having the lock.

From: Thomas Hellstrom
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-24 21:41:14 +11:00
Dave Airlie
7655f493b7 drm: move is_pci to the end of the structure
We memset the structure across opens except for the flags. The correct
fix is more intrusive but this should fix a problem with bad iounmaps
seen on AGP radeons acting like PCI ones.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-23 22:12:59 +11:00
Dave Airlie
c41f47121d drm: add __GFP_COMP to the drm_alloc_pages
The DRM only uses drm_alloc_pages for non-SG PCI cards using DRM.

Signed-off-by: Hugh Dickins <hugh@veritas.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-23 22:09:13 +11:00
Dave Airlie
bd07ed2b4d I think that if a PCI bus is a root bus, attached to a host bridge not a
PCI->PCI bridge, then bus->self is allowed to be NULL. Certainly that's
the case on my Pegasos, and it makes the MGA DRM driver oops...

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-23 21:45:43 +11:00
Dave Airlie
925142431b drm: update VIA driver to 2.7.2
Add PCI DMA blitengine to VIA DRM
Add portability code for porting VIA to FreeBSD.
Sync via_drm.h with 3d driver

From: Thomas Hellstrom <unichrome@shipmail.org>, Eric Anholt <anholt@freebsd.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-12 21:52:46 +11:00
Dave Airlie
792d2b9a12 drm: drop mtrr from i915
Alan Hourihane wants to set MTRR in the DDX only as otherwise
we get problems with the shared memory chipset.

From: Alan Hourihane <alanh@fairlite.demon.co.uk>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 23:30:27 +11:00
Dave Airlie
7ccf800e94 drm: update mga driver for new bootstrap code
The MGA driver needs to use the full AGP interface.

From: Ian Romanick <idr@us.ibm.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 23:11:34 +11:00
Dave Airlie
c0be4d2404 drm: remove exports that modules shouldn't use.
Modules should go via the new drm_agp_ functions.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 23:10:18 +11:00