lkml.org 
[lkml]   [2021]   [Dec]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
Subject[superna9999:amlogic/v5.17/g12-dsi 6/23] drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:58:23: error: 'encoder_dsi' undeclared
tree:   https://github.com/superna9999/linux amlogic/v5.17/g12-dsi
head: 62dac9179f2937dc08bffe08d15c6846bc4aedb4
commit: 02c9727464cf0ef4cebca0197a0f7395be6371f7 [6/23] fixup! drm/meson: add support for MIPI-DSI transceiver
config: arm64-allyesconfig (https://download.01.org/0day-ci/archive/20211212/202112120900.1gurSnwO-lkp@intel.com/config)
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/superna9999/linux/commit/02c9727464cf0ef4cebca0197a0f7395be6371f7
git remote add superna9999 https://github.com/superna9999/linux
git fetch --no-tags superna9999 amlogic/v5.17/g12-dsi
git checkout 02c9727464cf0ef4cebca0197a0f7395be6371f7
# 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

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

Note: the superna9999/amlogic/v5.17/g12-dsi HEAD 62dac9179f2937dc08bffe08d15c6846bc4aedb4 builds fine.
It only hurts bisectability.

All errors (new ones prefixed by >>):

drivers/gpu/drm/meson/meson_dw_mipi_dsi.c: In function 'dw_mipi_dsi_phy_init':
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:58:23: error: 'encoder_dsi' undeclared (first use in this function)
58 | phy_configure(encoder_dsi->phy, &mipi_dsi->phy_opts);
| ^~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:58:23: note: each undeclared identifier is reported only once for each function it appears in
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:68:9: error: implicit declaration of function 'meson_dw_mipi_dsi_hw_init'; did you mean 'dw_mipi_dsi_phy_init'? [-Werror=implicit-function-declaration]
68 | meson_dw_mipi_dsi_hw_init(mipi_dsi);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
| dw_mipi_dsi_phy_init
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:72:35: error: 'COLOR_24BIT' undeclared (first use in this function)
72 | dpi_data_format = COLOR_24BIT;
| ^~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:73:35: error: 'MIPI_DSI_VENC_COLOR_24B' undeclared (first use in this function)
73 | venc_data_width = MIPI_DSI_VENC_COLOR_24B;
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:76:35: error: 'COLOR_18BIT_CFG_2' undeclared (first use in this function)
76 | dpi_data_format = COLOR_18BIT_CFG_2;
| ^~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:77:35: error: 'MIPI_DSI_VENC_COLOR_18B' undeclared (first use in this function)
77 | venc_data_width = MIPI_DSI_VENC_COLOR_18B;
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:70:9: warning: enumeration value 'MIPI_DSI_FMT_RGB666_PACKED' not handled in switch [-Wswitch]
70 | switch (mipi_dsi->dsi_device->format) {
| ^~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:70:9: warning: enumeration value 'MIPI_DSI_FMT_RGB565' not handled in switch [-Wswitch]
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:89:59: error: macro "writel_relaxed" passed 3 arguments, but takes just 2
89 | mipi_dsi->base + MIPI_DSI_TOP_CNTL);
| ^
In file included from include/linux/io.h:13,
from include/linux/irq.h:20,
from include/asm-generic/hardirq.h:17,
from arch/arm64/include/asm/hardirq.h:17,
from include/linux/hardirq.h:11,
from include/linux/interrupt.h:11,
from include/linux/kernel_stat.h:9,
from include/linux/cgroup.h:26,
from include/linux/memcontrol.h:13,
from include/linux/swap.h:9,
from include/linux/suspend.h:5,
from include/linux/regulator/consumer.h:35,
from include/linux/phy/phy.h:17,
from drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:15:
arch/arm64/include/asm/io.h:127: note: macro "writel_relaxed" defined here
127 | #define writel_relaxed(v,c) ((void)__raw_writel((__force u32)cpu_to_le32(v),(c)))
|
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:82:9: error: 'writel_relaxed' undeclared (first use in this function)
82 | writel_relaxed((dpi_data_format << BIT_DPI_COLOR_MODE) |
| ^~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:55:27: warning: unused variable 'priv' [-Wunused-variable]
55 | struct meson_drm *priv = mipi_dsi->priv;
| ^~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:54:39: warning: variable 'venc_data_width' set but not used [-Wunused-but-set-variable]
54 | unsigned int dpi_data_format, venc_data_width;
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:54:22: warning: variable 'dpi_data_format' set but not used [-Wunused-but-set-variable]
54 | unsigned int dpi_data_format, venc_data_width;
| ^~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c: In function 'dw_mipi_dsi_get_lane_mbps':
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:111:24: warning: assignment discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
111 | mipi_dsi->mode = mode;
| ^
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:113:15: error: implicit declaration of function 'encoder_dsi_pixel_format_to_bpp'; did you mean 'mipi_dsi_pixel_format_to_bpp'? [-Werror=implicit-function-declaration]
113 | bpp = encoder_dsi_pixel_format_to_bpp(mipi_dsi->dsi_device->format);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| mipi_dsi_pixel_format_to_bpp
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:116:47: error: 'encoder_dsi' undeclared (first use in this function)
116 | bpp, encoder_dsi->dsi_device->lanes,
| ^~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c: In function 'meson_dw_mipi_dsi_bind':
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:161:13: warning: unused variable 'ret' [-Wunused-variable]
161 | int ret;
| ^~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:160:29: warning: unused variable 'encoder' [-Wunused-variable]
160 | struct drm_encoder *encoder;
| ^~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c: At top level:
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:176:13: warning: conflicting types for 'meson_dw_mipi_dsi_hw_init'; have 'void(struct meson_dw_mipi_dsi *)'
176 | static void meson_dw_mipi_dsi_hw_init(struct meson_dw_mipi_dsi *mipi_dsi)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:176:13: error: static declaration of 'meson_dw_mipi_dsi_hw_init' follows non-static declaration
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:68:9: note: previous implicit declaration of 'meson_dw_mipi_dsi_hw_init' with type 'void(struct meson_dw_mipi_dsi *)'
68 | meson_dw_mipi_dsi_hw_init(mipi_dsi);
| ^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c: In function 'meson_dw_mipi_dsi_host_attach':
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:200:9: error: implicit declaration of function 'witch' [-Werror=implicit-function-declaration]
200 | witch (device->format) {
| ^~~~~
>> drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:200:31: error: expected ';' before '{' token
200 | witch (device->format) {
| ^~
| ;
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:196:13: warning: unused variable 'reg' [-Wunused-variable]
196 | u32 reg;
| ^~~
At top level:
drivers/gpu/drm/meson/meson_dw_mipi_dsi.c:176:13: warning: 'meson_dw_mipi_dsi_hw_init' defined but not used [-Wunused-function]
176 | static void meson_dw_mipi_dsi_hw_init(struct meson_dw_mipi_dsi *mipi_dsi)
| ^~~~~~~~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors


vim +/encoder_dsi +58 drivers/gpu/drm/meson/meson_dw_mipi_dsi.c

47
48 #define encoder_to_meson_dw_mipi_dsi(x) \
49 container_of(x, struct meson_dw_mipi_dsi, encoder)
50
51 static int dw_mipi_dsi_phy_init(void *priv_data)
52 {
53 struct meson_dw_mipi_dsi *mipi_dsi = priv_data;
54 unsigned int dpi_data_format, venc_data_width;
55 struct meson_drm *priv = mipi_dsi->priv;
56 int ret;
57
> 58 phy_configure(encoder_dsi->phy, &mipi_dsi->phy_opts);
59
60 ret = clk_set_rate(mipi_dsi->px_clk, mipi_dsi->phy_opts.mipi_dphy.hs_clk_rate);
61 if (ret) {
62 pr_err("Failed to set DSI PLL rate %lu\n",
63 mipi_dsi->phy_opts.mipi_dphy.hs_clk_rate);
64
65 return ret;
66 }
67
> 68 meson_dw_mipi_dsi_hw_init(mipi_dsi);
69
70 switch (mipi_dsi->dsi_device->format) {
71 case MIPI_DSI_FMT_RGB888:
> 72 dpi_data_format = COLOR_24BIT;
> 73 venc_data_width = MIPI_DSI_VENC_COLOR_24B;
74 break;
75 case MIPI_DSI_FMT_RGB666:
> 76 dpi_data_format = COLOR_18BIT_CFG_2;
> 77 venc_data_width = MIPI_DSI_VENC_COLOR_18B;
78 break;
79 };
80
81 /* Configure color format for DPI register */
> 82 writel_relaxed((dpi_data_format << BIT_DPI_COLOR_MODE) |
83 (venc_data_width << BIT_IN_COLOR_MODE) |
84 0 << BIT_COMP0_SEL |
85 1 << BIT_COMP1_SEL |
86 2 << BIT_COMP2_SEL,
87 (mipi_dsi->mode->flags & DRM_MODE_FLAG_NHSYNC ? 0 : BIT(BIT_HSYNC_POL)) |
88 (mipi_dsi->mode->flags & DRM_MODE_FLAG_NVSYNC ? 0 : BIT(BIT_VSYNC_POL)),
> 89 mipi_dsi->base + MIPI_DSI_TOP_CNTL);
90
91 phy_power_on(mipi_dsi->phy);
92
93 return 0;
94 }
95
96 static void dw_mipi_dsi_phy_power_off(void *priv_data)
97 {
98 struct meson_dw_mipi_dsi *mipi_dsi = priv_data;
99
100 phy_power_off(mipi_dsi->phy);
101 }
102
103 static int
104 dw_mipi_dsi_get_lane_mbps(void *priv_data, const struct drm_display_mode *mode,
105 unsigned long mode_flags, u32 lanes, u32 format,
106 unsigned int *lane_mbps)
107 {
108 struct meson_dw_mipi_dsi *mipi_dsi = priv_data;
109 int bpp;
110
111 mipi_dsi->mode = mode;
112
> 113 bpp = encoder_dsi_pixel_format_to_bpp(mipi_dsi->dsi_device->format);
114
115 phy_mipi_dphy_get_default_config(mode->clock * 1000,
116 bpp, encoder_dsi->dsi_device->lanes,
117 &mipi_dsi->phy_opts.mipi_dphy);
118
119 *lane_mbps = mipi_dsi->phy_opts.mipi_dphy.hs_clk_rate / 1000000;
120
121 return 0;
122 }
123
124 static int
125 dw_mipi_dsi_phy_get_timing(void *priv_data, unsigned int lane_mbps,
126 struct dw_mipi_dsi_dphy_timing *timing)
127 {
128 /* TOFIX handle other cases */
129
130 timing->clk_lp2hs = 37;
131 timing->clk_hs2lp = 135;
132 timing->data_lp2hs = 50;
133 timing->data_hs2lp = 3;
134
135 return 0;
136 }
137
138 static int
139 dw_mipi_dsi_get_esc_clk_rate(void *priv_data, unsigned int *esc_clk_rate)
140 {
141 *esc_clk_rate = 4; /* Mhz */
142
143 return 0;
144 }
145
146 static const struct dw_mipi_dsi_phy_ops meson_dw_mipi_dsi_phy_ops = {
147 .init = dw_mipi_dsi_phy_init,
148 .power_off = dw_mipi_dsi_phy_power_off,
149 .get_lane_mbps = dw_mipi_dsi_get_lane_mbps,
150 .get_timing = dw_mipi_dsi_phy_get_timing,
151 .get_esc_clk_rate = dw_mipi_dsi_get_esc_clk_rate,
152 };
153
154 static int meson_dw_mipi_dsi_bind(struct device *dev, struct device *master,
155 void *data)
156 {
157 struct meson_dw_mipi_dsi *mipi_dsi = dev_get_drvdata(dev);
158 struct drm_device *drm = data;
159 struct meson_drm *priv = drm->dev_private;
160 struct drm_encoder *encoder;
161 int ret;
162
163 /* Check before if we are supposed to have a sub-device... */
164 if (!mipi_dsi->dsi_device)
165 return -EPROBE_DEFER;
166
167 mipi_dsi->priv = priv;
168
169 return 0;
170 }
171
172 static const struct component_ops meson_dw_mipi_dsi_ops = {
173 .bind = meson_dw_mipi_dsi_bind,
174 };
175
176 static void meson_dw_mipi_dsi_hw_init(struct meson_dw_mipi_dsi *mipi_dsi)
177 {
178 writel_relaxed((1 << 4) | (1 << 5) | (0 << 6),
179 mipi_dsi->base + MIPI_DSI_TOP_CNTL);
180
181 writel_bits_relaxed(0xf, 0xf,
182 mipi_dsi->base + MIPI_DSI_TOP_SW_RESET);
183 writel_bits_relaxed(0xf, 0,
184 mipi_dsi->base + MIPI_DSI_TOP_SW_RESET);
185
186 writel_bits_relaxed(0x3, 0x3,
187 mipi_dsi->base + MIPI_DSI_TOP_CLK_CNTL);
188
189 writel_relaxed(0, mipi_dsi->base + MIPI_DSI_TOP_MEM_PD);
190 }
191
192 static int meson_dw_mipi_dsi_host_attach(void *priv_data,
193 struct mipi_dsi_device *device)
194 {
195 struct meson_dw_mipi_dsi *mipi_dsi = priv_data;
196 u32 reg;
197
198 mipi_dsi->dsi_device = device;
199
> 200 witch (device->format) {
201 case MIPI_DSI_FMT_RGB888:
202 dpi_data_format = COLOR_24BIT;
203 venc_data_width = MIPI_DSI_VENC_COLOR_24B;
204 break;
205 case MIPI_DSI_FMT_RGB666:
206 dpi_data_format = COLOR_18BIT_CFG_2;
207 venc_data_width = MIPI_DSI_VENC_COLOR_18B;
208 break;
209 case MIPI_DSI_FMT_RGB666_PACKED:
210 case MIPI_DSI_FMT_RGB565:
211 DRM_DEV_ERROR(mipi_dsi->dev, "invalid pixel format %d\n", device->format);
212 return -EINVAL;
213 };
214
215 phy_init(mipi_dsi->phy);
216
217 return 0;
218 }
219

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

\
 
 \ /
  Last update: 2021-12-12 02:30    [W:0.042 / U:0.536 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site