summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-10-03drm/nouveau/core: have fifo store a unique context identifier at attach timeBen Skeggs11-2/+23
This value will match something that's easily available from the engine IRQ handlers, and used to lookup the relevant context. Since the changes in how this is done on each generation match when the major PFIFO changes happened, fifo is responsible for calculating the correct value to avoid duplicating the same code among many engine modules. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/fifo: add method to lookup fifo chid related to a given objectBen Skeggs2-0/+17
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/core: protect engine context list with hardirq-safe spinlockBen Skeggs4-20/+60
IRQ handlers will need access to engine contexts. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv84/fifo: mask only the engine we're waiting on for channel unloadBen Skeggs1-6/+10
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nve0: use async copy engine for ttm buffer moves if availableBen Skeggs7-26/+72
Kepler PFIFO lost the ability to address multiple engines from a single channel, so we need a separate one for the copy engine. v2: Marcin Slusarz <marcin.slusarz@gmail.com> - regression fix: restore hw accelerated buffer copies Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nve0/copy: add initial support for the async copy enginesBen Skeggs4-0/+164
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nve0/fifo: support engine selection when creating fifo channelsBen Skeggs7-13/+64
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/device: return proper error codes if ioremap failsBen Skeggs1-3/+3
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/core: remove some left-over pieces from the porting processBen Skeggs3-21/+0
Reported-by: Marcin Slusarz <marcin.slusarz@gmail.com> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nvc0-/gr: remove reset-after-grctx-construction hackBen Skeggs3-34/+9
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: add Kconfig options for debug controlBen Skeggs2-9/+29
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: port remainder of drm code, and rip out compat layerBen Skeggs70-4174/+3095
v2: Ben Skeggs <bskeggs@redhat.com> - fill in nouveau_pm.dev to prevent oops - fix ppc issues (build + OF shadow) Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/device: include the official chipset namesBen Skeggs9-1/+61
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/backlight: remove dependence on nouveau_drv.hBen Skeggs6-59/+60
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: flatten nv{Read,Write}{MC,VIDEO,FB,EXTDEV}Ben Skeggs6-76/+24
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: move compat ioctl out of nouveau_drv.hBen Skeggs5-5/+9
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/acpi: move definitions out of nouveau_drv.hBen Skeggs7-36/+40
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/mxm: split up into bios code and a subdev moduleBen Skeggs16-755/+952
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: start culling unused codeBen Skeggs8-239/+4
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: port all engines to new engine module formatBen Skeggs146-11099/+14219
This is a HUGE commit, but it's not nearly as bad as it looks - any problems can be isolated to a particular chipset and engine combination. It was simply too difficult to port each one at a time, the compat layers are *already* ridiculous. Most of the changes here are simply to the glue, the process for each of the engine modules was to start with a standard skeleton and copy+paste the old code into the appropriate places, fixing up variable names etc as needed. v2: Marcin Slusarz <marcin.slusarz@gmail.com> - fix find/replace bug in license header v3: Ben Skeggs <bskeggs@redhat.com> - bump indirect pushbuf size to 8KiB, 4KiB barely enough for userspace and left no space for kernel's requirements during GEM pushbuf submission. - fix duplicate assignments noticed by clang v4: Marcin Slusarz <marcin.slusarz@gmail.com> - add sparse annotations to nv04_fifo_pause/nv04_fifo_start - use ioread32_native/iowrite32_native for fifo control registers v5: Ben Skeggs <bskeggs@redhat.com> - rebase on v3.6-rc4, modified to keep copy engine fix intact - nv10/fence: unmap fence bo before destroying - fixed fermi regression when using nvidia gr fuc - fixed typo in supported dma_mask checking Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nvc0-/gr: generate grctx template at init time, not first context ctorBen Skeggs5-604/+460
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nvc0-/gr: share headers between fermi and kepler graphics codeBen Skeggs6-204/+143
v2: Ben Skeggs <bskeggs@redhat.com> - de-inline nv_icmd, triggers some gcc issue causing ctxnv[ce]0.c to take a *very* *very* long time to build on some configs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/pageflip: kick flip handling out of engsw and into fenceBen Skeggs17-114/+265
This is all very much a policy thing, and hence will not belong in SW after the rework. engsw now only handles receiving the event to say "can flip now" and makes a callback to perform the actual work. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: move some more code around to more appropriate placesBen Skeggs4-342/+336
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nvc0-nve0/graph: rename dev to priv, no code changesBen Skeggs2-5170/+5170
There's a *lot* of code in here, and it's all going to use the PGRAPH priv pointer rather than drm_device after the engine rework. This is handling all the rename-only parts of the change. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/fence: un-port from nouveau_exec_engine interfacesBen Skeggs9-138/+124
Still the same code, but not an "engine" anymore. The fence code is more of a policy decision rather than exposing mechanisms, so it's not appropriate to port it to the new engine subsystem. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: pull nouveau_gem definitions into their own headerBen Skeggs2-33/+44
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: pull nouveau_bo definitions into their own headerBen Skeggs4-90/+97
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv04/disp: kick all private state out to own headerBen Skeggs14-171/+182
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/instmem: completely new implementation, as a subdev moduleBen Skeggs69-2169/+2777
v2 (Ben Skeggs): - some fixes for 64KiB PAGE_SIZE - fix porting issues in (currently unused) nv41/nv44 pciegart code Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: remove last use of nouveau_gpuobj_new_fake()Ben Skeggs2-84/+72
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv50/instmem: remove use of nouveau_gpuobj_new_fake()Ben Skeggs1-17/+2
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/gpuobj: remove flags for vm-mappingsBen Skeggs8-74/+136
Having GPUOBJ and VM intertwined like this makes it *really* hard to continue porting to the new driver architecture, split it out in favour of requiring explit maps be the caller. It's more flexible and obvious this way anyway... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/gpuobj: create wrapper functions for mapping gpuobj into vm/barBen Skeggs4-10/+44
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nvc0/fifo: handle bar1 control regs much like fifo/nve0Ben Skeggs1-19/+21
The partial mapping thing is stupid and pointless... Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv04-nv40/fifo: remove use of nouveau_gpuobj_new_fake()Ben Skeggs4-73/+50
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv04-nv40/instmem: remove use of nouveau_gpuobj_new_fake()Ben Skeggs7-100/+122
These type of fake objects will not be supported for much longer. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv04-nv40/instmem: duplicate nv04 code as nv40, remove alternate pathsBen Skeggs6-54/+202
A ton of duplication for the moment, will go away when they become subdevs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/fb: merge fb/vram and port to subdev interfacesBen Skeggs49-1345/+1691
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nv50-/instmem: allocate vram for kernel objects from end of vramBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/core: add support for reverse mm allocationsBen Skeggs5-93/+154
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/timer: port to subdev interfacesBen Skeggs22-162/+464
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/mc: port to subdev interfacesBen Skeggs23-118/+543
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau: implement devinit subdev, and new init table parserBen Skeggs54-3914/+3796
v2: - make sure not to execute display scripts unless resuming Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/clock: pull in the implementation from all over the placeBen Skeggs28-1213/+1328
Still missing the main bits we use to change performance levels, I'll get to it after all the hard yakka has been finished. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/clk: implement stub clock subdevBen Skeggs15-0/+437
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/i2c: port to subdev interfacesBen Skeggs29-555/+1347
v2/v3: Ben Skeggs <bskeggs@redhat.com> - fix typo in default bus selection - fix accidental loss of destructor v4: Dmitry Eremin-Solenikov <dmitry_eremin@mentor.com> - fix typo causing incorrect default i2c port settings when no BMP data Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/gpio: port gpio to subdev interfacesBen Skeggs33-503/+933
v2: Ben Skeggs <bskeggs@redhat.com> - rebase on top of v3.6-rc6 with gpio reset patch integrated already Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/oldbios: remove shadowing support, use bios subdev's imageBen Skeggs5-249/+15
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
2012-10-03drm/nouveau/bios: pull in basic vbios subdev, more to come laterBen Skeggs15-0/+660
v2: Ben Skeggs <bskeggs@redhat.com> - use unaligned macros to access vbios image - endianness fixes Signed-off-by: Ben Skeggs <bskeggs@redhat.com>