[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202112101636.y17bk2Zb-lkp@intel.com>
Date: Fri, 10 Dec 2021 16:11:43 +0800
From: kernel test robot <lkp@...el.com>
To: Neil Armstrong <narmstrong@...libre.com>
Cc: llvm@...ts.linux.dev, kbuild-all@...ts.01.org,
linux-kernel@...r.kernel.org
Subject: [superna9999:amlogic/v5.17/g12-dsi 5/7]
drivers/gpu/drm/meson/meson_encoder_dsi.c:72:2: error: implicit declaration
of function 'meson_vclk_setup'
tree: https://github.com/superna9999/linux amlogic/v5.17/g12-dsi
head: cc44c3ce92a63f2c59a3f0ac03e6defd41542940
commit: e1e87e576f5befbf752a2c7b9c019328f1742d71 [5/7] fixup! WIP: drm/meson: add DSI encoder
config: arm-randconfig-r034-20211210 (https://download.01.org/0day-ci/archive/20211210/202112101636.y17bk2Zb-lkp@intel.com/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 097a1cb1d5ebb3a0ec4bcaed8ba3ff6a8e33c00a)
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
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://github.com/superna9999/linux/commit/e1e87e576f5befbf752a2c7b9c019328f1742d71
git remote add superna9999 https://github.com/superna9999/linux
git fetch --no-tags superna9999 amlogic/v5.17/g12-dsi
git checkout e1e87e576f5befbf752a2c7b9c019328f1742d71
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/gpu/drm/meson/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>
All errors (new ones prefixed by >>):
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:72:2: error: implicit declaration of function 'meson_vclk_setup' [-Werror,-Wimplicit-function-declaration]
meson_vclk_setup(priv, MESON_VCLK_TARGET_DSI, mode->clock * 1000, 0, 0, 0, false);
^
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:72:25: error: use of undeclared identifier 'MESON_VCLK_TARGET_DSI'
meson_vclk_setup(priv, MESON_VCLK_TARGET_DSI, mode->clock * 1000, 0, 0, 0, false);
^
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:74:2: error: implicit declaration of function 'meson_venc_encoder_dsi_mode_set' [-Werror,-Wimplicit-function-declaration]
meson_venc_encoder_dsi_mode_set(priv, mode);
^
drivers/gpu/drm/meson/meson_encoder_dsi.c:74:2: note: did you mean 'meson_venc_mipi_dsi_mode_set'?
drivers/gpu/drm/meson/meson_venc.h:70:6: note: 'meson_venc_mipi_dsi_mode_set' declared here
void meson_venc_mipi_dsi_mode_set(struct meson_drm *priv,
^
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:96:18: error: use of undeclared identifier 'meson_encoder_dsi_atomic_check'; did you mean 'meson_encoder_dsi_atomic_enable'?
.atomic_check = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
meson_encoder_dsi_atomic_enable
drivers/gpu/drm/meson/meson_encoder_dsi.c:45:13: note: 'meson_encoder_dsi_atomic_enable' declared here
static void meson_encoder_dsi_atomic_enable(struct drm_bridge *bridge,
^
drivers/gpu/drm/meson/meson_encoder_dsi.c:97:19: error: use of undeclared identifier 'meson_encoder_dsi_atomic_check'; did you mean 'meson_encoder_dsi_atomic_enable'?
.atomic_enable = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
meson_encoder_dsi_atomic_enable
drivers/gpu/drm/meson/meson_encoder_dsi.c:45:13: note: 'meson_encoder_dsi_atomic_enable' declared here
static void meson_encoder_dsi_atomic_enable(struct drm_bridge *bridge,
^
drivers/gpu/drm/meson/meson_encoder_dsi.c:98:20: error: use of undeclared identifier 'meson_encoder_dsi_atomic_check'; did you mean 'meson_encoder_dsi_atomic_enable'?
.atomic_disable = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
meson_encoder_dsi_atomic_enable
drivers/gpu/drm/meson/meson_encoder_dsi.c:45:13: note: 'meson_encoder_dsi_atomic_enable' declared here
static void meson_encoder_dsi_atomic_enable(struct drm_bridge *bridge,
^
drivers/gpu/drm/meson/meson_encoder_dsi.c:99:18: error: use of undeclared identifier 'meson_encoder_dsi_atomic_check'; did you mean 'meson_encoder_dsi_atomic_enable'?
.atomic_check = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
meson_encoder_dsi_atomic_enable
drivers/gpu/drm/meson/meson_encoder_dsi.c:45:13: note: 'meson_encoder_dsi_atomic_enable' declared here
static void meson_encoder_dsi_atomic_enable(struct drm_bridge *bridge,
^
>> drivers/gpu/drm/meson/meson_encoder_dsi.c:96:18: error: incompatible function pointer types initializing 'int (*)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *)' with an expression of type 'void (struct drm_bridge *, struct drm_bridge_state *)' [-Werror,-Wincompatible-function-pointer-types]
.atomic_check = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_encoder_dsi.c:99:18: error: incompatible function pointer types initializing 'int (*)(struct drm_bridge *, struct drm_bridge_state *, struct drm_crtc_state *, struct drm_connector_state *)' with an expression of type 'void (struct drm_bridge *, struct drm_bridge_state *)' [-Werror,-Wincompatible-function-pointer-types]
.atomic_check = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_encoder_dsi.c:99:18: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
.atomic_check = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_encoder_dsi.c:96:18: note: previous initialization is here
.atomic_check = meson_encoder_dsi_atomic_check,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 warning and 9 errors generated.
vim +/meson_vclk_setup +72 drivers/gpu/drm/meson/meson_encoder_dsi.c
44
45 static void meson_encoder_dsi_atomic_enable(struct drm_bridge *bridge,
46 struct drm_bridge_state *bridge_state)
47 {
48 struct meson_encoder_dsi *encoder_dsi = bridge_to_meson_encoder_dsi(bridge);
49 struct drm_atomic_state *state = bridge_state->base.state;
50 struct meson_drm *priv = encoder_dsi->priv;
51 struct drm_connector_state *conn_state;
52 struct drm_crtc_state *crtc_state;
53 struct drm_connector *connector;
54 struct drm_display_mode *mode;
55
56 connector = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder);
57 if (WARN_ON(!connector))
58 return;
59
60 conn_state = drm_atomic_get_new_connector_state(state, connector);
61 if (WARN_ON(!conn_state))
62 return;
63
64 crtc_state = drm_atomic_get_new_crtc_state(state, conn_state->crtc);
65 if (WARN_ON(!crtc_state))
66 return;
67
68 mode = &crtc_state->adjusted_mode;
69 if (WARN_ON(!mode))
70 return;
71
> 72 meson_vclk_setup(priv, MESON_VCLK_TARGET_DSI, mode->clock * 1000, 0, 0, 0, false);
73
> 74 meson_venc_encoder_dsi_mode_set(priv, mode);
75
76 meson_encl_load_gamma(priv);
77
78 writel_bits_relaxed(BIT(3), BIT(3), priv->io_base + _REG(ENCL_VIDEO_MODE_ADV));
79 writel_relaxed(0, priv->io_base + _REG(ENCL_TST_EN));
80
81 writel_relaxed(1, priv->io_base + _REG(ENCL_VIDEO_EN));
82 }
83
84 static void meson_encoder_dsi_atomic_disable(struct drm_bridge *bridge,
85 struct drm_bridge_state *bridge_state)
86 {
87 struct meson_encoder_dsi *meson_encoder_dsi =
88 bridge_to_meson_encoder_dsi(bridge);
89 struct meson_drm *priv = meson_encoder_dsi->priv;
90
91 writel_relaxed(0, priv->io_base + _REG(ENCL_VIDEO_EN));
92 }
93
94 static const struct drm_bridge_funcs meson_encoder_dsi_bridge_funcs = {
95 .attach = meson_encoder_dsi_attach,
> 96 .atomic_check = meson_encoder_dsi_atomic_check,
97 .atomic_enable = meson_encoder_dsi_atomic_check,
98 .atomic_disable = meson_encoder_dsi_atomic_check,
> 99 .atomic_check = meson_encoder_dsi_atomic_check,
100 .atomic_duplicate_state = drm_atomic_helper_bridge_duplicate_state,
101 .atomic_destroy_state = drm_atomic_helper_bridge_destroy_state,
102 .atomic_reset = drm_atomic_helper_bridge_reset,
103 };
104
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
Powered by blists - more mailing lists