aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAge
* 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/nv50-nvc0: explicitly map fbcon fb 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/nv50-nvc0: completely disable relocsBen Skeggs2011-06-23
| | | | | | | | | | GPU virtual addresses are constant now so this should never be getting hit anyway and userspace shouldn't break from them being ignored. This is being done in preference to teaching the code how to deal with BOs that exist at different virtual addresses within separate VMs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: convert bo.mem.start usage to bo.offsetBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: convert some bo.offset use to vma.offsetBen 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: skip move_notify() if bo does not have a vma attachedBen Skeggs2011-06-23
| | | | 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: initialise any vm for a channel before pushbuf/ntfyBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: modify gpuobj/ntfy takedown orderingBen Skeggs2011-06-23
| | | | | | gpuobj really needs splitting into channel/gpuobj code instead... 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/chan: inherit vm from fpriv, rather than chan_vm directlyBen Skeggs2011-06-23
| | | | 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/nv50-nvc0/vm: don't touch chan_vmBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: no need to update bo.offset from vma after validateBen Skeggs2011-06-23
| | | | | | | On chipsets using nouveau_vm, the virtual address stays constant, so the value set at bo creation time is fine. 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: use NULL file_priv for DRM-created channelsBen Skeggs2011-06-23
| | | | 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/nouveau: silence error for missing dac loadval tableBen Skeggs2011-06-23
| | | | | | | There's lots of boards (all recent ones) that don't have this anymore, so punt the message to debug loglevel. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nv50: DCB table quirks for another busted XFX boardBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nouveau: log if accel is disabled by default on a chipsetBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: fill in some more data for 0xc1/0xc8/0xceBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: fix typo in class9197 initBen Skeggs2011-06-23
| | | | | Reported-by: Christoph Bumiller <e0425955@student.tuwien.ac.at> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: calculate magicgpc918 ourselvesBen Skeggs2011-06-23
| | | | | | | | Not a clue what it is yet, but we get the same numbers as NVIDIA now. My 465 didn't seem to care to greatly *what* I bashed into these registers.. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: add some missing magics for 0xc1/0xc8/0xceBen 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/nvc1/gr: switch on acceleration supportBen Skeggs2011-06-23
| | | | | | | There's issues with certain 3D apps still, unknown whether this is a kernel issue or not.. It does appear that it may be in the 3D driver however. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: enable 0xc8/0xce support, no idea if it works or not..Ben Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: some initial state modificationsBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: 0x9197/0x9297 state initBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/gr: macro to determine fermi class, will use it in a few placesBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/fifo: fix typos in unload_contextBen Skeggs2011-06-23
| | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0/fb: allocate page for some unknown PFFB objectBen Skeggs2011-06-23
| | | | | | | Fixes DMAR faults during accel, more than likely a similar problem to what was solved on nv50 previously. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/nvc0: Read temperature on Fermi like we do on nv84+Martin Peres2011-06-23
| | | | | Signed-off-by: Martin Peres <martin.peres@ensi-bourges.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
* drm/radeon/kms: add initial CS checker support for computeAlex Deucher2011-06-20
| | | | | | | | - Add some new compute regs - Add new dispatch packets for evergreen/cayman Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* ttm: Fix spelling mistakes and remove unused #ifdefKonrad Rzeszutek Wilk2011-06-20
| | | | | | | | | . and some comments to make it easier to understand. Ackedby: Randy Dunlap <randy.dunlap@oracle.com> [v2: Added some more updates from Randy Dunlap] Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms: set dma_copy to NULL for r6xx+Alex Deucher2011-06-20
| | | | | | | | No need to assign the same copy callback for both copy blit and dma. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/gem: add hooks to notify driver when object handle is created/destroyedBen Skeggs2011-06-20
| | | | | | | | Nouveau is going to use these hooks to map/unmap objects from a client's private GPU address space. Signed-off-by: Ben Skeggs <bskeggs@redhat.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/radeon/kms/r6xx+: voltage fixesAlex Deucher2011-06-20
| | | | | | | | | 0xff01 is not an actual voltage value, but a flag for the driver. If the power state as that value, skip setting the voltage. Signed-off-by: Alex Deucher <alexdeucher@gmail.com> Signed-off-by: Dave Airlie <airlied@redhat.com>
* drm/nouveau: drop leftover debuggingDave Airlie2011-06-20
| | | | | | this printk isn't really useful, just drop it for now. Signed-off-by: Dave Airlie <airlied@redhat.com>
* Merge branch 'drm-nouveau-fixes' of ↵Dave Airlie2011-06-19
|\ | | | | | | | | | | | | | | | | | | git://anongit.freedesktop.org/git/nouveau/linux-2.6 into drm-fixes * 'drm-nouveau-fixes' of git://anongit.freedesktop.org/git/nouveau/linux-2.6: drm/nouveau: fix assumption that semaphore dmaobj is valid in x-chan sync drm/nv50/disp: fix gamma with page flipping overlay turned on drm/nouveau/pm: Prevent overflow in nouveau_perf_init() drm/nouveau: fix big-endian switch
| * drm/nouveau: fix assumption that semaphore dmaobj is valid in x-chan syncBen Skeggs2011-06-18
| | | | | | | | | | | | | | The DDX modifies DMA_SEMAPHORE on nv50 in order to implement sync-to-vblank, things will go very wrong for cross-channel sync after this. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nv50/disp: fix gamma with page flipping overlay turned onBen Skeggs2011-06-18
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>