drm/dp_mst: Improve VCPI helpers, use in nouveau

Submitted by Lyude Paul on Oct. 23, 2018, 11:12 p.m.

Details

Reviewer None
Submitted Oct. 23, 2018, 11:12 p.m.
Last Updated Nov. 16, 2018, 12:50 a.m.
Revision 6

Cover Letter(s)

Revision 1
      This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.

Cc: Daniel Vetter <daniel@ffwll.ch>

Lyude Paul (6):
  drm/dp_mst: Deprecate drm_dp_find_vcpi_slots()
  drm/dp_mst: Remove all evil duplicate state pointers
  drm/atomic: Add ->atomic_check() hook for private objects
  drm/dp_mst: Start tracking per-port VCPI allocations
  drm/dp_mst: Check payload count in ->atomic_check()
  drm/nouveau: Use atomic VCPI helpers for MST

 drivers/gpu/drm/drm_atomic.c            |  14 ++
 drivers/gpu/drm/drm_dp_mst_topology.c   | 187 ++++++++++++++++++++----
 drivers/gpu/drm/i915/intel_dp_mst.c     |  31 ++--
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  46 +++++-
 include/drm/drm_atomic.h                |  16 ++
 include/drm/drm_dp_mst_helper.h         |  16 +-
 6 files changed, 250 insertions(+), 60 deletions(-)
    
Revision 2
      This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.

Cc: Daniel Vetter <daniel@ffwll.ch>

Lyude Paul (4):
  drm/dp_mst: Add some atomic state iterator macros
  drm/dp_mst: Start tracking per-port VCPI allocations
  drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
  drm/nouveau: Use atomic VCPI helpers for MST

 drivers/gpu/drm/drm_dp_mst_topology.c   | 196 ++++++++++++++++++++----
 drivers/gpu/drm/i915/intel_display.c    |   8 +
 drivers/gpu/drm/i915/intel_dp_mst.c     |  31 ++--
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  54 ++++++-
 include/drm/drm_dp_mst_helper.h         |  88 ++++++++++-
 5 files changed, 322 insertions(+), 55 deletions(-)
    
Revision 3
      [sorry about the resend-copy pasted the wrong header and I want to make
sure this doesn't get missed!]

This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.

Cc: Daniel Vetter <daniel@ffwll.ch>

Lyude Paul (5):
  drm/dp_mst: Add some atomic state iterator macros
  drm/dp_mst: Start tracking per-port VCPI allocations
  drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
  drm/nouveau: Use atomic VCPI helpers for MST
  drm/dp_mst: Stop unsetting mstc->port, check connector registration

 drivers/gpu/drm/drm_dp_mst_topology.c   | 229 ++++++++++++++++++++----
 drivers/gpu/drm/i915/intel_display.c    |   4 +
 drivers/gpu/drm/i915/intel_dp_mst.c     |  31 ++--
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  65 +++++--
 include/drm/drm_dp_mst_helper.h         | 100 ++++++++++-
 5 files changed, 359 insertions(+), 70 deletions(-)
    
Revision 4
      This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.

Cc: Daniel Vetter <daniel@ffwll.ch>

Lyude Paul (5):
  drm/dp_mst: Add some atomic state iterator macros
  drm/dp_mst: Start tracking per-port VCPI allocations
  drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
  drm/nouveau: Use atomic VCPI helpers for MST
  drm/dp_mst: Stop unsetting mstc->port, check connector registration

 drivers/gpu/drm/drm_dp_mst_topology.c   | 241 ++++++++++++++++++++----
 drivers/gpu/drm/i915/intel_display.c    |   4 +
 drivers/gpu/drm/i915/intel_dp_mst.c     |  31 +--
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  65 +++++--
 include/drm/drm_dp_mst_helper.h         | 100 +++++++++-
 5 files changed, 371 insertions(+), 70 deletions(-)
    
Revision 5
      This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.

Cc: Daniel Vetter <daniel@ffwll.ch>

Lyude Paul (5):
  drm/dp_mst: Add some atomic state iterator macros
  drm/dp_mst: Start tracking per-port VCPI allocations
  drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
  drm/nouveau: Use atomic VCPI helpers for MST
  drm/dp_mst: Stop unsetting mstc->port, check connector registration

 drivers/gpu/drm/drm_dp_mst_topology.c   | 251 ++++++++++++++++++++----
 drivers/gpu/drm/i915/intel_display.c    |   4 +
 drivers/gpu/drm/i915/intel_dp_mst.c     |  31 +--
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  65 ++++--
 include/drm/drm_dp_mst_helper.h         | 101 +++++++++-
 5 files changed, 382 insertions(+), 70 deletions(-)
    
Revision 6
      This patchset does some cleaning up of the atomic VCPI helpers for MST,
and converts nouveau over to using them. I would have included amdgpu in
this patch as well, but at the moment moving them over to the atomic
helpers is nontrivial.

[sorry for still not adding your R-Bs! I ended up needing to make a
lot of changes to make it so we do actually kref() each port in the
atomic state]
Cc: Daniel Vetter <daniel@ffwll.ch>

Lyude Paul (6):
  drm/dp_mst: Add some atomic state iterator macros
  drm/dp_mst: Return kref_put() result from drm_dp_put_port()
  drm/dp_mst: Start tracking per-port VCPI allocations
  drm/dp_mst: Check payload count in drm_dp_mst_atomic_check()
  drm/nouveau: Stop unsetting mstc->port, check connector registration
  drm/nouveau: Use atomic VCPI helpers for MST

 drivers/gpu/drm/drm_dp_mst_topology.c   | 307 +++++++++++++++++++++---
 drivers/gpu/drm/i915/intel_display.c    |   4 +
 drivers/gpu/drm/i915/intel_dp_mst.c     |  64 +++--
 drivers/gpu/drm/nouveau/dispnv50/disp.c |  67 ++++--
 include/drm/drm_dp_mst_helper.h         | 101 +++++++-
 5 files changed, 459 insertions(+), 84 deletions(-)
    

Revisions