Commit Graph

241 Commits

Author SHA1 Message Date
Andrew Morton a1d0fcf5a1 drm: remove FALSE/TRUE that snuck in with simple memory manager changes.
Thanks to Andrew Morton for pointing these out, I've fixed a few his patch
missed.

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:32 +10:00
Alan Hourihane c29b669caa drm: Add support for Intel i965G chipsets.
This is a patch prepared by Guangdeng Liao based off of Tungsten Graphics's
final code drop.

From: Alan Hourihane <alanh@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:32 +10:00
Dave Airlie d000b486ea drm: add better explanation for i830/i915
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:32 +10:00
Dave Airlie c2604ce058 drm: remove a tab that snuck in
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:32 +10:00
Dave Airlie 572225bedf drm: fix return value in auth function
This just fixes up the return value in the drm_auth:remove_magic

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:32 +10:00
Thomas Hellstrom 7981bf7d49 drm: SiS 315 Awareness.
Add support for the SiS 315 to the DRM.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Thomas Hellstrom 8d153f7107 drm: update user token hashing and map handles
Keep hashed user tokens, with the following changes:
32-bit physical device addresses are mapped directly to user-tokens. No
    duplicate maps are allowed, and the addresses are assumed to be outside
    of the range 0x10000000 through 0x30000000. The user-token is identical
    to the 32-bit physical start-address of the map.
64-bit physical device addressed are mapped to user-tokens in the range
0x10000000 to 0x30000000 with page-size increments. The user_token should
    not be interpreted as an address.
Other map types, like upcoming TTM maps are mapped to user-tokens in the
    range
0x10000000 to 0x30000000 with page-size increments. The user_token should
    not be interpreted as an address.

Implement hashed map lookups.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Thomas Hellstrom 8669cbc5e6 drm: move drm authentication to new generic hash table.
Fix drm_remove_magic potential memory leak / corruption. Move drm
authentication token hashing to new generic hash table implementation.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Dave Airlie 3d45dbd611 drm: Add the P4VM800PRO (?) PCI ID.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Thomas Hellstrom ce65a44de0 drm: add drm simple memory manager support for SiS and VIA drivers
This add support to the SiS and VIA drivers for the simple memory manager.
This fixes a lot of problems with the current simple code these drivers used,
including locking and SMP issues.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Thomas Hellstrom 3a1bd924f3 drm: add simple DRM memory manager, and hash table
This adds the DRM hashtable and simple memory manager implementations from
Tungsten Graphics, this is NOT the new memory manager, this is a replacement
for the SIS and VIA memory managers.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Michel Dänzer b9b603dd1c drm: radeon: Use RADEON_RB3D_DSTCACHE_CTLSTAT instead of RADEON_RB2D_DSTCACHE_CTLSTAT.
The latter seems to be a read-only mirror of the former.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:31 +10:00
Michel Dänzer ae1b1a4816 drm: radeon: fix up bus mastering when writeback is disabled
When writeback isn't used, actually disable it in the hardware.

Not doing this might waste bus bandwidth or even cause memory corruption or
system crashes on systems that check bus transfers. No such incident has been
reported though.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Michel Dänzer 8624ecbf68 drm: radeon: implement RADEON_PARAM_SCRATCH_OFFSET getparam
When this succeeds, userspace can read the scratch register contents from th    mapped writeback page directly.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Michel Dänzer 9ca941615e drm: radeon: add some debug output when getparam is called with unknown
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Thomas Hellstrom 7a3f1f216b drm: missing mutex unlock
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Dave Airlie 332296016e drm: remove the DRM pci domain
This patch removes the pci_domain from the DRM device structure, and
gets it via a macro that either asks the platform or does the alpha special
case. jgarzik asked for this to just use the platform magic, but I've no
alpha experience and I'd rather not just break it and wait for someone to
give out.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Dave 242ef0e1e7 drm: remove local copies of pci bus/slot/func
The drm keeps a local copy of these for little use.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Dave Airlie 3d77461ecd drm: cleanup old compat code and DRM fns from Linux only code
This patch removes some of the old compatibility macros from the DRM,
and removes use of DRM wrappers from Linux specific code.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-09-22 05:32:30 +10:00
Roland Scheidegger 18f2905fce [PATCH] drm: radeon flush TCL VAP for vertex program enable/disable
The radeon requires a VAP state flush when enabling/disabling
vertex programs on the r200 cards.

Signed-off-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-08-30 16:06:14 -07:00
Thomas Gleixner 935f6e3abc [PATCH] irq-flags: drivers/drm: Use the new IRQF_ constants
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-02 13:58:49 -07:00
Jörn Engel 6ab3d5624e Remove obsolete #include <linux/config.h>
Signed-off-by: Jörn Engel <joern@wohnheim.fh-wedel.de>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-06-30 19:25:36 +02:00
Ingo Molnar 34af946a22 [PATCH] spin/rwlock init cleanups
locking init cleanups:

 - convert " = SPIN_LOCK_UNLOCKED" to spin_lock_init() or DEFINE_SPINLOCK()
 - convert rwlocks in a similar manner

this patch was generated automatically.

Motivation:

 - cleanliness
 - lockdep needs control of lock initialization, which the open-coded
   variants do not give
 - it's also useful for -rt and for lock debugging in general

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-27 17:32:39 -07:00
Dave Airlie c499aeb08c drm: radeon constify radeon microcode
From: Tilman (DRM CVS)
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-06-24 17:37:48 +10:00
Dave Airlie 702880f243 Add i915 ioctls to configure pipes for vblank interrupt.
i915 vblanks can be generated from either pipe a or b, however a disabled
pipe generates no interrupts. This change allows the X server to select
which pipe generates vblank interrupts.

From: Keith Packard <keith.packard@intel.com> via DRM CVS
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-06-24 17:32:58 +10:00
Dave Airlie d6fece051a drm: update radeon to 1.25 add r200 vertex program support
Add support for r200 vertex programs (R200_EMIT_VAP_PVS_CNTL, and new
packet type for making it possible to address whole tcl vector space
and have a larger count)

From: Roland Scheidegger (DRM CVS)
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-06-24 17:32:10 +10:00
Dave Airlie f2a2279ffc drm: radeon add a tcl state flush before accessing tcl vector space
Do a tcl state flush before accessing tcl vector space. This fixes some
more problems with flickering (bug #6637). drm may not be appropriate
place for this, since doing that flush there might both be overkill and
insufficient in some cases. However, it's hard to figure out when that
flush is needed, so this has to suffice. There does not seem to be a
performance penalty associated with it.

From: Roland Scheidegger (DRM CVS)
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-06-24 17:32:04 +10:00
Dave Airlie 5d23fafb1b drm: possible cleanups
This patch contains the following possible cleanups:
- make the following needlessly global function static:
 - drm_bufs.c: drm_addbufs_fb()
- remove the following unused EXPORT_SYMBOL's:
 - drm_agpsupport.c: drm_agp_bind_memory
 - drm_bufs.c: drm_rmmap_locked
 - drm_bufs.c: drm_rmmap
 - drm_stub.c: drm_get_dev

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-04-23 18:26:40 +10:00
Dave Airlie caa98c41c0 drm: fixup r300 scratch on BE machines
This fixes the r300 scratch stuff to work on PPC,
from Ben Herrenschmidt on IRC.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-04-23 18:14:00 +10:00
Jayachandran C d253258c80 drm: Fix further issues in drivers/char/drm/via_irq.c
Fix de-reference of 'dev_priv' before NULL check.

Signed-off-by: Jayachandran C. <c.jayachandran@gmail.com>
Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
2006-04-18 21:04:48 +10:00
Adrian Bunk 031de96af0 drivers/char/drm/drm_memory.c: possible cleanups
- #if 0 the following unused global function:
  - drm_ioremap_nocache()

- make the following needlessly global functions static:
  - agp_remap()
  - drm_lookup_map()

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Andrew Morton <akpm@osdl.org>
2006-04-18 21:03:51 +10:00
Dave Airlie 31f64bd101 drm: deline a few large inlines in DRM code
This patch moves a few large functions from drm_memory.h
to drm_memory.c, with the following effect:

  text    data     bss     dec     hex filename
 46305    1304      20   47629    ba0d new/drm.ko
 46367    1304      20   47691    ba4b org/drm.ko
 12969    1372       0   14341    3805 new/i810.ko
 14712    1372       0   16084    3ed4 org/i810.ko
 16447    1364       0   17811    4593 new/i830.ko
 18198    1364       0   19562    4c6a org/i830.ko
 11875    1324       0   13199    338f new/i915.ko
 13025    1324       0   14349    380d org/i915.ko
 23936   29288       0   53224    cfe8 new/mga.ko
 27280   29288       0   56568    dcf8 org/mga.ko

Please apply.

Signed-off-by: Denis Vlasenko <vda@ilport.com.ua>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-04-07 16:55:43 +10:00
Dave Airlie 11bab7d2c8 drm: remove master setting from add/remove context
Clients can do this in the miniglx setups.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-04-05 18:13:13 +10:00
Dave Airlie 195b3a2d57 drm: drm_pci needs dma-mapping.h
On alpha:

WARNING: "dma_free_coherent" [drivers/char/drm/drm.ko] undefined!
WARNING: "dma_alloc_coherent" [drivers/char/drm/drm.ko] undefined!

Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-04-05 18:12:18 +10:00
Dave Airlie 86678dfddb [PATCH] drm: Fix issue reported by Coverity in drivers/char/drm/via_irq.c
This patch tries to fix an issue reported in drivers/char/drm/via_irq.c by
Coverity, please review and apply if correct.

Error reported:
CID: 3444 Checker: REVERSE_INULL (help)
File: /export2/p4-coverity/mc2/linux26/drivers/char/drm/via_irq.c
Function: via_driver_irq_wait
Description: Pointer "dev_priv" dereferenced before NULL check

Patch Description:
 Move de-referencing dev_priv to after the NULL check.

Signed-off-by: Jayachandran C. <c.jayachandran at gmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-04-05 18:10:11 +10:00
Linus Torvalds 63e8d9114d Merge branch 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-patches' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
  drm: remove drm_{alloc,free}_pages
  drm: sis fix compile warning
  drm: add new radeon PCI ids..
  drm: read breadcrumb in IRQ handler
  drm: fixup i915 breadcrumb read/write
  drm:  remove pointless checks in radeon_state
  drm: fixup improper cast.
  drm: rationalise some pci ids
  drm: Add general-purpose packet for manipulating scratch registers (r300)
  drm: rework radeon memory map (radeon 1.23)
  drm: update r300 register names
  drm: fixup PCI DMA support
2006-03-30 14:26:27 -08:00
Dave Airlie 55eb061326 drm: remove drm_{alloc,free}_pages
drm_alloc_pages and drm_free_pages can now be removed.

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-03-29 08:16:12 +10:00
Dave Airlie d2b58b5883 drm: sis fix compile warning
Prevent a gcc warning in the SIS DRM driver.  offset is a unsigned int and
the printk wants a long.

Signed-off-by: Jon Mason <jdmason@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-29 08:12:52 +10:00
Arjan van de Ven 99ac48f54a [PATCH] mark f_ops const in the inode
Mark the f_ops members of inodes as const, as well as fix the
ripple-through this causes by places that copy this f_ops and then "do
stuff" with it.

Signed-off-by: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-03-28 09:16:05 -08:00
Dave Airlie f3dd5c3738 drm: add new radeon PCI ids..
This adds all the r300 and r400 PCI ids from DRM CVS, it also
makes these cards only initialise when the new xorg driver is
used, as otherwise the DRM can cause lockups.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-25 18:09:46 +11:00
David S. Miller 14778d9072 [SPARC]: Respect vm_page_prot in io_remap_page_range().
Make sure the callers do a pgprot_noncached() on
vma->vm_page_prot.

Pointed out by Hugh Dickens.

Signed-off-by: David S. Miller <davem@davemloft.net>
2006-03-22 01:15:13 -08:00
Adrian Bunk 7b9af3455b remove dead Radeon URL
This patch removes a dead Radeon URL from two Kconfig files.

This isue was noted by Reto Gantenbein <ganto82@gmx.ch> in
Kernel Bugzilla #4446.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
2006-03-20 20:23:13 +01:00
Dave Airlie 6e5fca53c7 drm: read breadcrumb in IRQ handler
From: Keith Whitwell <keithw@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-20 18:34:29 +11:00
Dave Airlie e7f947b908 drm: fixup i915 breadcrumb read/write
Some minor issues in the i915 breadcrumb code.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 20:28:19 +11:00
Dave Airlie 2fab58d1a1 drm: remove pointless checks in radeon_state
If these were valid checks, we'd have already oopsed several
lines above where we were already dereferencing them.

DA: these used to be valid but other changes made them unnecessary.

Coverity: 776,777,778
Signed-off-by: Dave Jones <davej@redhat.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 20:15:41 +11:00
Dave Airlie f15e92d702 drm: fixup improper cast.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 20:12:23 +11:00
Dave Airlie dfab11542f drm: rationalise some pci ids
This is the start of some work from Roland Scheidegger to align
the X DDX pci ids and the drm ones, however we don't want to put
r300 ids in the kernel just yet, they destabilise a few machines.

From: Roland Scheidegger (via DRM CVS)
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 20:01:37 +11:00
Dave Airlie ee4621f011 drm: Add general-purpose packet for manipulating scratch registers (r300)
From: Aapo Tahkola (via DRM CVS)
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 19:45:26 +11:00
Dave Airlie d5ea702f1e drm: rework radeon memory map (radeon 1.23)
This code reworks the radeon memory map so it works better
for newer r300 chips and for a lot of older PCI chips.

It really requires a new X driver in order to take advantage of this code.

From: Ben Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 19:37:55 +11:00
Dave Airlie 45f17100bf drm: update r300 register names
Update some of the DRM register names from DRM CVS

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 19:12:10 +11:00
Dave Airlie ddf19b973b drm: fixup PCI DMA support
This patch makes the PCI support use the correct Linux interfaces finally.
Tested in DRM CVS on PCI MGA card.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-03-19 18:56:12 +11:00
Dave Airlie 73d72cffe5 drm: fix brace placement
Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-02-18 16:30:54 +11:00
Dave Airlie 4e5e2e2560 drm: radeon add r300 TX_CNTL and verify bitblt packets
The Xgl on r300 doesn't work unless you add a verify bitblt function to the
DRM, and we need to pass TX_CNTL to flush texture caches.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-02-18 15:51:35 +11:00
Dave Airlie 91e3738ebc drm: fixup i915 interrupt on X server exit
Fixes: IRQ disabled (i915?) when switchig between gnome themes (gnome-theme-manager)

Signed-off-by: Dave Airlie <airlied@linux.ie>
2006-02-18 15:17:04 +11:00
Dave Jones 75c0141ca2 [PATCH] Remove "RV370 5B60 [Radeon X300 (PCIE)]" from DRI list
I get a machine check exception, triple fault, or NMI watchdog lockup
when DRI gets enabled on this card.

(And Mauro Tassinari <mtassinari@cmanet.it> reports hung kernels too in
http://lkml.org/lkml/2006/1/26/97)

[ Adrian Bunk also states that this is the only RV350 entry for an RV370
  in our lists, which implies that it's just buggy ]

Cc: Adrian Bunk <bunk@stusta.de>
Cc: Dave Jones <davej@redhat.com>
Cc: Mauro Tassinari <mtassinari@cmanet.it>
Cc: Dave Airlie <airlied@linux.ie>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-02-13 11:14:45 -08:00
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