All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1] Added verbosity to serial driver.
@ 2021-12-16  7:48 Konstantin Smola
  2021-12-16  8:57 ` Jan Kiszka
  0 siblings, 1 reply; 5+ messages in thread
From: Konstantin Smola @ 2021-12-16  7:48 UTC (permalink / raw)
  To: xenomai; +Cc: Konstantin Smola

kernel/drivers/serial: Added verbosity to serial driver.
Signed-off-by: Konstantin Smola <ksmola51@gmail.com>
---
 kernel/drivers/serial/16550A.c | 20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/kernel/drivers/serial/16550A.c b/kernel/drivers/serial/16550A.c
index c9274fb19..9881ba66c 100644
--- a/kernel/drivers/serial/16550A.c
+++ b/kernel/drivers/serial/16550A.c
@@ -25,12 +25,21 @@
 #include <rtdm/serial.h>
 #include <rtdm/driver.h>
 
-MODULE_DESCRIPTION("RTDM-based driver for 16550A UARTs");
-MODULE_AUTHOR("Jan Kiszka <jan.kiszka@web.de>");
-MODULE_VERSION("1.5.2");
+
+#define MOD_DESCR "RTDM-based driver for 16550A UARTs"
+static char mod_descr[64] = MOD_DESCR;
+#define MOD_AUTH "Jan Kiszka <jan.kiszka@web.de>"
+static char mod_auth[64]=MOD_AUTH;
+#define MOD_VER "1.5.2"
+static char mod_ver[32]=MOD_VER;
+
+MODULE_DESCRIPTION(MOD_DESCR);
+MODULE_AUTHOR(MOD_AUTH);
+MODULE_VERSION(MOD_VER);
 MODULE_LICENSE("GPL");
 
 #define RT_16550_DRIVER_NAME	"xeno_16550A"
+static char mod_name[64]=RT_16550_DRIVER_NAME;
 
 #define MAX_DEVICES		8
 
@@ -1106,6 +1115,8 @@ int __init rt_16550_init(void)
 	if (!rtdm_available())
 		return -ENODEV;
 
+	rtdm_printk("%s: %s rev %s, %s\n", mod_name, mod_descr, mod_ver, mod_auth);
+
 	rt_16550_pnp_init();
 	rt_16550_pci_init();
 
@@ -1128,6 +1139,8 @@ int __init rt_16550_init(void)
 		name = (char *)(dev + 1);
 		ksformat(name, RTDM_MAX_DEVNAME_LEN, dev->label, i);
 
+		rtdm_printk("%s: %s io=0x%x irq=%d\n", mod_name, name, (unsigned)rt_16550_base_addr(i),irq[i]);
+
 		err = rt_16550_init_io(i, name);
 		if (err)
 			goto kfree_out;
@@ -1182,6 +1195,7 @@ void rt_16550_exit(void)
 
 	rt_16550_pci_cleanup();
 	rt_16550_pnp_cleanup();
+	rtdm_printk("%s: Unloaded.\n", mod_name);
 }
 
 module_init(rt_16550_init);
-- 
2.27.0



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] Added verbosity to serial driver.
  2021-12-16  7:48 [PATCH 1/1] Added verbosity to serial driver Konstantin Smola
@ 2021-12-16  8:57 ` Jan Kiszka
  2021-12-16 17:40   ` k smo
  0 siblings, 1 reply; 5+ messages in thread
From: Jan Kiszka @ 2021-12-16  8:57 UTC (permalink / raw)
  To: Konstantin Smola, xenomai

On 16.12.21 08:48, Konstantin Smola via Xenomai wrote:
> kernel/drivers/serial: Added verbosity to serial driver.

Thanks for your patch. However, the commit log should motivate why we
want to merge this change.

Jan

> Signed-off-by: Konstantin Smola <ksmola51@gmail.com>
> ---
>  kernel/drivers/serial/16550A.c | 20 +++++++++++++++++---
>  1 file changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/kernel/drivers/serial/16550A.c b/kernel/drivers/serial/16550A.c
> index c9274fb19..9881ba66c 100644
> --- a/kernel/drivers/serial/16550A.c
> +++ b/kernel/drivers/serial/16550A.c
> @@ -25,12 +25,21 @@
>  #include <rtdm/serial.h>
>  #include <rtdm/driver.h>
>  
> -MODULE_DESCRIPTION("RTDM-based driver for 16550A UARTs");
> -MODULE_AUTHOR("Jan Kiszka <jan.kiszka@web.de>");
> -MODULE_VERSION("1.5.2");
> +
> +#define MOD_DESCR "RTDM-based driver for 16550A UARTs"
> +static char mod_descr[64] = MOD_DESCR;
> +#define MOD_AUTH "Jan Kiszka <jan.kiszka@web.de>"
> +static char mod_auth[64]=MOD_AUTH;
> +#define MOD_VER "1.5.2"
> +static char mod_ver[32]=MOD_VER;
> +
> +MODULE_DESCRIPTION(MOD_DESCR);
> +MODULE_AUTHOR(MOD_AUTH);
> +MODULE_VERSION(MOD_VER);
>  MODULE_LICENSE("GPL");
>  
>  #define RT_16550_DRIVER_NAME	"xeno_16550A"
> +static char mod_name[64]=RT_16550_DRIVER_NAME;
>  
>  #define MAX_DEVICES		8
>  
> @@ -1106,6 +1115,8 @@ int __init rt_16550_init(void)
>  	if (!rtdm_available())
>  		return -ENODEV;
>  
> +	rtdm_printk("%s: %s rev %s, %s\n", mod_name, mod_descr, mod_ver, mod_auth);
> +
>  	rt_16550_pnp_init();
>  	rt_16550_pci_init();
>  
> @@ -1128,6 +1139,8 @@ int __init rt_16550_init(void)
>  		name = (char *)(dev + 1);
>  		ksformat(name, RTDM_MAX_DEVNAME_LEN, dev->label, i);
>  
> +		rtdm_printk("%s: %s io=0x%x irq=%d\n", mod_name, name, (unsigned)rt_16550_base_addr(i),irq[i]);
> +
>  		err = rt_16550_init_io(i, name);
>  		if (err)
>  			goto kfree_out;
> @@ -1182,6 +1195,7 @@ void rt_16550_exit(void)
>  
>  	rt_16550_pci_cleanup();
>  	rt_16550_pnp_cleanup();
> +	rtdm_printk("%s: Unloaded.\n", mod_name);
>  }
>  
>  module_init(rt_16550_init);
> 

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] Added verbosity to serial driver.
  2021-12-16  8:57 ` Jan Kiszka
@ 2021-12-16 17:40   ` k smo
  2021-12-16 18:08     ` Jan Kiszka
  0 siblings, 1 reply; 5+ messages in thread
From: k smo @ 2021-12-16 17:40 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai

I will re-submit patch with a better explanation.  But look at this dmesg
output:

[55025.834492] xeno_16550A: RTDM-based driver for 16550A UARTs rev 1.5.2,
Jan Kiszka <jan.kiszka@web.de>
[55025.834568] xeno_16550A: rtser0 io=0x3f8 irq=4
[55025.834614] xeno_16550A: rtser1 io=0x2f8 irq=3
[55025.834646] xeno_16550A: rtser2 io=0xd000 irq=18
[55025.834680] xeno_16550A: rtser3 io=0xd008 irq=18
[55025.835322] xeno_16550A: rtser4 io=0xd010 irq=18
[55025.836801] xeno_16550A: rtser5 io=0xd018 irq=18
later...
[55044.800713] xeno_16550A: Unloaded.

In our systems the serial driver is loaded by shell scripts and config
files which make decisions as to what to load. so without verbosity the
driver prints nothing and it is not easy to determine (in terms of timing
relative to other drivers as seen in dmesg) if the driver ever got loaded
or what ports it is listening to. This is highly informative verbosity.

-Konstantin

On Thu, Dec 16, 2021 at 12:57 AM Jan Kiszka <jan.kiszka@siemens.com> wrote:

> On 16.12.21 08:48, Konstantin Smola via Xenomai wrote:
> > kernel/drivers/serial: Added verbosity to serial driver.
>
> Thanks for your patch. However, the commit log should motivate why we
> want to merge this change.
>
> Jan
>
> > Signed-off-by: Konstantin Smola <ksmola51@gmail.com>
> > ---
> >  kernel/drivers/serial/16550A.c | 20 +++++++++++++++++---
> >  1 file changed, 17 insertions(+), 3 deletions(-)
> >
> > diff --git a/kernel/drivers/serial/16550A.c
> b/kernel/drivers/serial/16550A.c
> > index c9274fb19..9881ba66c 100644
> > --- a/kernel/drivers/serial/16550A.c
> > +++ b/kernel/drivers/serial/16550A.c
> > @@ -25,12 +25,21 @@
> >  #include <rtdm/serial.h>
> >  #include <rtdm/driver.h>
> >
> > -MODULE_DESCRIPTION("RTDM-based driver for 16550A UARTs");
> > -MODULE_AUTHOR("Jan Kiszka <jan.kiszka@web.de>");
> > -MODULE_VERSION("1.5.2");
> > +
> > +#define MOD_DESCR "RTDM-based driver for 16550A UARTs"
> > +static char mod_descr[64] = MOD_DESCR;
> > +#define MOD_AUTH "Jan Kiszka <jan.kiszka@web.de>"
> > +static char mod_auth[64]=MOD_AUTH;
> > +#define MOD_VER "1.5.2"
> > +static char mod_ver[32]=MOD_VER;
> > +
> > +MODULE_DESCRIPTION(MOD_DESCR);
> > +MODULE_AUTHOR(MOD_AUTH);
> > +MODULE_VERSION(MOD_VER);
> >  MODULE_LICENSE("GPL");
> >
> >  #define RT_16550_DRIVER_NAME "xeno_16550A"
> > +static char mod_name[64]=RT_16550_DRIVER_NAME;
> >
> >  #define MAX_DEVICES          8
> >
> > @@ -1106,6 +1115,8 @@ int __init rt_16550_init(void)
> >       if (!rtdm_available())
> >               return -ENODEV;
> >
> > +     rtdm_printk("%s: %s rev %s, %s\n", mod_name, mod_descr, mod_ver,
> mod_auth);
> > +
> >       rt_16550_pnp_init();
> >       rt_16550_pci_init();
> >
> > @@ -1128,6 +1139,8 @@ int __init rt_16550_init(void)
> >               name = (char *)(dev + 1);
> >               ksformat(name, RTDM_MAX_DEVNAME_LEN, dev->label, i);
> >
> > +             rtdm_printk("%s: %s io=0x%x irq=%d\n", mod_name, name,
> (unsigned)rt_16550_base_addr(i),irq[i]);
> > +
> >               err = rt_16550_init_io(i, name);
> >               if (err)
> >                       goto kfree_out;
> > @@ -1182,6 +1195,7 @@ void rt_16550_exit(void)
> >
> >       rt_16550_pci_cleanup();
> >       rt_16550_pnp_cleanup();
> > +     rtdm_printk("%s: Unloaded.\n", mod_name);
> >  }
> >
> >  module_init(rt_16550_init);
> >
>
> --
> Siemens AG, T RDA IOT
> Corporate Competence Center Embedded Linux
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] Added verbosity to serial driver.
  2021-12-16 17:40   ` k smo
@ 2021-12-16 18:08     ` Jan Kiszka
  2021-12-17  7:08       ` k smo
  0 siblings, 1 reply; 5+ messages in thread
From: Jan Kiszka @ 2021-12-16 18:08 UTC (permalink / raw)
  To: k smo; +Cc: xenomai

On 16.12.21 18:40, k smo wrote:
> I will re-submit patch with a better explanation.  But look at this
> dmesg output:
> 
> [55025.834492] xeno_16550A: RTDM-based driver for 16550A UARTs rev
> 1.5.2, Jan Kiszka <jan.kiszka@web.de <mailto:jan.kiszka@web.de>>
> [55025.834568] xeno_16550A: rtser0 io=0x3f8 irq=4
> [55025.834614] xeno_16550A: rtser1 io=0x2f8 irq=3
> [55025.834646] xeno_16550A: rtser2 io=0xd000 irq=18
> [55025.834680] xeno_16550A: rtser3 io=0xd008 irq=18
> [55025.835322] xeno_16550A: rtser4 io=0xd010 irq=18
> [55025.836801] xeno_16550A: rtser5 io=0xd018 irq=18
> later...
> [55044.800713] xeno_16550A: Unloaded.
> 
> In our systems the serial driver is loaded by shell scripts and config
> files which make decisions as to what to load. so without verbosity the
> driver prints nothing and it is not easy to determine (in terms of
> timing relative to other drivers as seen in dmesg) if the driver ever
> got loaded or what ports it is listening to. This is highly informative
> verbosity.
> 

Ok, that makes sense and is similar to what the kernel tty drivers do. I
don't think it needs the very first line, though.

Jan

-- 
Siemens AG, T RDA IOT
Corporate Competence Center Embedded Linux


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] Added verbosity to serial driver.
  2021-12-16 18:08     ` Jan Kiszka
@ 2021-12-17  7:08       ` k smo
  0 siblings, 0 replies; 5+ messages in thread
From: k smo @ 2021-12-17  7:08 UTC (permalink / raw)
  To: Jan Kiszka; +Cc: xenomai

It seems helpful for debugging purposes to know what version of the driver
is loaded, at least. I'll remove the author and make the first line less
verbose. I took a look at my booted kernel and many drivers/subsystems
announce they are loading, often Xenomai drivers! :
[    0.112115] SELinux:  Initializing.
[    0.301270] vgaarb: loaded
[    0.301464] SCSI subsystem initialized
[    0.301612] libata version 3.00 loaded.
[    0.304940] NetLabel: Initializing
[    1.611426] I-pipe: head domain Xenomai registered.
[    1.612696] [Xenomai] Cobalt v3.1 [DEBUG]
[    1.743396] Block layer SCSI generic (bsg) driver version 0.4 loaded
(major 243)
[    1.750026] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    1.971201] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    1.997552] uhci_hcd: USB Universal Host Controller Interface driver
[    2.011696] device-mapper: ioctl: 4.39.0-ioctl (2018-04-03) initialised:
dm-devel@redhat.com
[    2.012270] hidraw: raw HID events driver (C) Jiri Kosina
[    2.012554] usbhid: USB HID core driver
[    4.288742] systemd[1]: Started Hardware RNG Entropy Gatherer Daemon.
[    4.343025] fuse init (API version 7.27)
[    4.880889] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
[    4.987217] igb: Intel(R) Gigabit Ethernet Network Driver - version
5.4.0-k
[    8.125205] RTnet: initialising real-time networking
[    8.139234] RT-Socket-CAN 0.90.2 - (C) 2006 RT-Socket-CAN Development
Team
[    8.187524] rt_igb: Intel(R) Gigabit Ethernet Network Driver - version
5.2.18-k
[    8.193912] rt_e1000e: Copyright(c) 1999 - 2011 Intel Corporation.
[    8.314125] ppdev: user-space parallel port driver
[   17.009338] tun: Universal TUN/TAP device driver, 1.6

-Konstantin


On Thu, Dec 16, 2021 at 10:08 AM Jan Kiszka <jan.kiszka@siemens.com> wrote:

> On 16.12.21 18:40, k smo wrote:
> > I will re-submit patch with a better explanation.  But look at this
> > dmesg output:
> >
> > [55025.834492] xeno_16550A: RTDM-based driver for 16550A UARTs rev
> > 1.5.2, Jan Kiszka <jan.kiszka@web.de <mailto:jan.kiszka@web.de>>
> > [55025.834568] xeno_16550A: rtser0 io=0x3f8 irq=4
> > [55025.834614] xeno_16550A: rtser1 io=0x2f8 irq=3
> > [55025.834646] xeno_16550A: rtser2 io=0xd000 irq=18
> > [55025.834680] xeno_16550A: rtser3 io=0xd008 irq=18
> > [55025.835322] xeno_16550A: rtser4 io=0xd010 irq=18
> > [55025.836801] xeno_16550A: rtser5 io=0xd018 irq=18
> > later...
> > [55044.800713] xeno_16550A: Unloaded.
> >
> > In our systems the serial driver is loaded by shell scripts and config
> > files which make decisions as to what to load. so without verbosity the
> > driver prints nothing and it is not easy to determine (in terms of
> > timing relative to other drivers as seen in dmesg) if the driver ever
> > got loaded or what ports it is listening to. This is highly informative
> > verbosity.
> >
>
> Ok, that makes sense and is similar to what the kernel tty drivers do. I
> don't think it needs the very first line, though.
>
> Jan
>
> --
> Siemens AG, T RDA IOT
> Corporate Competence Center Embedded Linux
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-12-17  7:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-16  7:48 [PATCH 1/1] Added verbosity to serial driver Konstantin Smola
2021-12-16  8:57 ` Jan Kiszka
2021-12-16 17:40   ` k smo
2021-12-16 18:08     ` Jan Kiszka
2021-12-17  7:08       ` k smo

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.