Re: Using shift on external keyboards in softraid passphrases from efiboot

2018-08-25 Thread Mark Kettenis
> Date: Sat, 25 Aug 2018 07:53:55 +0900 (JST)
> From: YASUOKA Masahiko 
> 
> On Fri, 24 Aug 2018 10:55:52 +0200
> Patrick Wildt  wrote:
> > On Fri, Aug 24, 2018 at 10:47:27AM +0200, Theo Buehler wrote:
> >> On Fri, Aug 24, 2018 at 11:50:51AM +0900, YASUOKA Masahiko wrote:
> >> > Hi,
> >> > 
> >> > I think the diff should be brought to arm64 as well.  ok?
> >> 
> >> ok. But shouldn't armv7 also be kept in sync?
> > 
> > Exactly.
> 
> Thanks,
> 
> ok?

ok kettenis@

> Index: sys/arch/arm64/stand/efiboot/efiboot.c
> ===
> RCS file: /cvs/src/sys/arch/arm64/stand/efiboot/efiboot.c,v
> retrieving revision 1.20
> diff -u -p -r1.20 efiboot.c
> --- sys/arch/arm64/stand/efiboot/efiboot.c23 Aug 2018 15:31:12 -  
> 1.20
> +++ sys/arch/arm64/stand/efiboot/efiboot.c24 Aug 2018 22:51:21 -
> @@ -129,7 +129,7 @@ efi_cons_getc(dev_t dev)
>   }
>  
>   status = conin->ReadKeyStroke(conin, &key);
> - while (status == EFI_NOT_READY) {
> + while (status == EFI_NOT_READY || key.UnicodeChar == 0) {
>   if (dev & 0x80)
>   return (0);
>   /*
> Index: sys/arch/armv7/stand/efiboot/efiboot.c
> ===
> RCS file: /cvs/src/sys/arch/armv7/stand/efiboot/efiboot.c,v
> retrieving revision 1.22
> diff -u -p -r1.22 efiboot.c
> --- sys/arch/armv7/stand/efiboot/efiboot.c23 Aug 2018 15:31:12 -  
> 1.22
> +++ sys/arch/armv7/stand/efiboot/efiboot.c24 Aug 2018 22:51:21 -
> @@ -126,7 +126,7 @@ efi_cons_getc(dev_t dev)
>   }
>  
>   status = conin->ReadKeyStroke(conin, &key);
> - while (status == EFI_NOT_READY) {
> + while (status == EFI_NOT_READY || key.UnicodeChar == 0) {
>   if (dev & 0x80)
>   return (0);
>   /*
> 
> 



Re: update ifstated parser

2018-08-25 Thread Marcus MERIGHI
Hello, 

cleaning up my inbox I stumbled over this, it would be handy, still
applies and compiles. 

But... it does not like my config when running "ifstated -n -v -f
/etc/ifstated.conf", as opposed to ifstated *before* the patch.

part of /etc/ifstated.conf

init-state auto
wireif = 'em0'
waveif = 'iwn0'
wire_act = '( "ifconfig wire | grep -q \"status: active$\"" every 10 )'
wave_act = '( "ifconfig wlan | grep -q \"status: active$\"" every 10 )'

output of "ifstated -n -v -f /etc/ifstated.conf"

wireif = "em0"
waveif = "iwn0"
/etc/ifstated.conf:6: macro '( "ifconfig wire | grep -q \"status:
active\' not defined
/etc/ifstated.conf:6: syntax error

Is there anything I can do apart from learning C?

BTW, rob@'s ifstated.conf.5 clarification was commited, thus
documentation and reality are aligned.

Marcus

r...@2keys.ca (Rob Pierce), 2018.03.05 (Mon) 19:55 (CET):
> On Mon, Feb 26, 2018 at 05:10:43PM -0600, Michael Graves wrote:
> > Hello
> > 
> > I use ifstated(8) to track the state of the the external interface that is
> > configured via dhcp and based upon the state, (re)configure a VXLAN
> > interface.
> > The ifstated.conf currently looks like
> > 
> > ===
> > exif="em0"
> > vxif="vxlan0"
> > 
> > init-state state_down
> > 
> > state state_up {
> >   init {
> > run "ifconfig vlxna0 up"
> >   }
> >   if ( "ifconfig em0 | grep -q inet" every 60 )
> > run "sleep 30 && ifconfig vxlan0 tunnel `ifconfig em0 | \
> >  sed -nre 's/.*inet ([^ ]+).*/\1/p'` \
> > `dig +short name-of-remote-device`"
> >   if $exif.link.down
> > set-state state_down
> > }
> > 
> > state state_down {
> >   init {
> > run "ifconfig vxlan0 down"
> >   }
> >   if $exif.link.up
> > set-state state_up
> > }
> > ===
> > 
> > The problem I ran into is that when I tried to substitute the vxlan0 and em0
> > entries with exif and vxif in the 'run' statements no macro expansion
> > occurred.
> > This patch allows macro expansion within the 'run' and 'if' statements.
> > 
> > I appreciate any feedback.
> > Regards
> 
> > Index: parse.y
> > ===
> > RCS file: /cvs/src/usr.sbin/ifstated/parse.y,v
> > retrieving revision 1.47
> > diff -u -p -r1.47 parse.y
> > --- parse.y 21 Aug 2017 17:38:55 -  1.47
> > +++ parse.y 26 Feb 2018 22:47:11 -
> > @@ -509,9 +509,10 @@ int
> >  yylex(void)
> >  {
> > u_char   buf[8096];
> > -   u_char  *p, *val;
> > +   u_char  *p, *p1, *val;
> > int  quotec, next, c;
> > int  token;
> > +   size_t  x;
> >  
> >  top:
> > p = buf;
> > @@ -575,6 +576,35 @@ top:
> > } else if (c == '\0') {
> > yyerror("syntax error");
> > return (findeol());
> > +   } else if (c == '$') {
> > +   p1 = p;
> > +   while (1) {
> > +   if ((c = lgetc(0)) == EOF)
> > +   return (0);
> > +   if (p1 + 1 >= buf + sizeof(buf) - 1) {
> > +   yyerror("string too long");
> > +   return (findeol());
> > +   }
> > +   if (isalnum(c) || c == '_') {
> > +   *p1++ = c;
> > +   continue;
> > +   }
> > +   *p1 = '\0';
> > +   lungetc(c);
> > +   break;
> > +   }
> > +   val = symget(p);
> > +   if (val == NULL) {
> > +   yyerror("macro '%s' not defined", buf);
> > +   return (findeol());
> > +   }
> > +   x = strlcpy(p,val,(buf-p));
> > +   if (x >= (buf-p)) {
> > +   yyerror("string too long");
> > +   return (findeol());
> > +   }
> > +   p += x;
> > +   continue;
> > }
> > if (p + 1 >= buf + sizeof(buf) - 1) {
> > yyerror("string too long");
> 
> Hey Michael,
> 
> Thank you for your email. I have been playing with your diff and will send you
> some comments shortly. This might be worth future consideration.
> 
> For now, I think we should update the man page to clearly state that macro
> expansion does not take place inside quotes as is currently done in the other
> man pages.
> 
> Ok?
> 
> Index: ifstated.conf.5
> ===
> RCS file: /cvs/src/usr.sbin/ifstated/ifstated.conf.5,v

Claiming framebuffers

2018-08-25 Thread Mark Kettenis
The last issue that keeps me from enabling radeondrm(4) on arm64 is
that I need to prevent simplefb(4) and radeondrm(4) from fighting over
te same framebuffer.  We already have an ad-hoc solution for efifb(4)
on amd64.  But I don't think adding yet another MD-specific mechanism
is the way to go.

So here is a diff that adds two new rasops(4) functions:

- rasops_claim_framebuffer()

  Claims control of the framebuffer address space.  The framebuffer
  address space is specified as a physical address as viewed from the
  CPU.  So before claiming an address range, drivers should do the
  appropriate translation, for example by calling bus_space_mmap().

- rasops_check_framebuffer()

  Checks whether the framebuffer with the specified address has
  already been claimed by another driver.

The idea is that a "dumb" framebuffer driver like simplefb(4) or
efifb(4) will call rasops_check_framebuffer() in its match function
and return 0 if the framebuffer has already been claimed.

This interface does not yet handle the case where the framebuffer
device is the console device and we want to reattach the "dumb" driver
because the preferred driver can't attach because it can't load its
firmware.  That needs a bit more thought still.

ok?


Index: dev/pci/drm/radeon/radeon_kms.c
===
RCS file: /cvs/src/sys/dev/pci/drm/radeon/radeon_kms.c,v
retrieving revision 1.57
diff -u -p -r1.57 radeon_kms.c
--- dev/pci/drm/radeon/radeon_kms.c 24 Aug 2018 05:21:48 -  1.57
+++ dev/pci/drm/radeon/radeon_kms.c 25 Aug 2018 13:39:20 -
@@ -435,6 +435,7 @@ radeondrm_attach_kms(struct device *pare
pcireg_t type;
int  i;
uint8_t  rmmio_bar;
+   paddr_t  fb_aper;
 #if !defined(__sparc64__)
pcireg_t addr, mask;
int  s;
@@ -659,6 +660,10 @@ radeondrm_attach_kms(struct device *pare
fbwscons_console_init(&rdev->sf, -1);
 }
 #endif
+
+   fb_aper = bus_space_mmap(rdev->memt, rdev->fb_aper_offset, 0, 0, 0);
+   if (fb_aper != -1)
+   rasops_claim_framebuffer(fb_aper, rdev->fb_aper_size, self);
 
rdev->shutdown = true;
config_mountroot(self, radeondrm_attachhook);
Index: dev/fdt/simplefb.c
===
RCS file: /cvs/src/sys/dev/fdt/simplefb.c,v
retrieving revision 1.4
diff -u -p -r1.4 simplefb.c
--- dev/fdt/simplefb.c  31 Jul 2018 17:25:55 -  1.4
+++ dev/fdt/simplefb.c  25 Aug 2018 13:39:20 -
@@ -110,6 +110,10 @@ simplefb_match(struct device *parent, vo
 {
struct fdt_attach_args *faa = aux;
 
+   /* Don't attach if another driver already claimed our framebuffer. */
+   if (faa->fa_nreg > 0 && rasops_check_framebuffer(faa->fa_reg[0].addr))
+   return 0;
+
return OF_is_compatible(faa->fa_node, "simple-framebuffer");
 }
 
Index: dev/rasops/rasops.c
===
RCS file: /cvs/src/sys/dev/rasops/rasops.c,v
retrieving revision 1.55
diff -u -p -r1.55 rasops.c
--- dev/rasops/rasops.c 25 Aug 2018 12:23:45 -  1.55
+++ dev/rasops/rasops.c 25 Aug 2018 13:39:20 -
@@ -1968,3 +1968,39 @@ rasops_scrollback(void *v, void *cookie,
if (scr->rs_crow != -1 && scr->rs_visibleoffset == scr->rs_dispoffset)
rasops_cursor(ri, 1, scr->rs_crow, scr->rs_ccol);
 }
+
+struct rasops_framebuffer {
+   SLIST_ENTRY(rasops_framebuffer) rf_list;
+   paddr_t rf_base;
+   psize_t rf_size;
+   struct device   *rf_dev;
+};
+
+SLIST_HEAD(, rasops_framebuffer) rasops_framebuffers =
+SLIST_HEAD_INITIALIZER(&rasops_framebuffers);
+
+void
+rasops_claim_framebuffer(paddr_t base, psize_t size, struct device *dev)
+{
+   struct rasops_framebuffer *rf;
+
+   rf = malloc(sizeof(*rf), M_DEVBUF, M_WAITOK);
+   rf->rf_base = base;
+   rf->rf_size = size;
+   rf->rf_dev = dev;
+
+   SLIST_INSERT_HEAD(&rasops_framebuffers, rf, rf_list);
+}
+
+int
+rasops_check_framebuffer(paddr_t base)
+{
+   struct rasops_framebuffer *rf;
+
+   SLIST_FOREACH(rf, &rasops_framebuffers, rf_list) {
+   if (base >= rf->rf_base && base < rf->rf_base + rf->rf_size)
+   return 1;
+   }
+
+   return 0;
+}
Index: dev/rasops/rasops.h
===
RCS file: /cvs/src/sys/dev/rasops/rasops.h,v
retrieving revision 1.22
diff -u -p -r1.22 rasops.h
--- dev/rasops/rasops.h 27 Apr 2018 21:36:12 -  1.22
+++ dev/rasops/rasops.h 25 Aug 2018 13:39:20 -
@@ -179,6 +179,8 @@ int rasops_load_font(void *, void *, str
 intrasops_list_font(void *, struct wsdisplay_font *);
 intrasops_getchar(void *, int, int, struct wsdisplay_charcell *);
 void   rasops_scrollback(void *, void *, int);
+void   rasops_

Speed up UEFI framebuffer console

2018-08-25 Thread Mark Kettenis
Here is a diff to speed up the initial framebuffer console on amd64.
It remaps the framebuffer write-combining early on, which speeds up
writing to the framebuffer considerably.

Remapping is done using _bus_space_map().  Otherwise inteldrm(4) and
radeondrm(4) will fail to attach (or even panic) because the graphics
aperture can't be mapped.  This mapping stays around even if efifb(4)
doesn't attach.  There is no good place to unmap it without risking
some random kernel printf causing a fault.

The rasops(4) bit is a bugfix that probably should go in regardless.
It makes sure we don't clear the character mapping if the RI_CLEAR
flag isn't set.

Can somebody with a UEFI machine that has radeondrm(4) test this for
me?


Index: arch/amd64/amd64/efifb.c
===
RCS file: /cvs/src/sys/arch/amd64/amd64/efifb.c,v
retrieving revision 1.17
diff -u -p -r1.17 efifb.c
--- arch/amd64/amd64/efifb.c12 Jul 2018 12:47:57 -  1.17
+++ arch/amd64/amd64/efifb.c25 Aug 2018 15:27:43 -
@@ -215,11 +215,6 @@ efifb_attach(struct device *parent, stru
ccol = ri->ri_ccol;
crow = ri->ri_crow;
 
-   if (bus_space_map(iot, fb->paddr, fb->psize,
-   BUS_SPACE_MAP_PREFETCHABLE | BUS_SPACE_MAP_LINEAR,
-   &ioh) == 0)
-   ri->ri_origbits = bus_space_vaddr(iot, ioh);
-
efifb_rasops_preinit(fb);
ri->ri_flg &= ~RI_CLEAR;
ri->ri_flg |= RI_VCONS | RI_WRONLY;
@@ -428,6 +423,7 @@ efifb_efiinfo_init(struct efifb *fb)
fb->psize = bios_efiinfo->fb_height *
bios_efiinfo->fb_pixpsl * (fb->depth / 8);
 }
+
 void
 efifb_cnattach_common(void)
 {
@@ -450,6 +446,28 @@ efifb_cnattach_common(void)
 
ri->ri_ops.alloc_attr(ri, 0, 0, 0, &defattr);
wsdisplay_cnattach(&efifb_std_descr, ri, 0, 0, defattr);
+}
+
+void
+efifb_cnremap(void)
+{
+   struct efifb*fb = &efifb_console;
+   struct rasops_info  *ri = &fb->rinfo;
+   bus_space_tag_t  iot = X86_BUS_SPACE_MEM;
+   bus_space_handle_t   ioh;
+
+   if (fb->paddr == 0)
+   return;
+
+   if (_bus_space_map(iot, fb->paddr, fb->psize,
+   BUS_SPACE_MAP_PREFETCHABLE | BUS_SPACE_MAP_LINEAR, &ioh) == 0)
+   ri->ri_origbits = bus_space_vaddr(iot, ioh);
+
+   efifb_rasops_preinit(fb);
+   ri->ri_flg &= ~RI_CLEAR;
+   ri->ri_flg |= RI_CENTER | RI_WRONLY;
+
+   rasops_init(ri, efifb_std_descr.nrows, efifb_std_descr.ncols);
 }
 
 int
Index: arch/amd64/amd64/mainbus.c
===
RCS file: /cvs/src/sys/arch/amd64/amd64/mainbus.c,v
retrieving revision 1.44
diff -u -p -r1.44 mainbus.c
--- arch/amd64/amd64/mainbus.c  13 Jul 2018 08:30:34 -  1.44
+++ arch/amd64/amd64/mainbus.c  25 Aug 2018 15:27:43 -
@@ -171,6 +171,10 @@ mainbus_attach(struct device *parent, st
pvbus_identify();
 #endif
 
+#if NEFIFB > 0
+   efifb_cnremap();
+#endif
+
 #if NBIOS > 0
{
mba.mba_bios.ba_name = "bios";
Index: arch/amd64/include/efifbvar.h
===
RCS file: /cvs/src/sys/arch/amd64/include/efifbvar.h,v
retrieving revision 1.7
diff -u -p -r1.7 efifbvar.h
--- arch/amd64/include/efifbvar.h   25 Apr 2018 00:46:28 -  1.7
+++ arch/amd64/include/efifbvar.h   25 Aug 2018 15:27:43 -
@@ -26,6 +26,7 @@ struct efifb_attach_args {
 struct pci_attach_args;
 
 int efifb_cnattach(void);
+void efifb_cnremap(void);
 int efifb_is_console(struct pci_attach_args *);
 void efifb_cndetach(void);
 void efifb_cnreattach(void);
Index: dev/rasops/rasops.c
===
RCS file: /cvs/src/sys/dev/rasops/rasops.c,v
retrieving revision 1.54
diff -u -p -r1.54 rasops.c
--- dev/rasops/rasops.c 3 May 2018 10:05:47 -   1.54
+++ dev/rasops/rasops.c 25 Aug 2018 15:27:43 -
@@ -288,10 +288,12 @@ rasops_init(struct rasops_info *ri, int 
ri->ri_ops.copyrows = rasops_wronly_copyrows;
ri->ri_ops.eraserows = rasops_wronly_eraserows;
 
-   ri->ri_alloc_attr(ri, 0, 0, 0, &attr);
-   for (i = 0; i < ri->ri_rows * ri->ri_cols; i++) {
-   ri->ri_bs[i].uc = ' ';
-   ri->ri_bs[i].attr = attr;
+   if (ri->ri_flg & RI_CLEAR) {
+   ri->ri_alloc_attr(ri, 0, 0, 0, &attr);
+   for (i = 0; i < ri->ri_rows * ri->ri_cols; i++) {
+   ri->ri_bs[i].uc = ' ';
+   ri->ri_bs[i].attr = attr;
+   }
}
}
 



ENA support

2018-08-25 Thread Zbyszek Żółkiewski
Hi,

just a question: anyone tried/consider porting ENA (Elastic Network Adapter) 
support to OpenBSD 
(https://github.com/amzn/amzn-drivers/tree/master/kernel/fbsd/ena), how hard 
would be to get it to obsd?

_
Zbyszek Żółkiewski



umt(4)

2018-08-25 Thread joshua stein
For USB-connected Windows Precision Touchpad devices, just like 
imt(4) is for i2c.

Also renames HIDMT_INPUT_MODE_MT to HIDMT_INPUT_MODE_MT_TOUCHPAD 
since there is a different value for touchscreens (not yet used).


Index: sys/arch/amd64/conf/GENERIC
===
RCS file: /cvs/src/sys/arch/amd64/conf/GENERIC,v
retrieving revision 1.460
diff -u -p -u -p -r1.460 GENERIC
--- sys/arch/amd64/conf/GENERIC 22 Aug 2018 15:38:46 -  1.460
+++ sys/arch/amd64/conf/GENERIC 25 Aug 2018 18:39:09 -
@@ -257,6 +257,8 @@ wsmouse* at ubcmtp? mux 0
 uhidev*at uhub?# Human Interface Devices
 ums*   at uhidev?  # USB mouse
 wsmouse* at ums? mux 0
+umt*   at uhidev?  # Multitouch touchpad
+wsmouse* at umt? mux 0
 uts*   at uhub?# USB touchscreen
 wsmouse* at uts? mux 0
 uwacom*at uhidev?  # USB Wacom tablet
Index: share/man/man4/Makefile
===
RCS file: /cvs/src/share/man/man4/Makefile,v
retrieving revision 1.690
diff -u -p -u -p -r1.690 Makefile
--- share/man/man4/Makefile 19 Aug 2018 11:42:33 -  1.690
+++ share/man/man4/Makefile 25 Aug 2018 18:39:09 -
@@ -75,8 +75,8 @@ MAN=  aac.4 ac97.4 acphy.4 acrtc.4 \
uftdi.4 ugen.4 ugl.4 ugold.4 uguru.4 uhci.4 uhid.4 uhidev.4 uipaq.4 \
uk.4 ukbd.4 \
ukphy.4 ulpt.4 umass.4 umb.4 umbg.4 umcs.4 umct.4 umidi.4 umodem.4 \
-   ums.4 umsm.4 unix.4 uonerng.4 uow.4 uoaklux.4 uoakrh.4 uoakv.4 upd.4 \
-   upgt.4 upl.4 uplcom.4 ural.4 ure.4 url.4 urlphy.4 \
+   ums.4 umsm.4 umt.4 unix.4 uonerng.4 uow.4 uoaklux.4 uoakrh.4 uoakv.4 \
+   upd.4 upgt.4 upl.4 uplcom.4 ural.4 ure.4 url.4 urlphy.4 \
urndis.4 urng.4 urtw.4 urtwn.4 usb.4 uscom.4 uslcom.4 usps.4 \
uthum.4 uticom.4 utpms.4 utwitch.4 utrh.4 uts.4 utvfu.4 uvideo.4 \
uvisor.4 uvscom.4 uwacom.4 \
Index: share/man/man4/uhidev.4
===
RCS file: /cvs/src/share/man/man4/uhidev.4,v
retrieving revision 1.9
diff -u -p -u -p -r1.9 uhidev.4
--- share/man/man4/uhidev.4 12 Sep 2016 08:12:06 -  1.9
+++ share/man/man4/uhidev.4 25 Aug 2018 18:39:09 -
@@ -42,6 +42,7 @@
 .Cd "uhid*at uhidev?"
 .Cd "ukbd*at uhidev?"
 .Cd "ums* at uhidev?"
+.Cd "umt* at uhidev?"
 .Cd "uoaklux* at uhidev?"
 .Cd "uoakrh*  at uhidev?"
 .Cd "uoakv*   at uhidev?"
@@ -73,6 +74,7 @@ only dispatches data to them based on th
 .Xr uhid 4 ,
 .Xr ukbd 4 ,
 .Xr ums 4 ,
+.Xr umt 4 ,
 .Xr uoaklux 4 ,
 .Xr uoakrh 4 ,
 .Xr uoakv 4 ,
Index: share/man/man4/umt.4
===
RCS file: share/man/man4/umt.4
diff -N share/man/man4/umt.4
--- /dev/null   1 Jan 1970 00:00:00 -
+++ share/man/man4/umt.425 Aug 2018 18:39:10 -
@@ -0,0 +1,47 @@
+.\"$OpenBSD$
+.\"
+.\" Copyright (c) 2016-2018 joshua stein 
+.\"
+.\" Permission to use, copy, modify, and distribute this software for any
+.\" purpose with or without fee is hereby granted, provided that the above
+.\" copyright notice and this permission notice appear in all copies.
+.\"
+.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+.\"
+.Dd $Mdocdate$
+.Dt UMT 4
+.Os
+.Sh NAME
+.Nm umt
+.Nd USB HID multitouch touchpad support
+.Sh SYNOPSIS
+.Cd "umt* at uhidev?"
+.Cd "wsmouse* at umt? mux 0"
+.Sh DESCRIPTION
+The
+.Nm
+driver provides support for USB HID touchpads conforming to the
+Windows Precision Touchpad standard.
+Access to these devices is through the
+.Xr wscons 4
+driver.
+.Sh SEE ALSO
+.Xr uhidev 4 ,
+.Xr ums 4 ,
+.Xr wsmouse 4
+.Sh HISTORY
+The
+.Nm
+device driver first appeared in
+.Ox 6.4 .
+.Sh AUTHORS
+The
+.Nm
+driver was written by
+.An joshua stein Aq Mt j...@openbsd.org .
Index: share/man/man4/usb.4
===
RCS file: /cvs/src/share/man/man4/usb.4,v
retrieving revision 1.188
diff -u -p -u -p -r1.188 usb.4
--- share/man/man4/usb.43 Aug 2018 01:50:14 -   1.188
+++ share/man/man4/usb.425 Aug 2018 18:39:10 -
@@ -248,6 +248,8 @@ Base driver for all Human Interface Devi
 USB keyboards that follow the boot protocol
 .It Xr ums 4
 USB HID mouse, touchscreen and digitiser devices
+.It Xr umt 4
+USB HID touchpad devices
 .It Xr uoaklux 4
 Toradex OAK USB illuminance sensor
 .It Xr uoakrh 4
Index: sys/dev/hid/hidmt.c
==

Re: umt(4)

2018-08-25 Thread Jason McIntyre
On Sat, Aug 25, 2018 at 01:41:40PM -0500, joshua stein wrote:
> For USB-connected Windows Precision Touchpad devices, just like 
> imt(4) is for i2c.
> 
> Also renames HIDMT_INPUT_MODE_MT to HIDMT_INPUT_MODE_MT_TOUCHPAD 
> since there is a different value for touchscreens (not yet used).
> 

ok for the man stuff, but please keep the description in the Nd line and
the entry in usb(4) exactly the same.

jmc

> 
> Index: sys/arch/amd64/conf/GENERIC
> ===
> RCS file: /cvs/src/sys/arch/amd64/conf/GENERIC,v
> retrieving revision 1.460
> diff -u -p -u -p -r1.460 GENERIC
> --- sys/arch/amd64/conf/GENERIC   22 Aug 2018 15:38:46 -  1.460
> +++ sys/arch/amd64/conf/GENERIC   25 Aug 2018 18:39:09 -
> @@ -257,6 +257,8 @@ wsmouse* at ubcmtp? mux 0
>  uhidev*  at uhub?# Human Interface Devices
>  ums* at uhidev?  # USB mouse
>  wsmouse* at ums? mux 0
> +umt* at uhidev?  # Multitouch touchpad
> +wsmouse* at umt? mux 0
>  uts* at uhub?# USB touchscreen
>  wsmouse* at uts? mux 0
>  uwacom*  at uhidev?  # USB Wacom tablet
> Index: share/man/man4/Makefile
> ===
> RCS file: /cvs/src/share/man/man4/Makefile,v
> retrieving revision 1.690
> diff -u -p -u -p -r1.690 Makefile
> --- share/man/man4/Makefile   19 Aug 2018 11:42:33 -  1.690
> +++ share/man/man4/Makefile   25 Aug 2018 18:39:09 -
> @@ -75,8 +75,8 @@ MAN=aac.4 ac97.4 acphy.4 acrtc.4 \
>   uftdi.4 ugen.4 ugl.4 ugold.4 uguru.4 uhci.4 uhid.4 uhidev.4 uipaq.4 \
>   uk.4 ukbd.4 \
>   ukphy.4 ulpt.4 umass.4 umb.4 umbg.4 umcs.4 umct.4 umidi.4 umodem.4 \
> - ums.4 umsm.4 unix.4 uonerng.4 uow.4 uoaklux.4 uoakrh.4 uoakv.4 upd.4 \
> - upgt.4 upl.4 uplcom.4 ural.4 ure.4 url.4 urlphy.4 \
> + ums.4 umsm.4 umt.4 unix.4 uonerng.4 uow.4 uoaklux.4 uoakrh.4 uoakv.4 \
> + upd.4 upgt.4 upl.4 uplcom.4 ural.4 ure.4 url.4 urlphy.4 \
>   urndis.4 urng.4 urtw.4 urtwn.4 usb.4 uscom.4 uslcom.4 usps.4 \
>   uthum.4 uticom.4 utpms.4 utwitch.4 utrh.4 uts.4 utvfu.4 uvideo.4 \
>   uvisor.4 uvscom.4 uwacom.4 \
> Index: share/man/man4/uhidev.4
> ===
> RCS file: /cvs/src/share/man/man4/uhidev.4,v
> retrieving revision 1.9
> diff -u -p -u -p -r1.9 uhidev.4
> --- share/man/man4/uhidev.4   12 Sep 2016 08:12:06 -  1.9
> +++ share/man/man4/uhidev.4   25 Aug 2018 18:39:09 -
> @@ -42,6 +42,7 @@
>  .Cd "uhid*at uhidev?"
>  .Cd "ukbd*at uhidev?"
>  .Cd "ums* at uhidev?"
> +.Cd "umt* at uhidev?"
>  .Cd "uoaklux* at uhidev?"
>  .Cd "uoakrh*  at uhidev?"
>  .Cd "uoakv*   at uhidev?"
> @@ -73,6 +74,7 @@ only dispatches data to them based on th
>  .Xr uhid 4 ,
>  .Xr ukbd 4 ,
>  .Xr ums 4 ,
> +.Xr umt 4 ,
>  .Xr uoaklux 4 ,
>  .Xr uoakrh 4 ,
>  .Xr uoakv 4 ,
> Index: share/man/man4/umt.4
> ===
> RCS file: share/man/man4/umt.4
> diff -N share/man/man4/umt.4
> --- /dev/null 1 Jan 1970 00:00:00 -
> +++ share/man/man4/umt.4  25 Aug 2018 18:39:10 -
> @@ -0,0 +1,47 @@
> +.\"  $OpenBSD$
> +.\"
> +.\" Copyright (c) 2016-2018 joshua stein 
> +.\"
> +.\" Permission to use, copy, modify, and distribute this software for any
> +.\" purpose with or without fee is hereby granted, provided that the above
> +.\" copyright notice and this permission notice appear in all copies.
> +.\"
> +.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
> +.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
> +.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
> +.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
> +.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
> +.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
> +.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
> +.\"
> +.Dd $Mdocdate$
> +.Dt UMT 4
> +.Os
> +.Sh NAME
> +.Nm umt
> +.Nd USB HID multitouch touchpad support
> +.Sh SYNOPSIS
> +.Cd "umt* at uhidev?"
> +.Cd "wsmouse* at umt? mux 0"
> +.Sh DESCRIPTION
> +The
> +.Nm
> +driver provides support for USB HID touchpads conforming to the
> +Windows Precision Touchpad standard.
> +Access to these devices is through the
> +.Xr wscons 4
> +driver.
> +.Sh SEE ALSO
> +.Xr uhidev 4 ,
> +.Xr ums 4 ,
> +.Xr wsmouse 4
> +.Sh HISTORY
> +The
> +.Nm
> +device driver first appeared in
> +.Ox 6.4 .
> +.Sh AUTHORS
> +The
> +.Nm
> +driver was written by
> +.An joshua stein Aq Mt j...@openbsd.org .
> Index: share/man/man4/usb.4
> ===
> RCS file: /cvs/src/share/man/man4/usb.4,v
> retrieving revision 1.188
> diff -u -p -u -p -r1.188 usb.4
> --- share/man/man4/usb.4  3 Aug 2018 01:50:14 -