Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drm/colorop: Add atomic state print for drm_colorop

Print atomic state for drm_colorop in debugfs

Reviewed-by: Simon Ser <contact@emersion.fr>
Signed-off-by: Alex Hung <alex.hung@amd.com>
Signed-off-by: Harry Wentland <harry.wentland@amd.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Melissa Wen <mwen@igalia.com>
Reviewed-by: Sebastian Wick <sebastian.wick@redhat.com>
Signed-off-by: Simon Ser <contact@emersion.fr>
Link: https://patch.msgid.link/20251115000237.3561250-10-alex.hung@amd.com

authored by

Harry Wentland and committed by
Simon Ser
2190c144 78a5add8

+32 -1
+32 -1
drivers/gpu/drm/drm_atomic.c
··· 780 780 return 0; 781 781 } 782 782 783 + static void drm_atomic_colorop_print_state(struct drm_printer *p, 784 + const struct drm_colorop_state *state) 785 + { 786 + struct drm_colorop *colorop = state->colorop; 787 + 788 + drm_printf(p, "colorop[%u]:\n", colorop->base.id); 789 + drm_printf(p, "\ttype=%s\n", drm_get_colorop_type_name(colorop->type)); 790 + drm_printf(p, "\tbypass=%u\n", state->bypass); 791 + 792 + switch (colorop->type) { 793 + case DRM_COLOROP_1D_CURVE: 794 + drm_printf(p, "\tcurve_1d_type=%s\n", 795 + drm_get_colorop_curve_1d_type_name(state->curve_1d_type)); 796 + break; 797 + default: 798 + break; 799 + } 800 + 801 + drm_printf(p, "\tnext=%d\n", colorop->next ? colorop->next->base.id : 0); 802 + } 803 + 783 804 static void drm_atomic_plane_print_state(struct drm_printer *p, 784 805 const struct drm_plane_state *state) 785 806 { ··· 822 801 drm_printf(p, "\tcolor-range=%s\n", 823 802 drm_get_color_range_name(state->color_range)); 824 803 drm_printf(p, "\tcolor_mgmt_changed=%d\n", state->color_mgmt_changed); 825 - 804 + drm_printf(p, "\tcolor-pipeline=%d\n", 805 + state->color_pipeline ? state->color_pipeline->base.id : 0); 826 806 if (plane->funcs->atomic_print_state) 827 807 plane->funcs->atomic_print_state(p, state); 828 808 } ··· 1934 1912 bool take_locks) 1935 1913 { 1936 1914 struct drm_mode_config *config = &dev->mode_config; 1915 + struct drm_colorop *colorop; 1937 1916 struct drm_plane *plane; 1938 1917 struct drm_crtc *crtc; 1939 1918 struct drm_connector *connector; ··· 1943 1920 1944 1921 if (!drm_drv_uses_atomic_modeset(dev)) 1945 1922 return; 1923 + 1924 + list_for_each_entry(colorop, &config->colorop_list, head) { 1925 + if (take_locks) 1926 + drm_modeset_lock(&colorop->plane->mutex, NULL); 1927 + drm_atomic_colorop_print_state(p, colorop->state); 1928 + if (take_locks) 1929 + drm_modeset_unlock(&colorop->plane->mutex); 1930 + } 1946 1931 1947 1932 list_for_each_entry(plane, &config->plane_list, head) { 1948 1933 if (take_locks)