On 9/18/23 22:13, Ben Skeggs wrote:
From: Ben Skeggs <bske...@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 <d...@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(-)


Reply via email to