aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2020-01-15drm/nouveau/flcn: move bind_context WAR out of common codeBen Skeggs5-39/+45
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/flcn: specify FBIF offset from subdevBen Skeggs9-15/+11
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/nvenc: add a stub implementation for the GPUs where it should be ↵Ben Skeggs7-6/+185
supported Mostly so we don't lose info hidden in falcon. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/nvdec/gm107-: add missing engine instancesBen Skeggs1-0/+8
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/nvdec/gm107: rename from gp102 implementationBen Skeggs4-21/+21
NVDEC is available from GM107, and we currently only have a stub implementation anyway, let's make it explicit. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/nvdec: initialise SW state for falcon from constructorBen Skeggs5-25/+23
This will allow us to register the falcon with ACR, and further customise its behaviour by providing the nvkm_falcon_func structure directly. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/nvdec: select implementation based on available fwBen Skeggs4-7/+46
This will allow for further customisation of the subdev depending on what firmware is available. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/sec2: move interrupt handler to hw-specific moduleBen Skeggs4-21/+31
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/sec2: use falcon funcsBen Skeggs2-9/+6
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/sec2: initialise SW state for falcon from constructorBen Skeggs9-26/+46
This will allow us to register the falcon with ACR, and further customise its behaviour by providing the nvkm_falcon_func structure directly. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/sec2: select implementation based on available firmwareBen Skeggs8-55/+130
This will allow for further customisation of the subdev depending on what firmware is available. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/sec2/gp108: split from gp102 implementationBen Skeggs4-2/+32
ACR LS FW loading is moving out of SECBOOT and into their specific subdevs, and the available GP108/GV100 FWs differ from the other GP10x boards. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gf100-: initialise SW state for falcon from constructorBen Skeggs4-34/+50
This will allow us to register the falcon with ACR, and further customise its behaviour by providing the nvkm_falcon_func structure directly. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gf100-: select implementation based on available FWBen Skeggs27-329/+498
This will allow for further customisation of the subdev depending on what firmware is available. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gp108: split from gp107Ben Skeggs6-2/+34
ACR LS FW loading is moving out of SECBOOT and into their specific subdevs, and the available GP107/GP108 FWs have interface differences. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gf100-: move fecs/gpccs ucode into their substructuresBen Skeggs4-22/+25
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gf100-: drop fuc_ prefix on sw initBen Skeggs6-33/+27
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gk20a,gm200-: use nvkm_firmware_load_blob for sw initBen Skeggs3-48/+44
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gf100-: use nvkm_blob structure for fecs/gpccs fwBen Skeggs3-33/+20
It serves the exact same purpose. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/pmu: initialise SW state for falcon from constructorBen Skeggs20-25/+49
This will allow us to register the falcon with ACR, and further customise its behaviour by providing the nvkm_falcon_func structure directly. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/pmu: select implementation based on available firmwareBen Skeggs16-29/+149
This will allow for further customisation of the subdev depending on what firmware is available. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/pmu/gp10b: split from gm20b implementationBen Skeggs6-12/+44
ACR LS FW loading is moving out of SECBOOT and into their specific subdevs, and the available GM20B/GP10B FWs have interface differences. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gsp: initialise SW state for falcon from constructorBen Skeggs4-19/+22
This will allow us to register the falcon with ACR, and further customise its behaviour by providing the nvkm_falcon_func structure directly. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gsp: select implementation based on available firmwareBen Skeggs4-30/+93
This will allow for further customisation of the subdev depending on what firmware is available. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/acr: add loaders for currently available LS firmware imagesBen Skeggs13-0/+598
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/acr: add stub implementation for all GPUs currently supported by ↵Ben Skeggs15-40/+371
SECBOOT PMU, SEC2 and GR will be modified to register their falcons with ACR before the main commit switching everything over. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: define ACR subdevBen Skeggs7-0/+19
This will replace the current SECBOOT subdev for handling firmware on secure falcons. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: add representation of generic binary objectsBen Skeggs1-0/+13
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: add a macro to better handle multiple firmware versionsBen Skeggs1-0/+40
Will be used in upcoming commits to allow subdevs to better customise themselves based on which (if any) firmware is available. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: output fw size in debug messagesBen Skeggs1-1/+2
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/flcn: export existing funcsBen Skeggs5-19/+41
These will be used in upcoming commits which will provide more customisation. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/flcn: fetch PRI address from TOP if not provided by constructorBen Skeggs1-0/+7
Shortcut to avoid each subdev having to do this itself. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/flcn: move fetching of configuration until first useBen Skeggs2-42/+55
We want to be able to register falcons with ACR during the constructor for the subdev it belongs to, however, we may not have access to the falcon's registers prior to DEVINIT. Delay touching registers until the first time the falcon is acquired. This may temporarily break secboot on non-production boards due to not being able to determine whether the falcon is in debug or production mode, the new ACR subdev will not have this issue, and it's not a use-case that's terribly important for bisectability. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/fault/gv100-: fix memory leak on module unloadBen Skeggs1-0/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/disp/dp: fix typo when determining failsafe link configurationBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/drm/ttm: Remove set but not used variable 'mem'YueHaibing1-4/+0
drivers/gpu/drm/nouveau/nouveau_ttm.c: In function nouveau_vram_manager_new: drivers/gpu/drm/nouveau/nouveau_ttm.c:66:22: warning: variable mem set but not used [-Wunused-but-set-variable] drivers/gpu/drm/nouveau/nouveau_ttm.c: In function nouveau_gart_manager_new: drivers/gpu/drm/nouveau/nouveau_ttm.c:106:22: warning: variable mem set but not used [-Wunused-but-set-variable] They are not used any more, so remove it. Reported-by: Hulk Robot <[email protected]> Signed-off-by: YueHaibing <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau: Fix copy-paste error in nouveau_fence_wait_uevent_handlerYueHaibing1-1/+1
Like other cases, it should use rcu protected 'chan' rather than 'fence->channel' in nouveau_fence_wait_uevent_handler. Fixes: 0ec5f02f0e2c ("drm/nouveau: prevent stale fence->channel pointers, and protect with rcu") Signed-off-by: YueHaibing <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gv100-: modify gr init to match newer version of RMBen Skeggs4-16/+27
Will be used as a basis for implementing changes needed for Turing. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gk20a,gm200-: add terminators to method lists read from fwBen Skeggs1-10/+11
Method init is typically ordered by class in the FW image as ThreeD, TwoD, Compute. Due to a bug in parsing the FW into our internal format, we've been accidentally sending Twod + Compute methods to the ThreeD class, as well as Compute methods to the TwoD class - oops. Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/gr/gf100-: remove dtorBen Skeggs2-3/+0
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/fault/tu102: define nvkm_fault_func.pinBen Skeggs1-0/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/core: fix missing newline in fw loader error messageBen Skeggs1-1/+1
Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/secboot/gm20b: initialize pointer in gm20b_secboot_new()Dan Carpenter1-3/+2
We accidentally set "psb" which is a no-op instead of "*psb" so it generates a static checker warning. We should probably set it before the first error return so that it's always initialized. Fixes: 923f1bd27bf1 ("drm/nouveau/secboot/gm20b: add secure boot support") Signed-off-by: Dan Carpenter <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/mmu: Add correct turing page kindsJames Jones12-22/+43
Turing introduced a new simplified page kind scheme, reducing the number of possible page kinds from 256 to 16. It also is the first NVIDIA GPU in which the highest possible page kind value is not reserved as an "invalid" page kind. To address this, the invalid page kind is made an explicit property of the MMU HAL, and a new table of page kinds is added to the tu102 MMU HAL. One hardware change not addressed here is that 0x00 is technically no longer a supported page kind, and pitch surfaces are instead intended to share the block-linear generic page kind 0x06. However, because that will be a rather invasive change to nouveau and 0x00 still works fine in practice on Turing hardware, addressing this new behavior is deferred. Signed-off-by: James Jones <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau: Fix ttm move init with multiple GPUsJames Jones1-2/+3
The pointer used to walk the table of move ops and pick the right one for the current GPU was declared static, meaning its state was carried over between invocations of the function, and also made the function non-rentrant and thread-unsafe. Since the table is ordered such that newer GPU methods are listed first, the result of this was that initializing newer GPUs after older GPUs would result in no suitable ttm move acceleration operations being found, and ttm would fall back to CPU blits on the older GPUs. This change declares the walking pointer separately from the table and makes it non-static to fix the logic. Signed-off-by: James Jones <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau: use NULL for pointer assignment.Wambui Karuga1-1/+1
Replace the use of 0 in the pointer assignment with NULL to address the following sparse warning: drivers/gpu/drm/nouveau/nouveau_hwmon.c:744:29: warning: Using plain integer as NULL pointer Signed-off-by: Wambui Karuga <[email protected]> Reviewed-by: Daniel Vetter <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/kms/nv04: remove set but unused variable.Wambui Karuga1-2/+1
The local variable `pclks` is defined and set but not used and can therefore be removed. Issue found by coccinelle. Signed-off-by: Wambui Karuga <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/fb/gf100-: declare constants as unsigned long long.Wambui Karuga6-6/+6
Explicitly declare constants as unsigned long long to address the following sparse warnings: warning: constant is so big it is long v2: convert to unsigned long long for compatibility with 32-bit architectures. Signed-off-by: Wambui Karuga <[email protected]> Suggested by: lia Mirkin <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/kms/nv04-nv4x: Use match_string() helper to simplify the codeYueHaibing1-8/+5
match_string() returns the array index of a matching string. Use it instead of the open-coded implementation. Signed-off-by: YueHaibing <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>
2020-01-15drm/nouveau/ce/gp10b: Use correct copy engineThierry Reding1-1/+1
gp10b uses the new engine enumeration mechanism introduced in the Pascal architecture. As a result, the copy engine, which used to be at index 2 for prior Tegra GPU instantiations, has now moved to index 0. Fix up the index and also use the gp100 variant of the copy engine class because on gp10b the PASCAL_DMA_COPY_B class is not supported. Signed-off-by: Thierry Reding <[email protected]> Signed-off-by: Ben Skeggs <[email protected]>