tree:
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git ti-rt-linux-5.4.y
head: 0343656e0feca050ec3f6a0a47fc65018d5a7fd1
commit: 6e656a3c43e2bc9ebdf19376b81f12348dc24ac9 [6208/11346] drm/tidss: dispc: Fix broken
plane positioning code
config: h8300-randconfig-r004-20201020 (attached as .config)
compiler: h8300-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
git remote add ti
git://git.ti.com/ti-linux-kernel/ti-linux-kernel.git
git fetch --no-tags ti ti-rt-linux-5.4.y
git checkout 6e656a3c43e2bc9ebdf19376b81f12348dc24ac9
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=h8300
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>):
In file included from include/linux/ioport.h:13,
from include/linux/acpi.h:12,
from include/linux/i2c.h:13,
from include/drm/drm_crtc.h:28,
from include/drm/drm_atomic.h:31,
from drivers/gpu/drm/tidss/tidss_kms.c:7:
include/linux/scatterlist.h: In function 'sg_set_buf':
include/asm-generic/page.h:93:50: warning: ordered comparison of pointer with null
pointer [-Wextra]
93 | #define virt_addr_valid(kaddr) (((void *)(kaddr) >= (void *)PAGE_OFFSET)
&& \
| ^~
include/linux/compiler.h:78:42: note: in definition of macro 'unlikely'
78 | # define unlikely(x) __builtin_expect(!!(x), 0)
| ^
include/linux/scatterlist.h:143:2: note: in expansion of macro 'BUG_ON'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~
include/linux/scatterlist.h:143:10: note: in expansion of macro
'virt_addr_valid'
143 | BUG_ON(!virt_addr_valid(buf));
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/tidss/tidss_kms.c: In function 'tidss_atomic_check':
> drivers/gpu/drm/tidss/tidss_kms.c:55:20: warning: variable
'plane' set but not used [-Wunused-but-set-variable]
55 | struct
drm_plane *plane;
| ^~~~~
vim +/plane +55 drivers/gpu/drm/tidss/tidss_kms.c
49
50 static int tidss_atomic_check(struct drm_device *ddev,
51 struct drm_atomic_state *state)
52 {
53 struct drm_plane_state *opstate;
54 struct drm_plane_state *npstate;
55 struct drm_plane *plane;
56 struct drm_crtc_state
*cstate;
57 struct drm_crtc *crtc;
58 int ret, i;
59
60 ret = drm_atomic_helper_check(ddev, state);
61 if (ret)
62 return ret;
63
64 /*
65 * Add all active planes on a CRTC to the atomic state, if
66 * x/y/z position or activity of any plane on that CRTC
67 * changes. This is needed for updating the plane positions in
68 * tidss_crtc_position_planes() which is called from
69 * crtc_atomic_enable() and crtc_atomic_flush(). We have an
70 * extra flag to to mark x,y-position changes and together
71 * with zpos_changed the condition recognizes all the above
72 * cases.
73 */
74 for_each_oldnew_plane_in_state(state, plane, opstate, npstate, i) {
75 if (!npstate->crtc || !npstate->visible)
76 continue;
77
78 if (!opstate->crtc || opstate->crtc_x != npstate->crtc_x ||
79 opstate->crtc_y != npstate->crtc_y) {
80 cstate = drm_atomic_get_crtc_state(state,
81 npstate->crtc);
82 if (IS_ERR(cstate))
83 return PTR_ERR(cstate);
84 to_tidss_crtc_state(cstate)->plane_pos_changed = true;
85 }
86 }
87
88 for_each_new_crtc_in_state(state, crtc, cstate, i) {
89 if (to_tidss_crtc_state(cstate)->plane_pos_changed ||
90 cstate->zpos_changed) {
91 ret = drm_atomic_add_affected_planes(state, crtc);
92 if (ret)
93 return ret;
94 }
95 }
96
97 return 0;
98 }
99
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org