Module Name:    src
Committed By:   tsutsui
Date:           Mon Sep 20 08:31:09 UTC 2021

Modified Files:
        src/sys/arch/luna68k/dev: lunaws.c

Log Message:
Add a comment that .set_leds function won't work correctly on cngetc(9).

I'm afraid all other keyboard drivers that have .set_leds function
(like sgimips/dev/zs_kbd.c) have the same issue.
Maybe we needs 'polled' flag in .set_leds function, or an independent
.set_leds accessop in struct wskbd_consops for cons(9).


To generate a diff of this commit:
cvs rdiff -u -r1.37 -r1.38 src/sys/arch/luna68k/dev/lunaws.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/luna68k/dev/lunaws.c
diff -u src/sys/arch/luna68k/dev/lunaws.c:1.37 src/sys/arch/luna68k/dev/lunaws.c:1.38
--- src/sys/arch/luna68k/dev/lunaws.c:1.37	Sun Sep 19 11:43:54 2021
+++ src/sys/arch/luna68k/dev/lunaws.c	Mon Sep 20 08:31:09 2021
@@ -1,4 +1,4 @@
-/* $NetBSD: lunaws.c,v 1.37 2021/09/19 11:43:54 tsutsui Exp $ */
+/* $NetBSD: lunaws.c,v 1.38 2021/09/20 08:31:09 tsutsui Exp $ */
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
 
 #include <sys/cdefs.h>			/* RCS ID & Copyright macro defns */
 
-__KERNEL_RCSID(0, "$NetBSD: lunaws.c,v 1.37 2021/09/19 11:43:54 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: lunaws.c,v 1.38 2021/09/20 08:31:09 tsutsui Exp $");
 
 #include "opt_wsdisplay_compat.h"
 #include "wsmouse.h"
@@ -571,6 +571,16 @@ omkbd_set_leds(void *cookie, int leds)
 	struct ws_softc *sc = cookie;
 	uint8_t ledcmd;
 
+	/*
+	 * XXX:
+	 *  Why does MI wskbd(4) use a common .set_leds function
+	 *  for both kernel cons(9) and normal tty devices!?
+	 *
+	 *  When CAP key is pressed in cngetc(9) (like ddb(4) etc.)
+	 *  after wskbd(4) is attached, all LED commands are queued
+	 *  into txq[] and will never be sent until ddb(4) returns.
+	 */
+
 	sc->sc_leds = leds;
 	if ((leds & WSKBD_LED_CAPS) != 0) {
 		ledcmd = OMKBD_LED_ON_CAPS;

Reply via email to