History log of /freebsd-10.1-release/sys/dev/usb/input/
Revision Date Author Comments
272461 03-Oct-2014 gjb

Copy stable/10@r272459 to releng/10.1 as part of
the 10.1-RELEASE process.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


268738 16-Jul-2014 hselasky

MFC r268583:
Turn off blinking device leds at attach.

PR: 183735


263261 17-Mar-2014 hselasky

MFC r262972:
Ignore USB keyboard driver calls from critical sections.


263208 15-Mar-2014 hselasky

MFC r262663:
- Make pointer easier to control when moving slowly.
- Increase chance of vertical scrolling as vertical scrolling is used more often.


263072 12-Mar-2014 hselasky

MFC r262477:
Updates for WSP driver.


263063 12-Mar-2014 hselasky

MFC r262417, r262439, r262454, r262455 and r262478:
- Several updates and improvements to ATP driver.
- Start effort merging WSP and ATP driver.


262369 23-Feb-2014 hselasky

MFC r261827:
- Remove not needed definitions from driver.
- Get USB input report length from HID descriptor.
- Use 1 finger TAP for devices which has no integrated button.
- Move data buffer to softc instead of allocating it.


261509 05-Feb-2014 hselasky

MFC r261260, r261262, r261315 and r261343:
Add support for trackpads found in Apple MacBook products. While at it
add some missing devd entries.


261478 04-Feb-2014 hselasky

MFC r261228:
When detaching a [USB] keyboard, keys might still be pressed. Ensure
that all pressed keys are released before completing the USB keyboard
detach. This will prevent so-called "ghost-keys" from appearing after
that the USB device generating the key event(s) has been detached.


256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


254572 20-Aug-2013 hselasky

Force keyboards which don't have the required
HID fields to use the USB BOOT protocol for now.

PR: usb/181425
Submitted by: Andrey Zholos <aaz@q-fu.com>
MFC after: 4 weeks


253332 13-Jul-2013 hselasky

Allow regular off-the-shelf keyboards to be overclocked like so-called
"Gamers Keyboards" by adding a tunable, "hw.usb.ukbd.pollrate", which
can fix the polling rate of the attached USB keyboards in the range
1..1000Hz. A similar feature already exists in the USB mouse
driver. Use with care! Might leave you without keyboard input. This
feature is only available when the USB_DEBUG option is set in the
kernel configuration file.

Correct "unit" type to "int" while at it.


246128 30-Jan-2013 sbz

Use DEVMETHOD_END macro defined in sys/bus.h instead of {0, 0} sentinel on device_method_t arrays

Reviewed by: cognet
Approved by: cognet


245248 10-Jan-2013 hselasky

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


242126 26-Oct-2012 hselasky

Add missing CTLFLAG_TUN flag to tunable sysctls in USB stack.
Rearrange the tunables and belonging sysctl declarations, so
that they are next to eachother.

Submitted by: n_hibma @
MFC after: 1 week


241843 22-Oct-2012 eadler

Make uhid attach to devices that look like keyboards
or mice if the quirk which prevents higher level
drivers from attaching is set.

PR: usb/172458
Submitted by: Vitaly Magerya <vmagerya@gmail.com>
Reviewed by: hselasky
Approved by: cperciva
MFC after: 1 week


240615 17-Sep-2012 hselasky

Add UQ_UMS_IGNORE quirk.
Wrap two long lines.
Some minor spelling correction.

PR: usb/171721


235569 17-May-2012 mav

Fix for the r235558: interrupt output pipe is optional, so fix the driver
attach and operation when it is absent.

Sponsored by: iXsystems, Inc.
MFC after: 1 week


235558 17-May-2012 mav

Add support for writing to HID devices through the interrupt output pipe.
Supermicro LCD screen modules seem to not support accessing reports through
the control pipes, but working fine with the interrupt pipes.

Sponsored by: iXsystems, Inc.
MFC after: 1 week


235451 14-May-2012 hselasky

Move reset of USB mouse parameters from the USB mouse attach to
the USB mouse device open. Protect against multi character
device open. Some other nits.

MFC after: 1 week


233774 02-Apr-2012 hselasky

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

MFC after: 1 weeks


228765 21-Dec-2011 avg

ukbd: adjust for SCHEDULER_STOPPED() and overhaul locking code

This change is designed to let USB keyboard work in the panic context
with stop_scheduler_on_panic=1. Most of change consists of removing
mtx_owned() checks where they can be easily avoided. Some additional
lock cleanup is performed along the way.

A list of the smaller changes:
- newbus methods should be executed with Giant already held, just assert
this
- kbd methods called in the non-polling context should be executed with
Giant already held, just assert this
- Giant is recursive, so we should just take it where we must have it,
without redundant checks if we already have it
- thanks to recent syscons changes we don't need to go through the hoops
to detect if kernel is going to poll us; polling mode is now clearly
separated from non-polling mode
- at present the polling mode can be entered by only one thread
- document special cases in greater detail

Please note that the ukbd code and underlying USB code still lve
dangerously in the kdb context by trying to obtain various locks
including the Giant. If any of those locks are already held by the
stopped threads, then the things would blow up.
Another limitation of the ukbd driver is that it is detached before a
system enters the halt state.

With this commit we can enable kern.stop_scheduler_on_panic by default,
that should not introduce any regressions.

Reviewed by: hselasky
MFC after: 3 months
X-MFC after: r228424, r228760


227309 07-Nov-2011 ed

Mark all SYSCTL_NODEs static that have no corresponding SYSCTL_DECLs.

The SYSCTL_NODE macro defines a list that stores all child-elements of
that node. If there's no SYSCTL_DECL macro anywhere else, there's no
reason why it shouldn't be static.


225839 28-Sep-2011 mav

MFprojects/hid:
Import the rest of HID improvements from the branch:
- improve report descriptor parser in libusbhid to handle several kinds of
reports same time;
- add to the libusbhid API two functions wrapping respective kernel IOCTLs
for reading and writing reports;
- tune uhid IOCTL interface to allow reading and writing arbitrary report,
when multiple supported by the device;
- teach usbhidctl to set output and feature reports;
- make usbhidaction support all the same item names as bhidctl.

Sponsored by: iXsystems, inc.


224499 29-Jul-2011 mav

Make ums(4) driver more picky, not attaching to "mouses" with absolute
coordinates, such as digitizers and touch-screens, leaving these devices
to uhid(4) and user-level. Specially patched xf86-input-mouse driver can
handle them, that isn't done and can't be done properly with ums(4)
because of mouse(4) protocol limitations.

Approved by: re (kib)


224126 17-Jul-2011 ed

Restore binary compatibility for GIO_KEYMAP and PIO_KEYMAP.

Back in 2009 I changed the ABI of the GIO_KEYMAP and PIO_KEYMAP ioctls
to support wide characters. I created a patch to add ABI compatibility
for the old calls, but I didn't get any feedback to that.

It seems now people are upgrading from 8 to 9 they experience this
issue, so add it anyway.


223989 13-Jul-2011 hselasky

Fix for dump after shutdown with USB keyboard plugged in. It appears that the
system timer is stopped during shutdown and that the pause() statement in ukbd
causes infinite hang in this regard. The fix is to use mi_switch() instead of
pause() to do the required task switch to ensure that the required USB processes
get executed.

Reported by: Mike_Karels@mcafee.com
MFC after: 1 week


223755 04-Jul-2011 hselasky

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

MFC after: 2 weeks


223728 02-Jul-2011 hselasky

Fix for "nomatch" event for ums and ukbd drivers when uhid is loaded.

MFC after: 3 days


223521 24-Jun-2011 hselasky

- Export more USB device ID's.
- Update bus_auto.conf accordingly.

MFC after: 3 days


223486 24-Jun-2011 hselasky

- Move all USB device ID arrays into so-called sections,
sorted according to the mode which they support:
host, device or dual mode
- Add generic tool to extract these data:
tools/bus_autoconf

Discussed with: imp
Suggested by: Robert Millan <rmh@debian.org>
PR: misc/157903
MFC after: 14 days


222051 18-May-2011 avg

usb: change to one-pass probing of device drivers

This brings USB bus more in line with how newbus is supposed to be used.
Also, because of the two-pass probing the following message was produced
by devd in default configuration when almost any USB device was
connected:
Unknown USB device: vendor <> product <> bus <>
This should be fixed now.

Note that many USB device drivers pass some information from probe
method to attach method via ivars. For this to continue working we rely
on the fact that the subr_bus code calls probe method of a winning driver
again before calling its attach method in the case where multiple
drivers claim to support a device. This is done because device
description is set in successful probe methods and we want to get a correct
device description from a winning driver. So now this logic is re-used
for setting ivars too.

Reviewed by: hselasky
MFC after: 1 month


219848 21-Mar-2011 hselasky

- Do not output the trailing newline to the HID
report descriptor information, sysctl utility
will show it for us.
- Modify sysctl node description to make it more
understanable.

Found by: Alexander Best <arundel@freebsd.org>
Submitted by: Eygene Ryabinkin <rea@freebsd.org>
MFC after: 14 days
Approved by: thompsa (mentor)


217323 12-Jan-2011 mdf

sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly.

Commit the rest of the devices.


217265 11-Jan-2011 jhb

Remove unneeded includes of <sys/linker_set.h>. Other headers that use
it internally contain nested includes.

Reviewed by: bde


215254 13-Nov-2010 hselasky

Fix compiler warnings.

Submitted by: Alexander Best (arundel)
Approved by: thompsa (mentor)


212132 02-Sep-2010 thompsa

Fix UMS_BUTTON_MAX define name


212129 02-Sep-2010 thompsa

Add support for extra buttons on the Kensington Slimblade Trackball.

Submitted by: Lee, Chung-Yeol


212128 02-Sep-2010 thompsa

Silence debug error by default.

PR: usb/141212
Submitted by: Hans Petter Selasky


212122 01-Sep-2010 thompsa

Add missing MODULE_VERSION() definitions, this resolves problems around
duplicate module loads.

PR: usb/125736
Submitted by: danger, mm
Reviewed by: hselasky


208554 25-May-2010 glebius

Add uep(4), driver for USB onscreen touch panel from eGalax.

The driver is stub. It just creates device entry and feeds
reassembled packets from hardware into it.

If in future we would port wsmouse(4) from NetBSD, or make
sysmouse(4) to support absolute motion events, then the driver
can be extended to act as system mouse. Meanwhile, it just
presents a /dev/uep0, that can be utilized by X driver, that
I am going to commit to ports tree soon.

The name for the driver is chosen to be the same as in NetBSD,
however, due to different USB stacks this driver isn't a port.


208009 12-May-2010 thompsa

Enable support for mouse panning wheels.

Submitted by: Henry Hu


207077 22-Apr-2010 thompsa

Change USB_DEBUG to #ifdef and allow it to be turned off. Previously this had
the illusion of a tunable setting but was always turned on regardless.

MFC after: 1 week


206638 14-Apr-2010 gavin

Use the UIPROTO_BOOT_KEYBOARD #define from usb.h rather than a local
(almost identically named) local #define.

Reviewed by: hselasky


205804 28-Mar-2010 thompsa

Do not swap Apple keys when detecting Apple-FN keyboards.

Reported by: Steven Noonan
Submitted by: Hans Petter Selasky


205040 11-Mar-2010 thompsa

extend search for Apple Function Key.

PR: usb/144414
Submitted by: Hans Petter Selasky


204632 03-Mar-2010 joel

The NetBSD Foundation has granted permission to remove clause 3 and 4 from
their software.

Obtained from: NetBSD


203896 14-Feb-2010 thompsa

Detect when we are polling from kernel via cngetc() in the boot process and
reserve the keypresses so they do not get passed to syscons.

Submitted by: Hans Petter Selasky


200304 09-Dec-2009 thompsa

If the ID byte is non zero then we allow descriptors having multiple sizes.

Submitted by: HPS
Reported by: daichi


200241 08-Dec-2009 rpaulo

Improve response to multi-touch taps.

Submitted by: Rohit Grover <rgrover1 at gmail.com>


199948 29-Nov-2009 nwhitehorn

Early-generation touchpads do not send periodic calibration frames for
baseline subtraction, and are very temperature sensitive, so would slowly
drift out of a calibrated state when under load. Escape this by taking
the last frame before we decide that the pad is idle as a finger-free
baseline.

Tested on: iBook G4


199816 26-Nov-2009 thompsa

Remove overuse of exclamation marks in kernel printfs, there mere fact a
message has been printed is enough to get someones attention. Also remove the
line number for DPRINTF/DPRINTFN, it already prints the funtion name and a
unique message.


199680 22-Nov-2009 thompsa

Make the mode setting transfer asynchronous.

Submitted by: Rohit Grover


199675 22-Nov-2009 thompsa

Provide tunables for some of the usb sysctls that affect boot behaviour.

Submitted by: Andriy Gapon


199169 11-Nov-2009 nwhitehorn

Reduce probe priority of USB input devices to BUS_PROBE_GENERIC from
BUS_PROBE_SPECIFIC. This allows device-specific drivers like atp to
attach reliably.

Reviewed by: hps


199151 10-Nov-2009 nwhitehorn

Add support for the touchpads found in later models of iBook and
Powerbook.

Reviewed by: Rohit Grover <rgrover1 at gmail.com>


199086 09-Nov-2009 rpaulo

Driver for the Apple Touchpad present on MacBook (non-Pro & Pro).

Submitted by: Rohit Grover <rgrover1 at gmail.com>
MFC after: 2 months


198373 22-Oct-2009 thompsa

Allow dumping the USB mouse reports via 'sysctl -b dev.ums.N.parseinfo',
previously only available via bootverbose.

PR: usb/137191
Submitted by: Eygene Ryabinkin


198152 15-Oct-2009 thompsa

Only poll ukbd if KDB is active.

Submitted by: HPS


197999 12-Oct-2009 hrs

Fix the 106/109 USB Japanese keyboard "underscore" issue.
Sun Type 6 USB keyboard support added in rev 1.46 conflicted with
some scan codes used in Japanese keyboards because the scan code
conversion routine was ambiguous for the overlapped codes.

PR: ports/134005
Submitted by: YAMASHIRO Jun


196489 24-Aug-2009 alfred

- patch for cordump slowdown. Avoid using DELAY(1000) when no
keys are pressed.
- Reported by: Various people

- add sysctl to disable keyboard led control request
- Reported by: Yoshihiro Ota

- Save system CPU usage: Patch to stop keyboard timer when no
keys are pressed.

Submitted by: hps
MFC after: 3 days


196403 20-Aug-2009 jhb

Temporarily revert the new-bus locking for 8.0 release. It will be
reintroduced after HEAD is reopened for commits by re@.

Approved by: re (kib), attilio


196219 14-Aug-2009 jhb

Purge mergeinfo from files that were temporarily renamed while USB2 was
imported into the tree alongside USB.

Approved by: re (mergeinfo blanket)


196037 02-Aug-2009 attilio

Make the newbus subsystem Giant free by adding the new newbus sxlock.
The newbus lock is responsible for protecting newbus internIal structures,
device states and devclass flags. It is necessary to hold it when all
such datas are accessed. For the other operations, softc locking should
ensure enough protection to avoid races.

Newbus lock is automatically held when virtual operations on the device
and bus are invoked when loading the driver or when the suspend/resume
take place. For other 'spourious' operations trying to access/modify
the newbus topology, newbus lock needs to be automatically acquired and
dropped.

For the moment Giant is also acquired in some key point (modules subsystem)
in order to avoid problems before the 8.0 release as module handlers could
make assumptions about it. This Giant locking should go just after
the release happens.

Please keep in mind that the public interface can be expanded in order
to provide more support, if there are really necessities at some point
and also some bugs could arise as long as the patch needs a bit of
further testing.

Bump __FreeBSD_version in order to reflect the newbus lock introduction.

Reviewed by: ed, hps, jhb, imp, mav, scottl
No answer by: ariff, thompsa, yongari
Tested by: pho,
G. Trematerra <giovanni dot trematerra at gmail dot com>,
Brandon Gooch <jamesbrandongooch at gmail dot com>
Sponsored by: Yahoo! Incorporated
Approved by: re (ksmith)


195960 30-Jul-2009 alfred

USB CORE:
- Add minimum polling support to drive UMASS
and UKBD in case of panic.
- Add extra check to ukbd probe to fix problem about
mouse devices attaching like keyboards.
- P4 ID: 166148

Submitted by: hps
Approved by: re


195959 30-Jul-2009 alfred

USB input
- add support for setting the UMS polling rate through -F option
passed to moused.
- requested by Alexander Best
- P4 ID: 166075

PR: usb/125264

Submitted by: hps
Approved by: re


194677 23-Jun-2009 thompsa

- 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


194228 15-Jun-2009 thompsa

s/usb2_/usb_|usbd_/ on all function names for the USB stack.


194099 13-Jun-2009 thompsa

Make variables static where appropriate.

Found by: cscout


194068 12-Jun-2009 thompsa

Change ums_probe() so it does not need to fetch the usb_interface_descriptor.

Submitted by: Hans Petter Selasky


194067 12-Jun-2009 thompsa

Check for a keyboard HID report in addition to the interface class so devices
such as the Yubikey attach.

Submitted by: Hans Petter Selasky
Reported by: Jeremy Faulkner


193466 04-Jun-2009 thompsa

Remove duplicate variable setting.

Spotted by: Sylvestre Gallon


193315 02-Jun-2009 thompsa

Staticize ukbd_detach and fix indentation.

Submitted by: Sylvestre Gallon


193045 29-May-2009 thompsa

s/usb2_/usb_/ on all typedefs for the USB stack.


192984 28-May-2009 thompsa

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


192925 27-May-2009 thompsa

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


192502 21-May-2009 thompsa

Rename the usb sysctl tree from hw.usb2.* back to hw.usb.*.

Submitted by: Hans Petter Selasky


192499 21-May-2009 thompsa

- rename usb2_mode to usb_mode [1]
- change variable types to use the enum

Submitted by: Hans Petter Selasky [1]


190749 05-Apr-2009 piso

Remove pointeless mergeinfo that crept in from r190633.


190741 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159995

- add support for more complicated HID descriptors which can have multiple
definitions of the same field.
- remove old modulo patch in ums, which I think is due to bad HID parsing,
which should be fixed now.

Reported by: netchild
Submitted by: Hans Petter Selasky


190734 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159909

- make usb2_power_mask_t 16-bit
- remove "usb2_config_sub" structure from "usb2_config". To compensate for this
"usb2_config" has a new field called "usb_mode" which select for which mode
the current xfer entry is active. Options are: a) Device mode only b) Host
mode only (default-by-zero) c) Both modes. This change was scripted using
the following sed script: "s/\.mh\././g".
- the standard packet size table in "usb_transfer.c" is now a function, hence
the code for the function uses less memory than the table itself.

Submitted by: Hans Petter Selasky


190633 01-Apr-2009 piso

Implement an ipfw action to reassemble ip packets: reass.


190581 30-Mar-2009 mav

Integrate user/mav/ata branch:

Add ch_suspend/ch_resume methods for PCI controllers and implement them
for AHCI. Refactor AHCI channel initialization according to it.

Fix Port Multipliers operation. It is far from perfect yet, but works now.
Tested with JMicron JMB363 AHCI + SiI 3726 PMP pair.
Previous version was also tested with SiI 4726 PMP.

Hardware sponsored by: Vitsch Electronics / VEHosting.nl


190172 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159375,159376,159377

Further remove dependancy towards Giant.

Submitted by: Hans Petter Selasky


189583 09-Mar-2009 thompsa

MFp4 //depot/projects/usb@158916

USB mouse patch to address complicated data reporting descriptors.

Reported by: Boris Kotzev
Submitted by: Hans Petter Selasky


189275 02-Mar-2009 thompsa

Rename the ushub device class back to uhub as it was in the old usb stack,
moused(8) looks for "uhub/ums" to decide if needs to load the module.

Reported by: Garrett Cooper


189110 27-Feb-2009 thompsa

Change USB over to make_dev() for all device nodes, previously it hooked into
the devfs clone handler to open the (invisible) devices on the fly.

The /dev entries are layed out as follows,

/dev/usbctl = master device
/dev/usb/0.1.0.5 = usb device, (<bus>.<dev>.<iface>.<endpoint>)
/dev/ugen0.1 -> usb/0.1.0.0 = ugen link to ctrl endpoint

This also removes the custom permissions model from USB. Bump
__FreeBSD_version to 800066.

Submitted by: rink (earlier version)


189001 24-Feb-2009 ed

Use my address of the FreeBSD project in the copyright statement in USB2.

If I remember correctly, our policy was to use FreeBSD with proper
capitalisation in our email addresses. Fix this in Nick Hibma's address
as well.


188981 24-Feb-2009 thompsa

MFp4 //depot/projects/usb; 157814, 157863, 157868

- The software computed HID size is not always correct, because the algoritm
does not handle unsorted HID descriptors.
- Change the way we obtain the report ID.
- Use the X/Y/Z+button locations instead for report ID source for ums.
- Add more range checks.
- Remove Microsoft Mouse quirks. If the positions are moduloed the report
length multiplied by 8, the values seem correct.
- Some minor style changes.

Submitted by: Hans Petter Selasky


188942 23-Feb-2009 thompsa

Move the new USB stack into its new home.