tree: https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro-drm head: 3e3effff535b3615ae5a40ae1c1b6d08e12bed0e commit: 8d1ae5e7a36e4a9c9a38506d3611f7171eb45772 [86/102] add missing includes dt-bindings/soc/rockchip-system-status.h and soc/rockchip/rockchip-system-status.h config: i386-randconfig-a001-20211016 (attached as .config) compiler: gcc-9 (Debian 9.3.0-22) 9.3.0 reproduce (this is a W=1 build): # https://github.com/frank-w/BPI-R2-4.14/commit/8d1ae5e7a36e4a9c9a38506d3611f7171eb45772 git remote add frank-w-bpi-r2-4.14 https://github.com/frank-w/BPI-R2-4.14 git fetch --no-tags frank-w-bpi-r2-4.14 5.15-bpi-r2-pro-drm git checkout 8d1ae5e7a36e4a9c9a38506d3611f7171eb45772 # save the attached .config to linux build tree mkdir build_dir make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/gpu/drm/rockchip/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot Note: the frank-w-bpi-r2-4.14/5.15-bpi-r2-pro-drm HEAD 3e3effff535b3615ae5a40ae1c1b6d08e12bed0e builds fine. It only hurts bisectability. All errors (new ones prefixed by >>): 100 | REG_SET(x, name, win->offset, VOP_WIN_NAME(win, name), v, true) | ^~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1932:2: note: in expansion of macro 'VOP_WIN_SET' 1932 | VOP_WIN_SET(vop, win, gate, 1); | ^~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:386:33: note: expected 'struct vop_win *' but argument is of type 'const struct vop_win_data *' 386 | vop_get_win_phy(struct vop_win *win, const struct vop_reg *reg) | ~~~~~~~~~~~~~~~~^~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1932:19: error: passing argument 1 of 'vop_get_win_phy' from incompatible pointer type [-Werror=incompatible-pointer-types] 1932 | VOP_WIN_SET(vop, win, gate, 1); | ^~~ | | | const struct vop_win_data * drivers/gpu/drm/rockchip/rockchip_drm_vop.c:83:32: note: in definition of macro '__REG_SET' 83 | vop_mask_write(x, off, mask, shift, v, write_mask, relaxed) | ^~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:95:3: note: in expansion of macro '_REG_SET' 95 | _REG_SET(x, name, off, reg, reg.mask, v, relaxed) | ^~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:100:3: note: in expansion of macro 'REG_SET' 100 | REG_SET(x, name, win->offset, VOP_WIN_NAME(win, name), v, true) | ^~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:100:33: note: in expansion of macro 'VOP_WIN_NAME' 100 | REG_SET(x, name, win->offset, VOP_WIN_NAME(win, name), v, true) | ^~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1932:2: note: in expansion of macro 'VOP_WIN_SET' 1932 | VOP_WIN_SET(vop, win, gate, 1); | ^~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:386:33: note: expected 'struct vop_win *' but argument is of type 'const struct vop_win_data *' 386 | vop_get_win_phy(struct vop_win *win, const struct vop_reg *reg) | ~~~~~~~~~~~~~~~~^~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1932:19: error: passing argument 1 of 'vop_get_win_phy' from incompatible pointer type [-Werror=incompatible-pointer-types] 1932 | VOP_WIN_SET(vop, win, gate, 1); | ^~~ | | | const struct vop_win_data * drivers/gpu/drm/rockchip/rockchip_drm_vop.c:83:42: note: in definition of macro '__REG_SET' 83 | vop_mask_write(x, off, mask, shift, v, write_mask, relaxed) | ^~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:95:3: note: in expansion of macro '_REG_SET' 95 | _REG_SET(x, name, off, reg, reg.mask, v, relaxed) | ^~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:100:3: note: in expansion of macro 'REG_SET' 100 | REG_SET(x, name, win->offset, VOP_WIN_NAME(win, name), v, true) | ^~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:100:33: note: in expansion of macro 'VOP_WIN_NAME' 100 | REG_SET(x, name, win->offset, VOP_WIN_NAME(win, name), v, true) | ^~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1932:2: note: in expansion of macro 'VOP_WIN_SET' 1932 | VOP_WIN_SET(vop, win, gate, 1); | ^~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:386:33: note: expected 'struct vop_win *' but argument is of type 'const struct vop_win_data *' 386 | vop_get_win_phy(struct vop_win *win, const struct vop_reg *reg) | ~~~~~~~~~~~~~~~~^~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1770:39: warning: unused variable 'rk_uv_obj' [-Wunused-variable] 1770 | struct rockchip_gem_object *rk_obj, *rk_uv_obj; | ^~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1769:31: warning: unused variable 'uv_obj' [-Wunused-variable] 1769 | struct drm_gem_object *obj, *uv_obj; | ^~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1769:25: warning: unused variable 'obj' [-Wunused-variable] 1769 | struct drm_gem_object *obj, *uv_obj; | ^~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_plane_atomic_async_check': drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1976:42: error: 'struct vop_win' has no member named 'data' 1976 | const struct vop_win_data *win = vop_win->data; | ^~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_atomic_plane_duplicate_state': drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2050:6: error: 'state' undeclared (first use in this function); did you mean 'statx'? 2050 | if (state) | ^~~~~ | statx drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2051:3: error: 'crtc_state' undeclared (first use in this function); did you mean 'ctx_state'? 2051 | crtc_state = drm_atomic_get_existing_crtc_state(state, | ^~~~~~~~~~ | ctx_state drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2052:9: error: 'new_plane_state' undeclared (first use in this function); did you mean 'vop_plane_state'? 2052 | new_plane_state->crtc); | ^~~~~~~~~~~~~~~ | vop_plane_state drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_plane_atomic_async_update': drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2068:26: warning: unused variable 'old_fb' [-Wunused-variable] 2068 | struct drm_framebuffer *old_fb = plane->state->fb; | ^~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2065:26: warning: unused variable 'new_state' [-Wunused-variable] 2065 | struct drm_plane_state *new_state = drm_atomic_get_new_plane_state(state, | ^~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c: At top level: drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2131:44: error: redefinition of 'plane_helper_funcs' 2131 | static const struct drm_plane_helper_funcs plane_helper_funcs = { | ^~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2003:44: note: previous definition of 'plane_helper_funcs' was here 2003 | static const struct drm_plane_helper_funcs plane_helper_funcs = { | ^~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_crtc_atomic_begin': drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2370:3: error: implicit declaration of function 'vop_crtc_gamma_set'; did you mean 'vop_crtc_atomic_gamma_set'? [-Werror=implicit-function-declaration] 2370 | vop_crtc_gamma_set(vop, crtc, old_crtc_state); | ^~~~~~~~~~~~~~~~~~ | vop_crtc_atomic_gamma_set drivers/gpu/drm/rockchip/rockchip_drm_vop.c: At top level: >> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3431:12: error: conflicting types for 'vop_crtc_atomic_check' 3431 | static int vop_crtc_atomic_check(struct drm_crtc *crtc, | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3066:12: note: previous definition of 'vop_crtc_atomic_check' was here 3066 | static int vop_crtc_atomic_check(struct drm_crtc *crtc, | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c: In function 'vop_crtc_atomic_check': drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3473:3: error: 'struct rockchip_crtc_state' has no member named 'enable_afbc' 3473 | s->enable_afbc = afbc_planes > 0; | ^~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c: At top level: drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3588:18: error: initialization of 'void (*)(struct drm_crtc *, struct drm_atomic_state *)' from incompatible pointer type 'void (*)(struct drm_crtc *, struct drm_crtc_state *)' [-Werror=incompatible-pointer-types] 3588 | .atomic_flush = vop_crtc_atomic_flush, | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3588:18: note: (near initialization for 'vop_crtc_helper_funcs.atomic_flush') drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3589:19: error: initialization of 'void (*)(struct drm_crtc *, struct drm_atomic_state *)' from incompatible pointer type 'void (*)(struct drm_crtc *, struct drm_crtc_state *)' [-Werror=incompatible-pointer-types] 3589 | .atomic_enable = vop_crtc_atomic_enable, | ^~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3589:19: note: (near initialization for 'vop_crtc_helper_funcs.atomic_enable') drivers/gpu/drm/rockchip/rockchip_drm_vop.c:3066:12: warning: 'vop_crtc_atomic_check' defined but not used [-Wunused-function] 3066 | static int vop_crtc_atomic_check(struct drm_crtc *crtc, | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2355:13: warning: 'vop_crtc_atomic_begin' defined but not used [-Wunused-function] 2355 | static void vop_crtc_atomic_begin(struct drm_crtc *crtc, | ^~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:2003:44: warning: 'plane_helper_funcs' defined but not used [-Wunused-const-variable=] 2003 | static const struct drm_plane_helper_funcs plane_helper_funcs = { | ^~~~~~~~~~~~~~~~~~ drivers/gpu/drm/rockchip/rockchip_drm_vop.c:306:46: warning: 'drm_bus_format_enum_list' defined but not used [-Wunused-const-variable=] 306 | static const struct drm_bus_format_enum_list drm_bus_format_enum_list[] = { | ^~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +/vop_crtc_atomic_check +3431 drivers/gpu/drm/rockchip/rockchip_drm_vop.c 7caecdbec1128a Tomasz Figa 2016-09-14 3430 b23ab6ac6d768f Ezequiel Garcia 2019-10-10 @3431 static int vop_crtc_atomic_check(struct drm_crtc *crtc, 29b77ad7b9ca8c Maxime Ripard 2020-10-28 3432 struct drm_atomic_state *state) b23ab6ac6d768f Ezequiel Garcia 2019-10-10 3433 { 29b77ad7b9ca8c Maxime Ripard 2020-10-28 3434 struct drm_crtc_state *crtc_state = drm_atomic_get_new_crtc_state(state, 29b77ad7b9ca8c Maxime Ripard 2020-10-28 3435 crtc); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3436 struct vop *vop = to_vop(crtc); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3437 struct drm_plane *plane; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3438 struct drm_plane_state *plane_state; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3439 struct rockchip_crtc_state *s; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3440 int afbc_planes = 0; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3441 8d83ced61818d2 Frank Wunderlich 2021-10-15 3442 if (vop->lut_regs && crtc_state->color_mgmt_changed && 8d83ced61818d2 Frank Wunderlich 2021-10-15 3443 crtc_state->gamma_lut) { 8d83ced61818d2 Frank Wunderlich 2021-10-15 3444 unsigned int len; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3445 8d83ced61818d2 Frank Wunderlich 2021-10-15 3446 len = drm_color_lut_size(crtc_state->gamma_lut); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3447 if (len != crtc->gamma_size) { 8d83ced61818d2 Frank Wunderlich 2021-10-15 3448 DRM_DEBUG_KMS("Invalid LUT size; got %d, expected %d\n", 8d83ced61818d2 Frank Wunderlich 2021-10-15 3449 len, crtc->gamma_size); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3450 return -EINVAL; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3451 } 8d83ced61818d2 Frank Wunderlich 2021-10-15 3452 } 8d83ced61818d2 Frank Wunderlich 2021-10-15 3453 8d83ced61818d2 Frank Wunderlich 2021-10-15 3454 drm_atomic_crtc_state_for_each_plane(plane, crtc_state) { 8d83ced61818d2 Frank Wunderlich 2021-10-15 3455 plane_state = 8d83ced61818d2 Frank Wunderlich 2021-10-15 3456 drm_atomic_get_plane_state(crtc_state->state, plane); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3457 if (IS_ERR(plane_state)) { 8d83ced61818d2 Frank Wunderlich 2021-10-15 3458 DRM_DEBUG_KMS("Cannot get plane state for plane %s\n", 8d83ced61818d2 Frank Wunderlich 2021-10-15 3459 plane->name); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3460 return PTR_ERR(plane_state); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3461 } 8d83ced61818d2 Frank Wunderlich 2021-10-15 3462 8d83ced61818d2 Frank Wunderlich 2021-10-15 3463 if (drm_is_afbc(plane_state->fb->modifier)) 8d83ced61818d2 Frank Wunderlich 2021-10-15 3464 ++afbc_planes; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3465 } 8d83ced61818d2 Frank Wunderlich 2021-10-15 3466 8d83ced61818d2 Frank Wunderlich 2021-10-15 3467 if (afbc_planes > 1) { 8d83ced61818d2 Frank Wunderlich 2021-10-15 3468 DRM_DEBUG_KMS("Invalid number of AFBC planes; got %d, expected at most 1\n", afbc_planes); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3469 return -EINVAL; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3470 } 8d83ced61818d2 Frank Wunderlich 2021-10-15 3471 8d83ced61818d2 Frank Wunderlich 2021-10-15 3472 s = to_rockchip_crtc_state(crtc_state); 8d83ced61818d2 Frank Wunderlich 2021-10-15 3473 s->enable_afbc = afbc_planes > 0; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3474 8d83ced61818d2 Frank Wunderlich 2021-10-15 3475 return 0; 8d83ced61818d2 Frank Wunderlich 2021-10-15 3476 } 8d83ced61818d2 Frank Wunderlich 2021-10-15 3477 :::::: The code at line 3431 was first introduced by commit :::::: b23ab6ac6d768f9d5b03b5a67bf48a6be6e1dcce drm/rockchip: Add optional support for CRTC gamma LUT :::::: TO: Ezequiel Garcia :::::: CC: Sean Paul --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org