Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 27 Feb 2023 07:42:20 -0700
From:      Warner Losh <imp@bsdimp.com>
To:        Mark Millard <marklmi@yahoo.com>
Cc:        imp@freebsd.org, dev-commits-src-main@freebsd.org
Subject:   Re: git: c51978f4b2f0 - main - kbd: add KBD_DELAY1 and KBD_DELAY2
Message-ID:  <CANCZdfp0UnZ_nZN5%2B_1qqFewxWGK%2BFCa0GfTJ91egs9BJi8yHw@mail.gmail.com>
In-Reply-To: <5BEC0410-DBAA-4CBF-8BDB-5C317AD2A094@yahoo.com>
References:  <66452C86-02AA-4604-B65C-5E32EEBAFCC3.ref@yahoo.com> <66452C86-02AA-4604-B65C-5E32EEBAFCC3@yahoo.com> <CANCZdfqKfAT84iKXctXbMsg6W75-95G=em0qR-0wLSWAHyMPgA@mail.gmail.com> <5BEC0410-DBAA-4CBF-8BDB-5C317AD2A094@yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000d47e1905f5af7c88
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Sun, Feb 26, 2023 at 9:12=E2=80=AFPM Mark Millard <marklmi@yahoo.com> wr=
ote:

> On Feb 26, 2023, at 19:33, Warner Losh <imp@bsdimp.com> wrote:
>
> > On Sat, Feb 25, 2023 at 10:03=E2=80=AFAM Mark Millard <marklmi@yahoo.co=
m> wrote:
> > Warner Losh <imp_at_FreeBSD.org> wrote on
> > 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=3Dc51978f4b2f080c80ddc891c24b151d=
35acb8ba4
> > >
> > > 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 =3D NULL;
> > >       kbd->kb_fkeytab =3D NULL;
> > >       kbd->kb_fkeytab_size =3D 0;
> > > -     kbd->kb_delay1 =3D KB_DELAY1;     /* these values are advisory
> only */
> > > -     kbd->kb_delay2 =3D KB_DELAY2;
> > > +     kbd->kb_delay1 =3D KBD_DELAY1;    /* these values are advisory
> only */
> > > +     kbd->kb_delay2 =3D KBD_DELAY2;
> > >       kbd->kb_count =3D 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
> >
> > [Just reporting Ximalas's Discord note.]
> >
> > So opt_kbd.h must be included before kbdreg.h in
> > order to avoid: macro redefined in opt_kbd.h ?
> >
> > Should something force the right order?
> >
> > If we include them in the wrong order, then the compiler will complain,
> > and that's likely sufficient. I'll double check NOTES to make sure that
> the
> > values there are different than the defaults.
>
> The report on Discord (Kernel) was that the attempted use
> resulted in:
>
> --- psm.o ---
> In file included from /usr/src/sys/dev/atkbdc/psm.c:100:
> In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:
> ./opt_kbd.h:1:9: error: 'KBD_DELAY1' macro redefined
> [-Werror,-Wmacro-redefined]
> #define KBD_DELAY1 200
>         ^
> /usr/src/sys/dev/kbd/kbdreg.h:155:9: note: previous definition is here
> #define KBD_DELAY1      500
>         ^
> In file included from /usr/src/sys/dev/atkbdc/psm.c:100:
> In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:
> ./opt_kbd.h:3:9: error: 'KBD_DELAY2' macro redefined
> [-Werror,-Wmacro-redefined]
> #define KBD_DELAY2 15
>         ^
> /usr/src/sys/dev/kbd/kbdreg.h:158:9: note: previous definition is here
> #define KBD_DELAY2      100
>         ^
> 2 errors generated.
> *** [psm.o] Error code 1
>
>
> The reported workaround was:
>
> diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c
> index a308cc81cd3a..86560f7bc2dd 100644
> --- a/sys/dev/atkbdc/psm.c
> +++ b/sys/dev/atkbdc/psm.c
> @@ -62,6 +62,7 @@
> __FBSDID("$FreeBSD$");
>
> #include "opt_isa.h"
> +#include "opt_kbd.h"
> #include "opt_psm.h"
> #include "opt_evdev.h"
>

That works around it. We include opt_kbd.h from atkbdcreg.h, which is a bit
odd (but it's a kernel-only,
so I moved it). And kbdreg.h is also kernel only, so I added it there
instead. That's likely safer and
I should likely have listened a bit better when you asked about it
before...  And not committed to LINT
from machine A when I test compiled it on machine B by mistake <doh>.

Warner


> > Warner
> >  >       unsigned long   kb_count;       /* # of processed key strokes =
*/
> > >       u_char          kb_lastact[NUM_KEYS/2];
> > >       struct cdev *kb_dev;
>
>
>
> =3D=3D=3D
> Mark Millard
> marklmi at yahoo.com
>
>

--000000000000d47e1905f5af7c88
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div dir=3D"ltr"><br></div><br><div class=3D"gmail_quote">=
<div dir=3D"ltr" class=3D"gmail_attr">On Sun, Feb 26, 2023 at 9:12=E2=80=AF=
PM Mark Millard &lt;<a href=3D"mailto:marklmi@yahoo.com">marklmi@yahoo.com<=
/a>&gt; wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">O=
n Feb 26, 2023, at 19:33, Warner Losh &lt;<a href=3D"mailto:imp@bsdimp.com"=
 target=3D"_blank">imp@bsdimp.com</a>&gt; wrote:<br>
<br>
&gt; On Sat, Feb 25, 2023 at 10:03=E2=80=AFAM Mark Millard &lt;<a href=3D"m=
ailto:marklmi@yahoo.com" target=3D"_blank">marklmi@yahoo.com</a>&gt; wrote:=
<br>
&gt; Warner Losh &lt;imp_at_FreeBSD.org&gt; wrote on<br>
&gt; Date: Sat, 25 Feb 2023 06:26:00 UTC :<br>
&gt; <br>
&gt; &gt; The branch main has been updated by imp:<br>
&gt; &gt; <br>
&gt; &gt; URL: <a href=3D"https://cgit.FreeBSD.org/src/commit/?id=3Dc51978f=
4b2f080c80ddc891c24b151d35acb8ba4" rel=3D"noreferrer" target=3D"_blank">htt=
ps://cgit.FreeBSD.org/src/commit/?id=3Dc51978f4b2f080c80ddc891c24b151d35acb=
8ba4</a><br>
&gt; &gt; <br>
&gt; &gt; commit c51978f4b2f080c80ddc891c24b151d35acb8ba4<br>
&gt; &gt; Author:=C2=A0 =C2=A0 =C2=A0Michael Paepcke &lt;<a href=3D"mailto:=
git@paepcke.de" target=3D"_blank">git@paepcke.de</a>&gt;<br>
&gt; &gt; AuthorDate: 2023-02-18 09:11:37 +0000<br>
&gt; &gt; Commit:=C2=A0 =C2=A0 =C2=A0Warner Losh &lt;imp@FreeBSD.org&gt;<br=
>
&gt; &gt; CommitDate: 2023-02-25 06:19:05 +0000<br>
&gt; &gt; <br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0kbd: add KBD_DELAY1 and KBD_DELAY2<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0Allow to configure KBD_DELAY* via KERNCONF for=
 user-land less embedded<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0and security appliances<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0Reviewed by: imp (folded)<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0Pull Request: <a href=3D"https://github.com/fr=
eebsd/freebsd-src/pull/649" rel=3D"noreferrer" target=3D"_blank">https://gi=
thub.com/freebsd/freebsd-src/pull/649</a><br>
&gt; &gt; ---<br>
&gt; &gt;=C2=A0 sys/conf/options=C2=A0 =C2=A0 =C2=A0| 3 ++-<br>
&gt; &gt;=C2=A0 sys/dev/kbd/kbd.c=C2=A0 =C2=A0 | 4 ++--<br>
&gt; &gt;=C2=A0 sys/dev/kbd/kbdreg.h | 8 ++++++--<br>
&gt; &gt;=C2=A0 3 files changed, 10 insertions(+), 5 deletions(-)<br>
&gt; &gt; <br>
&gt; &gt; diff --git a/sys/conf/options b/sys/conf/options<br>
&gt; &gt; index 7855a2f3f20e..42529a90a54e 100644<br>
&gt; &gt; --- a/sys/conf/options<br>
&gt; &gt; +++ b/sys/conf/options<br>
&gt; &gt; @@ -803,8 +803,9 @@ KBD_INSTALL_CDEV=C2=A0 opt_kbd.h<br>
&gt; &gt;=C2=A0 KBD_MAXRETRY=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0opt_kbd.h<br>
&gt; &gt;=C2=A0 KBD_MAXWAIT=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opt_kbd.h<br>
&gt; &gt;=C2=A0 KBD_RESETDELAY=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 =C2=A0opt_kbd.h<br>
&gt; &gt; +KBD_DELAY1=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0opt_kbd.h<br>
&gt; &gt; +KBD_DELAY2=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0opt_kbd.h<br>
&gt; &gt;=C2=A0 KBDIO_DEBUG=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 opt_kbd.h<br>
&gt; &gt; -<br>
&gt; &gt;=C2=A0 KBDMUX_DFLT_KEYMAP=C2=A0 =C2=A0opt_kbdmux.h<br>
&gt; &gt;=C2=A0 <br>
&gt; &gt;=C2=A0 # options for the Atheros driver<br>
&gt; &gt; diff --git a/sys/dev/kbd/kbd.c b/sys/dev/kbd/kbd.c<br>
&gt; &gt; index 205d76639e0f..ebc779de4073 100644<br>
&gt; &gt; --- a/sys/dev/kbd/kbd.c<br>
&gt; &gt; +++ b/sys/dev/kbd/kbd.c<br>
&gt; &gt; @@ -143,8 +143,8 @@ kbd_init_struct(keyboard_t *kbd, char *name, =
int type, int unit, int config,<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_accentmap =3D NULL;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_fkeytab =3D NULL;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_fkeytab_size =3D 0;<br>
&gt; &gt; -=C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_delay1 =3D KB_DELAY1;=C2=A0 =C2=
=A0 =C2=A0/* these values are advisory only */<br>
&gt; &gt; -=C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_delay2 =3D KB_DELAY2;<br>
&gt; &gt; +=C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_delay1 =3D KBD_DELAY1;=C2=A0 =C2=
=A0 /* these values are advisory only */<br>
&gt; &gt; +=C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_delay2 =3D KBD_DELAY2;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0kbd-&gt;kb_count =3D 0L;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0bzero(kbd-&gt;kb_lastact, sizeof(kbd-&g=
t;kb_lastact));<br>
&gt; &gt;=C2=A0 }<br>
&gt; &gt; diff --git a/sys/dev/kbd/kbdreg.h b/sys/dev/kbd/kbdreg.h<br>
&gt; &gt; index 15b7e5183f35..2839e259420d 100644<br>
&gt; &gt; --- a/sys/dev/kbd/kbdreg.h<br>
&gt; &gt; +++ b/sys/dev/kbd/kbdreg.h<br>
&gt; &gt; @@ -151,8 +151,12 @@ struct keyboard {<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0void=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 *kb_data;=C2=A0 =C2=A0 =C2=A0 =C2=A0/* the driver&#39;s private data=
 */<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0kb_delay1;<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0kb_delay2;<br>
&gt; &gt; -#define KB_DELAY1=C2=A0 =C2=A0 500<br>
&gt; &gt; -#define KB_DELAY2=C2=A0 =C2=A0 100<br>
&gt; &gt; +#ifndef KBD_DELAY1<br>
&gt; &gt; +#define KBD_DELAY1=C2=A0 =C2=A0500<br>
&gt; &gt; +#endif<br>
&gt; &gt; +#ifndef KBD_DELAY2<br>
&gt; &gt; +#define KBD_DELAY2=C2=A0 =C2=A0100<br>
&gt; &gt; +#endif<br>
&gt; <br>
&gt; [Just reporting Ximalas&#39;s Discord note.]<br>
&gt; <br>
&gt; So opt_kbd.h must be included before kbdreg.h in<br>
&gt; order to avoid: macro redefined in opt_kbd.h ?<br>
&gt; <br>
&gt; Should something force the right order?<br>
&gt; <br>
&gt; If we include them in the wrong order, then the compiler will complain=
,<br>
&gt; and that&#39;s likely sufficient. I&#39;ll double check NOTES to make =
sure that the<br>
&gt; values there are different than the defaults.<br>
<br>
The report on Discord (Kernel) was that the attempted use<br>
resulted in:<br>
<br>
--- psm.o ---<br>
In file included from /usr/src/sys/dev/atkbdc/psm.c:100:<br>
In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:<br>
./opt_kbd.h:1:9: error: &#39;KBD_DELAY1&#39; macro redefined [-Werror,-Wmac=
ro-redefined]<br>
#define KBD_DELAY1 200<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
/usr/src/sys/dev/kbd/kbdreg.h:155:9: note: previous definition is here<br>
#define KBD_DELAY1=C2=A0 =C2=A0 =C2=A0 500<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
In file included from /usr/src/sys/dev/atkbdc/psm.c:100:<br>
In file included from /usr/src/sys/dev/atkbdc/atkbdcreg.h:39:<br>
./opt_kbd.h:3:9: error: &#39;KBD_DELAY2&#39; macro redefined [-Werror,-Wmac=
ro-redefined]<br>
#define KBD_DELAY2 15<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
/usr/src/sys/dev/kbd/kbdreg.h:158:9: note: previous definition is here<br>
#define KBD_DELAY2=C2=A0 =C2=A0 =C2=A0 100<br>
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ^<br>
2 errors generated.<br>
*** [psm.o] Error code 1<br>
<br>
<br>
The reported workaround was:<br>
<br>
diff --git a/sys/dev/atkbdc/psm.c b/sys/dev/atkbdc/psm.c<br>
index a308cc81cd3a..86560f7bc2dd 100644<br>
--- a/sys/dev/atkbdc/psm.c<br>
+++ b/sys/dev/atkbdc/psm.c<br>
@@ -62,6 +62,7 @@<br>
__FBSDID(&quot;$FreeBSD$&quot;);<br>
<br>
#include &quot;opt_isa.h&quot;<br>
+#include &quot;opt_kbd.h&quot;<br>
#include &quot;opt_psm.h&quot;<br>
#include &quot;opt_evdev.h&quot;<br></blockquote><div><br></div><div>That w=
orks around it. We include opt_kbd.h from atkbdcreg.h, which is a bit odd (=
but it&#39;s a kernel-only,</div><div>so I moved it). And kbdreg.h is also =
kernel only, so I added it there instead. That&#39;s likely safer and</div>=
<div>I should likely have listened a bit better when you asked about it bef=
ore...=C2=A0 And not committed to LINT</div><div>from machine A when I test=
 compiled it on machine B by mistake &lt;doh&gt;.<br></div><div><br></div><=
div>Warner<br></div><div>=C2=A0</div><blockquote class=3D"gmail_quote" styl=
e=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddin=
g-left:1ex">
&gt; Warner<br>
&gt;=C2=A0 &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0unsigned long=C2=A0 =C2=A0kb_coun=
t;=C2=A0 =C2=A0 =C2=A0 =C2=A0/* # of processed key strokes */<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0u_char=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=
=A0 kb_lastact[NUM_KEYS/2];<br>
&gt; &gt;=C2=A0 =C2=A0 =C2=A0 =C2=A0struct cdev *kb_dev;<br>
<br>
<br>
<br>
=3D=3D=3D<br>
Mark Millard<br>
marklmi at <a href=3D"http://yahoo.com" rel=3D"noreferrer" target=3D"_blank=
">yahoo.com</a><br>
<br>
</blockquote></div></div>

--000000000000d47e1905f5af7c88--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CANCZdfp0UnZ_nZN5%2B_1qqFewxWGK%2BFCa0GfTJ91egs9BJi8yHw>