aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2013-07-30drm/nv31/mpeg: fix mpeg engine initializationIlia Mirkin1-2/+2
object->engine is null, which leads to a null deref down the line Signed-off-by: Ilia Mirkin <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-30drm/nv50/mc: include vp in the fb error reporting maskIlia Mirkin1-1/+1
Signed-off-by: Ilia Mirkin <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-30drm/nouveau: fix null pointer dereference in poll_changedMaarten Lankhorst1-1/+2
Fixes vgaswitcheroo on a card without display. Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-30drm/nv50/gpio: post-nv92 cards have 32 interrupt linesEmil Velikov1-5/+5
Since the original merge of nouveau to upstream kernel, we were assuming that nv90 (and later) cards have 32 lines. Based on mmio traces of the binary driver, as well as PBUS error messages during read/write of the e070/e074 registers, we can conclude that nv92 has only 16 lines whereas nv94 (and later) cards have 32. Reported-and-tested-by: David M. Lloyd <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Cc: [email protected] Cc: Ben Skeggs <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-30drm/nvc0/fb: take lock in nvc0_ram_put()Roy Spliet3-12/+26
Kernel panic caused by list corruption in ltcg seems to indicate a concurrency issue. Take mutex of pfb like nv50_ram_put() to eliminate concurrency. V2: Separate critical section into separate function, avoid taking the lock twice on NVC0 Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-30drm/nouveau/core: xtensa firmware size needs to be 0x40000 no matter whatIlia Mirkin1-1/+7
The current logic is wrong since we send fw->size >> 8 to the card. Rounding the size up by 0x100 and 0x1000 didn't seem to help, the card still hung, so go back to what the blob does -- 0x40000. Signed-off-by: Ilia Mirkin <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-10drm/nouveau: do not allow negative sizes for nowMaarten Lankhorst1-0/+6
The API allows up to 64-bits allocations, but size is handled as int inside nouveau almost everywhere. Until this is fixed it's better to prevent negative sizes. The 256 kB before INT_MAX is paranoia, because of the large page aligning below that could flip it above INT_MAX. Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-10drm/nouveau: add falcon interrupt handlerMaarten Lankhorst7-0/+26
This prevents 100% cpu usage on fermi cards when the exit interrupt from the secret scrubber is not acked. Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-10drm/nouveau: use dedicated channel for async moves on GT/GF chipsets.Ben Skeggs2-3/+15
The moves themselves were generally async to graphics previously, with the exception that if the "main" channel is used to synchronise a page flip at the same time, it can end up blocked for a noticable amount of time for large buffer moves. Not really critical, and there's better ways of handling this, but they are all rather invasive, so this is fine for now. Based on a patch by Maarten Lankhorst addressing the same issue. Reported-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]> Acked-by: Maarten Lankhorst <[email protected]>
2013-07-10drm/nouveau: bump fence timeout to 15 secondsMaarten Lankhorst1-1/+1
calim didn't like 150 seconds timeout, so lower the timeout for him. 15 seconds should still be plenty. Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-10drm/nouveau: do not unpin in nouveau_gem_object_delMaarten Lankhorst2-8/+5
This should no longer be required, and is harmful for framebuffer pinning. Also add a warning if unpin causes the pin count to drop below 0. Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-10drm/nv50/kms: fix pin refcnt leaksBen Skeggs1-11/+35
Weren't critical previously, the buffers would go away anyway. But with recent changes to core drm/ttm lockdep will get pissed off now, so let's fix it. Reported-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]> Acked-by: Maarten Lankhorst <[email protected]>
2013-07-10drm/nouveau: fix some error-path leaks in fbcon handling codeMaarten Lankhorst2-6/+11
Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-10drm/nouveau: fix locking issues in page flipping pathsBen Skeggs3-36/+22
b580c9e2b7ba5030a795aa2fb73b796523d65a78 introduced additional problems while trying to solve issues that became apparent while porting to the new reservation stuff. The major problem was that the the previously mentioned patch took the client mutex earlier than previously, but the pinning of new_bo can can potentially cause a buffer move, which would result in attempting to acquire the same mutex again. This commit attempts to fix that "fix". Thanks to Maarten for the tips on keeping lockdep happy and cooking :) Reported-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]> Acked-by: Maarten Lankhorst <[email protected]>
2013-07-08Merge remote-tracking branch 'airlied/drm-next' into drm-nouveau-nextBen Skeggs339-7106/+69936
2013-07-08drm/nvc0/gr: fix gpc firmware regressionMaarten Lankhorst2-20/+23
"drm/nve0-/gr: some new gpc registers can have multiple copies" 5ee86c4190f9e caused a regression for nvc0, because the bit indicating last transfer has occured was no longer set, resulting in random system lockups. Reported-by: Ronald Uitermark <[email protected]> Tested-by: Ronald Uitermark <[email protected]> Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-08drm/nouveau: fix minor thinko causing bo moves to not be async on keplerBen Skeggs2-1/+3
Reported-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nva3/disp: Fix HDMI audio regressionIlia Mirkin1-0/+4
This is the nva3 counterpart to commit beba44b17 (drm/nv84/disp: Fix HDMI audio regression). The regression happened as a result of refactoring in commit 8e9e3d2de (drm/nv84/disp: move hdmi control into core). Reported-and-tested-by: Max Baldwin <[email protected]> Signed-off-by: Ilia Mirkin <[email protected]> Signed-off-by: Ben Skeggs <[email protected]> Cc: [email protected]
2013-07-05drm/nv50-/disp: Use output specific mask in interruptEmil Velikov1-1/+5
The commit commit 476e84e126171d809f9c0b5d97137f5055f95ca8 Author: Ben Skeggs <[email protected]> Date: Mon Feb 11 09:24:23 2013 +1000 drm/nv50-/disp: initial supervisor support for off-chip encoders changed the write mask in one of the interrupt functions for on-chip encoders, causing a regression in certain VGA dual-head setups. This commit reintroduces the mask thus resolving the regression Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=66129 Reported-and-Tested-by: Yves-Alexis <[email protected]> Cc: [email protected] [3.9+] CC: Ben Skeggs <[email protected]> Signed-off-by: Emil Velikov <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nouveau: use vmalloc for pgt allocationMarcin Slusarz1-3/+3
Page tables on nv50 take 48kB, which can be hard to allocate in one piece. Let's use vmalloc. Signed-off-by: Marcin Slusarz <[email protected]> Cc: [email protected] [3.7+] Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: remove some more of the hardcoded register writesBen Skeggs3-28/+6
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: factor out yet more unknown magic into versioned functionsBen Skeggs9-14/+42
NVC1/NVD9 are the only chipsets that should have anything different happen on them after this. We previously weren't doing these register modifications, and NVIDIA do. Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvd7/devinit: use fermi class, not teslaBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0-/gr: ctxsw scratch reg count got bumped to 16Ben Skeggs12-3034/+3303
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: remove hardcoding of UNK count/mask in GPCCS ucodeBen Skeggs4-95/+129
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0/gr: build cs ucode for GK110Ben Skeggs6-0/+1431
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: extend one of the magic calculations for >4 GPCsBen Skeggs1-6/+11
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0/gr: fix ddx shaders locking up on meBen Skeggs3-3/+54
This can be generalised and used on GK104 (probably even GF117), but lets just make it work for now. Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0/devinit: minor typoBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0/gr: enable support, if external cs ucode is availableBen Skeggs2-1/+6
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0/gr: magic sequence that makes PGRAPH come out of hidingBen Skeggs2-4/+48
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0/ce: enable supportBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvf0/fifo: enable supportBen Skeggs2-2/+4
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvd7/gr: initial supportMaarten Lankhorst22-20/+1930
Signed-off-by: Maarten Lankhorst <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: generate cs register lists from grctx dataBen Skeggs11-2073/+1152
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: tpc regs a subset of gpc, add separate list for gpc/unk regsBen Skeggs8-34/+52
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nve0-/gr: some new gpc registers can have multiple copiesBen Skeggs4-180/+227
GK110 exposes more than one, and needs to be dealt with in the ctxsw ucode just like the TPC sets are. Broadcast is at +0xe00. Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: pull out a group of separately context-switched gpc regsBen Skeggs6-96/+68
Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05drm/nvc0-/gr: make register lists from initvals functionsBen Skeggs21-8423/+6124
Generated context verified to be the same for all supported chipsets. Signed-off-by: Ben Skeggs <[email protected]>
2013-07-05Merge branch 'qxl-next' of git://people.freedesktop.org/~airlied/linux into ↵Dave Airlie8-128/+326
drm-next Adds 3 features that UMS had to the KMS driver. dynamic resizing - resizing remote-viewer makes guest resize multiple crtcs - remote-viewer can access > 1 crtc. suspend/resume/hibernate: guests can do suspend/resume/hibernate now. * 'qxl-next' of git://people.freedesktop.org/~airlied/linux: qxl: use drm helper hotplug support qxl: add suspend/resume/hibernate support. qxl: add fb and ttm entry points for use by suspend/resume. qxl: add ring prep code for s/r qxl: prepare memslot code for suspend/resume qxl: split monitors_config object creation out. drm/qxl: set time on drawables from userspace drm/qxl: add support for > 1 output drm/qxl: make dynamic resizing work properly.
2013-07-05qxl: use drm helper hotplug supportDave Airlie2-1/+6
This uses the helper to deal with hotplug so fbdev gets included. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05qxl: add suspend/resume/hibernate support.Dave Airlie3-8/+132
This adds suspend/resume and hibernate support for the KMS driver. it evicts all the objects, turns off the outputs, and waits for the hw to go idle, On resume, it resets the memslots, rings, monitors object and forces modeset. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05qxl: add fb and ttm entry points for use by suspend/resume.Dave Airlie3-0/+18
This just ports some APIs like radeon uses to provide hooks for s/r to call. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05qxl: add ring prep code for s/rDave Airlie2-2/+9
This prepare the ring code for s/r additions, the release ring will need reinitialising. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05qxl: prepare memslot code for suspend/resumeDave Airlie2-4/+19
this splits out initing the hw memslots from the guest info, and creates an entrypoint for s/r to use. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05qxl: split monitors_config object creation out.Dave Airlie2-4/+52
This splits the creation of the monitors config object out so we can re-use it across suspend/resume later. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05drm/qxl: set time on drawables from userspaceDave Airlie1-0/+6
This just sets the qxl time on the drawables. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05drm/qxl: add support for > 1 outputDave Airlie5-58/+85
This adds support for a default of 4 heads, with a command line parameter to change the default number. It also overhauls the modesetting code to handle this case properly, and send the correct things to the hardware at the right time. Signed-off-by: Dave Airlie <[email protected]>
2013-07-05drm/qxl: make dynamic resizing work properly.Dave Airlie1-55/+3
qxl has a feature to allow the userspace driver do arbitrary resizes when the viewer resizes, this fixes it by removing unnecessary code from the kernel side. Signed-off-by: Dave Airlie <[email protected]>
2013-07-04drm/mm: kill color_search_free/get_blockDaniel Vetter1-31/+1
drm/i915 is the only user of the color allocation handling and switched to insert_node a while ago. So we can ditch this. Signed-off-by: Daniel Vetter <[email protected]> Reviewed-by: Chris Wilson <[email protected]> Signed-off-by: Dave Airlie <[email protected]>