tree:
https://github.com/frank-w/BPI-R2-4.14 5.15-bpi-r2-pro-drm
head: 16da2cf02e8cf795a7c5334a73478075c1448889
commit: 8d1ae5e7a36e4a9c9a38506d3611f7171eb45772 [86/101] add missing includes
dt-bindings/soc/rockchip-system-status.h and soc/rockchip/rockchip-system-status.h
config: i386-randconfig-c001-20211017 (attached as .config)
compiler: clang version 14.0.0 (
https://github.com/llvm/llvm-project
746dd6a700931988dd9021d3d04718f1929885a5)
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
#
https://github.com/frank-w/BPI-R2-4.14/commit/8d1ae5e7a36e4a9c9a38506d361...
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
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir
ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
Note: the frank-w-bpi-r2-4.14/5.15-bpi-r2-pro-drm HEAD
16da2cf02e8cf795a7c5334a73478075c1448889 builds fine.
It only hurts bisectability.
All errors (new ones prefixed by >>):
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1589:44: error: no
member named 'data' in 'struct vop_win'
const struct
vop_win_data *win = vop_win->data;
~~~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1617:19: error: no
member named 'src_x' in 'struct drm_atomic_state'
src->x1 = state->src_x;
~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1618:19: error: no
member named 'src_y' in 'struct drm_atomic_state'
src->y1 = state->src_y;
~~~~~ ^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1619:19: error: no member named
'src_x' in 'struct drm_atomic_state'
src->x2 = state->src_x + state->src_w;
~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1619:34: error: no
member named 'src_w' in 'struct drm_atomic_state'
src->x2 = state->src_x + state->src_w;
~~~~~ ^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1620:19: error: no member named
'src_y' in 'struct drm_atomic_state'
src->y2 = state->src_y + state->src_h;
~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1620:34: error: no
member named 'src_h' in 'struct drm_atomic_state'
src->y2 = state->src_y + state->src_h;
~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1621:20: error: no
member named 'crtc_x' in 'struct drm_atomic_state'; did you mean
'crtcs'?
dest->x1 = state->crtc_x;
^~~~~~
crtcs
include/drm/drm_atomic.h:383:28: note: 'crtcs' declared here
struct __drm_crtcs_state *crtcs;
^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1622:20: error: no
member named 'crtc_y' in 'struct drm_atomic_state'; did you mean
'crtcs'?
dest->y1 = state->crtc_y;
^~~~~~
crtcs
include/drm/drm_atomic.h:383:28: note: 'crtcs' declared here
struct __drm_crtcs_state *crtcs;
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1623:20: error: no member named
'crtc_x' in 'struct drm_atomic_state'
dest->x2 = state->crtc_x + state->crtc_w;
~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1623:36: error: no
member named 'crtc_w' in 'struct drm_atomic_state'
dest->x2 = state->crtc_x + state->crtc_w;
~~~~~ ^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1624:20: error: no member named
'crtc_y' in 'struct drm_atomic_state'
dest->y2 = state->crtc_y + state->crtc_h;
~~~~~ ^
> drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1624:36: error: no
member named 'crtc_h' in 'struct drm_atomic_state'
dest->y2 = state->crtc_y + state->crtc_h;
~~~~~ ^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1642:13: error: no member named
'src_w' in 'struct drm_atomic_state'
if (state->src_w >> 16 < 4 || state->src_h >> 16 < 4
||
~~~~~ ^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1642:39: error: no member named
'src_h' in 'struct drm_atomic_state'
if (state->src_w >> 16 < 4 || state->src_h >> 16 < 4
||
~~~~~ ^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1643:13: error: no member named
'crtc_w' in 'struct drm_atomic_state'; did you mean 'crtcs'?
state->crtc_w < 4 || state->crtc_h < 4) {
^~~~~~
crtcs
include/drm/drm_atomic.h:383:28: note: 'crtcs' declared here
struct __drm_crtcs_state *crtcs;
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1643:34: error: no member named
'crtc_h' in 'struct drm_atomic_state'; did you mean 'crtcs'?
state->crtc_w < 4 || state->crtc_h < 4) {
^~~~~~
crtcs
include/drm/drm_atomic.h:383:28: note: 'crtcs' declared here
struct __drm_crtcs_state *crtcs;
^
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1645:13: error: no member named
'src_w' in 'struct drm_atomic_state'
state->src_w >> 16, state->src_h >> 16,
~~~~~ ^
include/drm/drm_print.h:498:19: note: expanded from macro 'DRM_ERROR'
__drm_err(fmt, ##__VA_ARGS__)
^~~~~~~~~~~
drivers/gpu/drm/rockchip/rockchip_drm_vop.c:1645:33: error: no member named
'src_h' in 'struct drm_atomic_state'
state->src_w >> 16, state->src_h >> 16,
~~~~~ ^
include/drm/drm_print.h:498:19: note: expanded from macro 'DRM_ERROR'
__drm_err(fmt, ##__VA_ARGS__)
^~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
vim +1589 drivers/gpu/drm/rockchip/rockchip_drm_vop.c
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1579
63ebb9fa7ff06d Mark Yao 2015-11-30 1580 static int
vop_plane_atomic_check(struct drm_plane *plane,
7c11b99a8e58c0 Maxime Ripard 2021-02-19 1581 struct drm_atomic_state
*state)
2048e3286f347d Mark Yao 2014-08-22 1582 {
7c11b99a8e58c0 Maxime Ripard 2021-02-19 1583 struct drm_plane_state
*new_plane_state = drm_atomic_get_new_plane_state(state,
7c11b99a8e58c0 Maxime Ripard 2021-02-19 1584 plane);
ba5c1649465d40 Maxime Ripard 2021-02-19 1585 struct drm_crtc *crtc =
new_plane_state->crtc;
92915da647be83 John Keeping 2016-03-04 1586 struct drm_crtc_state
*crtc_state;
ba5c1649465d40 Maxime Ripard 2021-02-19 1587 struct drm_framebuffer *fb =
new_plane_state->fb;
2048e3286f347d Mark Yao 2014-08-22 1588 struct vop_win *vop_win =
to_vop_win(plane);
2048e3286f347d Mark Yao 2014-08-22 @1589 const struct vop_win_data *win =
vop_win->data;
671b538f2b304c Benjamin Gaignard 2021-05-17 1590 struct vop_plane_state
*vop_plane_state = to_vop_plane_state(state);
671b538f2b304c Benjamin Gaignard 2021-05-17 1591 const struct vop_data *vop_data;
671b538f2b304c Benjamin Gaignard 2021-05-17 1592 struct vop *vop;
2048e3286f347d Mark Yao 2014-08-22 1593 int ret;
671b538f2b304c Benjamin Gaignard 2021-05-17 1594 struct drm_rect *dest =
&vop_plane_state->dest;
671b538f2b304c Benjamin Gaignard 2021-05-17 1595 struct drm_rect *src =
&vop_plane_state->src;
4c156c21c7948a Mark Yao 2015-06-26 1596 int min_scale =
win->phy->scl ? FRAC_16_16(1, 8) :
4c156c21c7948a Mark Yao 2015-06-26 1597 DRM_PLANE_HELPER_NO_SCALING;
4c156c21c7948a Mark Yao 2015-06-26 1598 int max_scale =
win->phy->scl ? FRAC_16_16(8, 1) :
4c156c21c7948a Mark Yao 2015-06-26 1599 DRM_PLANE_HELPER_NO_SCALING;
671b538f2b304c Benjamin Gaignard 2021-05-17 1600 unsigned long offset;
671b538f2b304c Benjamin Gaignard 2021-05-17 1601 struct drm_gem_object *obj;
671b538f2b304c Benjamin Gaignard 2021-05-17 1602 struct rockchip_gem_object
*rk_obj;
671b538f2b304c Benjamin Gaignard 2021-05-17 1603 dma_addr_t dma_addr;
671b538f2b304c Benjamin Gaignard 2021-05-17 1604 void *kvaddr;
2048e3286f347d Mark Yao 2014-08-22 1605
671b538f2b304c Benjamin Gaignard 2021-05-17 1606 crtc = crtc ? crtc :
plane->state->crtc;
671b538f2b304c Benjamin Gaignard 2021-05-17 1607 if (!crtc || !fb) {
671b538f2b304c Benjamin Gaignard 2021-05-17 1608 plane->state->visible =
false;
d47a7246bb5f2a Tomasz Figa 2016-09-14 1609 return 0;
671b538f2b304c Benjamin Gaignard 2021-05-17 1610 }
92915da647be83 John Keeping 2016-03-04 1611
dec92020671c48 Maxime Ripard 2021-02-19 1612 crtc_state =
drm_atomic_get_existing_crtc_state(state,
ba5c1649465d40 Maxime Ripard 2021-02-19 1613 crtc);
92915da647be83 John Keeping 2016-03-04 1614 if (WARN_ON(!crtc_state))
92915da647be83 John Keeping 2016-03-04 1615 return -EINVAL;
92915da647be83 John Keeping 2016-03-04 1616
671b538f2b304c Benjamin Gaignard 2021-05-17 @1617 src->x1 = state->src_x;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1618 src->y1 = state->src_y;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1619 src->x2 = state->src_x +
state->src_w;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1620 src->y2 = state->src_y +
state->src_h;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1621 dest->x1 = state->crtc_x;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1622 dest->y1 = state->crtc_y;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1623 dest->x2 = state->crtc_x +
state->crtc_w;
671b538f2b304c Benjamin Gaignard 2021-05-17 @1624 dest->y2 = state->crtc_y +
state->crtc_h;
671b538f2b304c Benjamin Gaignard 2021-05-17 1625
ba5c1649465d40 Maxime Ripard 2021-02-19 1626 ret =
drm_atomic_helper_check_plane_state(new_plane_state, crtc_state,
f9b96be0ecb349 Ville Syrjälä 2016-07-26 1627 min_scale, max_scale,
f9b96be0ecb349 Ville Syrjälä 2016-07-26 1628 true, true);
2048e3286f347d Mark Yao 2014-08-22 1629 if (ret)
2048e3286f347d Mark Yao 2014-08-22 1630 return ret;
2048e3286f347d Mark Yao 2014-08-22 1631
ba5c1649465d40 Maxime Ripard 2021-02-19 1632 if (!new_plane_state->visible)
d47a7246bb5f2a Tomasz Figa 2016-09-14 1633 return 0;
84c7f8ca43000e Mark Yao 2015-07-20 1634
671b538f2b304c Benjamin Gaignard 2021-05-17 1635 vop_plane_state->format =
vop_convert_format(fb->format->format);
671b538f2b304c Benjamin Gaignard 2021-05-17 1636 if (vop_plane_state->format
< 0)
671b538f2b304c Benjamin Gaignard 2021-05-17 1637 return
vop_plane_state->format;
671b538f2b304c Benjamin Gaignard 2021-05-17 1638
671b538f2b304c Benjamin Gaignard 2021-05-17 1639 vop = to_vop(crtc);
671b538f2b304c Benjamin Gaignard 2021-05-17 1640 vop_data = vop->data;
671b538f2b304c Benjamin Gaignard 2021-05-17 1641
671b538f2b304c Benjamin Gaignard 2021-05-17 1642 if (state->src_w >> 16
< 4 || state->src_h >> 16 < 4 ||
671b538f2b304c Benjamin Gaignard 2021-05-17 1643 state->crtc_w < 4 ||
state->crtc_h < 4) {
671b538f2b304c Benjamin Gaignard 2021-05-17 1644 DRM_ERROR("Invalid size:
%dx%d->%dx%d, min size is 4x4\n",
671b538f2b304c Benjamin Gaignard 2021-05-17 1645 state->src_w >> 16,
state->src_h >> 16,
671b538f2b304c Benjamin Gaignard 2021-05-17 1646 state->crtc_w,
state->crtc_h);
671b538f2b304c Benjamin Gaignard 2021-05-17 1647 return -EINVAL;
671b538f2b304c Benjamin Gaignard 2021-05-17 1648 }
671b538f2b304c Benjamin Gaignard 2021-05-17 1649
671b538f2b304c Benjamin Gaignard 2021-05-17 1650 if (drm_rect_width(src) >>
16 > vop_data->max_input.width ||
671b538f2b304c Benjamin Gaignard 2021-05-17 1651 drm_rect_height(src) >>
16 > vop_data->max_input.height) {
671b538f2b304c Benjamin Gaignard 2021-05-17 1652 DRM_ERROR("Invalid source:
%dx%d. max input: %dx%d\n",
671b538f2b304c Benjamin Gaignard 2021-05-17 1653 drm_rect_width(src) >>
16,
671b538f2b304c Benjamin Gaignard 2021-05-17 1654 drm_rect_height(src) >>
16,
671b538f2b304c Benjamin Gaignard 2021-05-17 1655 vop_data->max_input.width,
671b538f2b304c Benjamin Gaignard 2021-05-17 1656
vop_data->max_input.height);
671b538f2b304c Benjamin Gaignard 2021-05-17 1657 return -EINVAL;
671b538f2b304c Benjamin Gaignard 2021-05-17 1658 }
2048e3286f347d Mark Yao 2014-08-22 1659
84c7f8ca43000e Mark Yao 2015-07-20 1660 /*
84c7f8ca43000e Mark Yao 2015-07-20 1661 * Src.x1 can be odd when do clip,
but yuv plane start point
84c7f8ca43000e Mark Yao 2015-07-20 1662 * need align with 2 pixel.
84c7f8ca43000e Mark Yao 2015-07-20 1663 */
ba5c1649465d40 Maxime Ripard 2021-02-19 1664 if (fb->format->is_yuv
&& ((new_plane_state->src.x1 >> 16) % 2)) {
d415fb87aa0051 Mark Yao 2017-07-31 1665 DRM_ERROR("Invalid Source:
Yuv format not support odd xpos\n");
63ebb9fa7ff06d Mark Yao 2015-11-30 1666 return -EINVAL;
d415fb87aa0051 Mark Yao 2017-07-31 1667 }
84c7f8ca43000e Mark Yao 2015-07-20 1668
ba5c1649465d40 Maxime Ripard 2021-02-19 1669 if (fb->format->is_yuv
&& new_plane_state->rotation & DRM_MODE_REFLECT_Y) {
677e8bbc0e5a9f Daniele Castagna 2019-01-09 1670 DRM_ERROR("Invalid Source:
Yuv format does not support this rotation\n");
677e8bbc0e5a9f Daniele Castagna 2019-01-09 1671 return -EINVAL;
677e8bbc0e5a9f Daniele Castagna 2019-01-09 1672 }
677e8bbc0e5a9f Daniele Castagna 2019-01-09 1673
671b538f2b304c Benjamin Gaignard 2021-05-17 1674 offset = (src->x1 >> 16)
* fb->format->cpp[0] / 8;
671b538f2b304c Benjamin Gaignard 2021-05-17 1675 vop_plane_state->offset =
offset + fb->offsets[0];
671b538f2b304c Benjamin Gaignard 2021-05-17 1676 if (state->rotation &
DRM_MODE_REFLECT_Y)
671b538f2b304c Benjamin Gaignard 2021-05-17 1677 offset += ((src->y2 >>
16) - 1) * fb->pitches[0];
671b538f2b304c Benjamin Gaignard 2021-05-17 1678 else
671b538f2b304c Benjamin Gaignard 2021-05-17 1679 offset += (src->y1 >>
16) * fb->pitches[0];
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1680
671b538f2b304c Benjamin Gaignard 2021-05-17 1681 obj = fb->obj[0];
671b538f2b304c Benjamin Gaignard 2021-05-17 1682 rk_obj = to_rockchip_obj(obj);
671b538f2b304c Benjamin Gaignard 2021-05-17 1683 dma_addr = rk_obj->dma_addr;
671b538f2b304c Benjamin Gaignard 2021-05-17 1684 kvaddr = rk_obj->kvaddr;
671b538f2b304c Benjamin Gaignard 2021-05-17 1685 vop_plane_state->yrgb_mst =
dma_addr + offset + fb->offsets[0];
671b538f2b304c Benjamin Gaignard 2021-05-17 1686 vop_plane_state->yrgb_kvaddr =
kvaddr + offset + fb->offsets[0];
671b538f2b304c Benjamin Gaignard 2021-05-17 1687 if (fb->format->is_yuv) {
671b538f2b304c Benjamin Gaignard 2021-05-17 1688 int hsub =
fb->format->hsub;
671b538f2b304c Benjamin Gaignard 2021-05-17 1689 int vsub =
fb->format->vsub;
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1690
ba5c1649465d40 Maxime Ripard 2021-02-19 1691 if (new_plane_state->src.x1 ||
new_plane_state->src.y1) {
ba5c1649465d40 Maxime Ripard 2021-02-19 1692 DRM_ERROR("AFBC does not
support offset display, xpos=%d, ypos=%d, offset=%d\n",
ba5c1649465d40 Maxime Ripard 2021-02-19 1693 new_plane_state->src.x1,
ba5c1649465d40 Maxime Ripard 2021-02-19 1694 new_plane_state->src.y1,
fb->offsets[0]);
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1695 return -EINVAL;
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1696 }
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1697
ba5c1649465d40 Maxime Ripard 2021-02-19 1698 if (new_plane_state->rotation
&& new_plane_state->rotation != DRM_MODE_ROTATE_0) {
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1699 DRM_ERROR("No rotation
support in AFBC, rotation=%d\n",
ba5c1649465d40 Maxime Ripard 2021-02-19 1700
new_plane_state->rotation);
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1701 return -EINVAL;
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1702 }
671b538f2b304c Benjamin Gaignard 2021-05-17 1703
671b538f2b304c Benjamin Gaignard 2021-05-17 1704 offset = (src->x1 >> 16)
* fb->format->cpp[1] / hsub / 8;
671b538f2b304c Benjamin Gaignard 2021-05-17 1705 offset += (src->y1 >>
16) * fb->pitches[1] / vsub;
671b538f2b304c Benjamin Gaignard 2021-05-17 1706
671b538f2b304c Benjamin Gaignard 2021-05-17 1707 obj = fb->obj[1];
671b538f2b304c Benjamin Gaignard 2021-05-17 1708 rk_obj = to_rockchip_obj(obj);
671b538f2b304c Benjamin Gaignard 2021-05-17 1709 dma_addr = rk_obj->dma_addr;
671b538f2b304c Benjamin Gaignard 2021-05-17 1710 dma_addr += offset +
fb->offsets[1];
671b538f2b304c Benjamin Gaignard 2021-05-17 1711 vop_plane_state->uv_mst =
dma_addr;
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1712 }
7707f7227f0961 Andrzej Pietrasiewicz 2020-03-11 1713
63ebb9fa7ff06d Mark Yao 2015-11-30 1714 return 0;
63ebb9fa7ff06d Mark Yao 2015-11-30 1715 }
2048e3286f347d Mark Yao 2014-08-22 1716
:::::: The code at line 1589 was first introduced by commit
:::::: 2048e3286f347db5667708e47448176b5329e8d8 drm: rockchip: Add basic drm driver
:::::: TO: Mark Yao <mark.yao(a)rock-chips.com>
:::::: CC: yzq <yzq(a)rock-chips.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org