OSDN Git Service

drm/dp_mst: Add sideband down request tracing + selftests
authorLyude Paul <lyude@redhat.com>
Tue, 3 Sep 2019 20:45:45 +0000 (16:45 -0400)
committerLyude Paul <lyude@redhat.com>
Tue, 3 Sep 2019 23:30:06 +0000 (19:30 -0400)
commit2f015ec6eab69301fdcf54d397810d72362d7223
treece393af8eea0bc77c571a9aaced78f7f102a7d8e
parentaa2a2fe1383fff13d2822ff9fce4013eacf2a0cb
drm/dp_mst: Add sideband down request tracing + selftests

Unfortunately the DP MST helpers do not have much in the way of
debugging utilities. So, let's add some!

This adds basic debugging output for down sideband requests that we send
from the driver, so that we can actually discern what's happening when
sideband requests timeout.

Since there wasn't really a good way of testing that any of this worked,
I ended up writing simple selftests that lightly test sideband message
encoding and decoding as well. Enjoy!

Changes since v1:
* Clean up DO_TEST() and sideband_msg_req_encode_decode() - danvet
* Get rid of pr_fmt(), just define a prefix string instead and use
  drm_printf()
* Check highest bit of VCPI in drm_dp_decode_sideband_req() - danvet
* Make the switch case order between drm_dp_decode_sideband_req() and
  drm_dp_encode_sideband_req() the same - danvet
* Only check DRM_UT_DP - danvet
* Clean up sideband_msg_req_equal() from selftests a bit, and add
  comments explaining why we can't just use memcmp - danvet

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>
Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20190903204645.25487-8-lyude@redhat.com
drivers/gpu/drm/drm_dp_mst_topology.c
drivers/gpu/drm/drm_dp_mst_topology_internal.h [new file with mode: 0644]
drivers/gpu/drm/selftests/drm_modeset_selftests.h
drivers/gpu/drm/selftests/test-drm_dp_mst_helper.c
drivers/gpu/drm/selftests/test-drm_modeset_common.h
include/drm/drm_dp_mst_helper.h