All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/26] DP MST Refactors + debugging tools + suspend/resume reprobing
@ 2019-07-18  1:42 Lyude Paul
  2019-07-18  1:42 ` [PATCH 01/26] drm/dp_mst: Move link address dumping into a function Lyude Paul
                   ` (25 more replies)
  0 siblings, 26 replies; 66+ messages in thread
From: Lyude Paul @ 2019-07-18  1:42 UTC (permalink / raw)
  To: dri-devel
  Cc: Sam Ravnborg, David Airlie, nouveau, Alexandru Gheorghe,
	Karol Herbst, Bhawanpreet Lakha, Huang Rui, Laurent Pinchart,
	Anthony Koo, Markus Elfring, David (ChunMing) Zhou,
	Thomas Hellstrom, Deepak Rawat, Yu Zhao, Harry Wentland,
	David Francis, amd-gfx, Maxime Ripard, Ben Skeggs,
	Thierry Reding, Harry Wentland, Mauro Rossi, Andrey Grodzovsky

This is the large series for adding MST suspend/resume reprobing that
I've been working on for quite a while now. In addition, I:

- Refactored and cleaned up any code I ended up digging through in the
  process of understanding how some parts of these helpers worked.
- Added some debugging tools along the way that I ended up needing to
  figure out some issues in my own code

Note that there's still one important part of this process missing
that's not included in this patch series: EDID reprobing, which I
believe Stanislav Lisovskiy from Intel is currently working on. The main
purpose of this series is to fix the issue of the in-memory topology
state (e.g. connectors connected to an MST hub, branch devices, etc.)
going out of sync if a topology connected to a connector is swapped out
with a different topology while the system is resumed, or while the
device housing said connector is in runtime suspend.

As well, the debugging tools that are added in this include:
- A limited debugging utility for dumping the list of topology
  references on an MST port or branch connector whose topology reference
  count has reached 0
- Sideband down request dumping, along with some basic selftests for
  testing our encoding/decoding functions

Cc: Juston Li <juston.li@intel.com>
Cc: Imre Deak <imre.deak@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Cc: Harry Wentland <hwentlan@amd.com>

Lyude Paul (26):
  drm/dp_mst: Move link address dumping into a function
  drm/dp_mst: Destroy mstbs from destroy_connector_work
  drm/dp_mst: Move test_calc_pbn_mode() into an actual selftest
  drm/print: Add drm_err_printer()
  drm/dp_mst: Add sideband down request tracing + selftests
  drm/dp_mst: Move PDT teardown for ports into destroy_connector_work
  drm/dp_mst: Get rid of list clear in drm_dp_finish_destroy_port()
  drm/dp_mst: Refactor drm_dp_send_enum_path_resources
  drm/dp_mst: Remove huge conditional in drm_dp_mst_handle_up_req()
  drm/dp_mst: Constify guid in drm_dp_get_mst_branch_by_guid()
  drm/dp_mst: Refactor drm_dp_mst_handle_up_req()
  drm/dp_mst: Refactor drm_dp_mst_handle_down_rep()
  drm/dp_mst: Destroy topology_mgr mutexes
  drm/dp_mst: Cleanup drm_dp_send_link_address() a bit
  drm/dp_mst: Refactor pdt setup/teardown, add more locking
  drm/dp_mst: Rename drm_dp_add_port and drm_dp_update_port
  drm/dp_mst: Remove lies in {up,down}_rep_recv documentation
  drm/dp_mst: Handle UP requests asynchronously
  drm/dp_mst: Protect drm_dp_mst_port members with connection_mutex
  drm/dp_mst: Don't forget to update port->input in
    drm_dp_mst_handle_conn_stat()
  drm/nouveau: Don't grab runtime PM refs for HPD IRQs
  drm/amdgpu: Iterate through DRM connectors correctly
  drm/amdgpu/dm: Resume short HPD IRQs before resuming MST topology
  drm/dp_mst: Add basic topology reprobing when resuming
  drm/dp_mst: Also print unhashed pointers for malloc/topology
    references
  drm/dp_mst: Add topology ref history tracking for debugging

 drivers/gpu/drm/Kconfig                       |   14 +
 .../gpu/drm/amd/amdgpu/amdgpu_connectors.c    |   13 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_device.c    |   20 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_display.c   |    5 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_encoders.c  |   40 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_irq.c       |    5 +-
 drivers/gpu/drm/amd/amdgpu/dce_v10_0.c        |   34 +-
 drivers/gpu/drm/amd/amdgpu/dce_v11_0.c        |   34 +-
 drivers/gpu/drm/amd/amdgpu/dce_v6_0.c         |   40 +-
 drivers/gpu/drm/amd/amdgpu/dce_v8_0.c         |   34 +-
 .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c |   41 +-
 .../drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c |   10 +-
 drivers/gpu/drm/drm_dp_mst_topology.c         | 1592 +++++++++++++----
 .../gpu/drm/drm_dp_mst_topology_internal.h    |   24 +
 drivers/gpu/drm/drm_print.c                   |    6 +
 drivers/gpu/drm/i915/display/intel_dp.c       |    3 +-
 drivers/gpu/drm/nouveau/dispnv50/disp.c       |    6 +-
 drivers/gpu/drm/nouveau/nouveau_connector.c   |   33 +-
 drivers/gpu/drm/selftests/Makefile            |    2 +-
 .../gpu/drm/selftests/drm_modeset_selftests.h |    2 +
 .../drm/selftests/test-drm_dp_mst_helper.c    |  248 +++
 .../drm/selftests/test-drm_modeset_common.h   |    2 +
 include/drm/drm_dp_mst_helper.h               |  127 +-
 include/drm/drm_print.h                       |   17 +
 24 files changed, 1846 insertions(+), 506 deletions(-)
 create mode 100644 drivers/gpu/drm/drm_dp_mst_topology_internal.h
 create mode 100644 drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c

-- 
2.21.0

_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

^ permalink raw reply	[flat|nested] 66+ messages in thread

end of thread, other threads:[~2019-09-03  7:40 UTC | newest]

Thread overview: 66+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-07-18  1:42 [PATCH 00/26] DP MST Refactors + debugging tools + suspend/resume reprobing Lyude Paul
2019-07-18  1:42 ` [PATCH 01/26] drm/dp_mst: Move link address dumping into a function Lyude Paul
2019-08-08 19:53   ` Daniel Vetter
2019-08-08 19:53     ` Daniel Vetter
2019-08-26 21:51     ` Lyude Paul
2019-08-27 16:16       ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 02/26] drm/dp_mst: Destroy mstbs from destroy_connector_work Lyude Paul
2019-08-13 13:00   ` Daniel Vetter
2019-08-26 22:07     ` Lyude Paul
2019-07-18  1:42 ` [PATCH 03/26] drm/dp_mst: Move test_calc_pbn_mode() into an actual selftest Lyude Paul
2019-08-13 13:01   ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 04/26] drm/print: Add drm_err_printer() Lyude Paul
2019-08-13 13:04   ` Daniel Vetter
2019-08-13 13:04     ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 05/26] drm/dp_mst: Add sideband down request tracing + selftests Lyude Paul
2019-08-13 14:50   ` Daniel Vetter
2019-08-13 14:50     ` Daniel Vetter
2019-08-27 16:43     ` Lyude Paul
2019-08-27 16:43       ` Lyude Paul
2019-08-27 16:49     ` Lyude Paul
2019-08-27 17:15       ` Daniel Vetter
2019-08-27 17:15         ` Daniel Vetter
2019-08-31  0:31         ` Lyude Paul
2019-09-03  7:40           ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 06/26] drm/dp_mst: Move PDT teardown for ports into destroy_connector_work Lyude Paul
2019-08-13 14:52   ` Daniel Vetter
2019-08-13 14:52     ` Daniel Vetter
2019-08-30 23:46     ` Lyude Paul
2019-07-18  1:42 ` [PATCH 07/26] drm/dp_mst: Get rid of list clear in drm_dp_finish_destroy_port() Lyude Paul
2019-08-13 14:55   ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 08/26] drm/dp_mst: Refactor drm_dp_send_enum_path_resources Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-08-14 15:05   ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 09/26] drm/dp_mst: Remove huge conditional in drm_dp_mst_handle_up_req() Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-08-13 14:56   ` Daniel Vetter
2019-08-13 14:56     ` Daniel Vetter
2019-07-18  1:42 ` [PATCH 10/26] drm/dp_mst: Constify guid in drm_dp_get_mst_branch_by_guid() Lyude Paul
2019-07-18  1:42 ` [PATCH 11/26] drm/dp_mst: Refactor drm_dp_mst_handle_up_req() Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 12/26] drm/dp_mst: Refactor drm_dp_mst_handle_down_rep() Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 13/26] drm/dp_mst: Destroy topology_mgr mutexes Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 14/26] drm/dp_mst: Cleanup drm_dp_send_link_address() a bit Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 15/26] drm/dp_mst: Refactor pdt setup/teardown, add more locking Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 16/26] drm/dp_mst: Rename drm_dp_add_port and drm_dp_update_port Lyude Paul
2019-07-18  1:42 ` [PATCH 17/26] drm/dp_mst: Remove lies in {up,down}_rep_recv documentation Lyude Paul
2019-07-18  1:42 ` [PATCH 18/26] drm/dp_mst: Handle UP requests asynchronously Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 19/26] drm/dp_mst: Protect drm_dp_mst_port members with connection_mutex Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 20/26] drm/dp_mst: Don't forget to update port->input in drm_dp_mst_handle_conn_stat() Lyude Paul
2019-07-18  1:42 ` [PATCH 21/26] drm/nouveau: Don't grab runtime PM refs for HPD IRQs Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 22/26] drm/amdgpu: Iterate through DRM connectors correctly Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 23/26] drm/amdgpu/dm: Resume short HPD IRQs before resuming MST topology Lyude Paul
2019-07-18  1:42 ` [PATCH 24/26] drm/dp_mst: Add basic topology reprobing when resuming Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 25/26] drm/dp_mst: Also print unhashed pointers for malloc/topology references Lyude Paul
2019-07-18  1:42   ` Lyude Paul
2019-07-18  1:42 ` [PATCH 26/26] drm/dp_mst: Add topology ref history tracking for debugging Lyude Paul
2019-07-18  1:42   ` Lyude Paul

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.