Commit graph

337 commits

Author SHA1 Message Date
Xavier Bachelot ace3dff5b7 via invalid device ids removal
0x1106, 0x7204 is unknown and thus is not an IGP/GPU.
0x1106, 0x3304 is K8M800 hostbridge, not an IGP/GPU.
None of them are in drm git tree.

Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@redhat.com>
2007-10-15 11:09:35 +10:00
chaohong guo eed0f722b3 radeon: Commit the ring after each partial texture upload blit.
This makes sure each blit starts as early as possible, which may improve
texture upload performance in some cases.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2007-10-15 10:45:49 +10:00
Dave Airlie 54583bf4ef i915: fix vbl swap allocation size.
Oops...

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-10-15 10:42:27 +10:00
Eric Anholt c153f45f9b drm: Replace DRM_IOCTL_ARGS with (dev, data, file_priv) and remove DRM_DEVICE.
The data is now in kernel space, copied in/out as appropriate according to t
This results in DRM_COPY_{TO,FROM}_USER going away, and error paths to deal
with those failures.  This also means that XFree86 4.2.0 support for i810 DR
is lost.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-10-15 10:38:20 +10:00
Dave Airlie b589ee5943 drm: remove XFREE86_VERSION macros.
These are no longer needed or being used.

Signed-off-by: Dave Airlie <airlied@redhat.com>
2007-10-15 10:38:20 +10:00
Eric Anholt 6c340eac02 drm: Replace filp in ioctl arguments with drm_file *file_priv.
As a fallout, replace filp storage with file_priv storage for "unique
identifier of a client" all over the DRM.  There is a 1:1 mapping, so this
should be a noop.  This could be a minor performance improvement, as everyth
on Linux dereferenced filp to get file_priv anyway, while only the mmap ioct
went the other direction.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-10-15 10:38:20 +10:00
Eric Anholt 20caafa6ec drm: Remove DRM_ERR OS macro.
This was used to make all ioctl handlers return -errno on linux and errno on
*BSD.  Instead, just return -errno in shared code, and flip sign on return f
shared code to *BSD code.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-10-15 10:38:19 +10:00
Dave Airlie e4a7b1d1d9 i915: make vbl interrupts work properly on i965g/gm hw.
This code is ported from the DRM git tree and allows the vblank interrupts
to function on the i965 hw. It also requires a change in Mesa's 965 driver
to actually use them.

[ Without this patch, my 965GM drops vblank interrupts  - Jesse ]

Signed-off-by: Dave Airlie <airlied@linux.ie>
Acked-by: Jesse Barnes <jesse.barnes@intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-09-27 19:47:28 -07:00
Linus Torvalds 6869ce1c14 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: ioremap return value checks
  drm/via: Fix dmablit when blit queue is full
  drm_rmmap_ioctl(): remove dead code
2007-08-25 08:01:06 -07:00
Scott Thompson 0769d39c99 drm: ioremap return value checks
Signed-off-by: Scott Thompson <postfail <at> hushmail.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-08-25 18:17:49 +10:00
Dave Airlie 21f1628927 drm/i915: Fix i965 secured batchbuffer usage
This 965G and above chipsets moved the batch buffer non-secure bits to
another place. This means that previous drm's allowed in-secure batchbuffers
to be submitted to the hardware from non-privileged users who are logged
into X and and have access to direct rendering.

Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-06 17:46:23 -07:00
Simon Farnsworth 22c806c23f drm/via: Fix dmablit when blit queue is full
fd.o bug 11542

Acked-by: Thomas Hellstrom
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-23 18:32:01 +10:00
Adrian Bunk 7ea4d4bd5e drm_rmmap_ioctl(): remove dead code
This patch removes some obviously dead code spotted by the Coverity
checker.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-23 18:29:41 +10:00
Yoann Padioleau dd00cc486a some kmalloc/memset ->kzalloc (tree wide)
Transform some calls to kmalloc/memset to a single kzalloc (or kcalloc).

Here is a short excerpt of the semantic patch performing
this transformation:

@@
type T2;
expression x;
identifier f,fld;
expression E;
expression E1,E2;
expression e1,e2,e3,y;
statement S;
@@

 x =
- kmalloc
+ kzalloc
  (E1,E2)
  ...  when != \(x->fld=E;\|y=f(...,x,...);\|f(...,x,...);\|x=E;\|while(...) S\|for(e1;e2;e3) S\)
- memset((T2)x,0,E1);

@@
expression E1,E2,E3;
@@

- kzalloc(E1 * E2,E3)
+ kcalloc(E1,E2,E3)

[akpm@linux-foundation.org: get kcalloc args the right way around]
Signed-off-by: Yoann Padioleau <padator@wanadoo.fr>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Cc: Bryan Wu <bryan.wu@analog.com>
Acked-by: Jiri Slaby <jirislaby@gmail.com>
Cc: Dave Airlie <airlied@linux.ie>
Acked-by: Roland Dreier <rolandd@cisco.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Acked-by: Dmitry Torokhov <dtor@mail.ru>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Acked-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Acked-by: Pierre Ossman <drzeus-list@drzeus.cx>
Cc: Jeff Garzik <jeff@garzik.org>
Cc: "David S. Miller" <davem@davemloft.net>
Acked-by: Greg KH <greg@kroah.com>
Cc: James Bottomley <James.Bottomley@steeleye.com>
Cc: "Antonino A. Daplas" <adaplas@pol.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-19 10:04:50 -07:00
Dave Airlie 45ea5dcde6 drm: add idr_init to drm_stub.c
Brown paper bag for me this patch chunk didn't make it in the first application

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-17 14:20:07 +10:00
Dave Airlie cca5307d17 drm: fix problem with SiS typedef with sisfb enabled.
Reported by: Avuton Olrich <avuton@gmail.com>

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-17 12:55:58 +10:00
Dave Airlie d4e2cbe9cb drm: convert drawable code to using idr
This converts the code for allocating drawables to the Linux idr,

Fixes from: Michel Dänzer <michel@tungstengraphics.com>, Kristian Høgsberg <krh@redhat.com>

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-17 11:04:33 +10:00
Dave Airlie 62968144e6 drm: convert drm context code to use Linux idr
This converts the drm context allocator to an idr, using the new idr
interface features from Kristian.

Fixes from Kristian Hoegsberg <krh@redhat.com>

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-17 11:04:33 +10:00
Dave Airlie ff4135aeb1 drm: remove core typedefs from the ioc32 wrappers
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-16 13:53:57 +10:00
Dave Airlie bd63cb52c0 drm: remove sarea typedefs
Leave the userspace typedefs in place

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-12 10:35:02 +10:00
Dave Airlie e0be428e66 drm: detypedef the hashtab and more of sman
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-12 10:26:44 +10:00
Dave Airlie 9698b4dba4 drm: de-typedef sman
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-12 10:21:05 +10:00
Dave Airlie 55910517af drm: detypedeffing continues...
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 16:53:40 +10:00
Dave Airlie cdd55a294c drm: detypef waitlist/freelist/buf_entry/device_dma/drm_queue structs
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 16:32:08 +10:00
Dave Airlie 8fc2fdf4c9 drm: drop drm_vma_entry_t, drm_magic_entry_t
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 16:21:47 +10:00
Dave Airlie 056219e2fa drm: drop drm_buf_t typedef
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 16:17:42 +10:00
Dave Airlie eddca551a3 drm: fixup other drivers for typedef removals
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 16:09:54 +10:00
Dave Airlie 84b1fd103d drm: remove drm_file_t, drm_device_t and drm_head_t typedefs
some drivers still todo.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 15:53:27 +10:00
Dave Airlie c60ce623bd drm: remove a bunch of typedefs on the userspace interface
This moves a bunch of typedefs into a !defined __KERNEL__ to keep userspace
API compatiblity, it changes all internal usages to structs/enum/unions.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 15:27:12 +10:00
Oliver McFadden c6c656b4b6 r300: updates register header
This updates the R300 register names and allows the VAP_PVS_WAITIDLE register
to be written.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 12:24:10 +10:00
Dave Airlie ddbee33328 radeon: add support for vblank on crtc2
This adds support for CRTC2 vblank on radeon similiar to the i915.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 12:16:01 +10:00
Dave Airlie 7c158acef8 drm: cleanup list initialisation
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 12:05:36 +10:00
Dave Airlie 6f710105f5 drm: fix typo on code drm getsarea
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 11:58:02 +10:00
Dave Airlie da509d7a02 drm: remove DRM_GETSAREA and replace with drm_getsarea function
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 11:58:02 +10:00
Dave Airlie bd1b331fae drm: cleanup use of Linux list handling macros
This makes the drms use of the list handling macros a lot cleaner
and more along the lines of how they should be used and uses them
in some more places.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-07-11 11:58:02 +10:00
Ian Romanick ad5c980fde Add support SiS based XGI chips to SiS DRM.
This adds support for some of the XGI Volari family that are based on the
SiS.

Signed-off-by: Dave Airlie <airlied@linux.ie>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-27 09:54:49 -07:00
David Woodhouse f4d2781731 fix radeon setparam on 32/64 systems, harder.
Commit 9b01bd5b28 introduced a
compat_ioctl handler for RADEON_SETPARAM, the sole purpose of which was
to handle the fact that on i386, alignof(uint64_t)==4.

Unfortunately, this handler was installed for _all_ 64-bit
architectures, instead of only x86_64 and ia64.  And thus it breaks
32-bit compatibility on every other arch, where 64-bit integers are
aligned to 8 bytes in 32-bit mode just the same as in 64-bit mode.

Arnd has a cunning plan to use 'compat_u64' with appropriate alignment
attributes according to the 32-bit ABI, but for now let's just make the
compat_radeon_cp_setparam routine entirely disappear on 64-bit machines
whose 32-bit compat support isn't for i386.  It would be a no-op with
compat_u64 anyway.

Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Dave Airlie <airlied@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-06-16 09:39:05 -07:00
Dave Airlie 9b01bd5b28 drm: fix radeon setparam on 32/64 bit systems.
The alignment on 64-bit is different for 64-bit values.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-06-10 16:00:27 +10:00
Wang Zhenyu dc7a93190c drm/i915: Add support for the G33, Q33, and Q35 chipsets.
These require that the status page be referenced by a pointer in GTT, rather
than phsyical memory.  So, we have the X Server allocate that memory and tell
us the address, instead.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-06-10 15:58:19 +10:00
Wang Zhenyu 2f4042b186 i915: add new pciids for 945GME, 965GME/GLE
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-06-10 14:31:30 +10:00
Linus Torvalds ad360bbbbe Merge branch 'drm-patches' of ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-patches' of ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
  drm: make sure the drawable code doesn't call malloc(0).
  drm/radeon: add more IGP chipset pci ids
  drm: Spinlock initializer cleanup
2007-05-31 09:08:49 -07:00
Martin Habets 5f81941c9d [SPARC]: Mark as emulating cmpxchg, add appropriate depends for DRM.
The DRM code depends on an atomic version of cmpxchg(), which is not
available on sparc32. Since other platforms besides sparc32 have this
issue a KCONFIG option is added for it.

Signed-off-by: Martin Habets <errandir_news@mph.eclipse.co.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
2007-05-29 02:51:24 -07:00
Michel Dänzer c4814f9001 drm: make sure the drawable code doesn't call malloc(0).
Signed-off-by: Michel Dänzer <michel@tungstengraphics.com>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:37:08 +10:00
Dave Airlie 777c7738a5 drm/radeon: add more IGP chipset pci ids
Add more IGP chipset PCI IDs

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 04:19:03 +10:00
Thomas Gleixner a6399bdd49 drm: Spinlock initializer cleanup
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-26 03:52:45 +10:00
Michael Opdenacker 59c51591a0 Fix occurrences of "the the "
Signed-off-by: Michael Opdenacker <michael@free-electrons.com>
Signed-off-by: Adrian Bunk <bunk@stusta.de>
2007-05-09 08:57:56 +02:00
Thomas Hellstrom ef68d29550 via: Make sure we flush write-combining using a follow-up read.
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-08 15:48:39 +10:00
Thomas Hellstrom a0a6dd0b22 via: Try to improve command-buffer chaining.
Bump driver date and patchlevel.

Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-08 15:47:41 +10:00
Dave Airlie bc07dc7f07 drm: remove old taskqueue remnant
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-08 15:32:35 +10:00
Dave Airlie 0515b93c0e drm: rename badly named define and cleanup ioctl code spacing
Signed-off-by: Dave Airlie <airlied@linux.ie>
2007-05-08 15:28:15 +10:00