#
358453ce |
|
26-Dec-2023 |
Alexander Motin <mav@FreeBSD.org> |
iichid(4): Switch taskqueue to "fast" While "fast" taskqueue may be more expensive due to spinlock use, when used mainly for timeout tasks it allows to avoid extra context switches to and from callout thread, that is even more expensive. MFC after: 1 month
|
#
a8f80c0c |
|
26-Dec-2023 |
Alexander Motin <mav@FreeBSD.org> |
iichid(4): Unify two taskqueue tasks taskqueue_enqueue_timeout(0) is equivalent to taskqueue_enqueue(), so no need to create a separate periodic_task and event_task to run exactly the same handler. MFC after: 1 month
|
#
68e457df |
|
23-Dec-2023 |
Alexander Motin <mav@FreeBSD.org> |
iichid(4): Restore/increase sampling rate My previous commit by reducing precision reduced the sampling rate from 60Hz to 40Hz on idle system. Return it back to 60-80Hz range, that should be good for mouse smoothness on 60Hz displays. MFC after: 1 months
|
#
8c86b981 |
|
22-Dec-2023 |
Alexander Motin <mav@FreeBSD.org> |
iichid(4): Improve idle sampling hysteresis In sampling mode some devices return same data indefinitely even if there is nothing to report. Previous idle hysteresis implementation activated only when device returned no data, so some devices ended up polled at fast rate all the time. This new implementation compares each new report with the previous, and, if they are identical, after reaching threshold also drop sampling rate to slow. On my Dell XPS 13 9310 with iichid(4) touchscreen and touchpad this reduces idle power consumption by ~0.5W by reducing number of context switches in the driver from ~4000 to ~700 per second when not touched. MFC after: 1 month
|
#
685dc743 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
sys: Remove $FreeBSD$: one-line .c pattern Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/
|
#
4b171281 |
|
03-Aug-2023 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
hid: Add child device parameter to HID methods Some devices like Apple HID-over-SPI may contain more than one report descriptors necessitating creation of multiple hidbus children. Add indentificator of child devices to distinct them. No functional changes intended. Differential Revision: https://reviews.freebsd.org/D41246
|
#
3a866152 |
|
20-Apr-2022 |
John Baldwin <jhb@FreeBSD.org> |
iicbus: Remove unused devclass arguments to DRIVER_MODULE.
|
#
7fad3ed8 |
|
19-Apr-2022 |
Gordon Bergling <gbe@FreeBSD.org> |
iicbus(4): Fix two typos in kernel error messages - s/occured/occurred/ MFC after:3 days
|
#
34e051c4 |
|
02-Mar-2022 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
iichid(4): Add support for ASUS C300 chromebook. Some chromebooks e.g. ASUS C300 have no valid _CID and _DSM ACPI objects required for device identification and HID descriptor address detection. Add quirk to allow required data to be hardcoded in to driver. MFC after: 2 month
|
#
6b1da3d2 |
|
02-Mar-2022 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
iichid(4): Implement I2CRDWR command in hid_ioctl method This command is intended to be compatible with I2CRDWR ioctl. It is required to perform arbitrary I2C transfers by device drivers which can switch between HID and native non-HID modes. MFC after: 2 month
|
#
c508b081 |
|
30-Nov-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
iichid(4): Perform acknowledgement of I2C device interrupt after RESET command in sampling mode to workaround firmware bug. This fixes reboot or poweroff on frame.work laptops after first touch. Reported by: many PR: 259230 MFC after: 1 week Tested by: kevans, markj
|
#
82626fef |
|
09-Jul-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
iichid(4): Perform bus_teardown_intr/bus_setup_intr to disable interrupts during suspend/resume cycle. Previously used bus_generic_suspend_intr and bus_generic_resume_intr may cause interrupt storm because of missed interrupt acknowledges caused by blocking of intr handler. Reported by: J.R. Oldroyd <jr_AT_opal_DOT_com> MFC after: 1 week
|
#
5236888d |
|
31-May-2021 |
J.R. Oldroyd <jr@opal.com> |
iichid(4): disable interrupt on suspend Commit message of the identical change in Linux driver says: "When an I2C HID device is powered off during system sleep, as a result of removing its power resources (by the ACPI core) the interrupt line might go low as well. This results inadvertent interrupts." This change fixes suspend/resume on Asus S510UQ laptops. While here add a couple of typo fixes as well as a slight change to the iichid_attach() code to have the power_on flag set properly. Submitted by: J.R. Oldroyd <jr_AT_opal_DOT_com> Reviewed by: wulf MFC after: 1 week
|
#
9aa0e5af |
|
28-May-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
usbhid(4): Add second set of USB transfers to work in polled mode. The second set of USB transfer is requested by hkbd(4) and should improve HID keyboard handling in kdb and panic contexts. MFC after: 1 week Reviewed by: hselasky Differential revision: https://reviews.freebsd.org/D30486
|
#
8ffcde25 |
|
09-Jan-2021 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
hid: fix extraneous SYSCTL_ADD_INT() options revealed by LINT build Reviewed by: hselasky (as part of D28060)
|
#
b1f1b07f |
|
06-Oct-2020 |
Vladimir Kondratyev <wulf@FreeBSD.org> |
hid: Import iichid - I2C transport backend for HID subsystem This implements hid_if.m methods for HID-over-I2C protocol [1]. Following kernel options are added: IICHID_SAMPLING - Enable support for a sampling mode as interrupt resource acquisition is not always possible in a case of GPIO interrupts. IICHID_DEBUG - Enable debug output. The module is based on prior Marc Priggemeyer work (D16698). [1] http://download.microsoft.com/download/7/d/d/7dd44bb7-2a7a-4505-ac1c-7227d3d96d5b/hid-over-i2c-protocol-spec-v1-0.docx Differential revision: https://reviews.freebsd.org/D27892
|