drm/rockchip: vop2: add more color bar mode support

Color bar mode usage instructions:

  Enable horizontal color bar:
      echo 1 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Enable vertical color bar:
      echo 2 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Enable horizontal color gradient:
      echo 3 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Enable vertical color gradient:
      echo 4 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Enable mutant color:
      echo 5 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Enable fix black color:
      echo 6 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Enable fix white color:
      echo 7 > /sys/kernel/debug/dri/0/video_port0/color_bar
  Disable color bar:
      echo 0 > /sys/kernel/debug/dri/0/video_port0/color_bar

Signed-off-by: Sandy Huang <hjc@rock-chips.com>
Change-Id: I5b1c5b2daf90a009bef4a645bd7ba62503356ddf
This commit is contained in:
Sandy Huang
2025-08-23 10:12:10 +08:00
parent 203c6b02b6
commit bfbc56cd9b
3 changed files with 45 additions and 0 deletions

View File

@@ -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");

View File

@@ -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 {

View File

@@ -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;