History log of /linux-master/drivers/gpu/drm/nouveau/nvkm/engine/gr/gk104.c
Revision Date Author Comments
# 0c520ad4 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf117-: make ppc_nr[gpc] accurate

We're going to be pulling in a chunk of code from NVGPU to fixup our
SMID mappings on Volta and above, which depends on ppc_nr[gpc]
reflecting the actual number of PPCs present, not the maximum number.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# 1a344688 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: move some init to init_exception2()

Ampere.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# b6d93fa7 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: move some init to init_rop_exceptions()

Ampere.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# be99d041 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: move reset during golden ctx init to fecs_reset()

Ampere.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# 864d37c3 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: switch to instanced constructor

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>


# ef16dc27 14-Jan-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: select implementation based on available FW

This will allow for further customisation of the subdev depending on what
firmware is available.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# e9d03335 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gp100-: use correct registers for zbc colour/depth setup

These were missed the first time around due to the driver version I traced
using the older registers still.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 191e3232 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-gm10x: update register lists

There are differences on GM200 and newer too, but we can't fix them there
as they come from firmware packages.

A request has been made to NVIDIA to release updated firmware.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 068cae74 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: calculate and use sm mapping table

There's a number of places that require this data, so let's separate out
the calculations to ensure they remain consistent.

This is incorrect for GM200 and newer, but will produce the same results
as we did before.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5f6474a4 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: port tile mapping calculations from NVGPU

There's also a couple of hardcoded tables for a couple of very specific
configurations that NVGPU's algorithm didn't work for.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5c05a589 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise trap_mp

Required to support Volta.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 525230cb 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: delete duplicated init code

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 04547482 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_400054

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 6df6d2b9 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: apply be exception fixes from traces

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 4615e9b4 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_shader_exceptions

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# f3ef80c0 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_tex_hww_esr

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 0a84a513 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_419eb4 + apply fixes from traces

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 0feab025 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_419cc0 + apply fixes from traces

Pulled some init out of main per-GPC/TPC loops to match RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 0a5b9730 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_sked_hww_esr

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 2585a1b1 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_fecs_exceptions + apply fixes from traces

The value for GF100 has changed here, but it matches RM now.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 7c76ebb6 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100: write 0x400124 during init

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# bfd27f39 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_num_active_ltcs

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 02917aa3 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_zcull

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 2fe5ff63 08-May-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: virtualise init_vsc_stream_master

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 1bab09ac 01-Feb-2018 Lyude Paul <lyude@redhat.com>

drm/nouveau: Add support for BLCG on Kepler1

This enables BLCG optimization for kepler1. When using clockgating,
nvidia's firmware has a set of registers which are initially programmed
by the vbios with various engine delays and other mysterious settings
that are safe enough to bring up the GPU. However, the values used by
the vbios are more power hungry then they need to be, so the nvidia driver
writes it's own more optimized set of BLCG settings before enabling
CG_CTRL. This adds support for programming the optimized BLCG values
during engine/subdev init, which enables rather significant power
savings.

This introduces the nvkm_therm_clkgate_init() helper, which we use to
program the optimized BLCG settings before enabling clockgating with
nvkm_therm_clkgate_enable.

As well, this commit shares a lot more code with Fermi since BLCG is
mostly the same there as far as we can tell. In the future, it's likely
we'll reformat the clkgate_packs for kepler1 so that they share a list
of mmio packs with Fermi.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Reviewed-by: Martin Peres <martin.peres@free.fr>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 223eaf4b 31-Oct-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-gk208: make use of init_gpc_mmu() hook to share setup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# a00ecf22 20-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gk104-: share implementation of ppc exception init

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>


# 87ac331e 18-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gk104-: move rop_active_fbps init to nonctx

Matches newer RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 99c59172 13-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/gf100-: allocate mmu debug buffers

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>


# 64cb5a31 13-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: abstract fetching rop count

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5ec3def7 13-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: rename magic_not_rop_nr to screen_tile_row_offset

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# c85ee6ca 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: convert to new-style nvkm_engine

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# e2ca4e7d 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu: convert to new-style nvkm_subdev

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 27f3d6cf 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: convert user classes to new-style nvkm_object

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# a65955e1 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: remove dependence on namedb/engctx lookup

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 227c95d9 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: directly use instmem where currently possible

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 276836d4 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: switch to device pri macros

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# bfee3f3d 19-Aug-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: cosmetic changes

This is purely preparation for upcoming commits, there should be no
code changes here.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 3740c825 25-Mar-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gf100-: add symbolic names for classes

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# ed22e684 19-Mar-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gk104-gk20a: call pmu to disable any power-gating before ctor()

On some of these chipsets, reading NV_PGRAPH_GPC_GPM_PD_PES_TPC_ID_MASK
can trigger a PRI fault and return an error code instead of a TPC mask,
unless PGOB has been disabled first.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# e3c71eb2 13-Jan-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr: namespace + nvidia gpu names (no binary change)

The namespace of NVKM is being changed to nvkm_ instead of nouveau_,
which will be used for the DRM part of the driver. This is being
done in order to make it very clear as to what part of the driver a
given symbol belongs to, and as a minor step towards splitting the
DRM driver out to be able to stand on its own (for virt).

Because there's already a large amount of churn here anyway, this is
as good a time as any to also switch to NVIDIA's device and chipset
naming to ease collaboration with them.

A comparison of objdump disassemblies proves no code changes.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>