History log of /linux-master/drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
Revision Date Author Comments
# 015185cc 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ofa/r535: initial support

Adds support for allocating OFA classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-45-skeggsb@gmail.com


# ca968634 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvjpg/r535: initial support

Adds support for allocating NVJPG classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-44-skeggsb@gmail.com


# 08ab88f5 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvenc/r535: initial support

Adds support for allocating VIDEO_ENCODER classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-43-skeggsb@gmail.com


# 142cd602 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvdec/r535: initial support

Adds support for allocating VIDEO_DECODER classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-42-skeggsb@gmail.com


# 361c3cd8 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/r535: initial support

Adds support for allocating GR classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-41-skeggsb@gmail.com


# b5ce219a 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/r535: initial support

Adds support for allocating DMA_COPY classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-40-skeggsb@gmail.com


# 2a77d015 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/r535: initial support

- Adds support for allocating CHANNEL_GPFIFO classes from RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-39-skeggsb@gmail.com


# 9e994444 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/r535: initial support

Adds support for modesetting on RM.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-38-skeggsb@gmail.com


# 5bf02571 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/r535: initial support

- Valid VRAM regions are read from GSP-RM, and used to construct our MM
- BAR1/BAR2 VMMs modified to be shared with RM
- Client VMMs have RM VASPACE objects created for them
- Adds FBSR to backup system objects in VRAM across suspend

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-37-skeggsb@gmail.com


# 830531e9 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gsp/r535: add interrupt handling

Fetches the interrupt table from RM, and hooks up the GSP interrupt
handler to message queue processing to catch async messages.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-36-skeggsb@gmail.com


# 176fdcbd 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gsp/r535: add support for booting GSP-RM

This commit adds the initial code needed to boot the GSP-RM firmware
provided by NVIDIA, bringing with it the beginnings of Ada support.

Until it's had more testing and time to bake, support is disabled by
default (except on Ada). GSP-RM usage can be enabled by passing the
"config=NvGspRm=1" module option.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-33-skeggsb@gmail.com


# 47c9136b 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvenc/tu102-: prepare for GSP-RM

- (temporarily) disable if GSP-RM detected, will be added later
- provide empty class list for non-GSP paths
- split tu102 from gm107, it will provide host classes later

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-29-skeggsb@gmail.com


# 796928c6 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvdec/tu102-: prepare for GSP-RM

- (temporarily) disable if GSP-RM detected, will be added later
- provide empty class list for non-GSP paths
- split tu102- from gm107, they will provide host classes later
- fixup HW engine instance masks

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-28-skeggsb@gmail.com


# 015ef618 18-Sep-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gsp: prepare for GSP-RM

- move TOP after GSP, so we can disable TOP if GSP is in use
- provide plumbing to support falcon-only and GSP-RM paths
- provide a method for subdevs to detect GSP-RM paths
- split tu102/tu116/ga100 paths from gv100, which can't support GSP-RM

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230918202149.4343-5-skeggsb@gmail.com


# b4806009 30-Jan-2023 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/tu102-: fix register used to determine scrub status

Turing apparently needs to use the same register we use on Ampere.

Not executing the scrubber ucode when required would result in large
areas of VRAM being inaccessible to the driver.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20230130223715.1831509-2-bskeggs@redhat.com


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

drm/nouveau/gr/ga102: initial support

v2:
- whitespace

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Gourav Samaiya <gsamaiya@nvidia.com>


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

drm/nouveau/ltc/ga102: initial support

v2. fixup for ga103 early merge

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


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

drm/nouveau/acr/ga102: initial support

v2. fixup for ga103 early merge

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Gourav Samaiya <gsamaiya@nvidia.com>


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

drm/nouveau/fb/ga102: load and boot VPR scrubber FW

v2. fixup for ga103 early merge

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Gourav Samaiya <gsamaiya@nvidia.com>


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

drm/nouveau/acr: use common falcon HS FW code for ACR FWs

Adds context binding and support for FWs with a bootloader to the code
that was added to load VPR scrubber HS binaries, and ports ACR over to
using all of it.

- gv100 split from gp108 to handle FW exit status differences

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


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

drm/nouveau/fb/gp102-: unlock VPR right after devinit

Under memory load, instmem allocations could end up in the regions of
VRAM that are inaccessible right after boot, and be corrupted after a
suspend/resume cycle as a result of being restored before booting the
mem unlock firmware.

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


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

drm/nouveau/fifo/ga100-: initial support

- replaces the hacked-up version that existed solely to support TTM

v2. remove earlier hack preventing use of non-stall intr for fences

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


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

drm/nouveau/ce/ga100-: initial support

- replaces the hacked-up version that existed solely to support TTM
- noop until the next commit, adding proper support for ampere host

v2. fixup for ga103 early merge

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


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

drm/nouveau/fifo: add common runlist/engine topology

Creates an nvkm_runl for each runlist on the GPU, and an nvkm_engn for
each engine that is reachable from a runlist.

- basically what gk104- already does, but extended to all chips
- adds per-runlist CHID allocators (Ampere)
- splits g98/gt2xx out from g84 (different target engines)

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


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

drm/nouveau/fifo: add chid_nr()

- reads channel count from GPU from gm200 onwards
- removes gm20b/gp10b (they become identical to gm200/gp100)

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


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

drm/nouveau/mc: implement intr handling on top of nvkm_intr

- new-style handlers can now be used here too
- decent clean-up

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


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

drm/nouveau/fault/ga100: initial support

TU102 implementation should be OK for Ampere now.

v2. fixup for ga103 early merge

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


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

drm/nouveau/vfn: add stub subdev for dev_func

Initially for NV_USERMODE class, and Turing/Ampere's new interrupt tree.

v2. fixup for ga103 early merge

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


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

drm/nouveau/intr: add shared interrupt plumbing between pci/tegra

Unifies the handling between PCI-based and Tegra GPUs, and makes more
explicit/obvious where device interrupts can be expected.

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


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

drm/nouveau/top: parse device topology right after devinit

We're going to want this information available earlier than it is now.

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


# c20ee574 03-Aug-2022 Karol Herbst <kherbst@redhat.com>

drm/nouveau: recognise GA103

Appears to be ok with general GA10x code.

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Cc: <stable@vger.kernel.org> # v5.15+
Reviewed-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220803142745.2679510-1-kherbst@redhat.com


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

drm/nouveau/device: remove pwrsrc notify in favour of a direct call to clk

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


# f33b21f1 15-Mar-2022 Colin Ian King <colin.king@intel.com>

drm/nouveau: Fix spelling mistake "endianess" -> "endianness"

There is a spelling mistake in a nvdev_error error message. Fix it.

Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
Reviewed-by: Lyude Paul <lyude@redhat.com>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20220315221929.2959700-1-colin.i.king@gmail.com


# 46741e4f 17-Nov-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: recognise GA106

I've got HW now, appears to work as expected so far.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: <stable@vger.kernel.org> # 5.14+
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211118030413.2610-1-skeggsb@gmail.com


# 93f43ed8 02-Nov-2021 Ben Skeggs <bskeggs@redhat.com>

ce/gf100: fix incorrect CE0 address calculation on some GPUs

The code which constructs the modules for each engine present on the GPU
passes -1 for 'instance' on non-instanced engines, which affects how the
name for a sub-device is generated. This is then stored as 'instance 0'
in nvkm_subdev.inst, so code can potentially be shared with earlier GPUs
that only had a single instance of an engine.

However, GF100's CE constructor uses this value to calculate the address
of its falcon before it's translated, resulting in CE0 getting the wrong
address.

This slightly modifies the approach, always passing a valid instance for
engines that *can* have multiple copies, and having the code for earlier
GPUs explicitly ask for non-instanced name generation.

Bug: https://gitlab.freedesktop.org/drm/nouveau/-/issues/91

Fixes: 50551b15c760 ("drm/nouveau/ce: switch to instanced constructor")
Cc: <stable@vger.kernel.org> # v5.12+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Tested-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211103011057.15344-1-skeggsb@gmail.com


# 49b2dfc0 16-Sep-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ga102-: support ttm buffer moves via copy engine

We don't currently have any kind of real acceleration on Ampere GPUs,
but the TTM memcpy() fallback paths aren't really designed to handle
copies between different devices, such as on Optimus systems, and
result in a kernel OOPS.

A few options were investigated to try and fix this, but didn't work
out, and likely would have resulted in a very unpleasant experience
for users anyway.

This commit adds just enough support for setting up a single channel
connected to a copy engine, which the kernel can use to accelerate
the buffer copies between devices. Userspace has no access to this
incomplete channel support, but it's suitable for TTM's needs.

A more complete implementation of host(fifo) for Ampere GPUs is in
the works, but the required changes are far too invasive that they
would be unsuitable to backport to fix this issue on current kernels.

v2: fix GPFIFO length in RAMFC (reported by Karol)

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: Lyude Paul <lyude@redhat.com>
Cc: Karol Herbst <kherbst@redhat.com>
Cc: <stable@vger.kernel.org> # v5.12+
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Tested-by: Karol Herbst <kherbst@redhat.com>
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20210916220406.666454-1-skeggsb@gmail.com
Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>


# fa25f28e 10-Aug-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: recognise GA107

Still no GA106 as I don't have HW to verif.

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


# f6df392d 07-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top/ga100: initial support

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


# 26fbb4c8 15-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/privring: rename from ibus

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


# 5ef25f06 07-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvkm: remove nvkm_subdev.index

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


# be0ed63f 06-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvkm: determine subdev id/order from layout

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


# 0fa5680c 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/vic: switch to instanced constructor

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


# 8d6461d8 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/sw: switch to instanced constructor

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


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

drm/nouveau/sec2: switch to instanced constructor

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


# 400c2a45 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/sec: switch to instanced constructor

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


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

drm/nouveau/pm: switch to instanced constructor

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


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

drm/nouveau/nvenc: switch to instanced constructor

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


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

drm/nouveau/nvdec: switch to instanced constructor

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


# b15147bd 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/msvld: switch to instanced constructor

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


# 07a356bb 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/msppp: switch to instanced constructor

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


# 96321606 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mspdec: switch to instanced constructor

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


# e9e9a219 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/msenc: switch to instanced constructor

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


# e5e95a76 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mpeg: switch to instanced constructor

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


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

drm/nouveau/me: switch to instanced constructor

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


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

drm/nouveau/ifb: switch to instanced constructor

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>


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

drm/nouveau/fifo: switch to instanced constructor

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


# 09f409d7 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/dma: switch to instanced constructor

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


# a7f000ec 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp: switch to instanced constructor

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


# 0b26ca68 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/cipher: switch to instanced constructor

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


# 50551b15 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce: switch to instanced constructor

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


# fcc08a7c 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bsp,vp: switch to instanced constructor

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


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

drm/nouveau/volt: switch to instanced constructor

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


# 601c2a06 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top: switch to instanced constructor

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


# 9aad54d5 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/tmr: switch to instanced constructor

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


# 0aec69c7 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/therm: switch to instanced constructor

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


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

drm/nouveau/pmu: switch to instanced constructor

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


# 9b70cd54 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci: switch to instanced constructor

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


# 0a7bff10 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mxm: switch to instanced constructor

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


# 6dd123ba 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu: switch to instanced constructor

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


# 1fc2fddf 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc: switch to instanced constructor

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


# 0afc1c4c 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ltc: switch to instanced constructor

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


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

drm/nouveau/instmem: switch to instanced constructor

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


# 4dea1a96 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/iccsense: switch to instanced constructor

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


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

drm/nouveau/ibus: switch to instanced constructor

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


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

drm/nouveau/i2c: switch to instanced constructor

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


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

drm/nouveau/gsp: switch to instanced constructor

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


# 01055c01 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gpio: switch to instanced constructor

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


# 8d056d99 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fuse: switch to instanced constructor

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


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

drm/nouveau/fb: switch to instanced constructor

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


# 77689f1b 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fault: switch to instanced constructor

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


# 4a34fd0e 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit: switch to instanced constructor

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


# 98fd7f83 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/clk: switch to instanced constructor

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


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

drm/nouveau/bus: switch to instanced constructor

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


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

drm/nouveau/bios: switch to instanced constructor

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


# 917b24a3 03-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar: switch to instanced constructor

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


# c288b4de 01-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/acr: switch to instanced constructor

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


# f483253f 05-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvkm: add macros for subdev layout

Rather than having to add new engines / engine instances to multiple places,
define everything in include/nvkm/core/layout.h and use macros to generate
the required plumbing.

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


# efe2a9ec 03-Feb-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/device: pass instance id when looking up a subdev/engine

This switches to using the subdev list for lookup, and otherwise should
be a no-op aside from switching the function signatures.

Callers will be transitioned to split type+inst individually.

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


# 9c28abb7 24-Jul-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/subdev: store full subdev name in struct

Much easier to store this to avoid having to reconstruct a string for a
specific subdev, taking into account whether it's instanced or not.

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


# 54d10db1 01-Dec-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/subdev: store subdevs in list

This is somewhat nicer to read.

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


# 8ef23b6f 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/ga10[24]: initial support

UEFI/RM no longer use IED scripts from the VBIOS, though they appear to
have been updated for use by the x86 VBIOS code, so we should be able to
continue using them for the moment.

Unfortunately, we require some hacks to do so, as the BeforeLinkTraining
IED script became a pointer to an array of scripts instead, without a
revbump of the relevant tables.

There's also some changes to SOR clock divider fiddling, which are
hopefully correct enough that things work as they should.

AFAIK, GA100 shouldn't have display, so it hasn't been added.

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


# a6cf0320 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/dmaobj/ga10[24]: initial support

Appears to be compatible with GV100 code, and not required on GA100, as
it shouldn't have display.

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


# 8a041226 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/ga10[024]: initial support

Appears to be compatible with GM200 code.

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


# c28efb15 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gpio/ga10[024]: initial support

GA100 appears to be compatible with GK104 code, the others have some
register moves.

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


# f5cbe7c8 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/ga10[024]: initial support

Appears to be compatible with TU102 code.

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


# a3abc23a 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/ga10[024]: initial support

Appears to be compatible with TU102 code.

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


# 6f300e0a 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/timer/ga10[024]: initial support

Appears to be compatible with GK20A code.

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


# 41ba806f 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/ga10[024]: initial support

No VPR scrub. GA102 and GA104 have a new VRAM size detection method.

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


# de4781d0 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/imem/ga10[024]: initial support

Appears to be compatible with NV50 code.

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


# e0df4bbf 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/privring/ga10[024]: initial support

Appears to be compatible with GM200 code.

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


# 5961c62d 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/ga10[024]: initial support

Fortunately, all the interrupts we need to bring up basic display support
are contained in a single leaf register, allowing this basic (but hackish)
implementation.

There's a bunch more invasive patches to come implementing all this in a
better/more complete way, but trying to get a minimal series out first.

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


# 7ddf5e95 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit/ga10[024]: initial support

VPLL regs changed a bit. There's more stuff to do around these, but it's
less invasive to stick those changes into disp for now.

None of that belongs here anymore anyhow - fix that someday.

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


# a3463248 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bios/ga10[024]: initial support

Forcing PRAMIN-shadowing off for GA100, as it requires display, and we don't
know if/where the fuse register for detecting its presence is.

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


# 70afbe4b 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/ga10[024]: initial support

Appears to be compatible with GP100 code.

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


# 3b050680 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise GA10[024]

GA100 hidden behind a module option, as it's not been as well verified
since initial bring-up and may need additional changes.

There's no display anyway, so this can wait for a bit.

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


# b5510d1e 13-Jan-2021 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/gk110: split out from i2c/gk104

No functional changes here yet.

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


# dcd292c1 13-Oct-2020 Karol Herbst <kherbst@redhat.com>

drm/nouveau/device: fix changing endianess code to work on older GPUs

With this we try to detect if the endianess switch works and assume LE if
not. Suggested by Ben.

Fixes: 51c05340e407 ("drm/nouveau/device: detect if changing endianness failed")
Signed-off-by: Karol Herbst <kherbst@redhat.com>
Cc: <stable@vger.kernel.org> # v5.8+
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# c3e0276c 06-Oct-2020 Karol Herbst <kherbst@redhat.com>

drm/nouveau/device: return error for unknown chipsets

Previously the code relied on device->pri to be NULL and to fail probing
later. We really should just return an error inside nvkm_device_ctor for
unsupported GPUs.

Fixes: 24d5ff40a732 ("drm/nouveau/device: rework mmio mapping code to get rid of second map")

Signed-off-by: Karol Herbst <kherbst@redhat.com>
Cc: dann frazier <dann.frazier@canonical.com>
Cc: dri-devel <dri-devel@lists.freedesktop.org>
Cc: Dave Airlie <airlied@redhat.com>
Cc: stable@vger.kernel.org
Reviewed-by: Jeremy Cline <jcline@redhat.com>
Signed-off-by: Dave Airlie <airlied@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20201006220528.13925-1-kherbst@redhat.com


# 46fc98bf 15-Jun-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu/gm20x: don't pretend we support loading with our custom FW

It technically loads, and runs, but is ultimately pointless outside of
a very narrow window (fanless systems where one wants to attempt using
the, broken for a lot of gm20x, memory reclocking code).

It's also potentially dangerous to override the VBIOS-provided "Pre-OS"
PMU, which would be responsible for fan control otherwise.

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


# 0f85bbb6 29-Apr-2020 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/device: use regular PRI accessors in chipset detection

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


# 2924779b 28-Apr-2020 Karol Herbst <kherbst@redhat.com>

drm/nouveau/device: detect vGPUs

Using ENODEV as this prevents probe failed errors in dmesg.

v2: move check further down

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


# 51c05340 28-Apr-2020 Karol Herbst <kherbst@redhat.com>

drm/nouveau/device: detect if changing endianness failed

v2: relax the checks a little

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


# 24d5ff40 28-Apr-2020 Karol Herbst <kherbst@redhat.com>

drm/nouveau/device: rework mmio mapping code to get rid of second map

Fixes warnings on GPUs with smaller a smaller mmio region like vGPUs.

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


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

drm/nouveau/gr/tu11x: initial support

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


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

drm/nouveau/acr/tu11x: initial support

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


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

drm/nouveau/gr/tu10x: initial support

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


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

drm/nouveau/acr/tu10x: initial support

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


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

drm/nouveau/secboot: remove

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


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

drm/nouveau/acr: implement new subdev to replace "secure boot"

ACR is responsible for managing the firmware for LS (Low Secure) falcons,
this was previously handled in the driver by SECBOOT.

This rewrite started from some test code that attempted to replicate the
procedure RM uses in order to debug early Turing ACR firmwares that were
provided by NVIDIA for development.

Compared with SECBOOT, the code is structured into more individual steps,
with the aim of making the process easier to follow/debug, whilst making
it possible to support newer firmware versions that may have a different
binary format or API interface.

The HS (High Secure) binary(s) are now booted earlier in device init, to
match the behaviour of RM, whereas SECBOOT would delay this until we try
to boot the first LS falcon.

There's also additional debugging features available, with the intention
of making it easier to solve issues during FW/HW bring-up in the future.

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


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

drm/nouveau/nvenc: add a stub implementation for the GPUs where it should be supported

Mostly so we don't lose info hidden in falcon.

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


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

drm/nouveau/nvdec/gm107-: add missing engine instances

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


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

drm/nouveau/nvdec/gm107: rename from gp102 implementation

NVDEC is available from GM107, and we currently only have a stub
implementation anyway, let's make it explicit.

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


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

drm/nouveau/sec2/gp108: split from gp102 implementation

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 <bskeggs@redhat.com>


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

drm/nouveau/gr/gp108: split from gp107

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 <bskeggs@redhat.com>


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

drm/nouveau/pmu/gp10b: split from gm20b implementation

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 <bskeggs@redhat.com>


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

drm/nouveau/acr: add stub implementation for all GPUs currently supported by 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 <bskeggs@redhat.com>


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

drm/nouveau/core: define ACR subdev

This will replace the current SECBOOT subdev for handling firmware on
secure falcons.

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


# d7ca5ddf 09-Dec-2019 Thierry Reding <treding@nvidia.com>

drm/nouveau/ce/gp10b: Use correct copy engine

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 <treding@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 0d0d4982 09-Dec-2019 Thierry Reding <treding@nvidia.com>

drm/nouveau/ltc/gp10b: Add custom L2 cache implementation

There are extra registers that need to be programmed to make the level 2
cache work on GP10B, such as the stream ID register that is used when an
SMMU is used to translate memory addresses.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 0ac7facb 08-Dec-2019 Thierry Reding <treding@nvidia.com>

drm/nouveau/fault: Add support for GP10B

There is no BAR2 on GP10B and there is no need to map through BAR2
because all memory is shared between the GPU and the CPU. Add a custom
implementation of the fault sub-device that uses nvkm_memory_addr()
instead of nvkm_memory_bar2() to return the address of a pinned fault
buffer.

Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 75dec321 16-Jun-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise TU116 chipset

Modesetting only, still waiting on ACR/GR firmware from NVIDIA for Turing
graphics/compute bring-up.

Each subsystem was compared with traces, along with various tests to check
that things generally work as they should, and appears compatible enough
with the current TU117 code to enable support.

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


# bb2b4074 22-May-2019 Timo Wiren <timo.wiren@gmail.com>

drm/nouveau/mcp89/mmu: Use mcp77_mmu_new instead of g84_mmu_new on MCP89.

Fix a crash or broken depth testing in all OpenGL applications that use the
depth buffer on MCP89 (GeForce 320M) seen on a MacBook Pro Late 2010.

The bug is tracked in https://bugs.freedesktop.org/show_bug.cgi?id=108500

Signed-off-by: Timo Wiren <timo.wiren@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# e15b682a 08-May-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: initial support for boards with TU117 chipset

Modesetting only, still waiting on ACR/GR firmware from NVIDIA for Turing
graphics/compute bring-up.

Each subsystem was compared with traces, along with various tests to check
that things generally work as they should, and appears compatible enough
with the current TU106 code to enable support.

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


# a2ac09a0 09-May-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: allow detected chipset to be overridden

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


# 8d2c1e33 12-Feb-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/sec2/tu102-: instantiate SEC2 falcon

Required for ACR.

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


# 1a346934 12-Feb-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/nvdec/tu102-: instantiate NVDEC0 falcon

Required to run VPR scrubber binary as part of secboot.

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


# 2944b19b 12-Feb-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gsp/gv100-: instantiate GSP falcon

We need this for Turing ACR, but it's present from Volta onwards.

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


# 78cdadb8 12-Feb-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: define GSP subdev

Exact meaning of the acronym is unknown, but we need this for Turing ACR.

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


# b6c82854 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/tu102: rename implementation from tu104

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


# f10271ff 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/tu102: rename implementation from tu104

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


# 86037742 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/tu102: rename implementation from tu104

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


# 954f9798 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fault/tu102: rename implementation from tu104

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


# ef7664d9 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/tu102: rename implementation from tu104

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


# c011b254 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/tu102: rename implementation from tu104

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


# fd95bfbd 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/tu102: rename implementation from tu104

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


# b51f9dfa 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit/tu102: rename implementation from tu104

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


# fc782242 13-Jan-2019 Ilia Mirkin <imirkin@alum.mit.edu>

drm/nouveau/volt/gf117: fix speedo readout register

GF117 appears to use the same register as GK104 (but still with the
general Fermi readout mechanism).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108980
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 7ebec5f4 16-Jan-2019 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise TU102

Would usually do this split-out, verifying each component indivitually, but
this has been squashed together to be more palatable for merging in 5.0-rc.

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


# 8ff01abc 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/tu106: initial support

Appears to be compatible with TU104.

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


# 1b2a5aff 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/tu106: initial support

Appears to be compatible with TU104.

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


# 7f7bc32e 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/tu106: initial support

Appears to be compatible with TU104.

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


# 1a38496c 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/dma/tu106: initial support

Appears to be compatible with GV100.

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


# bb1e3ff7 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/therm/tu106: initial support

Appears to be compatible with GP100.

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


# 25a46a4a 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu/tu106: initial support

Appears to be compatible with GP102.

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


# f5459f34 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fault/tu106: initial support

Appears to be compatible with TU104.

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


# 340e96a7 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/tu106: initial support

Appears to be compatible with TU104.

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


# 70ec0908 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/tu106: initial support

Appears to be compatible with TU104.

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


# 13f91e8e 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ltc/tu106: initial support

Appears to be compatible with GP102.

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


# cfcfb6d0 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/tu106: initial support

Appears to be compatible with GV100.

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


# 75794c41 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/imem/tu106: initial support

Appears to be compatible with NV50.

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


# 2fedee30 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/tmr/tu106: initial support

Appears to be compatible with GK20A.

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


# 25e6a890 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bus/tu106: initial support

Appears to be compatible with GF100.

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


# 47674084 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/tu106: initial support

Appears to be compatible with TU104.

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


# 6a9207ec 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fuse/tu106: initial support

Appears to be compatible with GM107.

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


# 52c88753 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/tu106: initial support

Appears to be compatible with GM200.

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


# 1b0a4754 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gpio/tu106: initial support

Appears to be compatible with GK104.

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


# 8d12c484 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ibus/tu106: initial support

Appears to be compatible with GM200.

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


# 73010b8e 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top/tu106: initial support

Appears to be compatible with GK104.

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


# 9d7693fe 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit/tu106: initial support

Appears to be compatible with TU104.

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


# b0216803 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bios/tu106: initial support

No real surprised here so far.

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


# a39cb42a 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/tu106: initial support

Appears to be compatible with GP100.

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


# 2cc0d7c0 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise TU106

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


# 2d583ade 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: increase maximum number of nvdec instances to 3

RTX2070 appears to have 3 copies of the engine.

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


# c36322d2 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/tu104: initial support

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


# 641d0b30 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/tu104: initial support

Various different bits and pieces vs GV100.

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


# 114b6556 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/tu104: initial support

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


# aff70760 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/dma/tu104: initial support

Appears to be compatible with GV100.

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


# 5a991efd 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/therm/tu104: initial support

Appears to be compatible with GP100.

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


# e7e0e946 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu/tu104: initial support

Appears to be compatible with GP102.

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


# 17fb2807 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fault/tu104: initial support

New registers.

Currently uncertain how exactly to mask fault buffer interrupts. This will
likely be corrected at around the same time as the new MC interrupt stuff
has been properly figured out and implemented.

For the moment, it shouldn't matter too much.

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


# 838efaa5 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/tu104: initial support

New registers.

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


# 7986f813 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/tu104: initial support

New flush method.

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


# 01e09306 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ltc/tu104: initial support

Appears to be compatible with GP102.

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


# 5386148b 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/tu104: initial support

Appears to be compatible with GV100.

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


# c44349b0 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/imem/tu104: initial support

Appears to be compatible with NV50.

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


# ead5bf1e 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/tmr/tu104: initial support

Appears to be compatible with GK20A.

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


# 75ad1b00 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bus/tu104: initial support

Appears to be compatible with GF100.

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


# f2e55b9e 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/tu104: initial support

Things are a bit different here on Turing, and will require further changes
yet once I've investigated them more thoroughly.

For now though, the existing GP100 code is compatible enough with one small
hack to forward on fault buffer interrupts.

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


# 575d583a 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fuse/tu104: initial support

Appears to be compatible with GM107.

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


# 298fd472 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/tu104: initial support

Appears to be compatible with GM200.

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


# 3273483c 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gpio/tu104: initial support

Appears to be compatible with GK104.

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


# ba9070d3 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ibus/tu104: initial support

Appears to be compatible with GM200.

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


# 67e5abb7 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top/tu104: initial support

Appears to be compatible with GK104.

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


# 43d61cda 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit/tu104: initial support

The GPU executes DEVINIT itself now, which makes our lives a bit easier.

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


# acbe55a5 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bios/tu104: initial support

No real surprises here so far.

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


# 2d7ca8cb 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/tu104: initial support

Appears to be compatible with GP100.

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


# 344d9c8f 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise TU104

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


# 936a1678 10-Dec-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: support multiple nvdec instances

Turing GPUs can have more than one.

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


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

drm/nouveau/gr/gv100: initial support

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


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

drm/nouveau/ce/gv100: initial support

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


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

drm/nouveau/fifo/gv100: initial support

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


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

drm/nouveau/disp/gv100: initial support

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


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

drm/nouveau/dma/gv100: initial support

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


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

drm/nouveau/therm/gv100: initial support

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


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

drm/nouveau/pmu/gv100: initial support

Appears to be compatible with GP102.

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


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

drm/nouveau/fault/gv100: initial support

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


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

drm/nouveau/bar/gv100: initial support

Appears to be compatible with GM107.

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


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

drm/nouveau/mmu/gv100: initial support

VEID support hacked in here, as it's the most convenient place for now.

Will be refined once it's better understood.

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


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

drm/nouveau/ltc/gv100: initial support

Appears to be compatible with GP102.

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


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

drm/nouveau/fb/gv100: initial support

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


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

drm/nouveau/imem/gv100: initial support

Can't imagine this will be any different.

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


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

drm/nouveau/tmr/gv100: initial support

Appears to be compatible with GK20A.

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


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

drm/nouveau/bus/gv100: initial support

Appears to be compatible with GF100.

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


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

drm/nouveau/mc/gv100: initial support

Appears to be compatible with GP100.

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


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

drm/nouveau/fuse/gv100: initial support

Appears to be compatible with GM107.

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


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

drm/nouveau/i2c/gv100: initial support

Appears to be compatible with GM200.

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


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

drm/nouveau/gpio/gv100: initial support

Appears to be compatible with GK104.

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


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

drm/nouveau/ibus/gv100: initial support

Appears to be compatible with GM200.

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


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

drm/nouveau/top/gv100: initial support

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


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

drm/nouveau/devinit/gv100: initial support

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


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

drm/nouveau/bios/gv100: initial support

No real surprises here so far.

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


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

drm/nouveau/pci/gv100: initial support

Appears to be compatible with GP100.

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


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

drm/nouveau/core: recognise gv100

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


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

drm/nouveau/core: increase maximum number of copy engines to 9

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


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

drm/nouveau/gr/gp102-: setup stencil zbc

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


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

drm/nouveau/gr/gf100-: update r408840 where required

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


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

drm/nouveau/fault/gp100: implement replayable fault buffer initialisation

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


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

drm/nouveau/core: define FAULT subdev

This will be responsible for the handling of MMU fault buffers on GPUs
that support them.

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


# 7d094d29 01-Feb-2018 Lyude Paul <lyude@redhat.com>

drm/nouveau: Add support for BLCG on Kepler2

Same as the previous patch, but for Kepler2 now

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


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

drm/nouveau: Add support for basic clockgating on Kepler1

This adds support for enabling automatic clockgating on nvidia GPUs for
Kepler1. While this is not technically a clockgating level, it does
enable clockgating using the clockgating values initially set by the
vbios (which should be safe to use).

This introduces two therm helpers for controlling basic clockgating:
nvkm_therm_clkgate_enable() - enables clockgating through
CG_CTRL, done after initializing the GPU fully
nvkm_therm_clkgate_fini() - prepares clockgating for suspend or
driver unload

A lot of this code was originally going to be based off of fermi;
however it turns out that while Fermi's the first line of GPUs that
introduced this kind of power saving, Fermi requires more fine tuned
control of the CG_CTRL registers from the driver while reclocking that
we don't entirely understand yet.

For the simple parts we will be sharing with Fermi for certain however,
we at least add those into a new subdev/therm/gf100.h header.

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


# 2c5ac5ba 11-Dec-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/secboot/gp108: implement on top of acr_r370

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Reviewed-by: Gourav Samaiya <gsamaiya@nvidia.com>


# 2ffa64eb 18-Jan-2018 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/mcp77: fix regressions in stolen memory handling

- Fixes addition of stolen memory base address to PTEs.
- Removes support for compression.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Pierre Moreau <pierre.morrow@free.fr>


# 6cb0f2a3 06-Dec-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/gp10b: use correct implementation

Reported-by: Mikko Perttunen <cyndis@kapsi.fi>
Fixes: 6359c98224 ("drm/nouveau/mmu/gp10b: fork from gf100")
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Tested-by: Thierry Reding <treding@nvidia.com>


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

drm/nouveau/mmu/gp100: fork from gf100

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


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

drm/nouveau/mmu/gm20b: fork from gf100

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


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

drm/nouveau/mmu/gm200: fork from gf100

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


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

drm/nouveau/mmu/gk20a: fork from gf100

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


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

drm/nouveau/mmu/gk104: fork from gf100

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


# 0f43715f 31-Oct-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/g84: fork from nv50

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


# 70433b90 31-Oct-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/gm107-: wait for instance block binding to complete

Discovered by accident while working to use BAR2 access to instmem objects
on more paths.

We've apparently been relying on luck up until now!

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


# d3265637 31-Oct-2017 Rhys Kidd <rhyskidd@gmail.com>

drm/nouveau/therm/gp100: initial implementation of new gp1xx temperature sensor

v2:
- add nv138 and drop nv13b chipsets (Ilia Mirkin)
- refactor out status variable and instead mask tsensor (Ilia Mirkin)
- switch SHADOWed state message away from nvkm_error() (Ilia Mirkin)
- rename internal temperature variable (Karol Herbst)

v3:
- use nvkm_trace() for SHADOWed state message (Ben Skeggs)

Signed-off-by: Rhys Kidd <rhyskidd@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 2659b4ce 03-Jul-2017 Ilia Mirkin <imirkin@alum.mit.edu>

initial support (display-only) for GP108

Forked from GP107 implementation. Secboot/gr left out as we don't have
signed blobs from NVIDIA in linux-firmware.

(Ben): Was unable to mmiotrace the binary driver for unknown reasons,
so not able to 100% confirm that no other changes from GP107
are needed. Quick testing shows it seems to work well enough
for display. Due to NVIDIA dragging their heels on getting
signed firmware to us, this is the best we can do for now.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=101601
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 9d60b9c9 03-Jul-2017 Karol Herbst <karolherbst@gmail.com>

drm/nouveau/therm/gm200: Added

This allows temperature readouts on maxwell2 GPUs.

Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# b3c9c022 19-May-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp: fork off some new hw-specific implementations

Upcoming commits make supervisor handling share code between the NV50
and GF119 implementations. Because of this, and a few other cleanups,
we need to allow some additional customisation.

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


# b2c4ef70 30-Mar-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gp107: initial support

Forked from GP106 implementation.

Differences:
- 1 PPC/GPC
- Slightly different grctx magics

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


# fa1dbc49 29-Mar-2017 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/core: recognise GP10B chipset

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 2ebd42bc 05-Apr-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: initial support (display-only) for GP107

Forked from GP106 implementation.

Split out from commit enabling secboot/gr support so that it can be
added to earlier kernels.

Cc: stable@vger.kernel.org [4.10+]
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# ac799aca 18-Mar-2017 Ilia Mirkin <imirkin@alum.mit.edu>

drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one

The NV4A (aka NV44A) is an oddity in the family. It only comes in AGP
and PCI varieties, rather than a core PCIE chip with a bridge for
AGP/PCI as necessary. As a result, it appears that the MMU is also
non-functional. For AGP cards, the vast majority of the NV4A lineup,
this worked out since we force AGP cards to use the nv04 mmu. However
for PCI variants, this did not work.

Switching to the NV04 MMU makes it work like a charm. Thanks to mwk for
the suggestion. This should be a no-op for NV4A AGP boards, as they were
using it already.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70388
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: stable@vger.kernel.org
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# da2ba564 05-Apr-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: initial support (display-only) for GP107

Forked from GP106 implementation.

Split out from commit enabling secboot/gr support so that it can be
added to earlier kernels.

Cc: stable@vger.kernel.org [4.10+]
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# f94773b9 18-Mar-2017 Ilia Mirkin <imirkin@alum.mit.edu>

drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one

The NV4A (aka NV44A) is an oddity in the family. It only comes in AGP
and PCI varieties, rather than a core PCIE chip with a bridge for
AGP/PCI as necessary. As a result, it appears that the MMU is also
non-functional. For AGP cards, the vast majority of the NV4A lineup,
this worked out since we force AGP cards to use the nv04 mmu. However
for PCI variants, this did not work.

Switching to the NV04 MMU makes it work like a charm. Thanks to mwk for
the suggestion. This should be a no-op for NV4A AGP boards, as they were
using it already.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=70388
Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
Cc: stable@vger.kernel.org
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 904e703c 02-Mar-2017 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/gf108: split implementation from gf100

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


# 36510add 15-Feb-2017 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/gp10x: enable secboot and GR

All the bricks are in place for secure boot to be enabled. This in turn
makes GR usable so enable them all.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# b62880f7 23-Feb-2017 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/core: add SEC2 engine

SEC2 is the name given by NVIDIA to the SEC engine post-Fermi (reasons
unknown). Even though it shares the same address range as SEC, its usage
is quite different and this justifies a new engine. Add this engine and
make TOP use it all post-TOP devices should use this implementation and
not the older SEC.

Also quickly add the short gp102 implementation which will be used for
falcon booting purposes.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 16307b5d 25-Jan-2017 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/nvdec: add gp102 support

gp10x' secure boot requires a blob to be run on NVDEC. Expose the falcon
through a dummy device.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5112abc6 10-Feb-2017 Karol Herbst <karolherbst@gmail.com>

drm/nouveau/pci/g92: Fix rearm

704a6c008b7942bb7f30bb43d2a6bcad7f543662 broke pci msi rearm for g92 GPUs.

g92 needs the nv46_pci_msi_rearm, where g94+ gpus used nv40_pci_msi_rearm.

Reported-by: Andrew Randrianasulu <randrianasulu@gmail.com>
Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: stable@vger.kernel.org


# 443828fd 19-Nov-2016 Karol Herbst <karolherbst@gmail.com>

drm/nouveau/pci/g92: Enable changing pcie link speeds

Tested on a G92, seems to work. Confirmed by 8 mmiotraces.

Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 725af748 19-Nov-2016 Karol Herbst <karolherbst@gmail.com>

drm/nouveau/pci: Rename g94 to g92

Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# b1c39d80 13-Dec-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/gm20b: add dummy PMU device

Add a dummy PMU device so the PMU falcon is instanciated and can be used
by secure boot.

We could reuse gk20a's implementation here, but it would fight with
secboot over PMU falcon's ownership and secboot will reset the PMU,
preventing it from operating afterwards. Proper handout between secboot
and pmu is coming along with the actual gm20b PMU implementation, so
use this as a temporary solution.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 1fe487d7 08-Dec-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise GP106 chipset

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


# ed828666 15-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/gp102: rename from gp104

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


# a4fa851c 15-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/gp102: rename from gp104

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


# eeea423c 15-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/gp102: rename from gp104

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


# d91ccec6 08-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu/gp102: initial implementation

GP102/GP104 require a harder reset of PMU prior to DEVINIT, or the IFR
image will hang.

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


# 41c7be69 08-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu/gp100: initial implementation

Just enough to hookup preinit reset(), which DEVINIT will depend on later.

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


# 17ff521d 07-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: initial support for GP102

From visual inspection of traces, what we currently implement appears to
be identical to GP104. Seems to work well enough too.

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


# 770b06e8 27-Oct-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/fb: add gm20b device

gm20b's FB has the same capabilities as gm200, minus the ability to
allocate RAM. Create a device that reflects this instead of re-using the
gk20a device which may be incorrect.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Reviewed-By: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 5b3800a6 03-Nov-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/gk110b,gm10x: use the correct implementation

DPAUX registers moved on Kepler, these chipsets were still using the
Fermi implementation for some reason.

This fixes detection of hotplug/sink IRQs on DP connectors.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Cc: stable@vger.kernel.org


# a3c950f2 17-Jul-2016 Karol Herbst <karolherbst@gmail.com>

drm/nouveau/volt: Add implementation for gf100

Since gf100 we need a speedo value for calculating the voltage. The readout
will be added in a later patch.

Signed-off-by: Karol Herbst <karolherbst@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 146cfe24 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/gp104: initial support

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


# ba3b712e 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/gp104: initial support

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


# fd47877f 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/gp104: initial support

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


# 15cec92f 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/dma/gp104: initial support

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


# a8c15dda 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ltc/gp104: initial support

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


# 8c80bc6c 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ibus/gp104: initial support

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


# 13a66d2f 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/gp104: initial support

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


# 14ae020d 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gpio/gp104: initial support

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


# 7d007dd7 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fuse/gp104: initial support

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


# 42d7a65e 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bus/gp104: initial support

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


# 10d4c1c2 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/gp104: initial support

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


# 6b7c941b 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/gp104: initial support

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


# 6258cd43 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/gp104: initial support

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


# 4fdbdfa8 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/imem/gp104: initial support

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


# 047506ca 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit/gp104: initial support

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


# 38849205 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bios/gp104: initial support

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


# 5f62ee6d 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/tmr/gp104: initial support

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


# b3446c5a 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/gp104: initial support

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


# 9179b8ec 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/gp104: initial support

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


# 445b9c21 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top/gp104: initial support

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


# cfb083f6 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise GP104 chipset

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


# ac24b4df 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/sw/gp100: initial support

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


# 52fa0866 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gp100: initial support

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


# 8e7e1586 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/gp100: initial support

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


# e8ff9794 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/gp100: initial support

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


# f9d5cbb3 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp/gp100: initial support

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


# cd0f407c 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/dma/gp100: initial implementation

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


# a4a4cf1b 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/secboot/gm200: initial support

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


# a96def39 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ltc/gp100: initial support

Due to the GPU preventing us from touching NV_PLTCG_LTCS_LTSS_CBC_BASE,
we cannot provide CBC/ZBC support without signed PMU firmware to handle
the task for us...

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


# 2a295e95 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ibus/gp100: initial support

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


# 51554014 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/i2c/gm204: initial support

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


# a4a58832 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gpio/gp100: initial support

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


# 24b8ca86 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fuse/gp100: initial support

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


# 0e98bd34 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bus/gp100: initial support

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


# 77d813d1 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bar/gp100: initial support

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


# 4cb53a5e 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mmu/gp100: initial support

GP100 still supports the previous generations' page table layout, which
we will temporarily make use of here.

Proper support for the new MMU layout requires some rework to the common
MMU code, which is in progress.

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


# 7ff51f82 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fb/gp100: initial support

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


# 0cbe26f0 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/imem/gp100: initial implementation

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


# c7b511ba 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/devinit/gp100: initial support

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


# 7481d055 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/bios/gp100: initial support

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


# 4eeb039b 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/tmr/gp100: initial support

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


# 45aa4d07 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/gp100: initial support

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


# be61c54c 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/gp100: initial support

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


# 51012a39 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top/gp100: initial support

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


# 7f53abdb 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: recognise GP100 chipset

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


# cb7b5ea9 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: increase maximum nvenc instances to 3

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


# 34bf50cd 08-Jul-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: increase maximum ce instances to 6

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


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

drm/nouveau/core: recognise GM108 chipsets

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


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

drm/nouveau/fb/gm200: setup mmu debug buffer registers at init()

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


# 667e99ab 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/nv11: define reset masks + intr cleanup

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


# 79360b7d 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/nv17: define reset masks + intr cleanup

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


# 73549020 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/g84: define reset masks + intr cleanup

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


# 88c0de2c 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/gt215: define reset masks + intr cleanup

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


# 33537d6f 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/mc/gk104: define reset masks + intr cleanup

Engine fields have been removed, as they're specified by PTOP.

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


# fb3e9c61 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/top/gk104: initial implementation

Ported from the code currently in engine/fifo/gk104.c.

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


# eaebfcc3 08-Apr-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: add top plumbing

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


# 52829d4f 11-Feb-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/clk/gm20b: add basic driver

Add a basic clock driver that reuses the GK20A logic.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 71757abf 26-Oct-2015 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/volt: add GM20B driver

Add basic GM20B volt driver that reuses the GK20A logic.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 253a03f0 10-Mar-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ce/gm107: expose MaxwellDmaCopyA

The HW accepts KeplerDmaCopyA and MaxwellDmaCopyA classes.

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


# 7c4f87c9 10-Mar-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/gm107: KeplerChannelGpfifoB, and 2048 channels

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


# 63f8c9b7 10-Mar-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/fifo/gk110: expose KeplerChannelGpfifoB

This class supports a WFI method (0x0078) that's not present on the
KeplerChannelGpfifoA class.

The binary driver exposes both classes on these GPUs for some reason,
though there doesn't appear to be any difference in the setup that's
done for each (ie. even if you allocate GpfifoA, the WFI method will
still work).

We shall just expose GpfifoB, as I don't see a good reason to report
the presence of both.

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


# 3545b425 10-Mar-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: add nvdec plumbing

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


# 294af04b 10-Mar-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/core: add nvenc plumbing

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


# 7d31cb7c 24-Feb-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gm206: remove implementation, it's now identical to gm200

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


# b71c0892 18-Feb-2016 Karol Herbst <nouveau@karolherbst.de>

drm/nouveau/iccsense: implement for ina209, ina219 and ina3221

based on Martins initial work

v3: fix ina2x9 calculations
v4: don't kmalloc(0), fix the lsb/pga stuff
v5: add a field to tell if the power reading may be invalid
add nkvm_iccsense_read_all function
check for the device on the i2c bus

Signed-off-by: Karol Herbst <nouveau@karolherbst.de>
Reviewed-by: Martin Peres <martin.peres@free.fr>


# dc06e366 18-Feb-2016 Martin Peres <martin.peres@free.fr>

drm/nouveau/subdev/iccsense: add new subdev for power sensors

Signed-off-by: Karol Herbst <nouveau@karolherbst.de>
Reviewed-by: Martin Peres <martin.peres@free.fr>


# 923f1bd2 23-Feb-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/secboot/gm20b: add secure boot support

Add secure boot support for the GM20B chip found in Tegra X1. Secure
boot on Tegra works slightly differently from desktop, notably in the
way the WPR region is set up.

In addition, the firmware bootloaders use a slightly different header
format.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 9cc45521 23-Feb-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/secboot/gm200: add secure-boot support

Add secure-boot for the dGPU set of GM20X chips, using the PMU as the
high-secure falcon.

This work is based on Deepak Goyal's initial port of Secure Boot to
Nouveau.

v2. use proper memory target function

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 7d12388a 23-Feb-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/core: add support for secure boot

On GM200 and later GPUs, firmware for some essential falcons (notably
GR ones) must be authenticated by a NVIDIA-produced signature and
loaded by a high-secure falcon in order to be able to access privileged
registers, in a process known as Secure Boot.

Secure Boot requires building a binary blob containing the firmwares
and signatures of the falcons to be loaded. This blob is then given to
a high-secure falcon running a signed loader firmware that copies the
blob into a write-protected region, checks that the signatures are
valid, and finally loads the verified firmware into the managed falcons
and switches them to privileged mode.

This patch adds infrastructure code to support this process on chips
that require it.

v2:
- The IRQ mask of the PMU falcon was left - replace it with the proper
irq_mask variable.
- The falcon reset procedure expecting a falcon in an initialized state,
which was accidentally provided by the PMU subdev. Make sure that
secboot can manage the falcon on its own.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 96fc422c 23-Feb-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gm200: enable graphics device

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


# 9ec28052 23-Feb-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/gr/gm200: s/gm204/gm200/

Most of the per-chipset differences will go away when we fully switch
to using the register lists provided by the firmware files, which will
leave all the remaining code "belonging" to GM200.

This is a preemptive rename from GM204 to GM200.

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


# db1eb528 10-Feb-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: s/gm204/gm200/ in a number of places

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


# 2ed95a4c 10-Feb-2016 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau: recognise GM200 chipset

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


# 0529a46a 25-Jan-2016 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/device: call nvkm_device_fini if nvkm_device_init fails

nvkm_device_fini is never called if a failure occurs in
nvkm_device_init, even when unloading the module. This can lead to a
resources leak (one example is the Tegra interrupt which would never be
freed in that case). Fix this by calling nvkm_device_fini in
nvkm_device_init's failure path.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 28c80605 30-Aug-2015 Karol Herbst <nouveau@karolherbst.de>

drm/nouveau/pci: add gk104 variant

v2: change email used in header
v4: change Copyright information
v5: revert Copyright changes

Signed-off-by: Karol Herbst <nouveau@karolherbst.de>


# bec4961e 26-Sep-2015 Karol Herbst <nouveau@karolherbst.de>

drm/nouveau/pci: add gf106 variant

v2: change email used in header
v4: change Copyright information
v5: revert Copyright changes

Signed-off-by: Karol Herbst <nouveau@karolherbst.de>


# 7d2813c4 18-Dec-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ltc/gm204: split implementation from gm107

Differences from GM10x:
- GM20x LTC count detection differs from GM10x
- GM20x init doesn't require large page size setting

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


# e3d26d08 18-Dec-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/ibus/gm204: split implementation from gk104

GM20x doesn't require the priv ring timeout bumps that GK/GM10x have.

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


# 1299b637 25-Oct-2015 Alexandre Courbot <acourbot@nvidia.com>

drm/nouveau/core: fix return in error path of device probe

We want to unlock nv_devices_mutex in this error path as well.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 3c9aca31 30-Sep-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pmu/gk107: enable PGOB codepaths

Reported to be needed as per fdo#70354 comment #61.

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


# c4266a9c 30-Sep-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/nv46: attempt to fix msi, and re-enable by default

Was not able to obtain a trace of NVRM due to kernel version annoyances,
however, experimentally confirmed that the WAR we use on NV50/G8x boards
works here too.

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


# b31505c4 30-Sep-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/g94: split implementation from nv40

An upcoming patch will implement functionality that we don't use on any
NV40 chipset.

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


# 3e55b53b 30-Sep-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/pci/g84: split implementation from nv50

An upcoming patch will implement functionality that we don't use on the
original NV50.

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


# b6afa265 24-Sep-2015 Samuel Pitoiset <samuel.pitoiset@gmail.com>

drm/nouveau/ibus/gf100: increase wait timeout to avoid read faults

Increase clock timeout of some unknown engines in order to avoid failure
at high gpcclk rate.

This fixes IBUS read faults on my GF119 when reclocking is manually
enabled. Note that memory reclocking is completely broken and NvMemExec
has to be disabled to allow core clock reclocking only.

Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 24580d1c 16-Sep-2015 Martin Peres <martin.peres@free.fr>

drm/nouveau/gm204/6: add voltage control using the new gk104 volt class

I got confirmation that we can read and change the voltage with the same code.
The divider is also computed correctly on the gm204 we got our hands on.

Thanks to Yoshimo on IRC for executing the tests on his gm204!

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


# dc47700f 08-Sep-2015 Martin Peres <martin.peres@free.fr>

drm/nouveau/gm107: add voltage control using the new gk104 volt class

Let's ignore the other desktop Maxwells until I get my hands on one and confirm
that we still can change the voltage.

Signed-off-by: Martin Peres <martin.peres@free.fr>


# 1531dbbb 08-Sep-2015 Martin Peres <martin.peres@free.fr>

drm/nouveau/volt/gk104: add support for pwm and gpio modes

Most Keplers actually use the GPIO-based voltage management instead of the new
PWM-based one. Use the GPIO mode as a fallback as it already gracefully handles
the case where no GPIOs exist.

All the Maxwells seem to use the PWM method though.

v2:
- Do not forget to commit the PWM configuration change!

Signed-off-by: Martin Peres <martin.peres@free.fr>


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

drm/nouveau/device: remove pci/platform_device from common struct

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


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

drm/nouveau/device: cleaner abstraction for device resource functions

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


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

drm/nouveau/mc: move device irq handling to platform-specific code

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


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

drm/nouveau/pci: new subdev

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


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

drm/nouveau/core: remove the remainder of the previous style

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


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

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

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


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

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

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


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

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

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>


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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>


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

drm/nouveau/devinit: run devinit scripts right after preinit

This ensures we have a valid mask of disabled engines before we start
trying to execute fini()/init() on the subdevs, potentially touching
devices that don't exist.

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

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

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


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

drm/nouveau/core: kill some (now) dead code

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


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

drm/nouveau/device: convert user class to new-style nvkm_object

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


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

drm/nouveau/client: convert to new-style nvkm_object

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


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

drm/nouveau/device: prepare for new-style subdevs

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


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

drm/nouveau/device: separate construction of pci/tegra devices

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


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

drm/nouveau/object: rename some functions to avoid upcoming conflicts

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


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

drm/nouveau/device: decouple from engine machinery

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


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

drm/nouveau/device: split user device implementation out on its own

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


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

drm/nouveau/device: simplify subdev construction

Replaces the piece-by-piece (in response to NV_DEVICE ctor args) device
contruction with a once-off all-or-nothing approach, eliminating some
tricky refcounting issues. The partial device init capability was only
required by some tools, and has been moved to probe time instead.

Temporarily removes a workaround for some boards where we need to fiddle
with AGP registers before executing the DEVINIT scripts. A later commit
in this series reinstates it.

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


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

drm/nouveau/device: tidy ctor/dtor interfaces

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


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

drm/nouveau/client: tidy ctor/dtor interfaces

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


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

drm/nouveau/core: remove last printks

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


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

drm/nouveau/device: switch to dev_printk macros

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


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

drm/nouveau/kms/nv04: fix incorrect use of register accessors

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


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

drm/nouveau/device: switch to device pri macros

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


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

drm/nouveau/fb: cosmetic changes

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

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


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

drm/nouveau/device: add direct pointer to struct device

A future commit will hide the platform/pci specifics from nvkm_device,
but it's still very useful in a lot of places to have access to the
Linux device struct.

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


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

drm/nouveau/device: add direct pointers to subdevs from nvkm_device

Will be used in upcoming commits to remove the need for lookup/runtime
type-checking functions when accessing foreign subdevs.

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


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

drm/nouveau/lib: various tweaks

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


# eaecf032 20-Feb-2015 Alexandre Courbot <acourbot@nvidia.com>

make RAM device optional

Having a RAM device does not make sense for chips like GK20A which have
no dedicated video memory. The dummy RAM device that we used so far
works as a temporary band-aid, but in the longer term it is desirable
for the driver to be able to work without any kind of VRAM.

This patch adds a few conditionals in places where a RAM device was
assumed to be present and allows some more objects to be allocated from
the TT domain, allowing Nouveau to handle GPUs for which
pfb->ram == NULL.

Signed-off-by: Alexandre Courbot <acourbot@nvidia.com>
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>


# 9fcaa149 01-Feb-2015 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/device: post write to NV_PMC_BOOT_1 when flipping endian switch

fdo#88868

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


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

drm/nouveau/device: 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>


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

drm/nouveau/core: 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>


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

drm/nouveau/msenc: rename from venc (no binary change)

Switch to NVIDIA's name for the device.

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>


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

drm/nouveau/msppp: rename from ppp (no binary change)

Switch to NVIDIA's name for the device.

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>


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

drm/nouveau/pm: rename from perfmon (no binary change)

Switch to NVIDIA's name for the device.

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>


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

drm/nouveau/gr: rename from graph (no binary change)

Shorter device name, match Tegra and our existing enums.

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>


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

drm/nouveau/ce: rename from copy (no binary change)

Switch to NVIDIA's name for the device.

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>


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

drm/nouveau/sec: separate from cipher (formerly crypt)

Switch to NVIDIA's name for the device.

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.

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


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

drm/nouveau/msvld: separate from bsp

Switch to NVIDIA's name for the device.

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.

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


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

drm/nouveau/mmu: rename from vmmgr (no binary change)

Switch to NVIDIA's name for the device.

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>


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

drm/nouveau/pmu: rename from pwr (no binary change)

Switch to NVIDIA's name for the device.

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>


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

drm/nouveau/clk: rename from clock (no binary change)

Rename to match the Linux subsystem responsible for the same kind of
things. Will be investigating how feasible it will be to expose the
GPU clock trees with it at some point.

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>


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

drm/nouveau: remove symlinks, move core/ to nvkm/ (no code changes)

The symlinks were annoying some people, and they're not used anywhere
else in the kernel tree. The include directory structure has been
changed so that symlinks aren't needed anymore.

NVKM has been moved from core/ to nvkm/ to make it more obvious as to
what the directory is for, and as some minor prep for when NVKM gets
split out into its own module (virt) at a later date.

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