From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [RFC PATCH 3/6] drm: mxc-epdc: Add display and waveform initialisation
Date: Sun, 06 Feb 2022 18:08:20 +0800 [thread overview]
Message-ID: <202202061857.ZmlrNbez-lkp@intel.com> (raw)
In-Reply-To: <20220206080016.796556-4-andreas@kemnade.info>
[-- Attachment #1: Type: text/plain, Size: 10515 bytes --]
Hi Andreas,
[FYI, it's a private test report for your RFC patch.]
[auto build test WARNING on drm/drm-next]
[also build test WARNING on robh/for-next v5.17-rc2 next-20220204]
[cannot apply to pza/reset/next]
[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/Andreas-Kemnade/drm-EPDC-driver-for-i-MX6/20220206-162244
base: git://anongit.freedesktop.org/drm/drm drm-next
config: arc-allyesconfig (https://download.01.org/0day-ci/archive/20220206/202202061857.ZmlrNbez-lkp(a)intel.com/config)
compiler: arceb-elf-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/e5b9ffe09a0668f81e87931aee2281dc7340d40b
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Andreas-Kemnade/drm-EPDC-driver-for-i-MX6/20220206-162244
git checkout e5b9ffe09a0668f81e87931aee2281dc7340d40b
# 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=arc SHELL=/bin/bash drivers/gpu/drm/mxc-epdc/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
>> drivers/gpu/drm/mxc-epdc/epdc_hw.c:174:6: warning: no previous prototype for 'epdc_init_settings' [-Wmissing-prototypes]
174 | void epdc_init_settings(struct mxc_epdc *priv, struct drm_display_mode *m)
| ^~~~~~~~~~~~~~~~~~
--
>> drivers/gpu/drm/mxc-epdc/epdc_waveform.c:49:6: warning: no previous prototype for 'mxc_epdc_set_update_waveform' [-Wmissing-prototypes]
49 | void mxc_epdc_set_update_waveform(struct mxc_epdc *priv,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/mxc-epdc/epdc_waveform.c:77:5: warning: no previous prototype for 'mxc_epdc_fb_get_temp_index' [-Wmissing-prototypes]
77 | int mxc_epdc_fb_get_temp_index(struct mxc_epdc *priv, int temp)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/gpu/drm/mxc-epdc/epdc_waveform.c:132:5: warning: no previous prototype for 'mxc_epdc_prepare_waveform' [-Wmissing-prototypes]
132 | int mxc_epdc_prepare_waveform(struct mxc_epdc *priv,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
vim +/epdc_init_settings +174 drivers/gpu/drm/mxc-epdc/epdc_hw.c
172
173
> 174 void epdc_init_settings(struct mxc_epdc *priv, struct drm_display_mode *m)
175 {
176 u32 reg_val;
177 int num_ce;
178 int i;
179
180 /* Enable clocks to access EPDC regs */
181 clk_prepare_enable(priv->epdc_clk_axi);
182 clk_prepare_enable(priv->epdc_clk_pix);
183
184 /* Reset */
185 epdc_write(priv, EPDC_CTRL_SET, EPDC_CTRL_SFTRST);
186 while (!(epdc_read(priv, EPDC_CTRL) & EPDC_CTRL_CLKGATE))
187 ;
188 epdc_write(priv, EPDC_CTRL_CLEAR, EPDC_CTRL_SFTRST);
189
190 /* Enable clock gating (clear to enable) */
191 epdc_write(priv, EPDC_CTRL_CLEAR, EPDC_CTRL_CLKGATE);
192 while (epdc_read(priv, EPDC_CTRL) & (EPDC_CTRL_SFTRST | EPDC_CTRL_CLKGATE))
193 ;
194
195 /* EPDC_CTRL */
196 reg_val = epdc_read(priv, EPDC_CTRL);
197 reg_val &= ~EPDC_CTRL_UPD_DATA_SWIZZLE_MASK;
198 reg_val |= EPDC_CTRL_UPD_DATA_SWIZZLE_NO_SWAP;
199 reg_val &= ~EPDC_CTRL_LUT_DATA_SWIZZLE_MASK;
200 reg_val |= EPDC_CTRL_LUT_DATA_SWIZZLE_NO_SWAP;
201 epdc_write(priv, EPDC_CTRL_SET, reg_val);
202
203 /* EPDC_FORMAT - 2bit TFT and buf_pix_fmt Buf pixel format */
204 reg_val = EPDC_FORMAT_TFT_PIXEL_FORMAT_2BIT
205 | priv->buf_pix_fmt
206 | ((0x0 << EPDC_FORMAT_DEFAULT_TFT_PIXEL_OFFSET) &
207 EPDC_FORMAT_DEFAULT_TFT_PIXEL_MASK);
208 epdc_write(priv, EPDC_FORMAT, reg_val);
209 if (priv->rev >= 30) {
210 if (priv->buf_pix_fmt == EPDC_FORMAT_BUF_PIXEL_FORMAT_P5N) {
211 epdc_write(priv, EPDC_WB_FIELD2, 0xc554);
212 epdc_write(priv, EPDC_WB_FIELD1, 0xa004);
213 } else {
214 epdc_write(priv, EPDC_WB_FIELD2, 0xc443);
215 epdc_write(priv, EPDC_WB_FIELD1, 0xa003);
216 }
217 }
218
219 /* EPDC_FIFOCTRL (disabled) */
220 reg_val =
221 ((100 << EPDC_FIFOCTRL_FIFO_INIT_LEVEL_OFFSET) &
222 EPDC_FIFOCTRL_FIFO_INIT_LEVEL_MASK)
223 | ((200 << EPDC_FIFOCTRL_FIFO_H_LEVEL_OFFSET) &
224 EPDC_FIFOCTRL_FIFO_H_LEVEL_MASK)
225 | ((100 << EPDC_FIFOCTRL_FIFO_L_LEVEL_OFFSET) &
226 EPDC_FIFOCTRL_FIFO_L_LEVEL_MASK);
227 epdc_write(priv, EPDC_FIFOCTRL, reg_val);
228
229 /* EPDC_TEMP - Use default temp to get index */
230 epdc_write(priv, EPDC_TEMP,
231 mxc_epdc_fb_get_temp_index(priv, TEMP_USE_AMBIENT));
232
233 /* EPDC_RES */
234 epdc_set_screen_res(priv, m->hdisplay, m->vdisplay);
235
236 /* EPDC_AUTOWV_LUT */
237 /* Initialize all auto-wavefrom look-up values to 2 - GC16 */
238 for (i = 0; i < 8; i++)
239 epdc_write(priv, EPDC_AUTOWV_LUT,
240 (2 << EPDC_AUTOWV_LUT_DATA_OFFSET) |
241 (i << EPDC_AUTOWV_LUT_ADDR_OFFSET));
242
243 /*
244 * EPDC_TCE_CTRL
245 * VSCAN_HOLDOFF = 4
246 * VCOM_MODE = MANUAL
247 * VCOM_VAL = 0
248 * DDR_MODE = DISABLED
249 * LVDS_MODE_CE = DISABLED
250 * LVDS_MODE = DISABLED
251 * DUAL_SCAN = DISABLED
252 * SDDO_WIDTH = 8bit
253 * PIXELS_PER_SDCLK = 4
254 */
255 reg_val =
256 ((priv->imx_mode.vscan_holdoff << EPDC_TCE_CTRL_VSCAN_HOLDOFF_OFFSET) &
257 EPDC_TCE_CTRL_VSCAN_HOLDOFF_MASK)
258 | EPDC_TCE_CTRL_PIXELS_PER_SDCLK_4;
259 epdc_write(priv, EPDC_TCE_CTRL, reg_val);
260
261 /* EPDC_TCE_HSCAN */
262 epdc_set_horizontal_timing(priv, m->hsync_start - m->hdisplay,
263 m->htotal - m->hsync_end,
264 m->hsync_end - m->hsync_start,
265 m->hsync_end - m->hsync_start);
266
267 /* EPDC_TCE_VSCAN */
268 epdc_set_vertical_timing(priv, m->vsync_start - m->vdisplay,
269 m->vtotal - m->vsync_end,
270 m->vsync_end - m->vsync_start);
271
272 /* EPDC_TCE_OE */
273 reg_val =
274 ((priv->imx_mode.sdoed_width << EPDC_TCE_OE_SDOED_WIDTH_OFFSET) &
275 EPDC_TCE_OE_SDOED_WIDTH_MASK)
276 | ((priv->imx_mode.sdoed_delay << EPDC_TCE_OE_SDOED_DLY_OFFSET) &
277 EPDC_TCE_OE_SDOED_DLY_MASK)
278 | ((priv->imx_mode.sdoez_width << EPDC_TCE_OE_SDOEZ_WIDTH_OFFSET) &
279 EPDC_TCE_OE_SDOEZ_WIDTH_MASK)
280 | ((priv->imx_mode.sdoez_delay << EPDC_TCE_OE_SDOEZ_DLY_OFFSET) &
281 EPDC_TCE_OE_SDOEZ_DLY_MASK);
282 epdc_write(priv, EPDC_TCE_OE, reg_val);
283
284 /* EPDC_TCE_TIMING1 */
285 epdc_write(priv, EPDC_TCE_TIMING1, 0x0);
286
287 /* EPDC_TCE_TIMING2 */
288 reg_val =
289 ((priv->imx_mode.gdclk_hp_offs << EPDC_TCE_TIMING2_GDCLK_HP_OFFSET) &
290 EPDC_TCE_TIMING2_GDCLK_HP_MASK)
291 | ((priv->imx_mode.gdsp_offs << EPDC_TCE_TIMING2_GDSP_OFFSET_OFFSET) &
292 EPDC_TCE_TIMING2_GDSP_OFFSET_MASK);
293 epdc_write(priv, EPDC_TCE_TIMING2, reg_val);
294
295 /* EPDC_TCE_TIMING3 */
296 reg_val =
297 ((priv->imx_mode.gdoe_offs << EPDC_TCE_TIMING3_GDOE_OFFSET_OFFSET) &
298 EPDC_TCE_TIMING3_GDOE_OFFSET_MASK)
299 | ((priv->imx_mode.gdclk_offs << EPDC_TCE_TIMING3_GDCLK_OFFSET_OFFSET) &
300 EPDC_TCE_TIMING3_GDCLK_OFFSET_MASK);
301 epdc_write(priv, EPDC_TCE_TIMING3, reg_val);
302
303 /*
304 * EPDC_TCE_SDCFG
305 * SDCLK_HOLD = 1
306 * SDSHR = 1
307 * NUM_CE = 1
308 * SDDO_REFORMAT = FLIP_PIXELS
309 * SDDO_INVERT = DISABLED
310 * PIXELS_PER_CE = display horizontal resolution
311 */
312 num_ce = priv->imx_mode.num_ce;
313 if (num_ce == 0)
314 num_ce = 1;
315 reg_val = EPDC_TCE_SDCFG_SDCLK_HOLD | EPDC_TCE_SDCFG_SDSHR
316 | ((num_ce << EPDC_TCE_SDCFG_NUM_CE_OFFSET) &
317 EPDC_TCE_SDCFG_NUM_CE_MASK)
318 | EPDC_TCE_SDCFG_SDDO_REFORMAT_FLIP_PIXELS
319 | ((priv->epdc_mem_width/num_ce << EPDC_TCE_SDCFG_PIXELS_PER_CE_OFFSET) &
320 EPDC_TCE_SDCFG_PIXELS_PER_CE_MASK);
321 epdc_write(priv, EPDC_TCE_SDCFG, reg_val);
322
323 /*
324 * EPDC_TCE_GDCFG
325 * GDRL = 1
326 * GDOE_MODE = 0;
327 * GDSP_MODE = 0;
328 */
329 reg_val = EPDC_TCE_SDCFG_GDRL;
330 epdc_write(priv, EPDC_TCE_GDCFG, reg_val);
331
332 /*
333 * EPDC_TCE_POLARITY
334 * SDCE_POL = ACTIVE LOW
335 * SDLE_POL = ACTIVE HIGH
336 * SDOE_POL = ACTIVE HIGH
337 * GDOE_POL = ACTIVE HIGH
338 * GDSP_POL = ACTIVE LOW
339 */
340 reg_val = EPDC_TCE_POLARITY_SDLE_POL_ACTIVE_HIGH
341 | EPDC_TCE_POLARITY_SDOE_POL_ACTIVE_HIGH
342 | EPDC_TCE_POLARITY_GDOE_POL_ACTIVE_HIGH;
343 epdc_write(priv, EPDC_TCE_POLARITY, reg_val);
344
345 /* EPDC_IRQ_MASK */
346 epdc_write(priv, EPDC_IRQ_MASK, EPDC_IRQ_TCE_UNDERRUN_IRQ);
347
348 /*
349 * EPDC_GPIO
350 * PWRCOM = ?
351 * PWRCTRL = ?
352 * BDR = ?
353 */
354 reg_val = ((0 << EPDC_GPIO_PWRCTRL_OFFSET) & EPDC_GPIO_PWRCTRL_MASK)
355 | ((0 << EPDC_GPIO_BDR_OFFSET) & EPDC_GPIO_BDR_MASK);
356 epdc_write(priv, EPDC_GPIO, reg_val);
357
358 epdc_write(priv, EPDC_WVADDR, priv->waveform_buffer_phys);
359 epdc_write(priv, EPDC_WB_ADDR, priv->working_buffer_phys);
360 if (priv->rev >= 30)
361 epdc_write(priv, EPDC_WB_ADDR_TCE_V3,
362 priv->working_buffer_phys);
363 else
364 epdc_write(priv, EPDC_WB_ADDR_TCE,
365 priv->working_buffer_phys);
366
367 /* Disable clock */
368 clk_disable_unprepare(priv->epdc_clk_axi);
369 clk_disable_unprepare(priv->epdc_clk_pix);
370 }
371
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next prev parent reply other threads:[~2022-02-06 10:08 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-06 8:00 [RFC PATCH 0/6] drm: EPDC driver for i.MX6 Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
2022-02-06 8:00 ` [RFC PATCH 1/6] dt-bindings: display: imx: Add EPDC Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
2022-02-11 15:46 ` Rob Herring
2022-02-11 15:46 ` Rob Herring
2022-02-11 15:46 ` Rob Herring
2022-02-14 22:45 ` Andreas Kemnade
2022-02-14 22:45 ` Andreas Kemnade
2022-02-14 22:45 ` Andreas Kemnade
2022-02-16 23:52 ` Rob Herring
2022-02-16 23:52 ` Rob Herring
2022-02-16 23:52 ` Rob Herring
2022-02-17 9:21 ` Krzysztof Kozlowski
2022-02-17 9:21 ` Krzysztof Kozlowski
2022-02-17 11:31 ` Andreas Kemnade
2022-02-17 11:31 ` Andreas Kemnade
2022-02-17 11:31 ` Andreas Kemnade
2022-02-17 11:43 ` Krzysztof Kozlowski
2022-02-17 11:43 ` Krzysztof Kozlowski
2022-02-17 11:43 ` Krzysztof Kozlowski
2022-03-12 19:23 ` Jonathan Neuschäfer
2022-03-12 19:23 ` Jonathan Neuschäfer
2022-03-12 19:23 ` Jonathan Neuschäfer
2022-03-14 22:04 ` Andreas Kemnade
2022-03-14 22:04 ` Andreas Kemnade
2022-03-14 22:04 ` Andreas Kemnade
2022-02-06 8:00 ` [RFC PATCH 2/6] drm: Add skeleton for EPDC driver Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
2022-02-06 10:08 ` kernel test robot
2022-03-12 19:41 ` Jonathan Neuschäfer
2022-03-12 19:41 ` Jonathan Neuschäfer
2022-03-12 19:41 ` Jonathan Neuschäfer
2022-02-06 8:00 ` [RFC PATCH 3/6] drm: mxc-epdc: Add display and waveform initialisation Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
2022-02-06 10:08 ` kernel test robot [this message]
2022-02-06 10:18 ` kernel test robot
2022-03-12 20:12 ` Jonathan Neuschäfer
2022-03-12 20:12 ` Jonathan Neuschäfer
2022-03-12 20:12 ` Jonathan Neuschäfer
2022-02-06 8:00 ` [RFC PATCH 4/6] drm: mxc-epdc: Add update management Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
2022-02-06 11:09 ` kernel test robot
2022-03-12 20:21 ` Jonathan Neuschäfer
2022-03-12 20:21 ` Jonathan Neuschäfer
2022-03-12 20:21 ` Jonathan Neuschäfer
2022-02-06 8:00 ` [RFC PATCH 5/6] ARM: dts: imx6sll: add EPDC Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
2022-02-06 8:00 ` [RFC PATCH 6/6] arm: dts: imx6sl: Add EPDC Andreas Kemnade
2022-02-06 8:00 ` Andreas Kemnade
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202202061857.ZmlrNbez-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.