Commit Graph

124 Commits

Author SHA1 Message Date
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
Dave Airlie
efa58395be drm: add in-kernel entry points for rest of AGP ioctls
Allow DRM modules to call AGP internally in the kernel.

From: Ian Romanick <idr@us.ibm.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 22:33:39 +11:00
Dave Airlie
732052ed3e drm: simplify sysfs code for drm
This simplifies the sysfs code for the drm and add a dri_library_name
attribute which can be used by a userspace app to figure out which
library to load.

From: Jon Smirl <jonsmirl@gmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 22:07:35 +11:00
Dave Airlie
e96e33eeb8 drm: fixup drm_proc.c struct table
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 20:27:35 +11:00
Dave Airlie
61d04160ff drm: remove old backwards compatibilty stuff
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 19:52:22 +11:00
Dave Airlie
8f5f39f77f drm: remove drm_flush
drm_flush is no longer needed remove.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 19:40:52 +11:00
Dave Airlie
7052cff984 drm: cleanup via_ds.c includes
Remove the linux includes from via_ds.c

Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 19:34:47 +11:00
Dave Airlie
9d6160137a drm: remove remnamt of old DRM code from tdfx
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-11 19:34:10 +11:00
Dave Airlie
3f9df54d63 drm: remove drm_init.c it is no longer needed
Move drm_cpu_valid into drm_fops.c

Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-10 22:28:56 +11:00
Dave Airlie
22eae947bf drm: rename driver hooks more understandably
Rename the driver hooks in the DRM to something a little more understandable:
preinit         ->      load
postinit        ->      (removed)
presetup        ->      firstopen
postsetup       ->      (removed)
open_helper     ->      open
prerelease      ->      preclose
free_filp_priv  ->      postclose
pretakedown     ->      lastclose
postcleanup     ->      unload
release         ->      reclaim_buffers_locked
version         ->      (removed)

postinit and version were replaced with generic code in the Linux DRM (drivers
now set their version numbers and description in the driver structure, like on
BSD).  postsetup wasn't used at all.  Fixes the savage hooks for
initializing and tearing down mappings at the right times.  Testing involved at
least starting X, running glxgears, killing glxgears, exiting X, and repeating.

Tested on:      FreeBSD (g200, g400, r200, r128)
                Linux (r200, savage4)

From: Eric Anholt <anholt@freebsd.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2005-11-10 22:16:34 +11:00
Dave Airlie
d34d7ae266 [PATCH] drm fixup pci gart settings
Fix the PCIGART increment and add a cpu_to_le32 for ppc (untested)

Paulus was unsure if we need to cpu_to_le32 but the old code was definitely
wrong, so make it consistent and let the PPC guys figure it out later.

Signed-off-by: Dave Airlie <airlied@linux.ie>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Dave Jones <davej@codemonkey.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-09 07:55:51 -08:00
Jesper Juhl
735d5661d5 [PATCH] kfree cleanup: drivers/char
This is the drivers/char/ part of the big kfree cleanup patch.

Remove pointless checks for NULL prior to calling kfree() in drivers/char/.

Signed-off-by: Jesper Juhl <jesper.juhl@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-11-07 07:54:02 -08:00
Linus Torvalds
d8762748ca Merge master.kernel.org:/pub/scm/linux/kernel/git/airlied/drm-2.6
Manual fixups for some clashes due to re-indenting.
2005-11-01 21:49:07 -08:00