summaryrefslogtreecommitdiffstats
path: root/drivers/hid/hid-uclogic-core.c
Commit message (Collapse)AuthorAgeFilesLines
* HID: uclogic: Add support for Parblo A610 PROJosé Expósito2022-08-251-0/+2
| | | | | | | | | | The Parblo A610 PRO is a UGEE v2 device with a frame with 9 buttons and a bitmap dial. Its pen has 2 buttons, supports tilt and pressure. Add its ID in order to support the device. Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add support for XP-PEN Deco Pro SJosé Expósito2022-08-251-0/+2
| | | | | | | | | | | | | | | | | The XP-PEN Deco Pro S is a UGEE v2 device with a frame with 8 buttons, a bitmap dial and a mouse. Its pen has 2 buttons, supports tilt and pressure. All the pieces to support it are already in place. Add its ID in order to support the device. The required Wireshark traces were captured by Jouke Witteveen. For more information check [1]. Link: https://gitlab.freedesktop.org/libinput/libinput/-/issues/738 [1] Tested-by: Jouke Witteveen <j.witteveen@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add missing suffix for digitalizersJosé Expósito2022-08-251-0/+1
| | | | | | | | | | | | The Pen (0x02) application usage was changed to Digitalizer (0x01) in commit f7d8e387d9ae ("HID: uclogic: Switch to Digitizer usage for styluses"). However, a suffix was not selected for the new usage. Handle the digitalizer application usage in uclogic_input_configured() and add the required suffix. Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add support for XP-PEN Deco LJosé Expósito2022-06-151-0/+2
| | | | | | | | | | | | | | | | | | The XP-PEN Deco L (UGEE) needs to be initialized by sending a buffer of magic data, discovered by sniffing the Windows driver traffic. In order to differentiate UGEE tablets that need this kind of initialization from the previous ones, name them v2 internally and create an entry point for them. After initialization, the template report descriptors can be discovered by parsing a string descriptor, similar to the one exposed by HUION v1 devices. Add all the required elements to support the device. Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add pen support for XP-PEN Star 06Roman Romanenko2022-05-111-0/+2
| | | | | | | | | Similar to other UGEE pens, but the IDs were missing. Signed-off-by: Roman Romanenko <romu4444@gmail.com> Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Always shift touch reports to zeroNikolai Kondrashov2022-05-111-7/+8
| | | | | | | | | | Always decrement touch report values to have the range start with zero, regardless if flipped or not. This fixes the future non-flipped touch strip reports. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Do not focus on touch ring onlyNikolai Kondrashov2022-05-111-11/+9
| | | | | | | | | | Accommodate both touch ring and touch strip in naming throughout hid-uclogic by talking about abstract "touch" instead of "touch ring", wherever possible. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Move param printing to a functionNikolai Kondrashov2022-05-111-2/+2
| | | | | | | | | | Move parameter printing from a format string/argument list to a function to allow printing the full parameters, which now wouldn't fit into a single print call. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Support disabling pen usageNikolai Kondrashov2022-05-061-0/+19
| | | | | | | | | | Restore the ability to disable pen usage in hid-uclogic to support e.g. keyboard interfaces which also have pen usages for some reason, but which we don't want to rewrite report descriptors for. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add support for bitmap dialsNikolai Kondrashov2022-04-211-0/+6
| | | | | | | | | | A bitmap dial sends reports with a dedicated bit per direction: 1 means clockwise rotation, 2 means counterclockwise, as opposed to the normal 1 and -1 values. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Support custom device suffix for framesNikolai Kondrashov2022-04-111-21/+25
| | | | | | | | | | Support assigning custom device name suffixes to frame input devices instead of just "Pad". This allows distinguishing multiple frame input devices, e.g. for Huion HS610. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add support for touch ring reportsNikolai Kondrashov2022-04-111-1/+38
| | | | | | | | | | | Add support for touch ring to UC-Logic driver. The touch ring reports can be flipped around a specific point to match the orientation and direction reported by the Wacom drivers. The proximity will also be reported similar to the Wacom drivers. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Support multiple frame input devicesNikolai Kondrashov2022-03-011-6/+13
| | | | | | | | | | Add support for multiple frame input devices and their parameters to the UC-Logic driver. This prepares for creating a separate input device for Huion HS610 virtual touch ring reports. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Switch to matching subreport bytesNikolai Kondrashov2022-03-011-3/+6
| | | | | | | | | | Switch from matching UC-Logic subreport with a mask to a full value to support detecting Huion HS610 touch dial reports. Those would match the button mask otherwise. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Replace pen_frame_flag with subreport_listNikolai Kondrashov2022-03-011-13/+27
| | | | | | | | | | Replace a single pen_frame_flag in struct uclogic_params with subreport_list in struct uclogic_params_pen to prepare for handling more subreports in Huion HS610. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Remove pen usage maskingNikolai Kondrashov2022-03-011-22/+1
| | | | | | | | | | | | | Remove support for pen usage masking from hid-uclogic. Disable whole interfaces instead. Most of those interfaces are useless, and if there is one which has an unused pen usage, but also has useful reports, its report descriptor should be rewritten instead. This simplifies the code and the data structures. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Handle virtual frame reportsNikolai Kondrashov2022-02-161-5/+6
| | | | | | | | | Explicitly change report ID to virtual ID and handle virtual frame reports as real for consistency. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Skip non-input raw events earlierNikolai Kondrashov2022-02-161-3/+5
| | | | | | | | | Early return when a non-input raw event is received to simplify the logic present in uclogic_raw_event. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Access pen/frame params directly in raw_event handlingNikolai Kondrashov2022-02-161-13/+11
| | | | | | | | | Simplify the raw event handling code by accessing the uclogic_params_pen/uclogic_params_frame structs directly. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Split pen and frame raw event handlingNikolai Kondrashov2022-02-161-75/+120
| | | | | | | | | | In order to avoid ending up with a big uclogic_raw_event function, split it in two smaller functions: uclogic_raw_event_pen for the pen events and uclogic_raw_event_frame for the pad events. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Rename Huion HS64 PID to Huion Tablet 2Nikolai Kondrashov2022-02-161-1/+1
| | | | | | | | | | Since the 006d Huion PID is used by multiple tablets (at least HS64 and HS610), rename its constant to a more general "USB_DEVICE_ID_HUION_TABLET2". Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Support Huion tilt reportingNikolai Kondrashov2022-02-161-0/+3
| | | | | | | | | | | Add support for Huion v2 protocol tilt reporting. Describe reports as angles in degrees, which is not exactly true, but there doesn't seem to be a straightforward, consistent conversion possible, and what's reported would have to be enough. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: José Expósito <jose.exposito89@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: check for valid USB device for many HID driversGreg Kroah-Hartman2021-12-021-0/+3
| | | | | | | | | | | | | | | | | | | | | | | Many HID drivers assume that the HID device assigned to them is a USB device as that was the only way HID devices used to be able to be created in Linux. However, with the additional ways that HID devices can be created for many different bus types, that is no longer true, so properly check that we have a USB device associated with the HID device before allowing a driver that makes this assumption to claim it. Cc: Jiri Kosina <jikos@kernel.org> Cc: Benjamin Tissoires <benjamin.tissoires@redhat.com> Cc: Michael Zaidman <michael.zaidman@gmail.com> Cc: Stefan Achatz <erazor_de@users.sourceforge.net> Cc: Maxime Coquelin <mcoquelin.stm32@gmail.com> Cc: Alexandre Torgue <alexandre.torgue@foss.st.com> Cc: linux-input@vger.kernel.org Cc: stable@vger.kernel.org Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Tested-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> [bentiss: amended for thrustmater.c hunk to apply] Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Link: https://lore.kernel.org/r/20211201183503.2373082-3-gregkh@linuxfoundation.org
* HID: uclogic: Improve support for Trust PanoraCristian Klein2021-01-081-0/+2
| | | | | | | | | | | | | After more discussions with the [libinput project][1], it has been determined that the uclogic driver provides better support for this tablet. Fortunately, the Trust Panora is physically and logically identical with the UGEE G5, despite having a different USB vendor and product ID. [1]: https://gitlab.freedesktop.org/libinput/libinput/-/issues/482 Signed-off-by: Cristian Klein <cristian.klein@elastisys.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add ID for Trust Flex Design TabletMartijn van de Streek2020-10-221-0/+2
| | | | | | | | | The Trust Flex Design Tablet has an UGTizer USB ID and requires the same initialization as the UGTizer GP0610 to be detected as a graphics tablet instead of a mouse. Signed-off-by: Martijn van de Streek <martijn@zeewinde.xyz> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* Merge branch 'for-5.3/uclogic' into for-linusJiri Kosina2019-07-101-0/+2
|\
| * HID: uclogic: Add support for Ugee Rainbow CV720Wang Xuerui2019-06-111-0/+2
| | | | | | | | | | | | | | | | Add support for Ugee Rainbow CV720 to hid-uclogic. Signed-off-by: Wang Xuerui <git@xen0n.name> Reviewed-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* | HID: uclogic: Add support for Huion HS64 tabletKyle Godbey2019-06-261-0/+2
|/ | | | | | | Add support for Huion HS64 drawing tablet to hid-uclogic Signed-off-by: Kyle Godbey <me@kyle.ee> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
* HID: uclogic: Add support for Ugee G5Nikolai Kondrashov2019-02-211-0/+2
| | | | | | | Add support for Ugee G5 to hid-uclogic. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Support Gray-coded rotary encodersNikolai Kondrashov2019-02-211-0/+29
| | | | | | | | Add support for converting Gray-coded rotary encoder input into dial input compatible with HID standard. Needed for Ugee G5 support. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Support faking Wacom pad device IDNikolai Kondrashov2019-02-211-0/+10
| | | | | | | | | Add support for inserting a Wacom pad device ID into hid-uclogic reports. This allows reporting dial inputs in a way compatible with the Wacom driver. Needed for Ugee G5 support in particular. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Add support for XP-Pen Deco 01Nikolai Kondrashov2019-02-211-0/+2
| | | | | | | Add support for XP-Pen Deco 01 to hid-uclogic. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Add support for XP-Pen Star G640Nikolai Kondrashov2019-02-211-0/+2
| | | | | | | Add support for XP-Pen Star G640 to hid-uclogic. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Add support for XP-Pen Star G540Nikolai Kondrashov2019-02-211-0/+2
| | | | | | | Add support for XP-Pen Star G540 to hid-uclogic. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Add support for Ugee 2150Nikolai Kondrashov2019-02-211-0/+2
| | | | | | | Add support for Ugee 2150 to hid-uclogic. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Support fragmented high-res reportsNikolai Kondrashov2019-02-211-0/+25
| | | | | | | | Support parsing fragmented high-resolution reports in hid-uclogic to support v2 reporting protocol. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Support in-range reporting emulationNikolai Kondrashov2019-02-211-0/+54
| | | | | | | | | | | Newer UC-Logic tablets, such as ones made by Huion have stopped reporting in-range state, but they're otherwise worthy tablets. The manufacturer was notified of the problem and promised to fix this in the future. Meanwhile, detect pen coming in range, and emulate the reports to the userspace, to make the tablets useable. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Re-initialize tablets on resumeNikolai Kondrashov2019-02-211-0/+21
| | | | | | | | | Re-initialize UC-Logic tablets on resume. UC-Logic tablet initialization and parameter retrieval cannot be separated for the large part, so simply discard the retrieved parameters after initialization. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Extract tablet parameter discovery into a moduleNikolai Kondrashov2019-02-211-326/+102
| | | | | | | | | | | Refactor and extract UC-Logic tablet initialization and parameter discovery into a module. For these tablets, the major part of parameter discovery cannot be separated from initialization so they have to be in the same module. Define explicitly and clearly what possible quirks the tablets may have to make the driver implementation easier and simpler. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
* HID: uclogic: Extract report descriptors to a moduleNikolai Kondrashov2019-02-211-0/+493
As hid-uclogic has a lot of report descriptors already and there's going to be more, move them out of the driver code and into a separate module. Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>