Marcus Glocker on Sat, Sep 03 2022:
> I have an Wacom One CTL-672, never used it on OpenBSD.

This is the "Wacom One M", which I also own...

> Currently it attaches to ums(4). Works fine with that.

It seems to expose two HIDs, one which reports as a regular "mouse" and
makes it work like a touchpad (relative mode), and a second one (with a
nonsense report descriptor) that can be used for absolute positioning.

> It also works fine when attaching to uwacom(4), without and with your
> diff.  It doesn't seem to require specific 'tsscale' nor
> 'loc_tip_press' settings.

This does not match my experience; the second device (which uwacom
attaches to) did not produce any events. It appears it needs the call to
uhidev_set_report() of the "One S" code path to switch on.

Trivial patch below that made it produce events for me.

I did have to fiddle with xinput(1) to get the scale right. I ended up
putting the following in its InputDevice section in /etc/X11/xorg.conf:

        Option      "TransformationMatrix" "0.09 0 0 0 0.08 0 0 0 1"

I wonder what the correct way is to avoid having to do this. Is it those
tsscale parameters? If so, what's the best way to determine the correct
values?

-pesco


Index: dev/usb/uwacom.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/uwacom.c,v
retrieving revision 1.7
diff -u -p -r1.7 uwacom.c
--- dev/usb/uwacom.c    8 Oct 2022 06:53:06 -0000       1.7
+++ dev/usb/uwacom.c    8 Dec 2022 12:47:44 -0000
@@ -141,7 +141,8 @@ uwacom_attach(struct device *parent, str
        ms->sc_loc_btn[2].pos = 2;
        ms->sc_loc_btn[2].size = 1;
 
-       if (uha->uaa->product == USB_PRODUCT_WACOM_ONE_S) {
+       if (uha->uaa->product == USB_PRODUCT_WACOM_ONE_S ||
+           uha->uaa->product == USB_PRODUCT_WACOM_ONE_M) {
                static uByte reportbuf[2] = { 0x02, 0x02 };
                uhidev_set_report(uha->parent, UHID_FEATURE_REPORT, 2,
                    &reportbuf, 2);

Reply via email to