The tidss CRTC subclasses drm_crtc_state with bus_format and bus_flags fields that are set during atomic check and state readout. These fields are not visible in the standard atomic state dumps, making it harder to debug bus format negotiation issues.
Add an atomic_print_state hook to expose them in debugfs and kernel log state dumps. Signed-off-by: Maxime Ripard <[email protected]> --- drivers/gpu/drm/tidss/tidss_crtc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/drivers/gpu/drm/tidss/tidss_crtc.c b/drivers/gpu/drm/tidss/tidss_crtc.c index 400329aa2200..3da49f77fa08 100644 --- a/drivers/gpu/drm/tidss/tidss_crtc.c +++ b/drivers/gpu/drm/tidss/tidss_crtc.c @@ -399,17 +399,27 @@ static void tidss_crtc_destroy(struct drm_crtc *crtc) drm_crtc_cleanup(crtc); kfree(tcrtc); } +static void tidss_crtc_atomic_print_state(struct drm_printer *p, + const struct drm_crtc_state *state) +{ + const struct tidss_crtc_state *tstate = to_tidss_crtc_state(state); + + drm_printf_indent(p, 1, "bus_format=0x%08x\n", tstate->bus_format); + drm_printf_indent(p, 1, "bus_flags=0x%08x\n", tstate->bus_flags); +} + static const struct drm_crtc_funcs tidss_crtc_funcs = { .destroy = tidss_crtc_destroy, .set_config = drm_atomic_helper_set_config, .page_flip = drm_atomic_helper_page_flip, .atomic_create_state = tidss_crtc_create_state, .atomic_duplicate_state = tidss_crtc_duplicate_state, .atomic_destroy_state = tidss_crtc_destroy_state, + .atomic_print_state = tidss_crtc_atomic_print_state, .enable_vblank = tidss_crtc_enable_vblank, .disable_vblank = tidss_crtc_disable_vblank, }; struct tidss_crtc *tidss_crtc_create(struct tidss_device *tidss, -- 2.55.0
