Hi Markuss, I love your patch! Yet something to improve: [auto build test ERROR on tty/tty-testing] [also build test ERROR on efi/next staging/staging-testing usb/usb-testing linus/master v5.19 next-20220805] [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#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Markuss-Broks/Add-generic-framebuffer-support-to-EFI-earlycon-driver/20220807-003646 base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220807/202208071111.oWn8uZfx-lkp@xxxxxxxxx/config) compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 5f1c7e2cc5a3c07cbc2412e851a7283c1841f520) 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/intel-lab-lkp/linux/commit/dedd7c138e9492439eeda05fa75a18bf19883a08 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Markuss-Broks/Add-generic-framebuffer-support-to-EFI-earlycon-driver/20220807-003646 git checkout dedd7c138e9492439eeda05fa75a18bf19883a08 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/tty/serial/earlycon.c:246:12: error: conflicting types for 'of_setup_earlycon' int __init of_setup_earlycon(const struct earlycon_id *match, ^ include/linux/serial_core.h:708:12: note: previous declaration is here extern int of_setup_earlycon(const struct earlycon_id *match, ^ 1 error generated. vim +/of_setup_earlycon +246 drivers/tty/serial/earlycon.c 8477614d9f7c5c Peter Hurley 2016-01-16 245 c90fe9c0394b06 Peter Hurley 2016-01-16 @246 int __init of_setup_earlycon(const struct earlycon_id *match, dedd7c138e9492 Markuss Broks 2022-08-06 247 int offset, 4d118c9a866590 Peter Hurley 2016-01-16 248 const char *options) b0b6abd34c1b50 Rob Herring 2014-03-27 249 { b0b6abd34c1b50 Rob Herring 2014-03-27 250 int err; b0b6abd34c1b50 Rob Herring 2014-03-27 251 struct uart_port *port = &early_console_dev.port; 088da2a17619cf Peter Hurley 2016-01-16 252 const __be32 *val; 088da2a17619cf Peter Hurley 2016-01-16 253 bool big_endian; c90fe9c0394b06 Peter Hurley 2016-01-16 254 u64 addr; b0b6abd34c1b50 Rob Herring 2014-03-27 255 65e20e8cbbccaf Michael Walle 2022-06-28 256 if (early_con.flags & CON_ENABLED) 65e20e8cbbccaf Michael Walle 2022-06-28 257 return -EALREADY; 65e20e8cbbccaf Michael Walle 2022-06-28 258 e1dd3bef6d03c9 Geert Uytterhoeven 2015-11-27 259 spin_lock_init(&port->lock); b0b6abd34c1b50 Rob Herring 2014-03-27 260 port->iotype = UPIO_MEM; dedd7c138e9492 Markuss Broks 2022-08-06 261 addr = of_flat_dt_translate_address(offset); c90fe9c0394b06 Peter Hurley 2016-01-16 262 if (addr == OF_BAD_ADDR) { c90fe9c0394b06 Peter Hurley 2016-01-16 263 pr_warn("[%s] bad address\n", match->name); c90fe9c0394b06 Peter Hurley 2016-01-16 264 return -ENXIO; c90fe9c0394b06 Peter Hurley 2016-01-16 265 } b0b6abd34c1b50 Rob Herring 2014-03-27 266 port->mapbase = addr; b0b6abd34c1b50 Rob Herring 2014-03-27 267 dedd7c138e9492 Markuss Broks 2022-08-06 268 val = of_get_flat_dt_prop(offset, "reg-offset", NULL); 088da2a17619cf Peter Hurley 2016-01-16 269 if (val) 088da2a17619cf Peter Hurley 2016-01-16 270 port->mapbase += be32_to_cpu(*val); 1f66dd36bb1843 Greentime Hu 2018-02-13 271 port->membase = earlycon_map(port->mapbase, SZ_4K); 1f66dd36bb1843 Greentime Hu 2018-02-13 272 dedd7c138e9492 Markuss Broks 2022-08-06 273 val = of_get_flat_dt_prop(offset, "reg-shift", NULL); 088da2a17619cf Peter Hurley 2016-01-16 274 if (val) 088da2a17619cf Peter Hurley 2016-01-16 275 port->regshift = be32_to_cpu(*val); dedd7c138e9492 Markuss Broks 2022-08-06 276 big_endian = of_get_flat_dt_prop(offset, "big-endian", NULL) != NULL || 088da2a17619cf Peter Hurley 2016-01-16 277 (IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) && dedd7c138e9492 Markuss Broks 2022-08-06 278 of_get_flat_dt_prop(offset, "native-endian", NULL) != NULL); dedd7c138e9492 Markuss Broks 2022-08-06 279 val = of_get_flat_dt_prop(offset, "reg-io-width", NULL); 088da2a17619cf Peter Hurley 2016-01-16 280 if (val) { 088da2a17619cf Peter Hurley 2016-01-16 281 switch (be32_to_cpu(*val)) { 088da2a17619cf Peter Hurley 2016-01-16 282 case 1: 088da2a17619cf Peter Hurley 2016-01-16 283 port->iotype = UPIO_MEM; 088da2a17619cf Peter Hurley 2016-01-16 284 break; 088da2a17619cf Peter Hurley 2016-01-16 285 case 2: 088da2a17619cf Peter Hurley 2016-01-16 286 port->iotype = UPIO_MEM16; 088da2a17619cf Peter Hurley 2016-01-16 287 break; 088da2a17619cf Peter Hurley 2016-01-16 288 case 4: 088da2a17619cf Peter Hurley 2016-01-16 289 port->iotype = (big_endian) ? UPIO_MEM32BE : UPIO_MEM32; 088da2a17619cf Peter Hurley 2016-01-16 290 break; 088da2a17619cf Peter Hurley 2016-01-16 291 default: 088da2a17619cf Peter Hurley 2016-01-16 292 pr_warn("[%s] unsupported reg-io-width\n", match->name); 088da2a17619cf Peter Hurley 2016-01-16 293 return -EINVAL; 088da2a17619cf Peter Hurley 2016-01-16 294 } 088da2a17619cf Peter Hurley 2016-01-16 295 } 088da2a17619cf Peter Hurley 2016-01-16 296 dedd7c138e9492 Markuss Broks 2022-08-06 297 val = of_get_flat_dt_prop(offset, "current-speed", NULL); 31cb9a8575ca04 Eugeniy Paltsev 2017-08-21 298 if (val) 31cb9a8575ca04 Eugeniy Paltsev 2017-08-21 299 early_console_dev.baud = be32_to_cpu(*val); 31cb9a8575ca04 Eugeniy Paltsev 2017-08-21 300 dedd7c138e9492 Markuss Broks 2022-08-06 301 val = of_get_flat_dt_prop(offset, "clock-frequency", NULL); 814453adea7d08 Michal Simek 2018-04-10 302 if (val) 814453adea7d08 Michal Simek 2018-04-10 303 port->uartclk = be32_to_cpu(*val); 814453adea7d08 Michal Simek 2018-04-10 304 4d118c9a866590 Peter Hurley 2016-01-16 305 if (options) { 31cb9a8575ca04 Eugeniy Paltsev 2017-08-21 306 early_console_dev.baud = simple_strtoul(options, NULL, 0); 4d118c9a866590 Peter Hurley 2016-01-16 307 strlcpy(early_console_dev.options, options, 4d118c9a866590 Peter Hurley 2016-01-16 308 sizeof(early_console_dev.options)); 4d118c9a866590 Peter Hurley 2016-01-16 309 } 05d961320ba624 Peter Hurley 2016-01-16 310 earlycon_init(&early_console_dev, match->name); 4d118c9a866590 Peter Hurley 2016-01-16 311 err = match->setup(&early_console_dev, options); f28295cc8ce14b Hsin-Yi Wang 2020-09-15 312 earlycon_print_info(&early_console_dev); b0b6abd34c1b50 Rob Herring 2014-03-27 313 if (err < 0) b0b6abd34c1b50 Rob Herring 2014-03-27 314 return err; b0b6abd34c1b50 Rob Herring 2014-03-27 315 if (!early_console_dev.con->write) b0b6abd34c1b50 Rob Herring 2014-03-27 316 return -ENODEV; b0b6abd34c1b50 Rob Herring 2014-03-27 317 b0b6abd34c1b50 Rob Herring 2014-03-27 318 b0b6abd34c1b50 Rob Herring 2014-03-27 319 register_console(early_console_dev.con); b0b6abd34c1b50 Rob Herring 2014-03-27 320 return 0; b0b6abd34c1b50 Rob Herring 2014-03-27 321 } 8477614d9f7c5c Peter Hurley 2016-01-16 322 -- 0-DAY CI Kernel Test Service https://01.org/lkp