* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
@ 2022-08-06 20:29 kernel test robot
0 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2022-08-06 20:29 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 9919 bytes --]
::::::
:::::: Manual check reason: "commit no functional change"
::::::
BCC: lkp(a)intel.com
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220806163255.10404-2-markuss.broks@gmail.com>
References: <20220806163255.10404-2-markuss.broks@gmail.com>
TO: Markuss Broks <markuss.broks@gmail.com>
TO: linux-kernel(a)vger.kernel.org
CC: ~postmarketos/upstreaming(a)lists.sr.ht
CC: phone-devel(a)vger.kernel.org
CC: Markuss Broks <markuss.broks@gmail.com>
CC: Jonathan Corbet <corbet@lwn.net>
CC: Ard Biesheuvel <ardb@kernel.org>
CC: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
CC: Jiri Slaby <jirislaby@kernel.org>
CC: Helge Deller <deller@gmx.de>
CC: "Paul E. McKenney" <paulmck@kernel.org>
CC: Borislav Petkov <bp@suse.de>
CC: Kees Cook <keescook@chromium.org>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
CC: Randy Dunlap <rdunlap@infradead.org>
CC: Damien Le Moal <damien.lemoal@opensource.wdc.com>
CC: Thomas Zimmermann <tzimmermann@suse.de>
CC: Michal Suchanek <msuchanek@suse.de>
CC: Javier Martinez Canillas <javierm@redhat.com>
CC: Arnd Bergmann <arnd@arndb.de>
CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Wei Ming Chen <jj251510319013@gmail.com>
CC: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
CC: Tony Lindgren <tony@atomide.com>
CC: linux-doc(a)vger.kernel.org
CC: linux-efi(a)vger.kernel.org
CC: linux-serial(a)vger.kernel.org
CC: linux-fbdev(a)vger.kernel.org
CC: dri-devel(a)lists.freedesktop.org
CC: Rob Herring <robh@kernel.org>
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
:::::: branch date: 4 hours ago
:::::: commit date: 4 hours ago
config: x86_64-randconfig-a011 (https://download.01.org/0day-ci/archive/20220807/202208070432.k07ZjNg4-lkp(a)intel.com/config)
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (this is a W=1 build):
# 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
make 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@intel.com>
All errors (new ones prefixed by >>):
>> drivers/tty/serial/earlycon.c:246:12: error: conflicting types for 'of_setup_earlycon'; have 'int(const struct earlycon_id *, int, const char *)'
246 | int __init of_setup_earlycon(const struct earlycon_id *match,
| ^~~~~~~~~~~~~~~~~
In file included from drivers/tty/serial/earlycon.c:17:
include/linux/serial_core.h:708:12: note: previous declaration of 'of_setup_earlycon' with type 'int(const struct earlycon_id *, long unsigned int, const char *)'
708 | extern int of_setup_earlycon(const struct earlycon_id *match,
| ^~~~~~~~~~~~~~~~~
vim +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
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
@ 2022-08-07 3:40 kernel test robot
0 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2022-08-07 3:40 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 9980 bytes --]
::::::
:::::: Manual check reason: "commit no functional change"
::::::
BCC: lkp(a)intel.com
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
In-Reply-To: <20220806163255.10404-2-markuss.broks@gmail.com>
References: <20220806163255.10404-2-markuss.broks@gmail.com>
TO: Markuss Broks <markuss.broks@gmail.com>
TO: linux-kernel(a)vger.kernel.org
CC: ~postmarketos/upstreaming(a)lists.sr.ht
CC: phone-devel(a)vger.kernel.org
CC: Markuss Broks <markuss.broks@gmail.com>
CC: Jonathan Corbet <corbet@lwn.net>
CC: Ard Biesheuvel <ardb@kernel.org>
CC: "Greg Kroah-Hartman" <gregkh@linuxfoundation.org>
CC: Jiri Slaby <jirislaby@kernel.org>
CC: Helge Deller <deller@gmx.de>
CC: "Paul E. McKenney" <paulmck@kernel.org>
CC: Borislav Petkov <bp@suse.de>
CC: Kees Cook <keescook@chromium.org>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
CC: Randy Dunlap <rdunlap@infradead.org>
CC: Damien Le Moal <damien.lemoal@opensource.wdc.com>
CC: Thomas Zimmermann <tzimmermann@suse.de>
CC: Michal Suchanek <msuchanek@suse.de>
CC: Javier Martinez Canillas <javierm@redhat.com>
CC: Arnd Bergmann <arnd@arndb.de>
CC: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
CC: Wei Ming Chen <jj251510319013@gmail.com>
CC: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
CC: Tony Lindgren <tony@atomide.com>
CC: linux-doc(a)vger.kernel.org
CC: linux-efi(a)vger.kernel.org
CC: linux-serial(a)vger.kernel.org
CC: linux-fbdev(a)vger.kernel.org
CC: dri-devel(a)lists.freedesktop.org
CC: Rob Herring <robh@kernel.org>
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
:::::: branch date: 11 hours ago
:::::: commit date: 11 hours ago
config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220807/202208071111.oWn8uZfx-lkp(a)intel.com/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@intel.com>
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
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v2 0/3] Add generic framebuffer support to EFI earlycon driver
@ 2022-08-06 16:32 Markuss Broks
2022-08-06 16:32 ` Markuss Broks
0 siblings, 1 reply; 10+ messages in thread
From: Markuss Broks @ 2022-08-06 16:32 UTC (permalink / raw)
To: linux-kernel
Cc: ~postmarketos/upstreaming, phone-devel, Markuss Broks,
Jonathan Corbet, Ard Biesheuvel, Greg Kroah-Hartman, Jiri Slaby,
Helge Deller, Paul E. McKenney, Borislav Petkov, Kees Cook,
Andrew Morton, Randy Dunlap, Damien Le Moal, Thomas Zimmermann,
Michal Suchanek, Javier Martinez Canillas, Arnd Bergmann,
Maarten Lankhorst, Wei Ming Chen, Bartlomiej Zolnierkiewicz,
Tony Lindgren, linux-doc, linux-efi, linux-serial, linux-fbdev,
dri-devel
Make the EFI earlycon driver be suitable for any linear framebuffers.
This should be helpful for early porting of boards with no other means of
output, like smartphones/tablets. There seems to be an issue with early_ioremap
function on ARM32, but I am unable to find the exact cause. It appears the mappings
returned by it are somehow incorrect, thus the driver is disabled on ARM. EFI early
console was disabled on IA64 previously because of missing early_memremap_prot,
and this is inherited to this driver.
This patch also changes behavior on EFI systems, by selecting the mapping type
based on if the framebuffer region intersects with system RAM. If it does, it's
common sense that it should be in RAM as a whole, and so the system RAM mapping is
used. It was tested to be working on my PC (Intel Z490 platform), as well as several
ARM64 boards (Samsung Galaxy S9 (Exynos), iPad Air 2, Xiaomi Mi Pad 4, ...).
Markuss Broks (2):
drivers: serial: earlycon: Pass device-tree node
efi: earlycon: Add support for generic framebuffers and move to fbdev
subsystem
v1 -> v2:
- a new patch correcting serial/earlycon.c argument name to "offset" instead
of "node"
- move IA64 exclusion from EFI earlycon Kconfig to earlycon driver Kconfig
(IA64 has no early_memremap_prot)
- move driver from fbdev to console subsystem
- select EFI earlycon by default
- fetch stride manually from device-tree, as on some devices it seems stride
doesn't match the horizontal resolution * bpp.
- use saner format (e.g. 1920x1080x32 instead of 1920,1080,32).
.../admin-guide/kernel-parameters.txt | 12 +-
MAINTAINERS | 5 +
drivers/firmware/efi/Kconfig | 6 +-
drivers/firmware/efi/Makefile | 1 -
drivers/firmware/efi/earlycon.c | 246 --------------
drivers/tty/serial/earlycon.c | 3 +
drivers/video/fbdev/Kconfig | 11 +
drivers/video/fbdev/Makefile | 1 +
drivers/video/fbdev/earlycon.c | 301 ++++++++++++++++++
include/linux/serial_core.h | 1 +
10 files changed, 331 insertions(+), 256 deletions(-)
delete mode 100644 drivers/firmware/efi/earlycon.c
create mode 100644 drivers/video/fbdev/earlycon.c
--
2.37.0
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
2022-08-06 16:32 [PATCH v2 0/3] Add generic framebuffer support to EFI earlycon driver Markuss Broks
@ 2022-08-06 16:32 ` Markuss Broks
0 siblings, 0 replies; 10+ messages in thread
From: Markuss Broks @ 2022-08-06 16:32 UTC (permalink / raw)
To: linux-kernel
Cc: ~postmarketos/upstreaming, phone-devel, Markuss Broks,
Jonathan Corbet, Ard Biesheuvel, Greg Kroah-Hartman, Jiri Slaby,
Helge Deller, Paul E. McKenney, Borislav Petkov, Kees Cook,
Andrew Morton, Randy Dunlap, Damien Le Moal, Thomas Zimmermann,
Michal Suchanek, Javier Martinez Canillas, Arnd Bergmann,
Maarten Lankhorst, Wei Ming Chen, Bartlomiej Zolnierkiewicz,
Tony Lindgren, linux-doc, linux-efi, linux-serial, linux-fbdev,
dri-devel, Rob Herring
The "node" argument is actually an offset, and it's also
an "int", and not "unsigned long". Correct the of_setup_earlycon
function.
Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
---
drivers/tty/serial/earlycon.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
index 57c70851f22a0e78805f34d1a7700708104b6f6a..bc210ae8173d97d5ef422468acf2755a853cb943 100644
--- a/drivers/tty/serial/earlycon.c
+++ b/drivers/tty/serial/earlycon.c
@@ -244,7 +244,7 @@ early_param("earlycon", param_setup_earlycon);
#ifdef CONFIG_OF_EARLY_FLATTREE
int __init of_setup_earlycon(const struct earlycon_id *match,
- unsigned long node,
+ int offset,
const char *options)
{
int err;
@@ -255,25 +255,25 @@ int __init of_setup_earlycon(const struct earlycon_id *match,
spin_lock_init(&port->lock);
port->iotype = UPIO_MEM;
- addr = of_flat_dt_translate_address(node);
+ addr = of_flat_dt_translate_address(offset);
if (addr == OF_BAD_ADDR) {
pr_warn("[%s] bad address\n", match->name);
return -ENXIO;
}
port->mapbase = addr;
- val = of_get_flat_dt_prop(node, "reg-offset", NULL);
+ val = of_get_flat_dt_prop(offset, "reg-offset", NULL);
if (val)
port->mapbase += be32_to_cpu(*val);
port->membase = earlycon_map(port->mapbase, SZ_4K);
- val = of_get_flat_dt_prop(node, "reg-shift", NULL);
+ val = of_get_flat_dt_prop(offset, "reg-shift", NULL);
if (val)
port->regshift = be32_to_cpu(*val);
- big_endian = of_get_flat_dt_prop(node, "big-endian", NULL) != NULL ||
+ big_endian = of_get_flat_dt_prop(offset, "big-endian", NULL) != NULL ||
(IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) &&
- of_get_flat_dt_prop(node, "native-endian", NULL) != NULL);
- val = of_get_flat_dt_prop(node, "reg-io-width", NULL);
+ of_get_flat_dt_prop(offset, "native-endian", NULL) != NULL);
+ val = of_get_flat_dt_prop(offset, "reg-io-width", NULL);
if (val) {
switch (be32_to_cpu(*val)) {
case 1:
@@ -291,11 +291,11 @@ int __init of_setup_earlycon(const struct earlycon_id *match,
}
}
- val = of_get_flat_dt_prop(node, "current-speed", NULL);
+ val = of_get_flat_dt_prop(offset, "current-speed", NULL);
if (val)
early_console_dev.baud = be32_to_cpu(*val);
- val = of_get_flat_dt_prop(node, "clock-frequency", NULL);
+ val = of_get_flat_dt_prop(offset, "clock-frequency", NULL);
if (val)
port->uartclk = be32_to_cpu(*val);
--
2.37.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
@ 2022-08-06 16:32 ` Markuss Broks
0 siblings, 0 replies; 10+ messages in thread
From: Markuss Broks @ 2022-08-06 16:32 UTC (permalink / raw)
To: linux-kernel
Cc: linux-fbdev, linux-efi, Markuss Broks, linux-doc, Tony Lindgren,
dri-devel, Wei Ming Chen, phone-devel, Jiri Slaby, Ard Biesheuvel,
Arnd Bergmann, Jonathan Corbet, Damien Le Moal,
Javier Martinez Canillas, linux-serial, Borislav Petkov,
Kees Cook, Paul E. McKenney, Bartlomiej Zolnierkiewicz,
~postmarketos/upstreaming, Michal Suchanek, Greg Kroah-Hartman,
Randy Dunlap, Thomas Zimmermann, Andrew Morton, Helge Deller
The "node" argument is actually an offset, and it's also
an "int", and not "unsigned long". Correct the of_setup_earlycon
function.
Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
---
drivers/tty/serial/earlycon.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/drivers/tty/serial/earlycon.c b/drivers/tty/serial/earlycon.c
index 57c70851f22a0e78805f34d1a7700708104b6f6a..bc210ae8173d97d5ef422468acf2755a853cb943 100644
--- a/drivers/tty/serial/earlycon.c
+++ b/drivers/tty/serial/earlycon.c
@@ -244,7 +244,7 @@ early_param("earlycon", param_setup_earlycon);
#ifdef CONFIG_OF_EARLY_FLATTREE
int __init of_setup_earlycon(const struct earlycon_id *match,
- unsigned long node,
+ int offset,
const char *options)
{
int err;
@@ -255,25 +255,25 @@ int __init of_setup_earlycon(const struct earlycon_id *match,
spin_lock_init(&port->lock);
port->iotype = UPIO_MEM;
- addr = of_flat_dt_translate_address(node);
+ addr = of_flat_dt_translate_address(offset);
if (addr == OF_BAD_ADDR) {
pr_warn("[%s] bad address\n", match->name);
return -ENXIO;
}
port->mapbase = addr;
- val = of_get_flat_dt_prop(node, "reg-offset", NULL);
+ val = of_get_flat_dt_prop(offset, "reg-offset", NULL);
if (val)
port->mapbase += be32_to_cpu(*val);
port->membase = earlycon_map(port->mapbase, SZ_4K);
- val = of_get_flat_dt_prop(node, "reg-shift", NULL);
+ val = of_get_flat_dt_prop(offset, "reg-shift", NULL);
if (val)
port->regshift = be32_to_cpu(*val);
- big_endian = of_get_flat_dt_prop(node, "big-endian", NULL) != NULL ||
+ big_endian = of_get_flat_dt_prop(offset, "big-endian", NULL) != NULL ||
(IS_ENABLED(CONFIG_CPU_BIG_ENDIAN) &&
- of_get_flat_dt_prop(node, "native-endian", NULL) != NULL);
- val = of_get_flat_dt_prop(node, "reg-io-width", NULL);
+ of_get_flat_dt_prop(offset, "native-endian", NULL) != NULL);
+ val = of_get_flat_dt_prop(offset, "reg-io-width", NULL);
if (val) {
switch (be32_to_cpu(*val)) {
case 1:
@@ -291,11 +291,11 @@ int __init of_setup_earlycon(const struct earlycon_id *match,
}
}
- val = of_get_flat_dt_prop(node, "current-speed", NULL);
+ val = of_get_flat_dt_prop(offset, "current-speed", NULL);
if (val)
early_console_dev.baud = be32_to_cpu(*val);
- val = of_get_flat_dt_prop(node, "clock-frequency", NULL);
+ val = of_get_flat_dt_prop(offset, "clock-frequency", NULL);
if (val)
port->uartclk = be32_to_cpu(*val);
--
2.37.0
^ permalink raw reply related [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
2022-08-06 16:32 ` Markuss Broks
@ 2022-08-06 16:56 ` Andy Shevchenko
-1 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2022-08-06 16:56 UTC (permalink / raw)
To: Markuss Broks
Cc: Linux Kernel Mailing List, ~postmarketos/upstreaming, phone-devel,
Jonathan Corbet, Ard Biesheuvel, Greg Kroah-Hartman, Jiri Slaby,
Helge Deller, Paul E. McKenney, Borislav Petkov, Kees Cook,
Andrew Morton, Randy Dunlap, Damien Le Moal, Thomas Zimmermann,
Michal Suchanek, Javier Martinez Canillas, Arnd Bergmann,
Maarten Lankhorst, Wei Ming Chen, Bartlomiej Zolnierkiewicz,
Tony Lindgren, Linux Documentation List, linux-efi,
open list:SERIAL DRIVERS, open list:FRAMEBUFFER LAYER, dri-devel,
Rob Herring
On Sat, Aug 6, 2022 at 6:37 PM Markuss Broks <markuss.broks@gmail.com> wrote:
>
> The "node" argument is actually an offset, and it's also
> an "int", and not "unsigned long". Correct the of_setup_earlycon
> function.
Suggested-by: Greg KH?
> Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
@ 2022-08-06 16:56 ` Andy Shevchenko
0 siblings, 0 replies; 10+ messages in thread
From: Andy Shevchenko @ 2022-08-06 16:56 UTC (permalink / raw)
To: Markuss Broks
Cc: open list:FRAMEBUFFER LAYER, linux-efi, Linux Documentation List,
Tony Lindgren, dri-devel, Wei Ming Chen, phone-devel, Jiri Slaby,
Ard Biesheuvel, Arnd Bergmann, Jonathan Corbet, Damien Le Moal,
Javier Martinez Canillas, open list:SERIAL DRIVERS,
Borislav Petkov, Kees Cook, Paul E. McKenney,
Bartlomiej Zolnierkiewicz, ~postmarketos/upstreaming,
Michal Suchanek, Greg Kroah-Hartman, Randy Dunlap,
Linux Kernel Mailing List, Thomas Zimmermann, Andrew Morton,
Helge Deller
On Sat, Aug 6, 2022 at 6:37 PM Markuss Broks <markuss.broks@gmail.com> wrote:
>
> The "node" argument is actually an offset, and it's also
> an "int", and not "unsigned long". Correct the of_setup_earlycon
> function.
Suggested-by: Greg KH?
> Signed-off-by: Markuss Broks <markuss.broks@gmail.com>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
2022-08-06 16:32 ` Markuss Broks
@ 2022-08-08 1:28 ` kernel test robot
-1 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2022-08-08 1:28 UTC (permalink / raw)
To: Markuss Broks, linux-kernel
Cc: llvm, kbuild-all, ~postmarketos/upstreaming, phone-devel,
Markuss Broks, Jonathan Corbet, Ard Biesheuvel,
Greg Kroah-Hartman, Jiri Slaby, Helge Deller, Paul E. McKenney,
Borislav Petkov, Kees Cook, Andrew Morton,
Linux Memory Management List, Randy Dunlap, Damien Le Moal,
Thomas Zimmermann, Michal Suchanek, Javier Martinez Canillas,
Arnd Bergmann, Maarten Lankhorst, Wei Ming Chen,
Bartlomiej Zolnierkiewicz, Tony Lindgren, linux-doc, linux-efi,
linux-serial, linux-fbdev, dri-devel, Rob Herring
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@intel.com/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@intel.com>
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
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
@ 2022-08-08 1:28 ` kernel test robot
0 siblings, 0 replies; 10+ messages in thread
From: kernel test robot @ 2022-08-08 1:28 UTC (permalink / raw)
To: Markuss Broks, linux-kernel
Cc: linux-fbdev, linux-efi, Markuss Broks, linux-doc, Tony Lindgren,
llvm, dri-devel, Linux Memory Management List, Wei Ming Chen,
phone-devel, Jiri Slaby, Ard Biesheuvel, Arnd Bergmann,
Jonathan Corbet, Damien Le Moal, Javier Martinez Canillas,
linux-serial, Borislav Petkov, Kees Cook, Paul E. McKenney,
Bartlomiej Zolnierkiewicz, ~postmarketos/upstreaming,
Michal Suchanek, kbuild-all, Greg Kroah-Hartman, Randy Dunlap,
Thomas Zimmermann, Andrew Morton, Helge Deller
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@intel.com/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@intel.com>
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
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
2022-08-06 16:32 ` Markuss Broks
@ 2022-08-08 15:55 ` Rob Herring
-1 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2022-08-08 15:55 UTC (permalink / raw)
To: Markuss Broks
Cc: linux-kernel@vger.kernel.org,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>, Hans de Goede <hdegoede@redhat.com>, Andy Shevchenko <andy.shevchenko@gmail.com>,,
phone-devel, Jonathan Corbet, Ard Biesheuvel, Greg Kroah-Hartman,
Jiri Slaby, Helge Deller, Paul E. McKenney, Borislav Petkov,
Kees Cook, Andrew Morton, Randy Dunlap, Damien Le Moal,
Thomas Zimmermann, Michal Suchanek, Javier Martinez Canillas,
Arnd Bergmann, Maarten Lankhorst, Wei Ming Chen,
Bartlomiej Zolnierkiewicz, Tony Lindgren, Linux Doc Mailing List,
linux-efi, open list:SERIAL DRIVERS, Linux Fbdev development list,
dri-devel
On Sat, Aug 6, 2022 at 10:34 AM Markuss Broks <markuss.broks@gmail.com> wrote:
>
> The "node" argument is actually an offset,
It's an offset to a node in the FDT. The fact that it is an offset is
an internal implementation detail of the FDT format. So really, it's a
handle to a node. 'node' is more descriptive to its purpose.
> and it's also an "int", and not "unsigned long".
Uh, no it's not. of_flat_dt_*() functions all take an unsigned long.
Rob
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name
@ 2022-08-08 15:55 ` Rob Herring
0 siblings, 0 replies; 10+ messages in thread
From: Rob Herring @ 2022-08-08 15:55 UTC (permalink / raw)
To: Markuss Broks
Cc: Linux Fbdev development list, linux-efi, Linux Doc Mailing List,
Tony Lindgren, dri-devel, Wei Ming Chen, phone-devel, Jiri Slaby,
Ard Biesheuvel, Arnd Bergmann, Jonathan Corbet, Damien Le Moal,
Javier Martinez Canillas, open list:SERIAL DRIVERS,
Borislav Petkov, Kees Cook, Paul E. McKenney,
Bartlomiej Zolnierkiewicz,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS <devicetree@vger.kernel.org>, Hans de Goede <hdegoede@redhat.com>, Andy Shevchenko <andy.shevchenko@gmail.com>, ,
Michal Suchanek, Greg Kroah-Hartman, Randy Dunlap,
linux-kernel@vger.kernel.org, Thomas Zimmermann, Andrew Morton,
Helge Deller
On Sat, Aug 6, 2022 at 10:34 AM Markuss Broks <markuss.broks@gmail.com> wrote:
>
> The "node" argument is actually an offset,
It's an offset to a node in the FDT. The fact that it is an offset is
an internal implementation detail of the FDT format. So really, it's a
handle to a node. 'node' is more descriptive to its purpose.
> and it's also an "int", and not "unsigned long".
Uh, no it's not. of_flat_dt_*() functions all take an unsigned long.
Rob
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2022-08-08 15:56 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-08-06 20:29 [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-08-07 3:40 kernel test robot
2022-08-06 16:32 [PATCH v2 0/3] Add generic framebuffer support to EFI earlycon driver Markuss Broks
2022-08-06 16:32 ` [PATCH v2 1/3] drivers: serial: earlycon: Correct argument name Markuss Broks
2022-08-06 16:32 ` Markuss Broks
2022-08-06 16:56 ` Andy Shevchenko
2022-08-06 16:56 ` Andy Shevchenko
2022-08-08 1:28 ` kernel test robot
2022-08-08 1:28 ` kernel test robot
2022-08-08 15:55 ` Rob Herring
2022-08-08 15:55 ` Rob Herring
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.