vmware + nouveau staging fixes are the bulk of this.
one vgaarb patch that I found in mmtom but can't find in my inbox for some
reason ah well better late than never.
radeon: fix the Kconfig msg to be more explicit, and some oops crashers
in the presence of bad bioses, along with a get rid of stupid white
borders on fbcon patch.
The following changes since commit e28cab42f384745c8a947a9ccd51e4aae52f5d51:
Linus Torvalds (1):
Merge branch 'i2c-for-linus' of git://git.kernel.org/.../jdelvare/staging
are available in the git repository at:
ssh://master.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6.git drm-linus
Andy Getzendanner (1):
vgaarb: fix incorrect dereference of userspace pointer.
Ben Skeggs (5):
drm/nouveau: fix non-vram notifier blocks
drm/nv40: make INIT_COMPUTE_MEM a NOP, just like nv50
drm/nouveau: make dp auxch xfer len check for reads only
drm/nv50: prevent multiple init tables being parsed at the same time
drm/nv50: disregard dac outputs in nv50_sor_dpms()
Dave Airlie (7):
drm/radeon/kms: change Kconfig text to reflect the new option.
drm/radeon/kms: don't crash if no DDC bus on VGA/DVI connector.
drm/radeon/kms: add quirk for VGA without DDC on rv730 XFX card.
drm/radeon/kms: fix screen clearing before fbcon.
Merge remote branch 'nouveau/for-airlied' of nouveau-2.6
drm/radeon/kms: retry auxch on 0x20 timeout value.
Merge branch 'drm-radeon-linus' of ../drm-next
Francisco Jerez (1):
drm/nouveau: Fixup semaphores on pre-nv50 cards.
Jakob Bornecrantz (2):
drm/vmwgfx: Report propper framebuffer_{max|min}_{width|height}
drm/vmwgfx: Drop scanout flag compat and add execbuf ioctl parameter members. Bumps major.
Julia Lawall (1):
drivers/gpu/drm/nouveau/nouveau_grctx.c: correct NULL test
Luca Barbieri (1):
drm/nouveau: call ttm_bo_wait with the bo lock held to prevent hang
Maarten Maathuis (4):
drm/nv50: align size of buffer object to the right boundaries.
drm/nv50: avoid unloading pgraph context when ctxprog is running
drm/nv50: delete ramfc object after disabling fifo, not before
drm/nv50: make the pgraph irq handler loop like the pre-nv50 version
Marcin Ko�cielnicki (4):
drm/nouveau: Add module options to disable acceleration.
drm/nouveau: Add getparam to get available PGRAPH units.
drm/nouveau: Fix fbcon on mixed pre-NV50 + NV50 multicard.
drm/nouveau: Add proper vgaarb support.
Marcin Slusarz (1):
drm/nouveau: move dereferences after null checks
Matthew Garrett (1):
nouveau: fix state detection with switchable graphics
Pauli Nieminen (1):
drm/radeon: Skip dma copy test in benchmark if card doesn't have dma engine.
Rafa� Mi�ecki (1):
drm/radeon/kms: suspend and resume audio stuff
Thomas Hellstrom (2):
drm/vmwgfx: Update the user-space interface.
drm/vmwgfx: Fix a circular locking dependency bug.
drivers/gpu/drm/nouveau/nouveau_acpi.c | 12 +-
drivers/gpu/drm/nouveau/nouveau_bios.c | 19 ++--
drivers/gpu/drm/nouveau/nouveau_bios.h | 2 +
drivers/gpu/drm/nouveau/nouveau_bo.c | 10 +-
drivers/gpu/drm/nouveau/nouveau_channel.c | 7 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 7 +-
drivers/gpu/drm/nouveau/nouveau_dp.c | 10 +-
drivers/gpu/drm/nouveau/nouveau_drv.c | 10 ++-
drivers/gpu/drm/nouveau/nouveau_drv.h | 2 +
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 40 +++++++-
drivers/gpu/drm/nouveau/nouveau_fbcon.h | 6 +
drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +
drivers/gpu/drm/nouveau/nouveau_grctx.c | 4 +-
drivers/gpu/drm/nouveau/nouveau_irq.c | 155 ++++++++++++++++-----------
drivers/gpu/drm/nouveau/nouveau_notifier.c | 13 ++-
drivers/gpu/drm/nouveau/nouveau_object.c | 3 +-
drivers/gpu/drm/nouveau/nouveau_reg.h | 1 +
drivers/gpu/drm/nouveau/nouveau_sgdma.c | 7 +-
drivers/gpu/drm/nouveau/nouveau_state.c | 49 +++++++--
drivers/gpu/drm/nouveau/nv04_fbcon.c | 9 +-
drivers/gpu/drm/nouveau/nv50_crtc.c | 11 ++-
drivers/gpu/drm/nouveau/nv50_fbcon.c | 9 +-
drivers/gpu/drm/nouveau/nv50_fifo.c | 9 +-
drivers/gpu/drm/nouveau/nv50_graph.c | 10 ++-
drivers/gpu/drm/nouveau/nv50_sor.c | 1 +
drivers/gpu/drm/radeon/Kconfig | 12 ++-
drivers/gpu/drm/radeon/atombios_dp.c | 10 ++-
drivers/gpu/drm/radeon/r600.c | 8 ++
drivers/gpu/drm/radeon/r600_audio.c | 3 +-
drivers/gpu/drm/radeon/radeon_atombios.c | 9 ++
drivers/gpu/drm/radeon/radeon_benchmark.c | 55 ++++++----
drivers/gpu/drm/radeon/radeon_connectors.c | 20 ++--
drivers/gpu/drm/radeon/radeon_display.c | 11 ++-
drivers/gpu/drm/radeon/radeon_fb.c | 2 +-
drivers/gpu/drm/vmwgfx/vmwgfx_drv.h | 11 +-
drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c | 17 ++--
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c | 6 +
drivers/gpu/drm/vmwgfx/vmwgfx_irq.c | 13 +--
drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 8 +-
drivers/gpu/drm/vmwgfx/vmwgfx_resource.c | 16 +---
drivers/gpu/vga/vgaarb.c | 2 +-
include/drm/nouveau_drm.h | 1 +
include/drm/vmwgfx_drm.h | 20 +++-
43 files changed, 402 insertions(+), 230 deletions(-)
Dave,
I just updated from to rc8 and got the a scheduling while atomic warning in
nouveau. (see below).
...
[ 0.298265] [drm] Initialized drm 1.1.0 20060810
[ 0.298409] nouveau 0000:01:00.0: power state changed by ACPI to D0
[ 0.298420] nouveau 0000:01:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ 16
[ 0.298426] nouveau 0000:01:00.0: setting latency timer to 64
[ 0.301746] [drm] nouveau 0000:01:00.0: failed to evaluate _DSM: 5
[ 0.303750] ACPI: Battery Slot [BAT0] (battery present)
[ 0.304515] [drm] nouveau 0000:01:00.0: Detected an NV50 generation card (0x084c00a2)
[ 0.305534] [drm] nouveau 0000:01:00.0: Attempting to load BIOS image from PRAMIN
[ 0.382604] [drm] nouveau 0000:01:00.0: ... appears to be valid
[ 0.382607] [drm] nouveau 0000:01:00.0: BIT BIOS found
[ 0.382609] [drm] nouveau 0000:01:00.0: Bios version 60.84.51.00
[ 0.382613] [drm] nouveau 0000:01:00.0: TMDS table revision 2.0 not currently supported
[ 0.382614] [drm] nouveau 0000:01:00.0: BIT table 'd' not found
[ 0.382616] [drm] nouveau 0000:01:00.0: Found Display Configuration Block version 4.0
[ 0.382619] [drm] nouveau 0000:01:00.0: DCB connector table: VHER 0x40 5 14 2
[ 0.382621] [drm] nouveau 0000:01:00.0: 0: 0x00000040: type 0x40 idx 0 tag 0xff
[ 0.382623] [drm] nouveau 0000:01:00.0: 1: 0x00000100: type 0x00 idx 1 tag 0xff
[ 0.382626] [drm] nouveau 0000:01:00.0: 2: 0x00001231: type 0x31 idx 2 tag 0x07
[ 0.382628] [drm] nouveau 0000:01:00.0: Raw DCB entry 0: 01000323 00010034
[ 0.382630] [drm] nouveau 0000:01:00.0: Raw DCB entry 1: 02811300 00000028
[ 0.382632] [drm] nouveau 0000:01:00.0: Raw DCB entry 2: 02822312 00010030
[ 0.382633] [drm] nouveau 0000:01:00.0: Raw DCB entry 3: 0000000e 00000000
[ 0.382641] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 0 at offset 0xDEBB
[ 0.420125] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 1 at offset 0xE208
[ 0.453350] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 2 at offset 0xEC55
[ 0.453358] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 3 at offset 0xED47
[ 0.460091] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table 4 at offset 0xEF7A
[ 0.460093] [drm] nouveau 0000:01:00.0: Parsing VBIOS init table at offset 0xEFDF
[ 0.483353] [drm] nouveau 0000:01:00.0: 0xEFDF: Condition still not met after 20ms, skipping following opcodes
[ 0.483360] [drm] nouveau 0000:01:00.0: 0xD01A: parsing output script 0
[ 0.483362] [drm] nouveau 0000:01:00.0: 0xD190: parsing output script 0
[ 0.600743] [TTM] Zone kernel: Available graphics memory: 1993568 kiB.
[ 0.600755] [drm] nouveau 0000:01:00.0: 256 MiB VRAM
[ 0.632525] [drm] nouveau 0000:01:00.0: 512 MiB GART (aperture)
[ 0.632531] mtrr: type mismatch for e0000000,10000000 old: write-back new: write-combining
[ 0.632541] nouveau 0000:01:00.0: firmware: using built-in firmware nouveau/nv84.ctxprog
[ 0.632545] nouveau 0000:01:00.0: firmware: using built-in firmware nouveau/nv84.ctxvals
[ 0.632801] [drm] nouveau 0000:01:00.0: Allocating FIFO number 1
[ 0.640758] [drm] nouveau 0000:01:00.0: nouveau_channel_alloc: initialised FIFO 1
[ 0.641523] [drm] nouveau 0000:01:00.0: Detected a LVDS output
[ 0.641527] [drm] nouveau 0000:01:00.0: Detected a DAC output
[ 0.641529] [drm] nouveau 0000:01:00.0: Detected a TMDS output
[ 0.641531] [drm] nouveau 0000:01:00.0: Detected a LVDS connector
[ 0.741133] [drm] nouveau 0000:01:00.0: Detected a VGA connector
[ 0.741222] [drm] nouveau 0000:01:00.0: Detected a DVI-D connector
[ 2.173573] [drm] nouveau 0000:01:00.0: allocated 1920x1200 fb: 0x40250000, bo ffff88013b9c5800
[ 2.175406] [drm] nouveau 0000:01:00.0: 0xD01E: parsing output script 1
[ 2.175431] [drm] nouveau 0000:01:00.0: 0xCEC7: parsing clock script 0
[ 2.175437] BUG: scheduling while atomic: nouveau/0/753/0x00000002
[ 2.175439] Modules linked in:
[ 2.175442] Pid: 753, comm: nouveau/0 Not tainted 2.6.33-rc8-prerelease #27
[ 2.175443] Call Trace:
[ 2.175451] [<ffffffff815dcdea>] ? schedule+0x86a/0x880
[ 2.175454] [<ffffffff8120a420>] ? vsnprintf+0xe0/0x9a0
[ 2.175456] [<ffffffff815dd18c>] ? schedule_timeout+0x15c/0x250
[ 2.175460] [<ffffffff81068570>] ? process_timeout+0x0/0x10
[ 2.175462] [<ffffffff81069068>] ? msleep+0x18/0x30
[ 2.175466] [<ffffffff812d48d1>] ? init_time+0x51/0x90
[ 2.175468] [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0
[ 2.175470] [<ffffffff812d424a>] ? init_sub_direct+0x4a/0xd0
[ 2.175472] [<ffffffff812d3ffb>] ? parse_init_table+0xcb/0x1a0
[ 2.175474] [<ffffffff812d496f>] ? nouveau_bios_run_init_table+0x5f/0xa0
[ 2.175476] [<ffffffff812d4c0c>] ? nouveau_bios_run_display_table+0x25c/0x500
[ 2.175480] [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410
[ 2.175483] [<ffffffff812fd4cc>] ? nv50_display_irq_handler_bh+0x2ac/0x410
[ 2.175485] [<ffffffff812fd220>] ? nv50_display_irq_handler_bh+0x0/0x410
[ 2.175487] [<ffffffff8107047b>] ? worker_thread+0x16b/0x250
[ 2.175490] [<ffffffff81074240>] ? autoremove_wake_function+0x0/0x30
[ 2.175492] [<ffffffff81070310>] ? worker_thread+0x0/0x250
[ 2.175494] [<ffffffff81070310>] ? worker_thread+0x0/0x250
[ 2.175496] [<ffffffff81073dbe>] ? kthread+0x8e/0xa0
[ 2.175499] [<ffffffff81027554>] ? kernel_thread_helper+0x4/0x10
[ 2.175501] [<ffffffff81073d30>] ? kthread+0x0/0xa0
[ 2.175503] [<ffffffff81027550>] ? kernel_thread_helper+0x0/0x10
[ 2.182407] Console: switching to colour frame buffer device 240x75
[ 2.186632] fb0: nouveaufb frame buffer device
[ 2.186633] registered panic notifier
[ 2.186636] [drm] Initialized nouveau 0.0.15 20090420 for 0000:01:00.0 on minor 0
...
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majo...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Linus' tree is missing two fixes:
drm/nouveau: don't hold spin lock while calling kzalloc with GFP_KERNEL
drm/nouveau: spin_lock_init after memset'ing the bios struct
The first one fixes your bug.
http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=ed64797d153ecf0da79b8b849642d7a109fd97fd
http://cgit.freedesktop.org/nouveau/linux-2.6/commit/?id=9da76700072a00c39e21553df0998c7b3b620d88
If they won't go into 2.6.33, they are perfect candidates for -stable.
Marcin
Maarten.
Ouch, you are right.
Sorry for the noise.
commit 39c9bfb453b748ce220ceefacbe2a5c19fabf67b
Author: Ben Skeggs <bsk...@redhat.com>
Date: Tue Feb 9 10:22:29 2010 +1000
drm/nv50: prevent multiple init tables being parsed at the same time
One possible solution is to replace the spinlock bios->lock with a mutex,
but there are others ways of fixing this BUG.
CCing Ben.
Thanks,
Ok, I cherry-picked d9184fa97b6f48d399636e5e2669bc8419f9369e from for-airlied
The fix seems to work.
If you like you can add
Reported-by: Christian Borntraeger <bornt...@de.ibm.com>
Tested-by: Christian Borntraeger <bornt...@de.ibm.com>
Christian