Commit Graph

4464 Commits (c65a343ed29c24f812ca919f40dfeee948b6f14a)

Author SHA1 Message Date
Ben Skeggs 18f2fcf5aa libdrm/nouveau: fix dma debugging 2009-02-20 14:11:18 +10:00
Pekka Paalanen 6a31b445fa nouveau: support backlight only when kernel does
Loading nouveau.ko would fail with unknown symbols, if the backlight
class device support is not provided in the kernel. Let's make the
backlight support dependant on the kernel configuration.

This is a bit ugly, the proper way would be to check for the config in
Makefile.kernel whether to build nouveau_backlight.o at all, and if not,
nouveau_drv.h should provide the stubs.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-02-18 22:46:40 +02:00
Matthew Garrett 25c60cfeca nv40, nv50: fix backlight build for <2.6.29 kernels
Signed-off-by: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-02-18 22:31:47 +02:00
Matthew Garrett 96ce587e8b nouveau: Add in-kernel backlight control support
Several nvidia-based systems don't support backlight control via the
standard ACPI control mechanisms. Instead, it's necessary for the driver
to modify the backlight control registers directly. This patch adds
support for determining whether the registers appear to be in use, and
if so registers a kernel backlight device to control them. The backlight
can then be controlled via existing userspace tools.

Signed-off-by: Matthew Garrett <mjg@redhat.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2009-02-18 13:48:33 +10:00
Pekka Paalanen 0054e14793 drm_compat: remove kmap_atomic_prot_pfn()
This function is unused, and yet creates build problems: the symbol
init_mm is not exported by the latest -rc kernels and I don't believe it
ever will be. Even CONFIG_UNUSED_SYMBOLS does not provide it anymore.

If this function is needed in the future, it needs to be reinvented in
any case. So remove it.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-02-16 20:45:16 +02:00
Pekka Paalanen e32aa6226f Remove i915 driver sources from linux-core
Intel developers have stated, that their DRM development continues
elsewhere in some Linux kernel trees. This makes the code in drm.git
just dead weight. This removal allows further cleanup of compatibility
code.

shared-core and bsd-core are left untouched this time.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
Acked-by: Eric Anholt <eric@anholt.net>
2009-02-16 20:43:02 +02:00
Eric Anholt 709b82e1a5 intel: Clear ioctl parameter outvalues and pads that confuse valgrind.
The minor CPU cost here is probably outweighed by bothering us with noise in
the tool.
2009-02-15 18:35:03 -08:00
Ben Skeggs 084e143d0c nv40: fail completely if we don't have a ctxprog for the chipset 2009-02-15 22:06:18 +10:00
Ben Skeggs a4ac60a102 nv50: context info for chipset 0xa0 2009-02-15 21:52:19 +10:00
Ben Skeggs 7e5c512104 libdrm: make libdrm_nouveau conditional, disabled by default
libdrm isn't supposed to ship APIs not present in a released kernel.
2009-02-15 21:51:46 +10:00
Jakob Bornecrantz eb78c53aa1 mode: Make xfdrmMode.[c|h] not depend on drm_mode.h 2009-02-11 17:11:00 +01:00
Pekka Paalanen 2d2f105f79 nouveau: fix type warnings: void* arith, un/signed
nouveau_notifier.c had two places where void* was used in arithmetic,
fixed by using char*.

nouveau_dma_wait(), nouveau_notifier_wait_status() and
nouveau_resource_alloc() had signed/unsigned comparison warnings, fixed
by changing the function parameter into an unsigned type.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-02-11 23:48:49 +02:00
Ben Skeggs bc92c0edf3 drm/nv50: fix nv9x chipsets
NVIDIA do this fun little sequence after updating the PRAMIN page tables.

On 9xxx chips, none of the PRAMIN BAR bindings (except the initial one)
worked, hence the majority of the setup needed to create a channel
ended up in the wrong place, causing all sorts of fun.

This is done by NVIDIA on nv8x chips also, so we'll do it for them too,
even though they appear to work without it.
2009-02-11 11:22:41 +10:00
Ben Skeggs 7bbd605a21 drm/nv50: add context info for nv98
It won't work yet, just like the other 9xxx chips.  Real soon now :)
2009-02-11 10:12:43 +10:00
Ben Skeggs efcef2c2bc drm/nv50: use a slightly different initial context for nv96
I'm not 100% sure that the nv94 one we were using won't work.  The context
layouts are identical (well.. same ctxprog, so of course!), only a couple
of registers differ.  But, be safe until we actually get some 9xxx chips
working.
2009-02-10 09:11:41 +10:00
Ben Skeggs f43039c52c drm/nv50: correct ramfc pointer in channel header
Suprisingly the card still worked without this...
2009-02-10 09:11:35 +10:00
Ben Skeggs 889b811e31 drm/nv50: let the card handle the initial context switch
Our PFIFO/PGRAPH context save/load functions don't really work well
(at all?) on nv5x yet.  Depending on what random state the card is
in before the drm loads, fbcon probably won't work correctly.

Luckily we've setup the GPU in such a way that it'll actually do a
hw context switch for the first context.  Not sure of how successful
this'd be currently on the older chips (actually, pretty sure it won't
work), so NV50 only for now.
2009-02-10 09:11:27 +10:00
Stuart Bennett 9c8d634e68 nouveau: don't try to traverse non-existent lists
Fixes nouveau_ioctl_mem_free Oops
2009-02-07 21:20:17 +00:00
Ben Skeggs 97fdadee6a nouveau: fix some issues where buffer objects never get freed 2009-02-05 23:17:05 +10:00
Kristian Høgsberg 8b8803695b modetest: Add syntax to also specify a crtc when setting a mode. 2009-02-04 12:17:32 -05:00
Ben Skeggs 225e7e274f nouveau: install libdrm_nouveau with libdrm 2009-02-04 14:32:31 +10:00
Ben Skeggs cb85630c02 nouveau: bring in new mm api definitions, without the actual mm code
Use of the new bits is guarded with a mm_enabled=0 hardcode.
2009-02-04 13:22:56 +10:00
Kristian Høgsberg 7a389aab86 modetest: Use cairo (if available) to paint a better pattern. 2009-02-03 15:03:41 -05:00
Kristian Høgsberg 2c113a1b15 modetest: Don't sleep when just dumping state, wait for key for modeset. 2009-02-03 14:03:09 -05:00
Kristian Høgsberg 669fde3472 modetest: Handle setting modes on multiple crtcs with one fb. 2009-02-03 14:00:00 -05:00
Kristian Høgsberg d9c55a6bec modetest: Use a more interesting test pattern. 2009-02-03 13:26:38 -05:00
Stephane Marchesin 39755db856 Remove the "nv" driver. 2009-02-02 23:47:11 +01:00
Kristian Høgsberg bf46e0941f No need to pin buffer anymore in modetest.c 2009-02-02 15:47:09 -05:00
Stuart Bennett 854bd8f2ca nouveau: don't save channel context if it has recently become invalid
Bug exposed by DDX change d9da090c
2009-01-29 23:59:47 +00:00
Stuart Bennett 408fc85a21 nouveau: no suspend support for nv50+ 2009-01-29 23:53:01 +00:00
Eric Anholt e37bd24d3c Clean up README for the current state of kernel module affairs.
Bug #19608.
2009-01-27 18:00:45 -08:00
Eric Anholt cbdd6272c0 intel: don't count fences on 965 and later, as they don't use them. 2009-01-27 17:24:49 -08:00
Eric Anholt 9209c9a653 intel: Fix under-counting of fences registers required in check_aperture. 2009-01-27 17:24:41 -08:00
Jesse Barnes 2fa5f28eee intel: libdrm support for fence management in execbuf
This patch tries to use the available fence count to figure out whether a
given batch can succeed or not (just like the aperture check).

Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
2009-01-27 17:23:42 -08:00
Pekka Paalanen 26ca0bca9b drm compat: fix euid for >=2.6.28
drm_fops.c reads the current process' EUID directly from task_struct.
Apparently starting in 2.6.28-rc4 this fails to build.

In Linus' tree, commit b6dff3ec5e116e3af6f537d4caedcad6b9e5082a
"CRED: Separate task security context from task_struct"
moves the euid field from task_struct to another struct.

Earlier commit 9e2b2dc4133f65272a6d3c5dcb2ce63f8a87cae9
"CRED: Introduce credential access wrappers" implements the wrapper
macros to access e.g. euid. This is in 2.6.27-rc4, and this contains the
definition of current_euid() that will be used in the DRM compatibility header
for kernels before 2.6.27. That commit also creates <linux/cred.h>, which
contains the upstream definition of current_euid().

drm_fops.c is fixed to use current_euid(), and drm_compat.h will offer
the compatibility definition for kernels <2.6.27.

Signed-off-by: Pekka Paalanen <pq@iki.fi>
2009-01-27 23:10:36 +02:00
Ben Skeggs e6a062c21a nv50: support chipset NV96
ctxprog seen in okias' trace identical to one we use on NV94, assuming
the initial context values for NV94 will work here too.
2009-01-27 08:36:33 +10:00
Ben Skeggs 753d4c39ff nv04-nv40: correct RAMHT size 2009-01-27 08:36:08 +10:00
Dave Airlie 27fae00685 drm: remove drmstat/dristat from linux-core build
pointed out by pq
2009-01-19 06:46:23 +10:00
Eric Anholt 18d3cc076b bump version to 2.4.4 2009-01-14 16:12:09 -08:00
Eric Anholt 02445eab64 intel: Retry pin ioctl on -EINTR. 2009-01-14 16:12:08 -08:00
Owain G. Ainsworth 65b90fb377 Don't use DRM_BO_FLAG_NO_MOVE in bufmgr fake. It's a ttm flag.
It's also unused, so worthless.
2009-01-13 17:18:43 -08:00
Owain G. Ainsworth 13ff0e58c3 Remove drmModeReplaceFb after it was removed from the kernel.
It is impossible to replace the original semantics of this call purely
in userland, since the fb_id would change.

after discussion with Dr_Jakob

Signed-Off-By: Owain Ainsworth <oga@openbsd.org>
Acked-By: Jakob Bornecrantz <jakob@vmware.com>
2009-01-12 13:14:25 +01:00
Ben Skeggs ac8b3308b9 nv50: ack nsource to prevent continuous protection fault irqs 2009-01-12 10:33:48 +10:00
Jesse Barnes badc63464c libdrm: add autoconf check for clock_gettime
Should be more portable this way.
2009-01-07 11:47:52 -08:00
Jesse Barnes ca37077fb7 libdrm: only check for vblank timeout if we caught EINTR
Michel caught a case where we might overwrite a success or other return
value with EBUSY, so check the return value before checking for the
timeout condition.
2009-01-07 10:48:26 -08:00
Jesse Barnes f4f76a6894 libdrm: add timeout handling to drmWaitVBlank
In some cases, vblank interrupts may be disabled or otherwise broken.
The kernel has a 3s timeout builtin to handle these cases, but the X
server's SIGALM for cursor handling may interrupt vblank wait ioctls,
causing libdrm to restart the ioctl, making the kernel's timeout
useless.

This change tracks time across ioctl restarts and returns EBUSY to the
caller if the expected vblank sequence doesn't occur within 1s of the
first call.

Fixes fdo bz #18041, which is caused by a drmWaitVBlank hanging due to
the corresponding pipe getting disabled (thus preventing further events
from coming in).
2009-01-07 10:18:08 -08:00
Jesse Barnes a8c548034e Remove executable from modeprint test dir
Accidentally committed it with the mode setting changes.
2008-12-29 09:21:58 -08:00
Robert Noland 58d557c73b [FreeBSD] Fix build on FreeBSD after modesetting import. 2008-12-23 13:56:23 -05:00
Dave Airlie b48bd3a036 radeon: only write irq regs if irq is enabled 2008-12-23 11:30:37 +10:00
Eric Anholt dfd7fdafd8 intel: Rename plane[AB]* back to pipe[AB]*.
The values are really going to continue meaning pipe, not plane, and that's
what they're called in the kernel copy of the header.  Userland hasn't ever
made the switch to pipe!=plane, since userland checks are based on DRM
version, which is still stuck at 1.6.  However, Mesa did start using
plane[AB] names, so provide a compat define.
2008-12-22 16:03:35 -08:00