2018-09-07 09:43:06

by Peter Korsgaard

[permalink] [raw]
Subject: [PATCH v2] ttyprintk: make the printk log level configurable

For some use cases it is handy to use a different printk log level than the
default (info) for the messages written to ttyprintk, so add a Kconfig
option similar to what we have for default console loglevel.

Signed-off-by: Peter Korsgaard <[email protected]>
---
Changes since v1:
- Leave [U] prefix in printk invocation and drop space before it as
suggested by Joe Perces.

drivers/char/Kconfig | 8 ++++++++
drivers/char/ttyprintk.c | 4 +++-
2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
index ce277ee0a28a..14a7f023f20b 100644
--- a/drivers/char/Kconfig
+++ b/drivers/char/Kconfig
@@ -66,6 +66,14 @@ config TTY_PRINTK

If unsure, say N.

+config TTY_PRINTK_LEVEL
+ depends on TTY_PRINTK
+ int "ttyprintk log level (1-7)"
+ range 1 7
+ default "6"
+ help
+ Printk log level to use for ttyprintk messages.
+
config PRINTER
tristate "Parallel printer support"
depends on PARPORT
diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
index 67549ce88cc9..88808dbba486 100644
--- a/drivers/char/ttyprintk.c
+++ b/drivers/char/ttyprintk.c
@@ -37,6 +37,8 @@ static struct ttyprintk_port tpk_port;
*/
#define TPK_STR_SIZE 508 /* should be bigger then max expected line length */
#define TPK_MAX_ROOM 4096 /* we could assume 4K for instance */
+#define TPK_PREFIX KERN_SOH __stringify(CONFIG_TTY_PRINTK_LEVEL)
+
static int tpk_curr;

static char tpk_buffer[TPK_STR_SIZE + 4];
@@ -45,7 +47,7 @@ static void tpk_flush(void)
{
if (tpk_curr > 0) {
tpk_buffer[tpk_curr] = '\0';
- pr_info("[U] %s\n", tpk_buffer);
+ printk(TPK_PREFIX "[U] %s\n", tpk_buffer);
tpk_curr = 0;
}
}
--
2.11.0



2018-09-17 06:37:28

by Peter Korsgaard

[permalink] [raw]
Subject: Re: [PATCH v2] ttyprintk: make the printk log level configurable

On Fri, Sep 7, 2018 at 10:18 AM Peter Korsgaard <[email protected]> wrote:
>
> For some use cases it is handy to use a different printk log level than the
> default (info) for the messages written to ttyprintk, so add a Kconfig
> option similar to what we have for default console loglevel.
>
> Signed-off-by: Peter Korsgaard <[email protected]>
> ---
> Changes since v1:
> - Leave [U] prefix in printk invocation and drop space before it as
> suggested by Joe Perces.

Ping? Joe, if you are happy with v2, then it would be great if you could ack it.

Thanks.

> drivers/char/Kconfig | 8 ++++++++
> drivers/char/ttyprintk.c | 4 +++-
> 2 files changed, 11 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
> index ce277ee0a28a..14a7f023f20b 100644
> --- a/drivers/char/Kconfig
> +++ b/drivers/char/Kconfig
> @@ -66,6 +66,14 @@ config TTY_PRINTK
>
> If unsure, say N.
>
> +config TTY_PRINTK_LEVEL
> + depends on TTY_PRINTK
> + int "ttyprintk log level (1-7)"
> + range 1 7
> + default "6"
> + help
> + Printk log level to use for ttyprintk messages.
> +
> config PRINTER
> tristate "Parallel printer support"
> depends on PARPORT
> diff --git a/drivers/char/ttyprintk.c b/drivers/char/ttyprintk.c
> index 67549ce88cc9..88808dbba486 100644
> --- a/drivers/char/ttyprintk.c
> +++ b/drivers/char/ttyprintk.c
> @@ -37,6 +37,8 @@ static struct ttyprintk_port tpk_port;
> */
> #define TPK_STR_SIZE 508 /* should be bigger then max expected line length */
> #define TPK_MAX_ROOM 4096 /* we could assume 4K for instance */
> +#define TPK_PREFIX KERN_SOH __stringify(CONFIG_TTY_PRINTK_LEVEL)
> +
> static int tpk_curr;
>
> static char tpk_buffer[TPK_STR_SIZE + 4];
> @@ -45,7 +47,7 @@ static void tpk_flush(void)
> {
> if (tpk_curr > 0) {
> tpk_buffer[tpk_curr] = '\0';
> - pr_info("[U] %s\n", tpk_buffer);
> + printk(TPK_PREFIX "[U] %s\n", tpk_buffer);
> tpk_curr = 0;
> }
> }
> --
> 2.11.0
>


--
Bye, Peter Korsgaard