[Nouveau] [PATCH v2 00/44] drm/nouveau: display rework to support GSP-RM

Danilo Krummrich dakr at redhat.com
Mon Sep 18 20:21:29 UTC 2023


On 9/18/23 22:13, Ben Skeggs wrote:
> From: Ben Skeggs <bskeggs at redhat.com>
> 
> The primary issue being tackled here is that, for historical reasons (we
> didn't know any better / couldn't make it work reliably otherwise), some
> operations (SOR routing, DP link training) were performed during the 2nd
> HW supervisor interrupt.
> 
> We don't have control of the display supervisor when running on top of
> RM, so this needed to be untangled and fixed - which, is one of the main
> aims of this patch series.
> 
> The ordering of this series is pretty important, so take care if/when
> backporting patches from it.
> 
> Beyond that main goal, various other interfaces have been added or
> extended to provide the information that RM will need for its version of
> similar interfaces.
> 

For the series:

Acked-by: Danilo Krummrich <dakr at redhat.com>

> Ben Skeggs (43):
>    drm/nouveau/devinit/tu102-: remove attempt at loading PreOS
>    drm/nouveau/imem: support allocations not preserved across suspend
>    drm/nouveau/gr/gf100-: lose contents of global ctxbufs across suspend
>    drm/nouveau/mmu/gp100-: always invalidate TLBs at CACHE_LEVEL_ALL
>    drm/nouveau/kms/nv50-: fix mst payload alloc fail crashing evo
>    drm/nouveau/disp: rearrange output methods
>    drm/nouveau/disp: add output detect method
>    drm/nouveau/disp: add output method to fetch edid
>    drm/nouveau/disp: rename internal output acquire/release functions
>    drm/nouveau/disp: shuffle to make upcoming diffs prettier
>    drm/nouveau/disp: add acquire_dac()
>    drm/nouveau/disp: add acquire_sor/pior()
>    drm/nouveau/disp: update SOR routing immediately on acquire()
>    drm/nouveau/kms/nv50-: pull some common init out of OR-specific code
>    drm/nouveau/kms/nv50-: remove nv_encoder.audio.connector
>    drm/nouveau/kms/nv50-: keep output state around until modeset complete
>    drm/nouveau/kms/nv50-: move audio enable post-modeset
>    drm/nouveau/disp: add output hdmi config method
>    drm/nouveau/disp: move hdmi disable out of release()
>    drm/nouveau/disp: release outputs post-modeset
>    drm/nouveau/disp: remove SOR routing updates from supervisor
>    drm/nouveau/disp: add output backlight control methods
>    drm/nouveau/disp: add output lvds config method
>    drm/nouveau/disp: add hdmi audio hal function
>    drm/nouveau/disp: move dp aux pwr method to HAL
>    drm/nouveau/disp: add dp aux xfer method
>    drm/nouveau/disp: add dp rates method
>    drm/nouveau/kms/nv50-: split DP disable+enable into two modesets
>    drm/nouveau/kms/nv50-: flush mst disables together
>    drm/nouveau/kms/nv50-: fixup sink D3 before tearing down link
>    drm/nouveau/disp: add dp train method
>    drm/nouveau/disp: move link training out of supervisor
>    drm/nouveau/disp: add dp sst config method
>    drm/nouveau/disp: add dp mst id get/put methods
>    drm/nouveau/disp: move outp/conn construction to chipset code
>    drm/nouveau/disp: move outp init/fini paths to chipset code
>    drm/nouveau/disp/nv50-: skip DCB_OUTPUT_TV
>    drm/nouveau/kms/nv50-: create heads based on nvkm head mask
>    drm/nouveau/kms/nv50-: create heads after outps/conns
>    drm/nouveau/kms/nv50-: name aux channels after their connector
>    drm/nouveau/kms/nv50-: create connectors based on nvkm info
>    drm/nouveau/kms/nv50-: create outputs based on nvkm info
>    drm/nouveau/kms/nv50-: disable dcb parsing
> 
> Lyude Paul (1):
>    drm/nouveau/kms: Add INHERIT ioctl to nvkm/nvif for reading IOR state
> 
>   drivers/gpu/drm/nouveau/dispnv04/disp.c       |   2 +-
>   drivers/gpu/drm/nouveau/dispnv50/disp.c       | 512 +++++++++++-------
>   drivers/gpu/drm/nouveau/dispnv50/disp.h       |   6 +-
>   drivers/gpu/drm/nouveau/dispnv50/head.h       |   1 +
>   drivers/gpu/drm/nouveau/dispnv50/headc57d.c   |  14 +
>   drivers/gpu/drm/nouveau/include/nvif/conn.h   |  20 +-
>   drivers/gpu/drm/nouveau/include/nvif/if0011.h |  21 +-
>   drivers/gpu/drm/nouveau/include/nvif/if0012.h | 249 +++++++--
>   drivers/gpu/drm/nouveau/include/nvif/outp.h   |  96 +++-
>   .../drm/nouveau/include/nvkm/core/memory.h    |   1 +
>   .../drm/nouveau/include/nvkm/subdev/instmem.h |   2 +-
>   drivers/gpu/drm/nouveau/nouveau_backlight.c   |  90 +--
>   drivers/gpu/drm/nouveau/nouveau_bios.c        |   8 +-
>   drivers/gpu/drm/nouveau/nouveau_connector.c   | 251 ++++-----
>   drivers/gpu/drm/nouveau/nouveau_connector.h   |   3 +-
>   drivers/gpu/drm/nouveau/nouveau_display.c     |   8 +-
>   drivers/gpu/drm/nouveau/nouveau_dp.c          | 345 ++++++++++--
>   drivers/gpu/drm/nouveau/nouveau_encoder.h     |  30 +-
>   drivers/gpu/drm/nouveau/nvif/conn.c           |  36 +-
>   drivers/gpu/drm/nouveau/nvif/disp.c           |   2 +-
>   drivers/gpu/drm/nouveau/nvif/outp.c           | 412 ++++++++++++--
>   drivers/gpu/drm/nouveau/nvkm/core/memory.c    |  15 +-
>   .../gpu/drm/nouveau/nvkm/engine/disp/base.c   | 146 +----
>   .../gpu/drm/nouveau/nvkm/engine/disp/conn.c   |  10 -
>   .../gpu/drm/nouveau/nvkm/engine/disp/conn.h   |   2 -
>   drivers/gpu/drm/nouveau/nvkm/engine/disp/dp.c | 362 ++++---------
>   .../gpu/drm/nouveau/nvkm/engine/disp/g84.c    |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/g94.c    |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/ga102.c  |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/gf119.c  |   2 +-
>   .../gpu/drm/nouveau/nvkm/engine/disp/gk104.c  |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/gm107.c  |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/gm200.c  |  17 +-
>   .../gpu/drm/nouveau/nvkm/engine/disp/gp100.c  |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/gt215.c  |  38 ++
>   .../gpu/drm/nouveau/nvkm/engine/disp/gv100.c  |   2 +-
>   .../gpu/drm/nouveau/nvkm/engine/disp/ior.h    |  15 +-
>   .../gpu/drm/nouveau/nvkm/engine/disp/mcp89.c  |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/nv50.c   | 182 ++++++-
>   .../gpu/drm/nouveau/nvkm/engine/disp/outp.c   | 144 ++++-
>   .../gpu/drm/nouveau/nvkm/engine/disp/outp.h   |  43 +-
>   .../gpu/drm/nouveau/nvkm/engine/disp/tu102.c  |   1 +
>   .../gpu/drm/nouveau/nvkm/engine/disp/uconn.c  |  67 +--
>   .../gpu/drm/nouveau/nvkm/engine/disp/uoutp.c  | 460 +++++++++++++---
>   .../gpu/drm/nouveau/nvkm/engine/gr/gf100.c    |  10 +-
>   .../drm/nouveau/nvkm/subdev/devinit/tu102.c   |  12 +-
>   .../drm/nouveau/nvkm/subdev/instmem/base.c    |  19 +-
>   .../drm/nouveau/nvkm/subdev/instmem/priv.h    |   1 +
>   .../drm/nouveau/nvkm/subdev/mmu/vmmgp100.c    |   2 +-
>   .../drm/nouveau/nvkm/subdev/mmu/vmmtu102.c    |   2 +-
>   50 files changed, 2461 insertions(+), 1207 deletions(-)
> 



More information about the Nouveau mailing list