- Sep 02, 2022
-
-
Benjamin Tissoires authored
boot2container gives us several benefits over plain qemu: - we don't start a full system which we need to ssh in - we don't have to build a specific container - we don't have to scp the files in and out Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Aug 18, 2022
-
-
Benjamin Tissoires authored
When running in an environment without udev, we might want to start it manually. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Aug 11, 2022
-
-
The PTH-460 has its HID descriptor implemented slightly differently to its siblings the 660 and 860. Specifically, each of the functions of the pad are encapsulated in their own physical collections. This causes a little bit of trouble for the current Wacom driver which typically treats multiple collections of the same tool as multiple snapshots of a single tool's state (mainly to support BT devices that send e.g. 5 pen updates in a single packet). We check to make sure that we don't get partial/empty pad syncs when they shouldn't exist. The easiest way to trigger this behavior is to simultaneously use the touchring and expresskeys since they are in different collections. This behavior was fixed in the upstream Linux kernel by commit d4b8efeb46d9 ("HID: wacom: generic: Correct pad syncing"). Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
At the moment the function offers no middle-ground between returning "true" and associating an evdev device with a specific type, or returning "false" and associating it with *no* types. The Wacom tests require us to have access to both e.g. Pen and Pad devices, but we need to be careful to ensure that the pen evdev device is actually associated with the "Pen" type, and pad device with the "Pad" type. The "udev_input_event" function does a pretty good job with this normally, but because all pad devices are also pen devices, things go a little off the rails. This commit allows the caller to return 'false' for only the specific combinations of device and application that don't make sense, but still return 'true' in other situations. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
Commit d4b8efeb46d9 introduced an issue which causes a BTN_TOUCH=0 event to be sent out whenever a heartbeat report is received. We have a fix for this bug, but lets make sure it does not come back. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
Adds descriptors for the PTH-660, PTH-860, and PTH-460, as well as the necessary device / test definitions to exercise them. Updates `test_descriptor_physicals()` to better handle these tablets (new usages listed among the required, filtering of mouse collection). Also notes errata with the descriptors that cause the physicals test to fail. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
The Wacom driver may create several devices for a given interface. We need to be sure we're working with the correct one. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
Adds a test of the HID descriptor itself to make sure that physical ranges are set where necessary and actually make sense. Failures in this test highlight devices that may need a HID descriptor fixup. Mostly intended for pre-production use to catch errors before they become real. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
Adds a slightly more in-depth report descriptor for something resembling a generic pen-only CTL device. Additions above and beyond the bare-bones OpaqueTablet are the use of Wacom's vendor-defined usages and support for pressure, eraser, and barrel buttons. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
Just some boiler-plate to get started. Still need to write many more devices and testcases. Note that the weird report_descriptor comment formatting is just to shut up flake8's E262 rule (which doesn't like indenting). Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com>
-
- Aug 10, 2022
-
-
Benjamin Tissoires authored
This was renamed in 327b89f0acc4c20a06ed59e4d9af7f6d804dc2e2 ("HID: add mapping for KEY_ALL_APPLICATIONS") part of v5.17. Also bump the CI to get a newer kernel. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Aug 09, 2022
-
-
Benjamin Tissoires authored
gitlab now has a nice UI to show the dependencies, so explicitely mark them so we get a better visualization Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
./hidtools/hut.py:346:23: E275 missing whitespace after keyword ./hidtools/cli/parse_hid.py:94:19: E275 missing whitespace after keyword ./hidtools/device/base_device.py:246:16: E275 missing whitespace after keyword ./tests/test_keyboard.py:52:16: E275 missing whitespace after keyword ./tests/test_multitouch.py:38:26: E203 whitespace before ':' ./tests/test_multitouch.py:39:26: E203 whitespace before ':' ./tests/test_multitouch.py:40:17: E203 whitespace before ':' ./tests/test_multitouch.py:41:29: E203 whitespace before ':' ./tests/test_multitouch.py:42:21: E203 whitespace before ':' ./tests/test_multitouch.py:43:25: E203 whitespace before ':' ./tests/test_multitouch.py:44:27: E203 whitespace before ':' ./tests/test_multitouch.py:45:19: E203 whitespace before ':' ./tests/test_multitouch.py:46:34: E203 whitespace before ':' ./tests/test_multitouch.py:47:17: E203 whitespace before ':' ./tests/test_multitouch.py:48:26: E203 whitespace before ':' ./tests/test_multitouch.py:49:18: E203 whitespace before ':' ./tests/test_multitouch.py:50:28: E203 whitespace before ':' ./tests/test_multitouch.py:51:26: E203 whitespace before ':' ./tests/test_multitouch.py:52:28: E203 whitespace before ':' ./tests/test_multitouch.py:53:26: E203 whitespace before ':' ./tests/test_multitouch.py:54:23: E203 whitespace before ':' ./tests/test_multitouch.py:55:23: E203 whitespace before ':' ./tests/test_multitouch.py:56:25: E203 whitespace before ':' ./tests/test_multitouch.py:57:27: E203 whitespace before ':' Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Jul 19, 2022
-
-
Benjamin Tissoires authored
This is confusing to report BTN_TOUCH 0 BTN_TOUCH 1 in the same sequence (between 2 EV_SYN). Same for the various BTN_TOOL_* bits. Enforce this. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
For instance, the HID state machine authorizes to move from in-range to in-range-with-the-intent-to-erase. However, this transition confuses the wacom xf86 driver. Add a set of valid transitions from an evdev point of view, decompose the received events in a series of EV_SYN chunks, and validate that each chunk moves to a new valid state. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
This allows to simplify the checking of the states of evdev. Given that a unique combination of touch/tool is giving a unique PenState, we can then convert a given evdev state into a PenState. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
This makes it slightly easier to read. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
Not doing much outside of ensuring we are dealing with them properly for touch, hover and buttons. The USI specifics is not covered yet. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
The tests were manually written and it was quite cumbersome to add a new state. However, the state machine we expect from a Pen device is given in the spec from Microsoft at https://docs.microsoft.com/en-us/windows-hardware/design/component-guidelines/windows-pen-states Use this as a base to: - express each of these states as an enum value - have a generic hook to move from one state to one other - have a generic facility to test the transition between tests Suddenly, we can remove the manual tests for hovering/touch, and emulate all sort of transitions, the valid ones from the MS spec, but also some others, in case we have a device that is not playing correctly. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
- do not set inrange to True by default - confidence doesn't exist for pens - x_tilt and y_tilt are numbers, not booleans Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
Turns out that trying to enforce it is painful because hid-multitouch and hid-input.c have a different view on what is a proper name. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
If we assert while the device is being created, pytest will delete the environment meaning that if we call pytest with "--pdb", the device will disappear. Moving the assert to `test_creation` ensures that when pdb is called, we can manually inspect the uhid device. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
0 is a common marker when there is no data to convey, and hidtools is a little bit too restrictive when creating reports. It is common for devices to send a 0 even if the logical min is >0, but it still works correctly (the host should ignore the usage, that's it) Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
If the item is an array but is not provided through data, the default value was `0`, leading to: ``` hidtools/hid.py:1511: in _format_one_event hidInputItem.fill_values_array(r_out, value) > if len(data) > self.count: E TypeError: object of type 'int' has no len() ``` Make the default to be an array in that case. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- May 17, 2022
-
-
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
-
- Mar 06, 2022
-
-
Silvan Jegen authored
-
- Dec 20, 2021
-
-
:= avoids recomputing them || makes more sense (and avoids a needless head shell-out) Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
-
- Dec 19, 2021
-
-
Benjamin Tissoires authored
Based tests from наб in !125 Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
Based on наб idea. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Dec 18, 2021
-
- Dec 08, 2021
-
-
Benjamin Tissoires authored
arrays in HID are an index based list on usages stored in the field. Instead of relying on the user to get the index for us, we can let hid.py deal with it itself. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
The index of the usage needs to be actually reduced by logical min. Most of the time logical min is 0, so it just works, but some times, when a sort subset of HID SEL usages are used, indexing starts at 1. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
Seen on the USI digitizers: the application is `Digitizer`, but the logical is `Preferred Line Style`. This logical is actually better so use that as the debug output. Furthermore, this makes it way easier to create keyboard arrays as we can now use `data.keyboard` instead of `setattr(data, '0x70000')`, which is cumbersome to say the least. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Dec 06, 2021
-
-
Benjamin Tissoires authored
The CI will likely fail on this, we need an updated kernel. This was raised on the LKML and privately: it is very easy to crash the kernel with uhid by picking up one of the USB modalias reserved for those drivers. Retrieve all of those USB VID/PIDs, and attempt at binding them. If there is no crash, we are good. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Nov 24, 2021
-
-
Benjamin Tissoires authored
See https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/hid/hid-core.c?h=v5.15#n1555 for the kernel implementation. The behavior of it is defined in the Device Class Definition for Human Interface Devices (HID) Version 1.11, Apendix C (page 62 of https://www.usb.org/sites/default/files/hid1_11.pdf ) > The keyboard must report a phantom state indexing Usage(ErrorRollOver) > in all array fields whenever the number of keys pressed exceeds the > Report Count. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Nov 17, 2021
-
-
With a Unit HID item, on python 3.6 (RHEL 8) we do get the following: ```python >>> print(unit.system) SILinear >>> print(f'{unit.system}') 1 >>> print(f'{str(unit.system)}') SILinear ``` We actually rely on `SILinear` to be used, not `1`. So for those systems with old python, explicitly convert to str(). Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
- Nov 09, 2021
-
-
Benjamin Tissoires authored
There might be cases where we fail for some unrelated reasons. Re-run the test suite so we can be sure this was not a side effect. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-
Benjamin Tissoires authored
jq is already present in our image, there is no point in rebuilding it. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
-