aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2014-12-22drm/nouveau: wake up the card if necessary during gem callbacksBen Skeggs1-5/+30
The failure paths if we fail to wake the card are less than desirable, but there's not really a graceful way to handle this case currently. I'll keep this situation in mind when I get to fixing other vm-related issues. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-22drm/nouveau/device: Add support for GK208B, resolves bug 86935Sven Köhler1-0/+33
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-22drm/nouveau: fix missing return statement in nouveau_ttm_tt_unpopulateAlexandre Courbot1-1/+3
nouveau_ttm_tt_unpopulate() is supposed to return right after calling ttm_dma_unpopulate() in the case of a coherent buffer. The return statement was omitted, leading to the pages being unmapped twice. Fix this. Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-22drm/nouveau/bios: fix oops on pre-nv50 chipsetsBen Skeggs1-2/+4
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nv50/kms: drop requirement that framebuffer bos be contig up-frontBen Skeggs1-5/+0
We'll move them at pin() time if necessary. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nv50/kms: directly use cursor image from userspace bufferBen Skeggs2-49/+32
Preparation for transition to planes, which use framebuffers for the cursor image. We've always done copies from the userspace buffer up until now for legacy reasons, there's no good reason to do so on the chipsets this code covers. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/kms: when pinning display-related buffers, force contig vramBen Skeggs2-7/+7
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: teach nouveau_bo_pin() how to force a contig vram allocationBen Skeggs13-27/+52
We have the ability to move buffers around in the kernel if necessary, and should probably use it rather than failing if userspace passes us a non-contig buffer for a plane. The NOUVEAU_GEM_TILE_NONCONTIG flag from userspace will become a mere initial placement hint once all the relevant paths have been updated. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/volt: add support for GK20AVince Hsu6-0/+218
The voltage value are calculated by the hardware characterized result. Signed-off-by: Vince Hsu <[email protected]> Reviewed-by: Alexandre Courbot <[email protected]> Acked-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/platform: add GPU speedo information to nouveau platformVince Hsu2-0/+4
For GK20A we need the GPU speedo value to calculate voltage levels. Signed-off-by: Vince Hsu <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/volt: allow non-bios voltage scalingVince Hsu1-29/+38
Move the vbios parsing out of init() and call it conditionally if the platform has a vbios. Non-vbios platforms can use the ctor() to init the data structures. Signed-off-by: Vince Hsu <[email protected]> Acked-by: Alexandre Courbot <[email protected]> Acked-by: Martin Peres <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/gf100-/gr: return non-fatal error code when fw not presentBen Skeggs1-1/+1
This allows the module to load without acceleration. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/devinit: bump priv ring timeouts before executing scriptsBen Skeggs2-1/+10
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/bios: translate ramcfg strap through M0203Ben Skeggs1-1/+12
A machine has been spotted where the ramcfg strap is "8", and the ramcfg xlat table goes 0-7,0-7, resulting in us selecting config 0 for memory items. On this particular system, config "8" is available and supposed to be used. It appears that starting from GT21x (where Mv2 appears), we're supposed to use the value in this table instead. One concern here is that not all the places we currently use ramcfg xlat are supposed to be treated the same now. The strap xlat table wasn't removed from the vbios either, presumably for some kind of good reason. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb: make use of M0203 routines for ram type determinationBen Skeggs1-22/+15
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/bios: add parsing of BIT M(v2) +0x03 tableBen Skeggs3-0/+161
We only support one kind of matching here (ramcfg strap), but it appears alternate methods are possible. I wrote a tool to scan our vbios repo for other types, but did not see any used. Hopefully this means there aren't any in the wild that will now break. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/core: allow vbios parsing without knowing chipset typeBen Skeggs1-0/+5
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/lib: add null backendBen Skeggs2-0/+2
For the moment, just used to speed up vbios-only testing. Have some ideas for extending in the future. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/device: store revisionBen Skeggs2-1/+4
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/core: add some forgotten subdevs to disable maskBen Skeggs2-0/+3
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/gk20a/clk: fix max VCO valueAlexandre Courbot1-1/+1
For some reason max_vco was set to a lower value that it can support, which prevented some clock states to be applied. Fix this by setting it to the same value as downstream. Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: we need pin_refcnt for nouveau_bo_placement_set()Ben Skeggs1-5/+9
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nv50-/kms: add some evo tracing ability for debuggingBen Skeggs1-0/+13
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nv50/kms: use sclass() instead of trial-and-errorBen Skeggs1-6/+20
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nv50/kms: remove a couple of cursor-related stub functionsBen Skeggs2-12/+2
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: fix pin refcnt leak in failure pathBen Skeggs1-12/+12
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: synchronize BOs when requiredAlexandre Courbot3-0/+56
On architectures for which access to GPU memory is non-coherent, caches need to be flushed and invalidated explicitly when BO control changes between CPU and GPU. This patch adds buffer synchronization functions which invokes the correct API (PCI or DMA) to ensure synchronization is effective. Based on the TTM DMA cache helper patches by Lucas Stach. Signed-off-by: Lucas Stach <[email protected]> Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: allocate GPFIFOs and fences coherentlyAlexandre Courbot2-3/+3
Specify TTM_PL_FLAG_UNCACHED when allocating GPFIFOs and fences to allow them to be safely accessed by the kernel without being synced on non-coherent architectures. Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: implement explicitly coherent BOsAlexandre Courbot2-8/+73
Allow nouveau_bo_new() to recognize the TTM_PL_FLAG_UNCACHED flag, which means that we want the allocated BO to be perfectly coherent between the CPU and GPU. This is useful on non-coherent architectures for which we do not want to manually sync some rarely-accessed buffers: typically, fences and pushbuffers. A TTM BO allocated with the TTM_PL_FLAG_UNCACHED on a non-coherent architecture will be populated using the DMA API, and accesses to it performed using the coherent mapping performed by dma_alloc_coherent(). Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: introduce nv_device_is_cpu_coherent()Alexandre Courbot1-0/+6
Add a function allowing us to know whether a device is CPU-coherent, i.e. accesses performed by the CPU on GPU-mapped buffers will be immediately visible on the GPU side and vice-versa. For now, a device is considered to be coherent if it uses the PCI bus on a non-ARM architecture. Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: warn when moving a pinned objectAlexandre Courbot1-2/+9
Pinned BOs are supposed to remain in their current location until unpinned. Display a warning for the supposedly-erroneous case where we are trying to move such objects. Signed-off-by: Alexandre Courbot <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/disp: clear notify intr status when enabling, to prevent racesBen Skeggs2-0/+4
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nv50-/disp: rename class members to match nvidia channel namesBen Skeggs11-206/+206
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/core: remove some dead code that got forgottenBen Skeggs3-135/+0
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/pwr/fuc: Fix thinko in nouveau_memx_wait()Roy Spliet1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nva3/clock: Allow user reclockingRoy Spliet1-1/+1
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb/ramnva3: Reclocking script for GDDR3Roy Spliet2-10/+92
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb/ramnva3: Reclocking script for DDR2Roy Spliet1-15/+42
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb/ramnva3: Reclocking script for DDR3Roy Spliet3-75/+219
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb/ramnva3: Ressurect timing calculation codeRoy Spliet3-14/+132
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb/ramnva3: Link training for DDR3Roy Spliet10-1415/+2259
V2: fix whitespace errors in memx.fuc Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/fb/gddr3: Generate MR valuesRoy Spliet3-0/+119
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/bios/ramcfg: 10_02_40 -> DLLoffRoy Spliet4-4/+4
Signed-off-by: Roy Spliet <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: move the (far too many...) different s/r paths to the same placeBen Skeggs2-138/+144
No code changes. Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/gk104-/fifo: handle copy engine class errorsBen Skeggs1-6/+42
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/bios: stop after NV+NPDS+ISBN imageBen Skeggs1-4/+9
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/bios: add some more signatures as seen on my gtx660Ben Skeggs2-0/+2
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau: add support for gm204Ben Skeggs3-11/+16
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/nouveau/device: recognise GM204Ben Skeggs2-1/+45
Signed-off-by: Ben Skeggs <[email protected]>
2014-12-02drm/gm204/disp: some magic that fixes bringup of uninitialised outputsBen Skeggs5-3/+24
Probably missing something here, doesn't make a lot of sense to write or+link data into a register whose offset is calculated by the same or+link info.. This is the all I've witnessed the binary driver and vbios doing so far, so it'll do. Signed-off-by: Ben Skeggs <[email protected]>