diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c b/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c index 6d5690a13446..9150efc699b9 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_debugfs.c @@ -226,6 +226,16 @@ static int rockchip_drm_debugfs_color_bar_show(struct seq_file *s, void *data) seq_puts(s, " echo 1 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); seq_puts(s, " Enable vertical color bar:\n"); seq_puts(s, " echo 2 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); + seq_puts(s, " Enable horizontal color gradient:\n"); + seq_puts(s, " echo 3 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); + seq_puts(s, " Enable vertical color gradient:\n"); + seq_puts(s, " echo 4 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); + seq_puts(s, " Enable mutant color:\n"); + seq_puts(s, " echo 5 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); + seq_puts(s, " Enable fix black color:\n"); + seq_puts(s, " echo 6 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); + seq_puts(s, " Enable fix white color:\n"); + seq_puts(s, " echo 7 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); seq_puts(s, " Disable color bar:\n"); seq_puts(s, " echo 0 > /sys/kernel/debug/dri/0/video_port0/color_bar\n"); diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h index 65415294c73d..ef6f0385fc5c 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.h @@ -119,6 +119,11 @@ enum rockchip_color_bar_mode { ROCKCHIP_COLOR_BAR_OFF = 0, ROCKCHIP_COLOR_BAR_HORIZONTAL = 1, ROCKCHIP_COLOR_BAR_VERTICAL = 2, + ROCKCHIP_COLOR_BAR_HORIZONTAL_COLOR_GRADIENT = 3, + ROCKCHIP_COLOR_BAR_VERTICAL_COLOR_GRADIENT = 4, + ROCKCHIP_COLOR_BAR_MUTANT = 5, + ROCKCHIP_COLOR_BAR_FIX0 = 6, + ROCKCHIP_COLOR_BAR_FIX1 = 7, }; enum rockchip_drm_split_area { diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 6cc048708106..373ac2feeef5 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -9030,6 +9030,36 @@ static int vop2_crtc_set_color_bar(struct drm_crtc *crtc, enum rockchip_color_ba VOP_MODULE_SET(vop2, vp, color_bar_en, 1); vop2_cfg_done(crtc); break; + case ROCKCHIP_COLOR_BAR_HORIZONTAL_COLOR_GRADIENT: + DRM_INFO("enable horizontal color gradient in VP%d\n", vp->id); + VOP_MODULE_SET(vop2, vp, color_bar_mode, 2); + VOP_MODULE_SET(vop2, vp, color_bar_en, 1); + vop2_cfg_done(crtc); + break; + case ROCKCHIP_COLOR_BAR_VERTICAL_COLOR_GRADIENT: + DRM_INFO("enable vertical color gradient in VP%d\n", vp->id); + VOP_MODULE_SET(vop2, vp, color_bar_mode, 3); + VOP_MODULE_SET(vop2, vp, color_bar_en, 1); + vop2_cfg_done(crtc); + break; + case ROCKCHIP_COLOR_BAR_MUTANT: + DRM_INFO("enable mutant color in VP%d\n", vp->id); + VOP_MODULE_SET(vop2, vp, color_bar_mode, 4); + VOP_MODULE_SET(vop2, vp, color_bar_en, 1); + vop2_cfg_done(crtc); + break; + case ROCKCHIP_COLOR_BAR_FIX0: + DRM_INFO("enable fix black color in VP%d\n", vp->id); + VOP_MODULE_SET(vop2, vp, color_bar_mode, 5); + VOP_MODULE_SET(vop2, vp, color_bar_en, 1); + vop2_cfg_done(crtc); + break; + case ROCKCHIP_COLOR_BAR_FIX1: + DRM_INFO("enable fix white color in VP%d\n", vp->id); + VOP_MODULE_SET(vop2, vp, color_bar_mode, 6); + VOP_MODULE_SET(vop2, vp, color_bar_en, 1); + vop2_cfg_done(crtc); + break; default: DRM_INFO("Unsupported color bar mode\n"); ret = -EINVAL;