Hi Neil,
I love your patch! Yet something to improve:
[auto build test ERROR on drm-tip/drm-tip]
[also build test ERROR on drm-exynos/exynos-drm-next next-20220120]
[cannot apply to drm/drm-next drm-intel/for-linux-next tegra-drm/drm/tegra/for-next
airlied/drm-next v5.16]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Neil-Armstrong/drm-meson-add-sup...
base:
git://anongit.freedesktop.org/drm/drm-tip drm-tip
config: arm64-buildonly-randconfig-r005-20220120
(
https://download.01.org/0day-ci/archive/20220121/202201210137.9hzPb4nG-lk...)
compiler: aarch64-linux-gcc (GCC) 11.2.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
#
https://github.com/0day-ci/linux/commit/2684fdff4655533195eb3db9760865fea...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Neil-Armstrong/drm-meson-add-support-for-MIPI-DSI-Display/20220120-163607
git checkout 2684fdff4655533195eb3db9760865fea5a13dc7
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir
ARCH=arm64 SHELL=/bin/bash drivers/gpu/drm/meson/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/linux/swab.h:5,
from include/uapi/linux/byteorder/big_endian.h:14,
from include/linux/byteorder/big_endian.h:5,
from arch/arm64/include/uapi/asm/byteorder.h:21,
from include/asm-generic/bitops/le.h:7,
from arch/arm64/include/asm/bitops.h:29,
from include/linux/bitops.h:33,
from include/linux/kernel.h:13,
from drivers/gpu/drm/meson/meson_encoder_dsi.c:8:
drivers/gpu/drm/meson/meson_encoder_dsi.c: In function
'meson_encoder_dsi_mode_set':
> drivers/gpu/drm/meson/meson_encoder_dsi.c:59:29: error:
'ENCL_VIDEO_MODE_ADV_VFIFO_EN' undeclared (first use in this function); did you
mean 'ENCI_VIDEO_MODE_ADV_YBW_LOW'?
59 |
writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN, ENCL_VIDEO_MODE_ADV_VFIFO_EN,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro
'__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_registers.h:15:9: note: in expansion of macro
'writel_relaxed'
15 | writel_relaxed((readl_relaxed(addr) & ~(mask)) | ((val) &
(mask)), addr)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_encoder_dsi.c:59:9: note: in expansion of macro
'writel_bits_relaxed'
59 | writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN,
ENCL_VIDEO_MODE_ADV_VFIFO_EN,
| ^~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_encoder_dsi.c:59:29: note: each undeclared identifier is
reported only once for each function it appears in
59 | writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN,
ENCL_VIDEO_MODE_ADV_VFIFO_EN,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/uapi/linux/swab.h:118:39: note: in definition of macro '__swab32'
118 | (__builtin_constant_p((__u32)(x)) ? \
| ^
include/linux/byteorder/generic.h:88:21: note: in expansion of macro
'__cpu_to_le32'
88 | #define cpu_to_le32 __cpu_to_le32
| ^~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_registers.h:15:9: note: in expansion of macro
'writel_relaxed'
15 | writel_relaxed((readl_relaxed(addr) & ~(mask)) | ((val) &
(mask)), addr)
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_encoder_dsi.c:59:9: note: in expansion of macro
'writel_bits_relaxed'
59 | writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN,
ENCL_VIDEO_MODE_ADV_VFIFO_EN,
| ^~~~~~~~~~~~~~~~~~~
vim +59 drivers/gpu/drm/meson/meson_encoder_dsi.c
8 #include <linux/kernel.h>
9 #include
<linux/module.h>
10 #include <linux/of_device.h>
11 #include <linux/of_graph.h>
12
13 #include <drm/drm_atomic_helper.h>
14 #include <drm/drm_simple_kms_helper.h>
15 #include <drm/drm_bridge.h>
16 #include <drm/drm_bridge_connector.h>
17 #include <drm/drm_device.h>
18 #include <drm/drm_probe_helper.h>
19
20 #include "meson_drv.h"
21 #include "meson_encoder_dsi.h"
22 #include "meson_registers.h"
23 #include "meson_venc.h"
24 #include "meson_vclk.h"
25
26 struct meson_encoder_dsi {
27 struct drm_encoder encoder;
28 struct drm_bridge bridge;
29 struct drm_bridge *next_bridge;
30 struct meson_drm *priv;
31 };
32
33 #define bridge_to_meson_encoder_dsi(x) \
34 container_of(x, struct meson_encoder_dsi, bridge)
35
36 static int meson_encoder_dsi_attach(struct drm_bridge *bridge,
37 enum drm_bridge_attach_flags flags)
38 {
39 struct meson_encoder_dsi *encoder_dsi = bridge_to_meson_encoder_dsi(bridge);
40
41 return drm_bridge_attach(bridge->encoder, encoder_dsi->next_bridge,
42 &encoder_dsi->bridge, flags);
43 }
44
45 static void meson_encoder_dsi_mode_set(struct drm_bridge *bridge,
46 const struct drm_display_mode *mode,
47 const struct drm_display_mode *adjusted_mode)
48 {
49 struct meson_encoder_dsi *encoder_dsi = bridge_to_meson_encoder_dsi(bridge);
50 struct meson_drm *priv = encoder_dsi->priv;
51
52 meson_vclk_setup(priv, MESON_VCLK_TARGET_DSI, mode->clock, 0, 0, 0, false);
53
54 meson_venc_mipi_dsi_mode_set(priv, mode);
55 meson_encl_load_gamma(priv);
56
57 writel_relaxed(0, priv->io_base + _REG(ENCL_VIDEO_EN));
58
59 writel_bits_relaxed(ENCL_VIDEO_MODE_ADV_VFIFO_EN,
ENCL_VIDEO_MODE_ADV_VFIFO_EN,
60 priv->io_base +
_REG(ENCL_VIDEO_MODE_ADV));
61 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_EN));
62 }
63
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org