summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'linux-4.7' of git://github.com/skeggsb/linux into drm-nextDave Airlie2016-05-21203-843/+1853
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nothing too exciting here, there's a larger chunk of work that still needs more testing but not likely to get that done today - so - here's the rest of it. Assuming nothing else goes horribly wrong, I should be able to send the rest Monday if it isn't too late.... Changes: - Improvements to power sensor support - Initial attempt at GM108 support - Minor fixes to GR init + ucode - Make use of topology information (provided by the GPU) in various places, should at least fix some fault recovery issues and engine/runlist mapping confusion on newer GPUs. * 'linux-4.7' of git://github.com/skeggsb/linux: (51 commits) drm/nouveau/gr/gf100-: fix race condition in fecs/gpccs ucode drm/nouveau/core: recognise GM108 chipsets drm/nouveau/gr/gm107-: fix touching non-existent ppcs in attrib cb setup drm/nouveau/gr/gk104-: share implementation of ppc exception init drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctx drm/nouveau/bios/pll: check BIT table version before trying to parse it drm/nouveau/bios/pll: prevent oops when limits table can't be parsed drm/nouveau/volt/gk104: round up in gk104_volt_set drm/nouveau/fb/gm200: setup mmu debug buffer registers at init() drm/nouveau/fb/gk20a,gm20b: setup mmu debug buffer registers at init() drm/nouveau/fb/gf100-: allocate mmu debug buffers drm/nouveau/fb: allow chipset-specific actions for oneinit() drm/nouveau/gr/gm200-: fix bad hardcoding of a max-tpcs-per-gpc value drm/nouveau/gr/gm200-: rop count == ltc count drm/nouveau/gr/gm200: modify the mask when copying mmu settings from fb drm/nouveau/gr/gm200: move some code into init_gpc_mmu() hook drm/nouveau/gr/gm200: make generate_main() static drm/nouveau/gr/gf100-: abstract fetching rop count drm/nouveau/gr/gf100-: rename magic_not_rop_nr to screen_tile_row_offset drm/nouveau/gr/gf100-: remove hardcoded idle_timeout values ...
| * drm/nouveau/gr/gf100-: fix race condition in fecs/gpccs ucodeBen Skeggs2016-05-2014-71/+85
| | | | | | | | | | | | | | | | | | This is a simplied version of the fix by Roy in fdo#93629. While this doesn't appear to fix the issues for the users in that report, it's a real issue that deserves to be resolved. Reported-by: Roy Spliet <rspliet@eclipso.eu> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: recognise GM108 chipsetsBen Skeggs2016-05-201-0/+35
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gm107-: fix touching non-existent ppcs in attrib cb setupBen Skeggs2016-05-201-1/+3
| | | | | | | | | | | | | | | | Also removes an XXX; according to nvgpu headers the field is called NV_PGRAPH_GPCS_SWDX_TC_BETA_CB_SIZE_DIV3, so, apparently not some magic we need to figure out :) Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gk104-: share implementation of ppc exception initBen Skeggs2016-05-207-7/+31
| | | | | | | | | | | | | | This was really inconsistent, some implementations could touch PPCs that didn't exist, others neglected to touch ones that did. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctxBen Skeggs2016-05-2015-28/+36
| | | | | | | | | | | | Matches newer RM. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios/pll: check BIT table version before trying to parse itBen Skeggs2016-05-201-4/+6
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/bios/pll: prevent oops when limits table can't be parsedBen Skeggs2016-05-201-2/+2
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/volt/gk104: round up in gk104_volt_setKarol Herbst2016-05-201-1/+1
| | | | | | | | | | | | | | | | We always want a equal or higher voltage than the requested ones, otherwise nouveau undervolts. Signed-off-by: Karol Herbst <nouveau@karolherbst.de> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/gm200: setup mmu debug buffer registers at init()Ben Skeggs2016-05-205-9/+65
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/gk20a,gm20b: setup mmu debug buffer registers at init()Ben Skeggs2016-05-202-5/+4
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb/gf100-: allocate mmu debug buffersBen Skeggs2016-05-2013-36/+58
| | | | | | | | | | | | | | Later chipsets require setting this up both in FB and GR, so let's just move the allocation to FB. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fb: allow chipset-specific actions for oneinit()Ben Skeggs2016-05-202-0/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gm200-: fix bad hardcoding of a max-tpcs-per-gpc valueBen Skeggs2016-05-202-2/+3
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gm200-: rop count == ltc countBen Skeggs2016-05-203-2/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gm200: modify the mask when copying mmu settings from fbBen Skeggs2016-05-202-4/+2
| | | | | | | | | | | | | | | | | | Appears to more closely match what RM does. For GM20B, now also copying bit 12 from NV_PFB_MMU_CTRL as upcoming changes will require it. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gm200: move some code into init_gpc_mmu() hookBen Skeggs2016-05-201-9/+19
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gm200: make generate_main() staticBen Skeggs2016-05-202-2/+1
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gf100-: abstract fetching rop countBen Skeggs2016-05-2015-2/+25
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gf100-: rename magic_not_rop_nr to screen_tile_row_offsetBen Skeggs2016-05-208-26/+26
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/gr/gf100-: remove hardcoded idle_timeout valuesBen Skeggs2016-05-207-19/+21
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gm107-: remove engines from mmu engine mapping arrayBen Skeggs2016-05-204-3/+28
| | | | | | | | | | | | These are specified by PTOP on Maxwell GPUs. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104-: identify mmu engine ids for host faultsBen Skeggs2016-05-201-4/+14
| | | | | | | | | | | | | | | | | | | | It appears these don't map to PBDMAs (at least on Kepler, it may or may be valid for Fermi - this hasn't been checked), but to runlists. This drops the NVKM_ENGINE_FIFO data from the entries too, as resetting all of PFIFO is *not* the way to handle such faults. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104-: implement support for PTOP fault infoBen Skeggs2016-05-201-2/+16
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104-: abstract mmu fault data structuresBen Skeggs2016-05-208-111/+150
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104-: subclass funcBen Skeggs2016-05-2010-73/+65
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/fifo/gk104-: use device info from top subdevBen Skeggs2016-05-201-73/+16
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: remove pmc_enable argument from subdev ctorBen Skeggs2016-05-2074-139/+62
| | | | | | | | | | | | These are now specified directly in the MC subdev. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/nv04: define reset masks + intr cleanupBen Skeggs2016-05-202-10/+5
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/nv11: define reset masks + intr cleanupBen Skeggs2016-05-206-1/+61
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/nv17: define reset masks + intr cleanupBen Skeggs2016-05-206-21/+52
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/nv50: define reset masks + intr cleanupBen Skeggs2016-05-204-13/+43
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/g84: define reset masks + intr cleanupBen Skeggs2016-05-204-6/+76
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/g98: define reset masks + intr cleanupBen Skeggs2016-05-201-14/+22
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/gt215: define reset masks + intr cleanupBen Skeggs2016-05-204-4/+76
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/gf100: define reset masks + intr cleanupBen Skeggs2016-05-202-20/+30
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc/gk104: define reset masks + intr cleanupBen Skeggs2016-05-206-6/+76
| | | | | | | | | | | | Engine fields have been removed, as they're specified by PTOP. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc: implement support for PTOP interrupt routingBen Skeggs2016-05-201-2/+11
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc: implement support for PTOP reset infoBen Skeggs2016-05-201-6/+9
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc: allow for local definition of reset bitsBen Skeggs2016-05-202-2/+16
| | | | | | | | | | | | | | | | With the addition of PTOP-specified reset bits, it makes more sense to move the definitions here rather than in individual subdev implementations. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc: add helper function to handle device resetBen Skeggs2016-05-203-6/+23
| | | | | | | | | | | | | | This will be later extended to handle PTOP-specified reset masks as well as the hardcoded ones. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/mc: rename struct nvkm_mc_intr to nvkm_mc_mapBen Skeggs2016-05-206-10/+10
| | | | | | | | | | | | | | This will also be used to define NV_PMC_ENABLE <-> subdev mappings in an upcoming commit. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/top/gk104: initial implementationBen Skeggs2016-05-204-0/+126
| | | | | | | | | | | | Ported from the code currently in engine/fifo/gk104.c. Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/top: initial implementationBen Skeggs2016-05-204-1/+176
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/core: add top plumbingBen Skeggs2016-05-208-0/+22
| | | | | | | | Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/iccsense: configure sensors like nvidia doesKarol Herbst2016-05-201-0/+68
| | | | | | | | | | | | | | | | v2: rename ina209/ina219 read function Signed-off-by: Karol Herbst <nouveau@karolherbst.de> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/iccsense: split sensor into own structKarol Herbst2016-05-203-45/+113
| | | | | | | | | | | | | | | | v2: add list_del call, reword error message Signed-off-by: Karol Herbst <nouveau@karolherbst.de> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/iccsense: convert to linked listKarol Herbst2016-05-204-22/+19
| | | | | | | | | | | | | | | | v2: add list_del calls Signed-off-by: Karol Herbst <nouveau@karolherbst.de> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/iccsense: remove read functionKarol Herbst2016-05-202-14/+10
| | | | | | | | | | | | Signed-off-by: Karol Herbst <nouveau@karolherbst.de> Reviewed-by: Martin Peres <martin.peres@free.fr> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
| * drm/nouveau/pmu: be more strict about lockingKarol Herbst2016-05-201-3/+5
| | | | | | | | | | | | | | | | | | When we start communicating with the pmu a bit more, the current code is a real issue. I encountered a dead lock here, while testing my dynamic reclocking code Signed-off-by: Karol Herbst <nouveau@karolherbst.de> Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
OpenPOWER on IntegriCloud