History log of /linux-master/drivers/gpu/drm/nouveau/nvkm/engine/disp/gt200.c
Revision Date Author Comments
# 889fcbe9 01-Jun-2022 Ben Skeggs <bskeggs@redhat.com>

drm/nouveau/disp: add common channel class handling

Replaces a bunch of unnecessarily duplicated boilerplate in per-chipset
code with a simpler, common, implementation.

Channel "awaken" notify code is completely gone for now. KMS has never
made use of it so far, and event notify handling is about to be changed
in general anyway.

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


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

drm/nouveau/disp: merge nv50_disp_new_() and nvkm_disp_new()

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


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

drm/nouveau/disp: merge head/outp/ior code into chipset files

No changes to code at all here, just shuffling it around and removing
a bunch of (now unnecessary) forward-declarations from headers.

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


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

drm/nouveau/disp: add common class handling between <nv50 and >=nv50

About to expose head/output path/connector objects everywhere, so we will
need support for child classes prior to nv50 now.

Somewhat cleaner than the code >=nv50 used previously.

v2:
- use ?: (lyude)

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


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

drm/nouveau/disp: collapse nv50_disp into nvkm_disp

Dump of one struct's members into another, with a couple of list
renames because of collisions.

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


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

drm/nouveau/disp: collapse nv50_disp_func into nvkm_disp_func

Aside from a chicken-and-egg problem with a duplicate 'root' member,
this is a straight dump of function pointers from one struct into
another.

The left-over wrapping mess in >=nv50 structs will be fixed later.

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


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

drm/nouveau/disp/nv50-: initialise from the engine, rather than the user object

Engines are initialised on an as-needed basis, so this results in the
same behaviour, whilst allowing us to simplify things a bit.

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


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

drm/nouveau/disp/nv50-: fetch mask of available piors during oneinit

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


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

drm/nouveau/disp/nv50-: fetch mask of available sors during oneinit

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


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

drm/nouveau/disp/nv50-: fetch mask of available dacs during oneinit

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


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

drm/nouveau/disp/nv50-: fetch mask of available heads during oneinit

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


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

drm/nouveau/disp: remove hw-specific customisation of output paths

All of the necessary hw-specific logic is now handled at the output
resource level, so all of this can go away.

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


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

drm/nouveau/disp/g84-: port OR HDMI control to nvkm_ior

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


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

drm/nouveau/disp/nv50-: port OR manual sink detection to nvkm_ior

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


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

drm/nouveau/disp/nv50-: port OR power state control to nvkm_ior

Also removes the user-facing methods to these controls, as they're not
currently utilised by the DD anyway.

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>


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

drm/nouveau/disp: introduce input/output resource abstraction

In order to properly support the SOR -> SOR + pad macro separation
that occurred with GM20x GPUs, we need to separate OR handling out
of the output path code.

This will be used as the base to support ORs (DAC, SOR, PIOR).

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


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

drm/nouveau/disp: common implementation of scanoutpos method in nvkm_head

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


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

drm/nouveau/disp: move vblank_{get,put} methods into nvkm_head

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


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

drm/nouveau/disp: introduce object to track per-head functions/state

Primarily intended as a way to pass per-head state around during
supervisor handling, and share logic between NV50/GF119.

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


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

drm/nouveau/disp: shuffle functions around

Upcoming changes to split OR from output path drastically change the
placement of various operations.

In order to make the real changes clearer, do the moving around part
ahead of time.

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>


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

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

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


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

drm/nouveau/disp: split user classes out from engine implementations

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


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

drm/nouveau/disp: transition outp/conn away from being based on nvkm_object

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


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

drm/nouveau/disp: cosmetic changes

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

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


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

drm/nouveau/disp: 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>