History log of /freebsd-current/sys/dev/usb/usbhid.h
Revision Date Author Comments
# 71625ec9 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

sys: Remove $FreeBSD$: one-line .c comment pattern

Remove /^/[*/]\s*\$FreeBSD\$.*\n/


# b61a5730 10-May-2023 Warner Losh <imp@FreeBSD.org>

spdx: The BSD-2-Clause-NetBSD identifier is obsolete, drop -NetBSD

The SPDX folks have obsoleted the BSD-2-Clause-NetBSD identifier. Catch
up to that fact and revert to their recommended match of BSD-2-Clause.

Discussed with: pfg
MFC After: 3 days
Sponsored by: Netflix


# 62d42655 07-Oct-2022 Hans Petter Selasky <hselasky@FreeBSD.org>

usb(4): Substitute "unsigned int" using the equivalent and shorter "unsigned" keyword.

MFC after: 1 week
Sponsored by: NVIDIA Networking


# eead9017 01-Jan-2021 Vladimir Kondratyev <wulf@FreeBSD.org>

hid: Chase for HID function name changes in existing USB HID drivers

Also hide shim code added in a previous commit under COMPAT_USBHID12.

Note: it is enough to add -DCOMPAT_USBHID12 to CFLAGS to compile old
code with new HID subsystem, but it is not enough to link it at runtime.
HID dependency has to be added explicitly with MODULE_DEPEND macro.

Reviewed by: manu, hselasky (as part of D27887)


# 19758786 04-Oct-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

hid: Import functions and constants required by new subsystem

This does an import of quirk stubs, debugging macros from USB code and
numerous usage constants used by dependent drivers.

Besides, this change renames some functions to get a better matching
with userland library and NetBSD/OpenBSD HID code. Namely:

- Old hid_report_size() renamed to hid_report_size_max()
- New hid_report_size() calculates size of given report rather than
maximum size of all reports.
- hid_get_data_unsigned() renamed to hid_get_udata()
- hid_put_data_unsigned() renamed to hid_put_udata()

Compat shim functions are provided in usbhid.h to make possible compile
of legacy code unmodified after this change.

Reviewed by: manu, hselasky
Differential revision: https://reviews.freebsd.org/D27887


# 67de2db2 04-Oct-2020 Vladimir Kondratyev <wulf@FreeBSD.org>

Factor-out hardware-independent part of USB HID support to new module

It will be used by the upcoming HID-over-i2C implementation. Should be
no-op, except hid.ko module dependency is to be added to affected drivers.

Reviewed by: hselasky, manu
Differential revision: https://reviews.freebsd.org/D27867


# 95e1f0d6 24-Dec-2020 Vladimir Kondratyev <vladimir@kondratyev.su>

Allow HID report descriptor parser to return more then 1 usage per item

This handles parsing of following descriptor, containing array of
usages:

0x05, 0x01, // Usage Page (Generic Desktop Ctrls)
0x09, 0x80, // Usage (Sys Control)
0xA1, 0x01, // Collection (Application)
0x75, 0x02, // Report Size (2)
0x95, 0x01, // Report Count (1)
0x15, 0x01, // Logical Minimum (1)
0x25, 0x03, // Logical Maximum (3)
0x09, 0x82, // Usage (Sys Sleep)
0x09, 0x81, // Usage (Sys Power Down)
0x09, 0x83, // Usage (Sys Wake Up)
0x81, 0x60, // Input (Data,Array,Abs)
0x75, 0x06, // Report Size (6)
0x81, 0x03, // Input (Const,Var,Abs)
0xC0, // End Collection

Our current parser returns only first usage (Sys Sleep) and loses next
two. Set HID_ITEM_MAXUSAGE limit relatively low as existing code
usually allocates hid_item on stack.

Also tweak hid_locate() to support hid items with multiple usages.

Reviewed by: hselasky
Differential Revision: https://reviews.freebsd.org/D27748


# a2dd1caa 18-Nov-2020 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix build of USB bootloader code by adding checks for _STANDALONE being defined.
Currently the USB bootloader code is not part of buildworld.

MFC after: 1 week
Sponsored by: Mellanox Technologies // NVIDIA Networking


# 6e32d0e3 06-May-2020 Andriy Gapon <avg@FreeBSD.org>

usbhid: add several missing usages from Digitizer page

This is applicable to HID in general, not just USB HID.

Inspired by: wulf
MFC after: 1 week


# 718cf2cc 27-Nov-2017 Pedro F. Giffuni <pfg@FreeBSD.org>

sys/dev: further adoption of SPDX licensing ID tags.

Mainly focus on files that use BSD 2-Clause license, however the tool I
was using misidentified many licenses so this was mostly a manual - error
prone - task.

The Software Package Data Exchange (SPDX) group provides a specification
to make it easier for automated tools to detect and summarize well known
opensource licenses. We are gradually adopting the specification, noting
that the tags are considered only advisory and do not, in any way,
superceed or replace the license texts.


# 76136d20 19-Aug-2017 Vladimir Kondratyev <wulf@FreeBSD.org>

Add support for generic MS Windows 7/8/10-compatible USB HID touchscreens
found in many laptops.

Reviewed by: hps, gonzo, bcr (manpages)
Approved by: gonzo (mentor)
Differential Revision: https://reviews.freebsd.org/D12017


# d2b99310 30-Jan-2013 Hans Petter Selasky <hselasky@FreeBSD.org>

Modify the FreeBSD USB kernel code so that it can be compiled directly
into the FreeBSD boot loader, typically for non-USB aware BIOSes, EFI systems
or embedded platforms. This is also useful for out of the system compilation
of the FreeBSD USB stack for various purposes. The USB kernel files can
now optionally include a global header file which should include all needed
definitions required to compile the FreeBSD USB stack. When the global USB
header file is included, no other USB header files will be included by
default.

Add new file containing the USB stack configuration for the
FreeBSD loader build.

Replace some __FBSDID()'s by /* $FreeBSD$ */ comments. Now all
USB files follow the same style.

Use cases:
- console in loader via USB
- loading kernel via USB

Discussed with: Hiroki Sato, hrs @ EuroBSDCon


# 60867f57 10-Jan-2013 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix detection of Razer Copperhead as a USB mouse.
Factor out USB mouse and keyboard detection logic.
Reject USB keyboards which have mouse alike HID items
in their HID descriptors.

Submitted by: Matthew W
MFC after: 1 week


# 6d917491 02-Apr-2012 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix compiler warnings, mostly signed issues,
when USB modules are compiled with WARNS=9.

MFC after: 1 weeks


# e92091ad 04-Jul-2011 Hans Petter Selasky <hselasky@FreeBSD.org>

Make the USB keyboard driver more HID compliant.
Try to auto-detect keyboards which should use the BOOT protocol.

MFC after: 2 weeks


# a7d5f7eb 19-Oct-2010 Jamie Gritton <jamie@FreeBSD.org>

A new jail(8) with a configuration file, to replace the work currently done
by /etc/rc.d/jail.


# a24aaef7 19-May-2010 Andrew Thompson <thompsa@FreeBSD.org>

MFC r208012

Support getting signed and unsigned HID data.

Submitted by: Alex Deiter


# 25e59d15 17-May-2010 Andrew Thompson <thompsa@FreeBSD.org>

MFC r208009

Enable support for mouse panning wheels.


# 5fdb3a67 12-May-2010 Andrew Thompson <thompsa@FreeBSD.org>

Support getting signed and unsigned HID data.

Submitted by: Alex Deiter
Reviewed by: Hans Petter Selaksy


# 300f96f1 12-May-2010 Andrew Thompson <thompsa@FreeBSD.org>

Enable support for mouse panning wheels.

Submitted by: Henry Hu


# ed6d949a 22-Jun-2009 Andrew Thompson <thompsa@FreeBSD.org>

- Make struct usb_xfer opaque so that drivers can not access the internals
- Reduce the number of headers needed for a usb driver, the common case is just usb.h and usbdi.h


# 75973647 14-Jun-2009 Andrew Thompson <thompsa@FreeBSD.org>

Fix _USB2_* refernces in the header protection defines.


# 760bc48e 28-May-2009 Andrew Thompson <thompsa@FreeBSD.org>

s/usb2_/usb_/ on all C structs for the USB stack.


# fa64b944 27-May-2009 Andrew Thompson <thompsa@FreeBSD.org>

Add support for the Apple MacBook Pro keyboard
- add key mappings for fn keys
- byte swapping for certain models
- Fix leds for keyboards which require an ID byte for the HID output structures

Submitted by: Hans Petter Selasky


# 02ac6454 23-Feb-2009 Andrew Thompson <thompsa@FreeBSD.org>

Move the new USB stack into its new home.


# d7f03759 19-Oct-2008 Ulf Lilleengen <lulf@FreeBSD.org>

- Import the HEAD csup code which is the basis for the cvsmode work.


# 098ca2bd 05-Jan-2005 Warner Losh <imp@FreeBSD.org>

Start each of the license/copyright comments with /*-, minor shuffle of lines


# c29b0a0f 11-Dec-2004 Julian Elischer <julian@FreeBSD.org>

Add support for USB Microsoft Intellimouse

PR: kern/70607
Submitted by: Matt Wright <matt@consultmatt.co.uk>
MFC after: 1 week


# 2ba63396 02-Jan-2002 Josef Karthauser <joe@FreeBSD.org>

Sync usb.h with NetBSD, apart from usb_device_info.speed, which
requires logic changes. For now leave it as usb_device_info.lowspeed.
It will get addressed when the usb.c code is sync'd.


# 8b677600 16-Oct-2000 Nick Hibma <n_hibma@FreeBSD.org>

Sync with NetBSD:

Add more Usages.


# 1d3e7ea3 06-Jul-2000 Nick Hibma <n_hibma@FreeBSD.org>

Properly fix world.

Sorry for breaking things in the first place.


# ee76ce7f 06-Jul-2000 Ollivier Robert <roberto@FreeBSD.org>

Fix buildworld.


# 0c880a36 05-Jul-2000 Nick Hibma <n_hibma@FreeBSD.org>

Use the packed attribute for the descriptor on the wire


# 128aa3af 14-May-2000 Nick Hibma <n_hibma@FreeBSD.org>

Change Lennart's e-mail address.


# 3241be75 17-Nov-1999 Nick Hibma <n_hibma@FreeBSD.org>

Synchronisation with NetBSD as of 1999/11/16:

Cleaning up the code:
- Declare many functions static
- Change variable names to make them more self explanatory
- Change usbd_request_handle -> usbd_xfer_handle
- Syntactical changes
- Remove some unused code
- Other KNF changes

Interrupt context handling
- Change delay to usbd_delay_ms were possible (takes polling mode into
account)
- Change detection mechanism for interrupt context

Add support for pre-allocation DMA-able memory by device driver

Add preliminary support for isochronous to the UHCI driver (not for OHCI
yet).

usb.c, uhci.c, ohci.c
- Initial attempt at detachable USB host controllers
- Handle the use_polling flag with a lttle more care and only set it if
we are cold booting.

usb.c, uhci.c ohci.c, usbdi.c usbdi_util.c usb_subr.c
- Make sure an aborted pipe is marked as not running.
- Start queued request in the right order.
- Insert some more DIAGNOSTIC sanity checks.
- Remove (almost) unused definitions USBD_XFER_OUT and USBD_XFER_IN.

usb.c, usb_subr.c
- Add an event mechanism so that a userland process can watch devices
come and go.

ohci.c
- Handle the case when a USB transfer is so long that it crosses two
page (4K) boundaries. OHCI cannot do that with a single TD so we make
a chain.

ulpt.c
- Use a bigger buffer when transferring data.
- Pre-allocate the DMA buffer. This makes the driver slightly more
efficient.
- Comment out the GET_DEVICE_ID code, because for some unknown reason it
causes printing to fail sometimes.

usb.h
- Add a macro to extract the isoc type.
- Add a macro to check whether the routine has been entered after splusb
and if not, complain.

usbdi.c
- Fix a glitch in dequeueing and aborting requests on interrupt pipes.
- Add a flag in the request to determine if the data copying is done by
the driver or the usbdi layer.


# 8c895d71 07-Oct-1999 Nick Hibma <n_hibma@FreeBSD.org>

Major synchronisation with the NetBSD USB stack:

- Some cleanup and improvements in the uhci and ohci drivers
- Support for plugging and unplugging devices improved
- Now available is bulk transport over OHCI controllers
- Resume and suspend have been temporarily been disabled again. Proper
support for it is available in the uhci.c and ohci.c files but I have
not yet spent the brain cycles to use it.
- OpenBSD now uses the USB stack as well
- Add FreeBSD tags


# 235dddd4 21-Jan-1999 Nick Hibma <n_hibma@FreeBSD.org>

Textual changes


# a73f7cf0 07-Jan-1999 Nick Hibma <n_hibma@FreeBSD.org>

Major synchronisation with NetBSD USB code


# 6fef2c2c 14-Dec-1998 Nick Hibma <n_hibma@FreeBSD.org>

Added Id to all files


# 0cec007c 26-Nov-1998 Nick Hibma <n_hibma@FreeBSD.org>

Initial commit of ported NetBSD USB stack