git: c51978f4b2f0 - main - kbd: add KBD_DELAY1 and KBD_DELAY2

From: Warner Losh <imp_at_FreeBSD.org>
Date: Sat, 25 Feb 2023 06:26:00 UTC
The branch main has been updated by imp:

URL: https://cgit.FreeBSD.org/src/commit/?id=c51978f4b2f080c80ddc891c24b151d35acb8ba4

commit c51978f4b2f080c80ddc891c24b151d35acb8ba4
Author:     Michael Paepcke <git@paepcke.de>
AuthorDate: 2023-02-18 09:11:37 +0000
Commit:     Warner Losh <imp@FreeBSD.org>
CommitDate: 2023-02-25 06:19:05 +0000

    kbd: add KBD_DELAY1 and KBD_DELAY2
    
    Allow to configure KBD_DELAY* via KERNCONF for user-land less embedded
    and security appliances
    
    Reviewed by: imp (folded)
    Pull Request: https://github.com/freebsd/freebsd-src/pull/649
---
 sys/conf/options     | 3 ++-
 sys/dev/kbd/kbd.c    | 4 ++--
 sys/dev/kbd/kbdreg.h | 8 ++++++--
 3 files changed, 10 insertions(+), 5 deletions(-)

diff --git a/sys/conf/options b/sys/conf/options
index 7855a2f3f20e..42529a90a54e 100644
--- a/sys/conf/options
+++ b/sys/conf/options
@@ -803,8 +803,9 @@ KBD_INSTALL_CDEV	opt_kbd.h
 KBD_MAXRETRY		opt_kbd.h
 KBD_MAXWAIT		opt_kbd.h
 KBD_RESETDELAY		opt_kbd.h
+KBD_DELAY1		opt_kbd.h
+KBD_DELAY2		opt_kbd.h
 KBDIO_DEBUG		opt_kbd.h
-
 KBDMUX_DFLT_KEYMAP	opt_kbdmux.h
 
 # options for the Atheros driver
diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c
index 205d76639e0f..ebc779de4073 100644
--- a/sys/dev/kbd/kbd.c
+++ b/sys/dev/kbd/kbd.c
@@ -143,8 +143,8 @@ kbd_init_struct(keyboard_t *kbd, char *name, int type, int unit, int config,
 	kbd->kb_accentmap = NULL;
 	kbd->kb_fkeytab = NULL;
 	kbd->kb_fkeytab_size = 0;
-	kbd->kb_delay1 = KB_DELAY1;	/* these values are advisory only */
-	kbd->kb_delay2 = KB_DELAY2;
+	kbd->kb_delay1 = KBD_DELAY1;	/* these values are advisory only */
+	kbd->kb_delay2 = KBD_DELAY2;
 	kbd->kb_count = 0L;
 	bzero(kbd->kb_lastact, sizeof(kbd->kb_lastact));
 }
diff --git a/sys/dev/kbd/kbdreg.h b/sys/dev/kbd/kbdreg.h
index 15b7e5183f35..2839e259420d 100644
--- a/sys/dev/kbd/kbdreg.h
+++ b/sys/dev/kbd/kbdreg.h
@@ -151,8 +151,12 @@ struct keyboard {
 	void		*kb_data;	/* the driver's private data */
 	int		kb_delay1;
 	int		kb_delay2;
-#define KB_DELAY1	500
-#define KB_DELAY2	100
+#ifndef KBD_DELAY1
+#define KBD_DELAY1	500
+#endif
+#ifndef KBD_DELAY2
+#define KBD_DELAY2	100
+#endif
 	unsigned long	kb_count;	/* # of processed key strokes */
 	u_char		kb_lastact[NUM_KEYS/2];
 	struct cdev *kb_dev;