aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/nouveau/nouveau_drv.h
Commit message (Collapse)AuthorAge
...
* drm/nouveau/bios: simplify U/d table hash matching func to just matchBen Skeggs2011-09-20
| | | | | | | The caller is now responsible for parsing its own lists (or whatever) of possible encoders. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/dp: restructure link training codeBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/dp: pass in required datarate to link trainingBen Skeggs2011-09-20
| | | | | | | Not used currently, but it will be used in preference to pre-determined lane/bandwidth numbers at a later point. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50/backlight: take the sor into account when bashing regsBen Skeggs2011-09-20
| | | | | | | I'm sure that out there somewhere, someone will need this. We currently haven't seen an example of LVDS being on a non-0 SOR so far though. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/dp: remove reliance on vbios for native displayportBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/dp: rewrite auxch transaction routinesBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: determine timing crystal freq from strapsBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pm: Document and expose CL and WR for 0x1002CxRoy Spliet2011-09-20
| | | | Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl>
* drm/nouveau/pm: add initial NV3x/NVCx memtiming support, improve other cardsRoy Spliet2011-09-20
| | | | | | | | | | | | NV30: Create framework for memtm NV50: Improve reg creation, NV50: Use P.version instead of card codename/stepping, NVC0: Initial memtiming code for Fermi, Renamed regs for consistency, Overall redesign to improve readability, Avoid kfree on null-pointer Signed-off-by: Roy Spliet <r.spliet@student.tudelft.nl>
* drm/nvd0/disp: very initial evo setupBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/bios: allow passing in crtc to the init table parserBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvd0/gpio: initial implementationBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: allow modeset module option to select 'headless mode'Ben Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: make general drm modesetting init commonBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvd0: add a card_type for 0xdX chipsetsBen Skeggs2011-09-20
| | | | | | | These are different enough from 0xcX to justify it, half fermi, half kepler(??).. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: embed nouveau_mmBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: rename nv40_mpeg to nv31_mpegBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/pm: more complete parsing of clock domainsBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: add function to wait until a callback returns trueBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nva3/pm: parse/reclock vdec/41a0 clocksBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pm: add hooks to get/set *all* clocks at onceBen Skeggs2011-09-20
| | | | | | | This is probably better than having to tell the common code about all the clocks that exist on every chipset. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pm: some fermi chipsets still use volt 0x30Ben Skeggs2011-09-20
| | | | | | Fun, fun. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pm: add support for parsing perflvl voltage on fermi chipsBen Skeggs2011-09-20
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/pm: store voltage in microvoltsBen Skeggs2011-09-20
| | | | | | Instead of 10s of millivolts, to match fermi vbios. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: pass flag to engine fini() method on suspendBen Skeggs2011-07-24
| | | | | | | | It may not be necessary to fail in certain cases (such as failing to idle) on module unload, whereas on suspend it's important to ensure a consistent state can be restored on resume. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: replace nv04_graph_fifo_access() use with direct reg bashingBen Skeggs2011-07-24
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/temp: Fix signed/unsigned int logicEmil Velikov2011-06-23
| | | | | | | | | | | | | Many (all?) of the coefficients related to calculating the correct temperature are signed integers This patch correcly parses and stores those values It also ensures that the default offset is 0 (previously 1) Affected cards - the original nv50 and the nv40 family Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: rework vram init/fini ordering a littleBen Skeggs2011-06-23
| | | | | | | | | | | | Commit "drm/nouveau: add some debug output if nouveau_mm busy at destroy time" revealed an issue where vram mm takedown would actually fail due to there still being nodes present, causing nouveau to leak a small amount of memory on module unload. This splits TTM/nouveau_mm a bit more cleanly and ensures nouveau_mm fini isn't done until all gpuobjs are also destroyed. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: remove implicit mapping of every bo into chan_vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: remove 'chan' argument from nouveau_bo_newBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0: explicitly map PDISP semaphore buffer into each channel's vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv84-nvc0: explicitly map semaphore buffer into channel vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-nvc0: explicitly map pushbuf bo into channel vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-nvc0: explicitly map notifier bo into channel vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: initial changes to support multiple VMAs per buffer objectBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: create temp vmas for both src and dst of bo movesBen Skeggs2011-06-23
| | | | | | | | | Greatly simplifies a number of things, particularly once per-client GPU address spaces are involved. May add this back later once I know what things'll look like. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: store bo's page size in nouveau_boBen Skeggs2011-06-23
| | | | | | | | Was previously assuming a page size of 4KiB unless a VMA was present to override it. Eventually, a buffer won't necessarily have a VMA at all at some stages of its life, so we need to store this info elsewhere. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: will need to specify channel for vm-ful gpuobj allocationsBen Skeggs2011-06-23
| | | | | | | | | Abuses existing gpuobj_new() chan argument for this, which in turn forces all NVOBJ_FLAG_VM allocations to be done from the global heap, not suballocated from the channel's private heap. Not a problem though in practise. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau/gem: implement stub hooks for GEM object open/closeBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: remove 'chan' argument from nouveau_gem_newBen Skeggs2011-06-23
| | | | | | | Userspace hasn't passed us a channel_hint for a long long time now, and there isn't actually a need to do so anymore anyway. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50-nvc0/vm: take client reference on shared channel vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: store a per-client channel listBen Skeggs2011-06-23
| | | | | | | Removes the need to disable IRQs to lookup channel struct on every pushbuf ioctl, among others. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: allocate structure to store per-client dataBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: import and use our own fuc by defaultBen Skeggs2011-06-23
| | | | | | | | | | | | | | | | | | | | | | | The ability to use NVIDIA's fuc has been retained *temporarily* in order to better debug any issues that may be lingering in our initial attempt at writing this ucode. Once I'm fairly confident we're okay, it'll be removed. There's a number of things not implemented by this fuc currently, but most of it is sets of state that our context setup would not have used anyway. No doubt we'll find out what they're for at some point, and implement it if required. This has been tested on 0xc0/0xc4 thus far, and from what I could tell it worked as well as NVIDIA's. It's also been tested on 0xc1, but even with NVIDIA's fuc that chipset doesn't work correctly with nouveau yet. 0xc3/0xc8/0xce should in theory be supported too, but I don't have the hardware to check that. There's no doubt numerous bugs to squash yet, please report any! Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0: fix suspend/resume of PGRAPH/PCOPYnBen Skeggs2011-06-23
| | | | | | | | | | | We need the physical VRAM address in vinst, even for objects mapped into a vm, as the gpuobj suspend/resume code uses PMEM to access the object. Previously, vinst was overloaded to mean "VRAM address" for !VM objects, and "VM address" for VM objects, causing the wrong data to be accessed during suspend/resume. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: default to noaccel on 0xc1/0xc8/0xce for nowBen Skeggs2011-06-23
| | | | | | | Until we know these should work properly, would much rather default to noaccel than risk giving people corruption/hangs out of the box.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nva3/clk: better pll calculation when no fractional fb div availableBen Skeggs2011-05-15
| | | | | | | | | | | | The core/mem/shader clocks don't support the fractional feedback divider, causing our calculated clocks to be off by quite a lot in some cases. To solve this we will switch to a search-based algorithm when fN is NULL. For my NVA8 at PL3, this actually generates identical cooefficients to the binary driver. Hopefully that's a good sign, and that does not break VPLL calculation for someone.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/pm: parse clock for pll 0x0a (0x137020) from perf tableBen Skeggs2011-05-15
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: Associate memtimings with performance levels on cards <= nv98Martin Peres2011-05-15
| | | | | | | v2 (Ben Skeggs): fix ramcfg strap, and remove bogus handling of perf 0x40 Signed-off-by: Martin Peres <martin.peres@ensi-bourges.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: rename nv84_mpeg to nv50_mpegBen Skeggs2011-05-15
| | | | | | In preparation for adding 0x50 support. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>