History log of /freebsd-10-stable/sys/dev/usb/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
362168 14-Jun-2020 hselasky

MFC r362056:
Add missing range checks when receiving USB ethernet packets.

Found by: Ilja Van Sprundel, IOActive
Sponsored by: Mellanox Technologies

361921 08-Jun-2020 hselasky

MFC r361827:
USB HID descriptors may push/pop the current state to allow
description of items residing in a so-called union. FreeBSD currently
only supports 4 such push levels.

If the push level is not restored within the processing of the same
HID item, an invalid memory location may be used for subsequent HID
item processing.

Verify that the push level is always valid when processing HID items.

Reported by: Andy Nguyen (Google)
Sponsored by: Mellanox Technologies

361912 08-Jun-2020 hselasky

MFC r361581:
Implement helper function, usbd_get_max_frame_length(), which allows kernel
device drivers to correctly predict the default USB transfer frame length.

Sponsored by: Mellanox Technologies

361908 08-Jun-2020 hselasky

MFC r361577:
Don't allow USB device drivers to parent own interface.
It will prevent proper USB device detach.

Sponsored by: Mellanox Technologies

360335 26-Apr-2020 hselasky

MFC r360075:
Set the maximum exit latency to 0 for XHCI USB 3.0 devices, because we
don't implement link power management, LPM.

This fixes error code XHCI_TRB_ERROR_BANDWIDTH for isochronous USB 3.0
transactions.

Submitted by: Horse Ma <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies

359318 26-Mar-2020 hselasky

MFC r359120:
Correctly implement support for remote wakeup for USB 3.0 device.

Submitted by: Horse Ma <Shichun.Ma@dell.com>
Sponsored by: Mellanox Technologies

358875 11-Mar-2020 hselasky

MFC r358738:
Remove the power bit from the super speed root hub port status register
because it clobbers the super speed link status when a device is in super
speed mode. Currently the power bit is not needed for anything in the USB
hub driver.

This fixes USB warm reset for super speed devices.

Tested by: Shichun.Ma@dell.com
Sponsored by: Mellanox Technologies

357432 03-Feb-2020 hselasky

MFC r356952:
Add new USB ID to uslcom(4).

Submitted by: Oleg Sharoyko <osharoiko@gmail.com>
PR: 243494
Sponsored by: Mellanox Technologies

356783 16-Jan-2020 hselasky

MFC r356545:
Fix a XHCI driver issue with Intel's Gemini Lake SOC.

Do not configure any endpoint twice, but instead keep track of which
endpoints are configured on a per device basis, and use an evaluate
endpoint context command instead. When changing the configuration make
sure all endpoints get deconfigured and the configured endpoint mask
is reset.

This fixes an issue where an endpoint might stop working if there is
an error and the endpoint needs to be reconfigured as a part of the
error recovery mechanism in the FreeBSD USB stack.

Tested by: Shichun.Ma@dell.com
Sponsored by: Mellanox Technologies

356681 13-Jan-2020 hselasky

MFC r356409:
Add own counter for cancelled USB transfers.
Do not count these as errors.

Bump the FreeBSD version to force recompilation of external modules.

Sponsored by: Mellanox Technologies

356396 06-Jan-2020 hselasky

MFC r356135:
Make USB statistics per device instead of per bus.

Bump the FreeBSD version due to structure change to
force recompilation of external USB modules.

Sponsored by: Mellanox Technologies

353179 07-Oct-2019 hselasky

MFC r352556:
Add quirk for XHCI(4) controllers to support USB control transfers
above 1Kbyte. It might look like some XHCI(4) controllers do not
support when the USB control transfer is split using a link TRB. The
next NORMAL TRB after the link TRB is simply failing with XHCI error
code 4. The quirk ensures we allocate a 64Kbyte buffer so that the
data stage TRB is not broken with a link TRB.

Found at: EuroBSDcon 2019
Sponsored by: Mellanox Technologies

353175 07-Oct-2019 hselasky

MFC r352555:
Increase the maximum user-space buffer size from 256kBytes to 32MBytes for
libusb. This is useful for speeding up large data transfers while reducing
the interrupt rate.

Found at: EuroBSDcon 2019
Sponsored by: Mellanox Technologies

353171 07-Oct-2019 hselasky

MFC r352554:
The maximum TD size is 31 and not 15.

Found at: EuroBSDcon 2019
Sponsored by: Mellanox Technologies

351017 14-Aug-2019 hselasky

MFC r350396:
Add support for tethering with Nokia 7 plus and the alike.

PR: 239495
Sponsored by: Mellanox Technologies

348857 10-Jun-2019 hselasky

MFC r348631:
In usb(4) fix a lost completion event issue towards libusb(3). It may happen
if a USB transfer is cancelled that we need to fake a completion event.
Implement missing support in ugen_fs_copy_out() to handle this.

This fixes issues with webcamd(8) and firefox.

Sponsored by: Mellanox Technologies

348853 10-Jun-2019 hselasky

MFC r348604:
In xhci(4) there is no stream ID in the completion TRB.
Instead iterate all the stream IDs in stream mode to find
the matching USB transfer.

Sponsored by: Mellanox Technologies

346669 25-Apr-2019 hselasky

MFC r346229 and r346248:
Fix spelling and remove superfluous USB keyword.

Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
Sponsored by: Mellanox Technologies

345546 26-Mar-2019 hselasky

MFC r342961:
snd_uaudio: Add quirks for Edirol UA-25EX in advanced driver mode.

Extend the vendor class USB audio quirk to cover devices without
the USB audio control descriptor.

PR: 234794
Sponsored by: Mellanox Technologies

344695 01-Mar-2019 hselasky

MFC r344477:
Add new USB quirk.

PR: 235897
Sponsored by: Mellanox Technologies

343821 06-Feb-2019 avos

MFC r343681:
run(4): fix allocated memory type for ieee80211_node(4)

PR: 177366

343816 06-Feb-2019 avos

MFC r343542:
upgt(4): unbreak build with UPGT_DEBUG

343760 05-Feb-2019 avos

MFC r343541:
Drop some unneeded includes from wireless USB drivers.

343658 01-Feb-2019 hselasky

MFC r343453:
Add new USB quirk.

PR: 235202
Differential Revision: https://reviews.freebsd.org/D18917
Sponsored by: Mellanox Technologies

343136 18-Jan-2019 hselasky

MFC r342778:
Reduce timeout for reading the USB HUB port status to 1000ms and try to filter
out dead USB HUB devices by implementing an error counter, so that the USB
enumeration thread does not spend all its time reading from non-responding
devices, blocking user-space access in the end.

Tested by: Matthias Apitz <guru@unixarea.de>
Sponsored by: Mellanox Technologies

343133 18-Jan-2019 hselasky

MFC r342730:
Improve USB generic debug messages. Print process ID and name when opening
and closing usb/ugenX.Y character device nodes.

Sponsored by: Mellanox Technologies

342727 03-Jan-2019 hselasky

MFC r342549:
Add USB quirk for SPL Crimson Rev 1.

PR: 234380
Sponsored by: Mellanox Technologies

342037 13-Dec-2018 hselasky

MFC r334648:
Add support for SIMCom SIM7600E.

PR: 226066
Sponsored by: MSI/FUNTORO

340317 10-Nov-2018 hselasky

MFC r340212:
Sometimes the complete split packet may be queued too early and the
transaction translator will return a NAK. Ignore this message and
retry the complete split instead.

Sponsored by: Mellanox Technologies

339853 29-Oct-2018 hselasky

MFC r339587:
Added support for formula-based arbitrary baud rates, in contrast to
the current fixed values, which enables use of rates above 1 Mbps.
Improved the detection of HXD chips, and the status flag handling as
well.

Submitted by: Gabor Simon <gabor.simon75@gmail.com>
PR: 225932
Differential revision: https://reviews.freebsd.org/D16639
Sponsored by: Mellanox Technologies

339443 19-Oct-2018 hselasky

MFC r339388:
Fix for reception of large full speed isochronous frames via the transaction
translator, when using the DWC OTG USB controller driver. Make sure to re-try
getting the complete split packets until a DATA0 packet is received. Larger
isochronous frames may be split into multiple MDATA packets terminated
by a single DATA0 packet.

PR: 230434
Sponsored by: Mellanox Technologies

336887 30-Jul-2018 hselasky

MFC r335700:
Improve the kernel's USB descriptor reading function.
Some USB devices does not allow a partial descriptor readout.

Found by: bz@
Sponsored by: Mellanox Technologies

335627 25-Jun-2018 avg

MFC r334002: uchcom: extend hardware support to version 0x30

335625 25-Jun-2018 avg

MFC r334001: uchcom: remove UCHCOM_REG_BREAK2 alias of UCHCOM_REG_LCR1

335623 25-Jun-2018 avg

MFC r334000: uchcom: reject parity and double stop bits as unsupported

335621 25-Jun-2018 avg

MFC r333999: uchcom: add a hardware configuration tweak seen in Linux code

335619 25-Jun-2018 avg

MFC r333998: uchcom: add DPRINTF-s to aid debugging of the driver

335617 25-Jun-2018 avg

MFC r333997: uchcom: report detected product based on USB product ID

334758 07-Jun-2018 hselasky

MFC r334158:
Add function to wait for USB ethernet attach to complete.

Sponsored by: Mellanox Technologies

333203 03-May-2018 hselasky

MFC r333100:
Improve fix in r304629 by allowing configuration of the behaviour
through a SYSCTL instead of a compile time define.

Add quirk by default for all LynxPoint XHCI controllers.

PR: 227602
Sponsored by: Mellanox Technologies

331997 04-Apr-2018 hselasky

MFC r331642:
Add support for right and middle click with integrated button to WSP
USB trackpad driver.

Submitted by: James Wright <james.wright@jigsawdezign.com>
PR: 226961
Sponsored by: Mellanox Technologies

330014 26-Feb-2018 hselasky

MFC r329195:
Add new USB quirk.

PR: 225844
Sponsored by: Mellanox Technologies

329304 15-Feb-2018 hselasky

MFC r328163:
Add new USB ID to U3G driver.

PR: 134299
Sponsored by: Mellanox Technologies

329302 15-Feb-2018 hselasky

MFC r328830:
Add new USB ID.

PR: 225641
Submitted by: Ryan <ryanwinter@outlook.com>
Sponsored by: Mellanox Technologies

328051 16-Jan-2018 avg

MFC r327724: usbdevs: add ASMedia vendor ID

324798 20-Oct-2017 hselasky

MFC r323916:
Extend sysctl description for hw.usb.disable_enumeration .

PR: 222505
Submitted by: Julian H. Stacey <jhs@berklix.com>
Sponsored by: Mellanox Technologies

323809 20-Sep-2017 hselasky

MFC r322530 and r323220:
Add new USB quirk(s).

PR: 221775
PR: 221328
Sponsored by: Mellanox Technologies

322724 20-Aug-2017 marius

MFC: r266470, r273546, r276017, r277932, r279153, r279778, r279780, r278797,
r278861, r280283, r280284, r280294, r280452, r280558, r280571, r281863,
r282049, r282357, r282440, r282441, r282358, r282359, r283550, r283918,
r290171, r290667, r290381, r290533, r290666, r292483, r295659, r297545,
r298305, r298383, r298428, r306489, r306557, r307067, r307068, r307087,
r307088, r307089, r307091, r307092, r307093, r307098, r307115, r307154,
r307240, r307241, r315967, r316476

Unbreak BCM2835/RPI-B support by bringing it in line with stable/11 and
head:

- Optimise reading of pending interrupt registers.

- Fix a bug where some DTS layouts could cause the premature ending of the
search (i.e. without returning any result) and you would end up with a
random MAC address.

- Reduce the diff between head and arm_intrng with the bcm2835 interrupt
controller.

- Allow the retrieving of the reserved pins state.

- Add support to the bcm2835 mailbox driver to work before interrupts are
enabled. This will be needed to enable the power on devices early on in the
boot process.

- Add support for enabling the USB on the Raspberry Pi boards when it hasn't
been done by U-Boot. This allows the USB to work when we load the kernel
directly.

- Call config_intrhook_disestablish on failure of the bcm2835 fb and fbd intr
hooks. With this we can get through the boot even if these functions fail.

- Add the structures needed to get/set the power state. These can be used
when, for example, we boot without U-Boot and wish to enable USB, or to
suspend an unneeded device.

- Add a mask to match only the relative base address of BSC controllers.

- Move the code to set the device power to the bcm2835 mailbox driver so it
can be reused by other drivers.

- Add the SOC_BCM2835 and SOC_BCM2836 options for the arm kernel and add the
former to std.bcm2835.

- Add a helper function to read clock frequencies from videocore and use this
to get the default frequency of the sdhci device.

- Add partial support for the Raspberry Pi 2.

- Remove a debug #error from the bcm2835 sdhci driver.

- Fetch the SDHCI frequency from videocore (our prefered source) and only if
it fails, fetch the clock-frequency from DTB. If both methods fail, use the
hardcoded default.

- Pass the supplied buffer length instead of a fixed size.

- Add the routines to query and setup the framebuffer state using the
BCM2835_MBOX_CHAN_PROP channel. The old channel (BCM2835_MBOX_CHAN_FB)
seems deprecated on recent firmware versions and is causing a freeze on
RPi 2.

- Fix DMA on RPi 2. BCM2836 has a different base address for peripherals.

- Enable DMA for sdhci on RPi 2 (BCM2836).

- Add a missing wakeup when releasing ownership of the SPI hardware.

- Fix framebuffer compatibility with new RPi firmware.

- Refactor bcm2835_cpufreq to use bcm2835_mbox_property API.

- Fix the sc(4) framebuffer driver on RPi 2.

- Fix the vt(4) framebuffer driver on RPi 2.

- Remove unused mutex and softc variables.

- Refactor mailbox property API to make it usable for /dev/vcio driver.

- Replace semaphore-base locking with sleep/wait synchronization.

- Fix infinite loop if response from VideoCore never received.

- Set have_message in interrupt to handle "response before READ" case.

- Serialize access to property channel when using bcm2835_mbox_property.

- Force framebuffer virtual viewport to be the same as physical.

- Use proper type of tag in bcm2835_mbox_fb_init.

- bcm2835_cpufreq: Only attach driver if we correcly match on the machine
compatible string.

- Add dev.fb.X.resync sysctl to resync ARM framebuffer with VideoCore.

- Do not use DMA channels used by GPU.

- Define local-intc for BCM2836 platform (RPI2) and make BCM2835 intc
a child of it.

- Fix build for Pi kernels with syscons enabled.

- Use VM_MEMATTR_WRITE_COMBINING memattr for mmap(2) on framebuffer.

- Make intc driver compatible with upstream DTS.

- Make Rapsberry Pi watchdog driver compatible with upstream DTS.

- Make sure intc is attached before interrupt consumers.

- Make framebuffer driver compatible with upstream DT.

- Add one more heuristic to determine MAC address of the SMSC device.

- Add compatibility strings from upstream DT.

- Fix spelling mistake, BCM2835_PASWORD -> BCM2835_PASSWORD.

Approved by: re (kib)


/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_bscvar.h
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_common.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_cpufreq.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_dma.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_dma.h
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_fb.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_fbd.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_intr.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_machdep.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_mbox_prop.h
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_spi.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_vcbus.h
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2836.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2836.h
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm283x_dwc_fdt.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/files.bcm2835
/freebsd-10-stable/sys/arm/broadcom/bcm2835/files.bcm2836
/freebsd-10-stable/sys/arm/broadcom/bcm2835/std.bcm2835
/freebsd-10-stable/sys/arm/broadcom/bcm2835/std.bcm2836
/freebsd-10-stable/sys/conf/options.arm
controller/dwc_otg_fdt.c
controller/dwc_otg_fdt.h
net/if_smsc.c
321981 03-Aug-2017 hselasky

MFC r321722:
Properly range check length of parsed information elements in RSU driver.

Found by: Ilja van Sprundel <ivansprundel@ioactive.com>
Sponsored by: Mellanox Technologies

318499 18-May-2017 marius

MFC: r314345, r318276

- Add ID for NEC uPD720202 xHCI controller.
- Describe Intel Apollo Lake and Braswell USB 3.0 controllers.

316651 09-Apr-2017 mav

MFC r316412: Add IDs for Intel Cougar Point USB 2.0 controller.

315252 14-Mar-2017 hselasky

MFC r312424:

Fix problem with suspend and resume when using Skylake chipsets. Make
sure the XHCI controller is reset after halting it. The problem is
clearly a BIOS bug as the suspend and resume is failing without
loading the XHCI driver. The same happens when using Linux and the
XHCI driver is not loaded.

Submitted by: Yanko Yankulov <yanko.yankulov@gmail.com>
PR: 216261

315249 14-Mar-2017 hselasky

MFC r312338:

Add USB audio support for S/PDIF output with C-Media CM6206 devices.

Submitted by: Julien Nadeau <vedge@hypertriton.com>
PR: 216131

311799 09-Jan-2017 hselasky

MFC r310242:
Defer USB enumeration until the SI_SUB_KICK_SCHEDULER is executed to avoid
boot panics in conjunction with the recently added EARLY_AP_STARTUP feature.
The panics happen due to using kernel facilities like callouts too early.

Tested by: jhb @

310281 19-Dec-2016 trasz

MFC r307902:

Make the USB attach strings in dmesg include product name.

MFC after: 1 month

309255 28-Nov-2016 hselasky

MFC r308730:
Make sure MAC address is reprogrammed when if_init() callback is
invoked. Else promiscious mode must be used to pass traffic. While at
it fix a debug print macro.

308739 16-Nov-2016 mav

MFC r308464, r308471: Add some device IDs found in my new laptop.

308402 07-Nov-2016 hselasky

MFC r307518:
Fix device delete child function.

When detaching device trees parent devices must be detached prior to
detaching its children. This is because parent devices can have
pointers to the child devices in their softcs which are not
invalidated by device_delete_child(). This can cause use after free
issues and panic().

Device drivers implementing trees, must ensure its detach function
detaches or deletes all its children before returning.

While at it remove now redundant device_detach() calls before
device_delete_child() and device_delete_children(), mostly in
the USB controller drivers.

Tested by: Jan Henrik Sylvester <me@janh.de>
Reviewed by: jhb
Differential Revision: https://reviews.freebsd.org/D8070

308395 07-Nov-2016 hselasky

MFC r308144 and r308165:
Fixes for virtual T-axis buttons.

Make sure the virtual T-axis buttons gets cleared for USB mice which has
less than 6 buttons.

Make sure the virtual T-axis buttons generate button release event(s)
for continuous tilting.

PR: 213919
PR: 213957

307184 13-Oct-2016 sephe

MFC 304973,304975,304976,304979,305044-305048

304973
hyperv/hn: Switch to new RNDIS query for link status extraction.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7654

304975
hyperv/hn: Switch to new RNDIS query for RSS capabilities extraction.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7656

304976
hyperv/hn: Fix # of channels setting, if RSS is not available.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7657

304979
hyperv/hn: Switch to new RNDIS set for RSS parameters.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7658

305044
hyperv/hn: Move OIDs to net/rndis.h; they are standard NDIS OIDs.

Actually all OIDs defined in net/rndis.h are standard NDIS OIDs.
While I'm here, use the verbose macro name as in NDIS spec.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7679

305045
hyperv/hn: Indentation and field comment fixup for ndis.h.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7680

305046
net/rndis: Packet types are defined by NDIS; not RNDIS specific.

Reviewed by: hps
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7681

305047
hyperv/hn: Switch to new RNDIS set for RX filters.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7683

305048
hyperv/hn: Remove unused function

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7684

307175 13-Oct-2016 sephe

MFC 304654,304722,304723

304654
net: Split RNDIS protocol structs/macros out of dev/usb/net/if_urndisreg.h

So that Hyper-V can leverage them instead of rolling its own definition.

Discussed with: hps
Reviewed by: hps
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7592

304722
net/rndis: Add canonical RNDIS major/minor version as of today.

Reviewed by: hps
Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7593

304723
net/rndis: Fix RNDIS_STATUS_PENDING definition.

While I'm here, sort the RNDIS status in ascending order.

Sponsored by: Microsoft
Differential Revision: https://reviews.freebsd.org/D7594

306957 10-Oct-2016 hselasky

MFC r306478:
Add new USB ID.

While at it remove some whitespaces.

Submitted by: Jose Luis Duran <jlduran@gmail.com>
PR: 213110

306370 27-Sep-2016 loos

MFC r306205:

Add the ID for the Huawei ME909S LTE modem.

Submitted by: svenauhagen at github
Sponsored by: Rubicon Communications, LLC (Netgate)

305829 15-Sep-2016 hselasky

MFC r305590:
Correctly map the USB mouse tilt delta values into buttons 5 and 6
instead of 3 and 4 which is used for the scroll wheel, according to
X.org.

PR: 170358

305734 12-Sep-2016 hselasky

MFC r305421:
Resolve deadlock between device_detach() and usbd_do_request_flags()
by reviving the SX control request lock and refining which lock
protects the common scratch area in "struct usb_device".

The SX control request lock was removed by r246759 because it caused a
lock order reversal with the USB enumeration lock inside
usbd_transfer_setup() as a function of r246616. It was thought that
reducing the number of locks would resolve the LOR, but because some
USB device drivers use usbd_do_request_flags() inside callback
functions, like in taskqueues, a deadlock may occur when these are
drained from device_detach(). By restoring the SX control request
lock usbd_do_request_flags() is allowed to complete its execution
when a USB device driver is detaching. By using the SX control request
lock to protect the scratch area, the LOR introduced by r246616 is
also resolved.

Bump the FreeBSD version while at it to force recompilation of all USB
kernel modules.

Found by: avos@

305645 09-Sep-2016 hselasky

MFC r304571:
Make the UKBD USB transfers double buffered and set them up one by one,
so they are memory independent which allows for handling panics
triggered by the keyboard driver itself, typically via CTRL+ALT+ESC
sequences. Or if the USB keyboard driver was processing a key at the
moment of panic. Allow UKBD to be attached while keyboard polling is active.

305615 08-Sep-2016 pfg

MFC r303891, r303892:
sys: replace comma with semicolon when pertinent.

Uses of commas instead of a semicolons can easily go undetected. The comma
can serve as a statement separator but this shouldn't be abused when
statements are meant to be standalone.

305589 08-Sep-2016 hselasky

MFC r281499:
Modify the return value of the uhci/ehci/xhci PCI probe routines to
'BUS_PROBE_DEFAULT'. This allows bhyve's 'ppt' driver to claim ownership
of the device and pass it through to the guest.

In the common case where there are no competing drivers for USB controllers
this change is a no-op.

PR: 212256

305557 07-Sep-2016 dim

MFC r305388:

With clang 3.9.0, compiling uplcom results in the following warnings:

sys/dev/usb/serial/uplcom.c:543:29: error: implicit conversion from 'int' to 'int8_t' (aka 'signed char') changes value from 192 to -64 [-Werror,-Wconstant-conversion]
if (uplcom_pl2303_do(udev, UT_READ_VENDOR_DEVICE, UPLCOM_SET_REQUEST, 0x8484, 0, 1)
~~~~~~~~~~~~~~~~ ^~~~~~~~~~~~~~~~~~~~~
sys/dev/usb/usb.h:179:53: note: expanded from macro 'UT_READ_VENDOR_DEVICE'
#define UT_READ_VENDOR_DEVICE (UT_READ | UT_VENDOR | UT_DEVICE)
~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~

This is because UT_READ is 0x80, so the int8_t argument is wrapped to a
negative value. Fix this by using uint8_t instead.

Reviewed by: imp, hselasky
Differential Revision: https://reviews.freebsd.org/D7776

304998 29-Aug-2016 hselasky

MFC r304629:
Don't separate the status stage of the XHCI USB control transfers into
its own job because this breaks the simplified QEMU XHCI TRB parser,
which expects the complete USB control transfer as a series of back to
back TRBs. The old behaviour is kept under #ifdef in case this change
breaks enumeration of any USB devices.

PR: 212021

304993 29-Aug-2016 hselasky

MFC r304597:
Fix for invalid use of bits in input context. Basically split
configuring of EP0 and non-EP0 into xhci_cmd_evaluate_ctx() and
xhci_cmd_configure_ep() respectivly. This resolves some errors when
using XHCI under QEMU and gets is more in line with the XHCI
specification.

PR: 212021

304125 15-Aug-2016 hselasky

MFC r303765:
Keep a reference count on USB keyboard polling to allow recursive
cngrab() during a panic for example, similar to what the AT-keyboard
driver is doing.

Found by: Bruce Evans <brde@optusnet.com.au>

304030 13-Aug-2016 cy

MFC r303806:

Add Logitech Unifying receiver.

303996 12-Aug-2016 hselasky

MFC r302371:
Fix regression issue with XHCI on 32-bit ARMv7 Armada-38x. Make sure
"struct xhci_dev_ctx_addr" fits into a single 4K page until further.

302563 11-Jul-2016 hselasky

MFC r302336:
Fix interrupt loop when switching from USB device to USB host mode by
clearing all endpoint interrupt bits.

PR: 210736

302562 11-Jul-2016 hselasky

MFC r302306:
Fix detection of USB device disconnects in USB host mode when the USB
device is connected directly to the USB port of the DWC OTG, in this
case a RPI-zero.

PR: 210695

302266 29-Jun-2016 hselasky

MFC r302076:
Update the definition for number of scratch pages to match the latest
version of the XHCI specification. Make sure the code can handle the
maximum number of allowed scratch pages.

Submitted by: Shichun_Ma@Dell.com

301446 05-Jun-2016 pfg

MFC r301206:
usb/uhso: Don't bail out on first USB error.

CID: 1305680
Submitted by: hselasky
MFC after: 3 days

301253 03-Jun-2016 hselasky

MFC r300667:
Check for signals when locking the USB enumeration thread from
userspace, so that USB applications can be killed if an enumeration
thread should be stuck for various reasons.

301250 03-Jun-2016 hselasky

MFC r299060:
Extend the UQ_NO_STRINGS quirk to also cover the USB language string
descriptor. This fixes enumeration of some older Samsung Galaxy S3
phones.

300312 20-May-2016 mav

MFC r298983: Add some device IDs from Intel Sunrise Point chipsets.

298781 29-Apr-2016 hselasky

MFC r297696 and r298424:
Add new USB quirks.

Submitted by: AJ <aleksanderlothe@live.com>
PR: 208623
Submitted by: Naram Qashat <cyberbotx@cyberbotx.com>
PR: 208642

297852 12-Apr-2016 mav

MFC r297387: Add some device IDs found on AMD FCH shipsets.

297643 07-Apr-2016 hselasky

MFC r296342:
Allow for overlapping quirk device ranges. Prior to this patch only
the first device entry matching the USB vendor, product and revision
would be searched for quirks. After this patch all device entries will
be searched for quirks.

297375 29-Mar-2016 mav

r297229 (by hselasky): Add more UHCI PCI IDs.

297341 28-Mar-2016 mav

MFC r297049: Add IDs for Intel Wellsburg USB controllers.

297340 28-Mar-2016 mav

MFC r295463 (by hselasky): Correct PCI device description.

297339 28-Mar-2016 mav

MFC r275137 (by adrian): Add PCI ID for Intel Lynx Point LP controller.

PR: kern/195398

296446 07-Mar-2016 hselasky

MFC r295928:
Configure the correct bMaxPacketSize for control endpoints before
requesting the initial complete device descriptor and not as part of
the subsequent babble error recovery. Babble means that the received
USB packet was bigger than than configured maximum packet size. This
only affects enumeration of FULL speed USB devices which use a
bMaxPacketSize different from 8 bytes. This patch might help fix
enumeration of USB devices which exhibit USB I/O errors in dmesg
during boot.

296444 07-Mar-2016 hselasky

MFC r295923:
Be more verbose when truncating number of HID items.

Suggested by: Larry Rosenman <ler@lerctr.org>

296443 07-Mar-2016 hselasky

MFC r295608:
Fix variable assignment inside if-clause in the smsc driver.
Found by D5245 / PVS.

294637 23-Jan-2016 ian

MFC r294235:

Make PPS ASSERT/CLEAR events match the RS-232 signal levels as per RFC 2783.
Previously the polarity was for TTL levels, which are the reverse of RS-232.

Also add handling of the UART_PPS_INVERT_PULSE option bit in the sysctl
value, the same as was recently added to uart(4), so that people using TTL
level connections can request a logical inverting of the signal.

Use the named constants from the new dev/uart/uart_ppstypes.h for the pps
capture modes and option bits.

293735 12-Jan-2016 hselasky

MFC r293192:
Fix for directly connected FULL or LOW speed USB devices.

293209 05-Jan-2016 ian

MFC 292366: Flag the first port on a Sheevaplug ftdi serial device as jtag.

293146 04-Jan-2016 hselasky

MFC r291199:
Fix compile warning about shifting signed negative constant.

292792 27-Dec-2015 marius

MFC: r285909, r285913 (partial)

- Probe UICLASS_CDC/UISUBCLASS_ABSTRACT_CONTROL_MODEL/0xff again. This
variant of Microsoft RNDIS, i. e. their unofficial version of CDC ACM,
has been disabled in r261544 (r262363 in stable/10) for resolving a
conflict with umodem(4). Eventually, in r275790 (r276243 in stable/10)
that problem was dealt with in the right way. However, r275790 failed
to put probing of RNDIS devices in question back.
- Initialize the device prior to querying it, as required by the RNDIS
specification. Otherwise already determining the MAC address may fail
rightfully.
- On detach, halt the device again.
- Use UCDC_SEND_ENCAPSULATED_{COMMAND,RESPONSE}. While these macros are
resolving to the same values as UR_{CLEAR_FEATURE,GET_STATUS}, the
former set is way more appropriate in this context.
- Report unknown - rather: unimplemented - events unconditionally and
not just in debug mode. This ensures that we'll get some hint of what
is going wrong instead of the driver silently failing.
- Deal with the Microsoft ActiveSync requirement of using an input buffer
the size of the expected reply or larger - except for variably sized
replies - when querying a device.
- Fix some pointless NULL checks, style bugs etc.

This changes allow urndis(4) to communicate with a Microsoft-certified
USB RNDIS test token.

292185 14-Dec-2015 hselasky

MFC r291953:
When setting up VLANs on a Raspberry Pi ethernet port, the MTU drops
from 1500 to 1496 bytes. The MTU should remain at 1500, extending the
frame size as per IEEE 802.3. Adding IFCAP_VLAN_MTU to the
if_capabilities field in the smsc driver solves the problem. The
datasheet for the LAN9512 chip, section 3.2.3 states that the chip
supports the extended frame.

Submitted by: rpp@ci.com.au
PR: 205050

292183 14-Dec-2015 hselasky

MFC r263985, r275646 and r289028:
Add more USB IDs.

PR: usb/188046

291254 24-Nov-2015 hselasky

MFC r291146:
Add support for Kana and Eisu keys to the USB keyboard driver.

PR: 204709

291250 24-Nov-2015 hselasky

MFC r290326:
Relax the BUS_DMA_KEEP_PG_OFFSET requirement to allow optimising
allocation of DMA bounce buffers.

Discussed with: ian @

291205 23-Nov-2015 hselasky

MFC r277974:
Fix a bunch of -Wcast-qual warnings in sys/dev/usb/input/uhid.c, by
using __DECONST. No functional change.

Differential Revision: https://reviews.freebsd.org/D1743

291065 19-Nov-2015 hselasky

MFC r290639:
Update the wsp driver to support newer touch pads, like found in
MacBookPro11,4 and MacBook12,1. This update adds support for the
force touch parameter.

PR: 204420

291064 19-Nov-2015 hselasky

MFC r290542:
Avoid using the bounce buffer when the source or destination buffer is
32-bits aligned. Merge the two bounce buffers into a single one. Some
rough tests showed that the DWC OTG throughput on RPI2 increased by
10% after this patch.

291062 19-Nov-2015 hselasky

MFC r290489:
Add helper function to check if a USB page cache buffer is properly
aligned to reduce the use of bounce buffers in PIO mode.

290607 09-Nov-2015 hselasky

MFC r290441:
Fix for unaligned IP-header.

The mbuf length fields must be set before m_adj() is called else
m_adj() will not always adjust the mbuf and an unaligned read
exception can trigger inside the network stack. This can happen on
platforms where unaligned reads are not supported. Adjust a length
check to include the 2-byte ethernet alignment while at it.

290443 06-Nov-2015 hselasky

MFC r290195:
Reduce the DWC OTG interrupt load by not reading all the host channel
status registers for every interrupt. Check a common host channel
status interrupt register first, then conditionally read the
individual host channel status registers.

290331 03-Nov-2015 hselasky

MFC r285914, r289029 and r289560:
- Move the remainder of host controller capability registers reading from
xhci_start_controller() to xhci_init(). These values don't change at run-
time so there's no point of acquiring them on every USB_HW_POWER_RESUME
instead of only once during initialization. In r276717, reading the first
couple of registers in question already had been moved as a prerequisite
for the changes in that revision.
- Identify ASMedia ASM1042A controllers.
- Use NULL instead of 0 for pointers.
- Add quirks for USB 3.0 PCI devices.

PR: 203650

289215 13-Oct-2015 hselasky

MFC r287592 and r287616:
Add new USB ID.

PR: 202968

289161 12-Oct-2015 kevlo

MFC r289030:

Add support for Fresco Logic USB 3.0 host controller.

Fresco Logic hosts advertise MSI, but fail to actually generate MSI
interrupts. We have to disable MSI use.

Reviewed by: hselasky

289016 08-Oct-2015 hselasky

MFC r287321:
Add new USB quirk.

PR: 202783

289013 08-Oct-2015 hselasky

MFC r287355, r287772 and r287825:
Add new USB PCI IDs.

PR: 202807
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>
Differential Revision: https://reviews.freebsd.org/D3665

289007 08-Oct-2015 hselasky

MFC r288180:
Implement support for reading USB quirks from the kernel environment.
Refer to the usb_quirk(4) manual page for more details on how to use
this new feature.

Submitted by: Maxime Soule <btik-fbsd@scoubidou.com>
PR: 203249

288101 22-Sep-2015 garga

MFC r287828:

Add support for Sierra MC7355 card

Submitted by: Jeremy Porter <jporter@netgate.com>
Approved by: loos
Obtained from: pfSense
Sponsored by: Rubicon Communications (Netgate)

287655 11-Sep-2015 garga

MFC r287574:

- Fix Sierra MC7354 ID from a bad copy/paste, correct ID is 68C0

MFC r287575:

- Remove duplicate entry for Sierra Wireless Aircard 875

Approved by: loos
Obtained from: pfSense (r287574)
Sponsored by: Rubicon Communications (Netgate)

287274 29-Aug-2015 hselasky

MFC r286773:
Improve the realtime properties of USB transfers for embedded systems
like RPI-B and RPI-2.

287272 29-Aug-2015 hselasky

MFC r286799:
Fix race in USB PF which can happen if we stop tracing exactly when
the kernel is tapping an USB transfer. This leads to a NULL pointer
access. The solution is to only trace while the USB bus lock is
locked.

287271 29-Aug-2015 hselasky

MFC r283067, r286118, r285638, r285935, r286778, r286780 and r286802:
- Make the FIFO configuration a bit more flexible for the DWC OTG in
device side mode.
- Limit the number of times we loop inside the DWC OTG poll handler to
avoid starving other fast interrupts. Fix a comment while at it.
- Optimise the DWC OTG host mode driver's transmit path
- Optimise the DWC OTG host mode driver's receive path
- Minor code refactor to avoid duplicating code.
- Handle NYET high speed tokens and predict NAK'ing is up next.
- Fixes for HIGH speed ISOCHRONOUS traffic.

287035 23-Aug-2015 ian

MFC r264394, r286382, r286385, r286389:

Add support to the uftdi driver for reading and writing the serial eeprom
that can be attached to the chips, via ioctl() calls.

Return the current ftdi bitbang mode with the UFTDIIOC_GET_BITMODE ioctl.

Document the recently added get-bitmode and eeprom read/write functionality.

284500 17-Jun-2015 hselasky

MFC r284011:
Don't wait forever for USB data to be flushed.

284499 17-Jun-2015 hselasky

MFC r284125:
Add new USB quirk.

PR: 200693

284015 05-Jun-2015 hselasky

MFC r283922:
Fix for control endpoint handling in the DWC OTG driver. The data
stage processing is only allowed after the setup complete event has
been received. Else a race may occur and the OUT data can be corrupted.
While at it ensure resetting a FIFO has the required wait loop.

283951 03-Jun-2015 hselasky

MFC r283103:
Fix for DWC OTG device side isochronous transfers. The even or odd
isochronous frame bit needs to be flipped.

283341 24-May-2015 ian

MFC r279728, r279729, r279756, r279773, r282424, r281367:

Add mutex support to the pps_ioctl() API in the kernel.

Add PPS support to USB serial drivers.

Use correct mode variable for PPS support.

Switch polarity of USB serial PPS events.

The ftdi "get latency" and "get bitmode" device commands are read
operations, not writes.

Implement a mechanism for making changes in the kernel<->driver PPS
interface without breaking ABI or API compatibility with existing drivers.

Bump version number to indicate the new PPS ABI version changes in the
pps_state structure.

283193 21-May-2015 hselasky

MFC r282505:
Add new USB ID.

PR: 199843

283173 21-May-2015 hselasky

MFC r282577:
Add support for DYMO LabelWriter PnP.

282818 12-May-2015 garga

MFC r282469:

Add support for Sierra MC7354 card

Author: Jeremy Porter <jporter@netgate.com>
Differential Revision: https://reviews.freebsd.org/D2444
Reviewed by: gnn, hselasky
Sponsored by: Netgate

282509 05-May-2015 hselasky

MFC r280598:
Add definition of the ISOCHRONOUS endpoint usage bits.
Refer to the USB v2.0 specification for more information.

282508 05-May-2015 hselasky

MFC r281881:
Disable multi process interrupts, because the current code doesn't use
them. Else we can end up in an infinite interrupt loop in USB device
mode.

282366 03-May-2015 kevlo

MFC r281592, r281918, r282119, r282266:

- Fix the length of efuse content
- Disable usb aggregation mode by default since it boots performance

281878 23-Apr-2015 kevlo

MFC r281745:
Add new USB ID.

PR: 199522

281390 11-Apr-2015 rpaulo

MFC r281070:
urtwn: blink the LED when scanning.

280569 25-Mar-2015 hselasky

MFC r279725:
Add more USB IDs.

PR: 197753

280529 25-Mar-2015 hselasky

MFC r279854:
Lock softc before clearing bits.

279693 06-Mar-2015 hselasky

MFC r279563:
Add quirk for USB 3.0 controllers which don't support 64-bit DMA.

279648 05-Mar-2015 hselasky

MFC r279544:
Add quirk to disable 64-bit XHCI DMA after r276717.

Requested by: Gary Jennejohn <gljennjohn@gmail.com>

279644 05-Mar-2015 hselasky

MFC r279210:
Add support for the DWC OTG v2 chipset found in the STM32F4 series of
processors. Make sure we pullup the data lines in device mode when we
power on the port.

279636 05-Mar-2015 hselasky

MFC r279270:
Add ugen keyword to USB pnpinfo. Remove extra space from existing pnpinfo.

PR: 198015
PR: 198019
PR: 198026

279353 27-Feb-2015 hselasky

MFC r279233:
Ensure that the XHCI driver will refresh the control endpoint settings
when re-enumerating a FULL speed device. Else the wrong max packet
setting might be used when trying to re-enumerate a FULL speed device.

279279 25-Feb-2015 hselasky

MFC r278850:
Handle VBUS error interrupts.

PR: 190471

278863 16-Feb-2015 dchagin

MFC r278379:

Add Neoway WM620 module ID.

278727 13-Feb-2015 ian

MFC r277454, r277460, r277465, r277466, r277467, r277469, r277470, r277471,
r277472, r277473, r277474, r277475, r277476, r277477, r277478, r277479,
r277480, r277512, r277516:

Add inline implementations of arm bus_space_read/write_N().

Revise the arm bus_space implementation to avoid dereferencing the tag on
every operation to retrieve the bs_cookie value almost nothing actually uses.

Use the explicit member initializer style to init the bus_space struct.

Use arm/bus_space-v6.c for all armv6 systems

Consolidate many identical implementations of bus_space to a single
common tag and implementation shared by armv4 and armv6.

Micro-optimize the new arm inline bus_space implementation by grouping all
the data the inline functions access together at the start of the bus_space
struct so that they all fit in a single cache line.


/freebsd-10-stable/sys/arm/allwinner/a20/files.a20
/freebsd-10-stable/sys/arm/allwinner/files.a10
/freebsd-10-stable/sys/arm/arm/bus_space-v6.c
/freebsd-10-stable/sys/arm/arm/bus_space_asm_generic.S
/freebsd-10-stable/sys/arm/arm/bus_space_base.c
/freebsd-10-stable/sys/arm/arm/bus_space_generic.c
/freebsd-10-stable/sys/arm/at91/at91.c
/freebsd-10-stable/sys/arm/at91/files.at91
/freebsd-10-stable/sys/arm/broadcom/bcm2835/files.bcm2835
/freebsd-10-stable/sys/arm/cavium/cns11xx/econa.c
/freebsd-10-stable/sys/arm/cavium/cns11xx/files.econa
/freebsd-10-stable/sys/arm/freescale/imx/files.imx51
/freebsd-10-stable/sys/arm/freescale/imx/files.imx53
/freebsd-10-stable/sys/arm/freescale/imx/files.imx6
/freebsd-10-stable/sys/arm/freescale/vybrid/files.vybrid
/freebsd-10-stable/sys/arm/include/bus.h
/freebsd-10-stable/sys/arm/lpc/files.lpc
/freebsd-10-stable/sys/arm/lpc/lpc_space.c
/freebsd-10-stable/sys/arm/mv/bus_space.c
/freebsd-10-stable/sys/arm/mv/files.mv
/freebsd-10-stable/sys/arm/rockchip/files.rk30xx
/freebsd-10-stable/sys/arm/samsung/exynos/files.exynos5
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/files.s3c2xx0
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/s3c24x0.c
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/s3c2xx0_space.c
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/s3c2xx0var.h
/freebsd-10-stable/sys/arm/samsung/s3c2xx0/uart_cpu_s3c2410.c
/freebsd-10-stable/sys/arm/ti/files.ti
/freebsd-10-stable/sys/arm/versatile/bus_space.c
/freebsd-10-stable/sys/arm/versatile/files.versatile
/freebsd-10-stable/sys/arm/versatile/versatile_pci.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci_bus_space.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci_bus_space.h
/freebsd-10-stable/sys/arm/xilinx/files.zynq7
/freebsd-10-stable/sys/arm/xilinx/zy7_bus_space.c
/freebsd-10-stable/sys/arm/xscale/i80321/ep80219_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/files.ep80219
/freebsd-10-stable/sys/arm/xscale/i80321/files.i80219
/freebsd-10-stable/sys/arm/xscale/i80321/files.i80321
/freebsd-10-stable/sys/arm/xscale/i80321/files.iq31244
/freebsd-10-stable/sys/arm/xscale/i80321/i80321_space.c
/freebsd-10-stable/sys/arm/xscale/i80321/iq31244_machdep.c
/freebsd-10-stable/sys/arm/xscale/i80321/obio.c
/freebsd-10-stable/sys/arm/xscale/i80321/obio_space.c
/freebsd-10-stable/sys/arm/xscale/i80321/obiovar.h
/freebsd-10-stable/sys/arm/xscale/i80321/uart_cpu_i80321.c
/freebsd-10-stable/sys/arm/xscale/i8134x/crb_machdep.c
/freebsd-10-stable/sys/arm/xscale/i8134x/files.i81342
/freebsd-10-stable/sys/arm/xscale/i8134x/i81342_space.c
/freebsd-10-stable/sys/arm/xscale/i8134x/obio.c
/freebsd-10-stable/sys/arm/xscale/i8134x/obio_space.c
/freebsd-10-stable/sys/arm/xscale/i8134x/obiovar.h
/freebsd-10-stable/sys/arm/xscale/i8134x/uart_cpu_i81342.c
/freebsd-10-stable/sys/arm/xscale/ixp425/avila_ata.c
/freebsd-10-stable/sys/arm/xscale/ixp425/cambria_exp_space.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_a4x_space.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_pci_space.c
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425_space.c
/freebsd-10-stable/sys/arm/xscale/pxa/pxa_space.c
controller/ehci_ixp4xx.c
278726 13-Feb-2015 ian

MFC r272103: Move s3c2xx0 into the samsung directory.

278662 13-Feb-2015 hselasky

MFC r278477:
Fix DMA address casts.

278515 10-Feb-2015 hselasky

MFC r278105:
Separate out detection of prevent and allow medium removal quirk.

PR: 185747

278510 10-Feb-2015 hselasky

MFC r278074:
Optimise allocation of USB DMA structures. By default don't double map
allocations if only one element should be allocated per page
cache. Make one allocation per element compile time configurable. Fix
a comment while at it.

278507 10-Feb-2015 hselasky

MFC r278071:
Section 3.2.9 in the XHCI specification about control transfers says
that we should use a normal-TRB if there are more TRBs extending the
data-stage TRB. Add a dedicated state bit to the internal USB transfer
flags to handle this case.

278289 05-Feb-2015 hselasky

MFC r277136:
Resolve a special case deadlock: When two or more threads are
simultaneously detaching kernel drivers on the same USB device we can
get stuck in the "usb_wait_pending_ref_locked()" function because the
conditions needed for allowing detach are not met.

While at it ensure that "flag_iserror" is only written when "priv_mtx"
is locked, which is protecting it.

278278 05-Feb-2015 hselasky

MFC r266969 and r276717:
Add 64-bit DMA support in the XHCI controller driver.
- Fix some comments and whitespaces while at it.
- Add support for PAE.

277852 28-Jan-2015 hselasky

MFC r277246:
Add more USB device IDs.

PR: 196362

277845 28-Jan-2015 hselasky

MFC r277417:
Fix returned data for the USB_GET_DEV_PORT_PATH IOCTL in particular
the value returned in the "udp_port_level" field.

277409 20-Jan-2015 hselasky

MFC r276892:
Add support for USB device side mode to the USB modem driver.

277368 19-Jan-2015 hselasky

MFC r276798:
Fix handling of an error case when the MUSB driver is operating in USB
device side mode.

277364 19-Jan-2015 hselasky

MFC r277044:
Increase the maximum number of dynamic USB quirks. USB memory stick
devices which don't support the synchronize cache SCSI command are
likely to also not support the prevent-allow medium removal SCSI
command.

PR: 185747

276975 11-Jan-2015 hselasky

MFC r276611:
Make sure an error case exits unlocked.

276968 11-Jan-2015 hselasky

MFC r271156 and r273376:
- Add IDs for Intel Patsburg USB 2.0 controller.
- Add the Intel BayTrail USB device which needs port routing for USB 3.0.

276965 11-Jan-2015 hselasky

MFC r276321, r276404, r276407 and r276799:
Various XHCI fixes and improvements:
- Improve and fix MSI interrupt allocation, setup and release.
- Add missed flushing of data which can happen when "xhci_configure_mask()"
is called from "xhci_configure_reset_endpoint()". Ensure the 3-strikes
error feature is always enabled except for ISOCHRONOUS transfers.
- Allow systems having a page size greater than 4K to use fewer
scatter-gather XHCI TRB entries for its payload data. The XHCI
controller can handle at least 65536 bytes per scatter-gather list
entry.

276873 09-Jan-2015 loos

MFC: r273546

Fix a bug where some DTS layouts could cause the premature ending of the
search (i.e. without returning any result) and you would end up with a
random MAC address.

Change the search algorithm to a recursive one to ensure that all the nodes
on DTS will be verified.

The previous algorithm could not keep up if the DTS has too many sub-nodes.

While here, fix the punctuation on comments.

276243 26-Dec-2014 hselasky

MFC r275790 and r275791:
Resolve USB driver identification conflict.
Regenerate etc/devd/usb.conf.

276241 26-Dec-2014 hselasky

MFC r259675, r262128, r262129, r275605, r276239 and r276240:
Add more USB quirks.

PR: 178771
PR: 180617
PR: 195372

275789 15-Dec-2014 hselasky

MFC r275606:
Add more U3G USB IDs.

275785 15-Dec-2014 hselasky

MFC r275624:
Add port routing support for Wildcat Point.

PR: 195793

275450 03-Dec-2014 hselasky

MFC r275110:
Add new USB quirk.

PR: 195372

275439 03-Dec-2014 mav

MFC r275101:
Add bunch of PCI IDs of Intel Wildcat Point (9 Series) chipsets.

275230 29-Nov-2014 hselasky

MFC r274020:
Reduce boot verbosity.

274699 19-Nov-2014 hselasky

MFC r274227:
Add new USB IDs.

273898 31-Oct-2014 hselasky

MFC 258028:
Unbreak build of RSU module.
Use the real product name for Edimax rsu(4) id.

273886 31-Oct-2014 hselasky

MFC r264801, r264802, r264934, r273181, r273216 and r273252:
Add more USB IDs.

273885 31-Oct-2014 hselasky

MFC r269575, r269576 and r269578:
- Add a second Huawei SCSI eject command as USB mode switch config files
sometimes use one or the other. Maybe newer Huawei modems switched.
- Return USB_ERR_INVAL if the eject method is not known.

PR: 145319

273884 31-Oct-2014 hselasky

MFC r264923:
Remove device type from the uftdi_devs table, enhance the jtag-skip feature.

273883 31-Oct-2014 hselasky

MFC r269569:
Remove unused defines.
Fix some device_printf's that were missing '\n' at the end or had
spelling errors.

PR: 145319

273882 31-Oct-2014 hselasky

MFC r271159, r271168 and r271680:
Add USB LED driver for the Dream Cheeky WebMail Notifier.

273729 27-Oct-2014 hselasky

MFC r272733, r272807 and r272822:
Add support for disabling USB enumeration or USB port power
in general or on selected USB HUBs.

273636 25-Oct-2014 kevlo

MFC r273448:
Fix the kernel panic in hostap mode.
rvp->beacon_mbuf was NULL in run_update_beacon().

PR: 189405
Submitted by: Gabor Simon <gabor.simon75 at gmail.com>

272592 06-Oct-2014 hselasky

MFC r272480:
When we fail to get a USB reference we should just return, because
there are no more references held.

272590 06-Oct-2014 hselasky

MFC r272410:
Add new USB ID.

PR: 194091

272589 06-Oct-2014 hselasky

MFC r272349, r272422 and r272479:
- Fix XHCI driver for devices which have more than 15 physical root HUB
ports. The current bitmap array was too small to hold more than 16
bits and would at some point toggle the context size, which then would
trigger an enumeration fault and cause a fallback to the EHCI
companion controller, if any.
- Make sure we always set the maximum number of valid contexts.
- Set default cycle state in case of early interrupts.

272218 27-Sep-2014 hselasky

MFC r271874:
Add new USB IDs.

PR: 193775
Approved by: re, gjb

272097 25-Sep-2014 hselasky

MFC r271953:
Some XHCI hardware requires dropping the endpoint context before
adding it again.

Approved by: re, glebius

271896 20-Sep-2014 hselasky

MFC r271492:
Workaround for receiving Voice Calls using the E1750 dongle from
Huawei. It might appear as if the firmware is allocating memory blocks
according to the USB transfer size and if there is initially a lot of
data, like at the answering machine prompt, it simply dies without any
apparent reason. The simple workaround for this is to force a zero
length packet at hardware level after every 512 bytes of data. This
will force the other side to use smaller memory blocks aswell.

Approved by: re, gjb

271370 10-Sep-2014 hselasky

MFC r271017 and r271018:
Add new quirk.

PR: 193279
Approved by: re, marius

271355 10-Sep-2014 hselasky

MFC r270992:
Fix logical error.

Approved by: re, glebius

270843 30-Aug-2014 kevlo

MFC r270643:
Fix typo: s/mac_rev/mac_ver/

Submitted by: Stefan Sperling <stsp at openbsd dot org>

270778 29-Aug-2014 gjb

MFC r269608:
Add device ID for the Chicony USB 2.0 HD UVC Webcam
found on the Asus X550LA.

Sponsored by: The FreeBSD Foundation

270515 25-Aug-2014 kevlo

MFC r270192:

If eapol packets are sent at the lowest rate, key negotiation will
become more reliable.

Submitted by: Akinori Furukoshi <moonlightakkiy at yahoo dot ca>

270514 25-Aug-2014 kevlo

MFC r270165,r270191:

- Sort ASUS section and add USB device ID of ASUS USB-AC51.
- Add the D-Link DWA-125 rev D1.

269922 13-Aug-2014 hselasky

MFC r269567:
Add new USB phone descriptor template for USB device side mode.

269920 13-Aug-2014 hselasky

MFC r269565:
Rename driver name a bit to avoid unit number confusion in dmesg.

269917 13-Aug-2014 hselasky

MFC r269566:
Fix for deadlock in USB device side mode.

269916 13-Aug-2014 hselasky

MFC r269604:
- Implement fast interrupt handler to save CPU usage.
- Cleanup some register reads and writes to use existing register
access macros.
- Ensure code which only applies to the control endpoint is not run
for other endpoints in the data transfer path.

269864 12-Aug-2014 hselasky

MFC r257594:
Add description of two EHCI PCI IDs.

269718 08-Aug-2014 joerg

Merge r269470:

Avoid a divide-by-zero panic when setting the baudrate to 0.

269447 02-Aug-2014 hselasky

MFC r269139:
Split the XHCI TRB allocations into smaller parts, so that we don't
end up allocating contiguous busdma buffers above PAGE_SIZE bytes.

269270 29-Jul-2014 hselasky

MFC r268929:
Add new device ID.

PR: 191959

269266 29-Jul-2014 hselasky

MFC r269127:
Fix for division by zero.

268884 19-Jul-2014 hselasky

MFC r268735:
Improve support for Intel Lynx Point USB 3.0 controllers by using the
USB 2.0 port mask in addition to the USB 3.0 port mask. The hardware
does not always accept when writing -1U to the port switching
registers.

268738 16-Jul-2014 hselasky

MFC r268583:
Turn off blinking device leds at attach.

PR: 183735

268737 16-Jul-2014 hselasky

MFC r268582:
Fix performance problems with AXGE network adapter in RX direction:
- Remove 4 extra bytes from the ethernet payload.
- The maximum RX buffer was incorrectly set. Increase it to 64K for
now, until the exact limit is understood.
- Enable hardware checksumming again.
- Make hardware data structure packed.

268604 14-Jul-2014 hselasky

MFC r268354:
Improve support for Intel Lynx Point USB 3.0 controllers by masking
the port routing bits like done in Linux.

268586 13-Jul-2014 kevlo

MFC r268487:

Enable 8051 before downloading firmware.

Tested by: Carlos Jacobo Puga Medina <cpm at fbsd dot es

268219 03-Jul-2014 hselasky

MFC r267955 and r268209:
- Add proper rangechecks in "axge_rx_frame()" function and
fix receive loop header parsing.
- Disable hardware checksumming until it is properly tested.

PR: 191432

268206 03-Jul-2014 hselasky

MFC r268078 and r268080:
Fix for memory use after free() and mtx_destroy().

267775 23-Jun-2014 marius

MFC: r267321

Avoid the USB device disconnected and controller shutdown clutter on system
shutdown by putting the former under !rebooting and turning the latter into
debug messages.

Reviewed by: hps
Sponsored by: Bally Wulff Games & Entertainment GmbH

267735 22-Jun-2014 tuexen

MFC r265455:

Remove unused code. This is triggered by the bugreport of Sylvestre Ledru
which deal with useless code in the user land stack:
https://bugzilla.mozilla.org/show_bug.cgi?id=1003929

267621 18-Jun-2014 n_hibma

MFC r261270:

Fix the ordering of the arguments to printf in
uhub_child_location_string(). This produced bogus information in

dev.<USB driver>.<id>.%location

output from sysctl.

267349 11-Jun-2014 hselasky

MFC r267066 and r267041:
Fixes for the RSU driver:
- The R92S_TCR register is an 8-bit register. Don't access it like a
16-bit register.
- Disable parsing the delete station event, due to many false events.
- Ensure that there is only one transfer queue for each endpoint, so
to hal packets transmitted don't get out of order.
- Properly align temporary buffer to 32-bit.
- Add an extra parenthesis to make expression clear.
- Range check the association ID received from hardware.

267347 11-Jun-2014 hselasky

MFC r267240:
Resolve a deadlock setting the USB configuration index from userspace
on USB HUBs by moving the code into the USB explore threads. The
deadlock happens because child devices of the USB HUB don't have the
expected reference count when called from outside the explore
thread. Only the HUB device itself, which the IOCTL interface locks,
gets the correct reference count.

267315 10-Jun-2014 hselasky

MFC r267212:
Make WITNESS happy by giving USB mutexes different names.

267263 09-Jun-2014 kevlo

MFC r267089:

Remove D-Link DWA140 rev D1 by accident.

267242 08-Jun-2014 hselasky

MFC r267044, r267120, r267210 and r267211:
Multiple fixes for FULL and LOW speed USB transfers going through
the DWC OTG as split transactions. INTERRUPT transfers should have
a higher chance of success after this series of patches and the
chance of data loss should be reduced.

267039 04-Jun-2014 hselasky

MFC r266833:
Add some more spinlocks to protect the state of the USB transfer
queue. Rename some functions to indicate locking requirements.

266991 03-Jun-2014 kevlo

MFC r266490, r266738:

- Configure Rx bulk
- Announce flow control capability to PHY drivers
- Improve performance by fixing incorrect Rx/Tx handling
- Rename definition of AXGE_* to reflect reality
- Add new USB IDs

266921 31-May-2014 brueffer

MFC: r266270

Remove some unused variables.

266722 27-May-2014 kevlo

MFC 266721:
Remove r264317 by accident.

Spotted by: Kuan-Chung Chiu

266669 25-May-2014 hselasky

MFC r266541:

- Fix a bug where the TLBPC value was forced to being odd for IN
direction isochronous transfers.
- Remove setting of fields which does not belong to the respective
TRBs. These fields are currently set as zero and this is more a
cosmetic change.

266578 23-May-2014 hselasky

MFC r257543, r264912, r264972, r264982 and r266472:
- Add preliminary support for the Realtek RTL8188EUS and RTL8188ETV chipsets.
- Add device ID for 'Sanoxy 802.11N' USB
- Initialize rssi variable.
- Fix gcc build, initialize off variable.
- The DELAY() should not be used in USB drivers.
- The usb_pause_mtx() function takes ticks and not milliseconds as last argument.

266577 23-May-2014 hselasky

MFC r266466, r266471, r266484, r266505, r266535 and r266542:
Fix multiple issues in the RSU driver.

266575 23-May-2014 hselasky

MFC r265358, r265427, r265777, r265783,
r265806, r265872, r266012 and r266394:

- Multiple DWC OTG host mode related fixes, improvements and optimisations.
- Add full support for ISOCHRONOUS transfers to the DWC OTG driver.
- Use the interrupt filter to handle basic USB FIFO interrupts.
- Fixed unbalanced unlock in case of "dwc_otg_init_fifo()" failure.
- Add common spinlock to the USB bus structure.

266371 17-May-2014 ian

MFC 264977:

Stop calling imx51_ccm_foo() clock functions from imx6 code. Instead
define a few imx_ccm_foo() functions that are implemented by the imx51
or imx6 ccm code.

266257 16-May-2014 hselasky

MFC r265779:
Fix for NULL pointer.

266217 16-May-2014 ian

MFC r262591, r262592, r262593, r262597, r262598, r262599, r262600, r262601,
r262606

Initial import of Linux/Vendor DTS files for various embedded boards.

Initial import of DTS files from Linux

Correct initial import script

New AT91 devices or fdt probe added to existing devices. Some of these
are just stubs for testing the new dts.
- nand
- SDRAMC
- shdwc
- tcb
- usb host and gadget


/freebsd-10-stable/sys/arm/at91/at91_sdramc.c
/freebsd-10-stable/sys/arm/at91/at91_shdwc.c
/freebsd-10-stable/sys/arm/at91/at91_tcb.c
/freebsd-10-stable/sys/contrib/dts
/freebsd-10-stable/sys/contrib/dts/FreeBSD-upgrade
/freebsd-10-stable/sys/contrib/dts/arm/animeo_ip.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91-ariag25.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91-cosino.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91-cosino_mega2560.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91-foxg20.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91-qil_a9260.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91-sama5d3_xplained.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91rm9200.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91rm9200_pqfp.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91rm9200ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9260.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9263.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9263ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g15.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g15ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g20.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g20ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g20ek_2mmc.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g20ek_common.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g25.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g25ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g35.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g35ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9g45.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9m10g45ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9n12.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9n12ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x25.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x25ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x35.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x35ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x5.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x5_macb0.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x5_macb1.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x5_usart3.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x5cm.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/at91sam9x5ek.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/ethernut5.dts
/freebsd-10-stable/sys/contrib/dts/arm/evk-pro3.dts
/freebsd-10-stable/sys/contrib/dts/arm/ge863-pro3.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/kizbox.dts
/freebsd-10-stable/sys/contrib/dts/arm/mpa1600.dts
/freebsd-10-stable/sys/contrib/dts/arm/pm9g45.dts
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d31.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d31ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/sama5d33.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d33ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/sama5d34.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d34ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/sama5d35.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d35ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/sama5d36.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d36ek.dts
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_can.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_emac.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_gmac.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_lcd.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_mci2.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_tcb1.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3_uart.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3xcm.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3xdm.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/sama5d3xmb.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/tny_a9260.dts
/freebsd-10-stable/sys/contrib/dts/arm/tny_a9260_common.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/tny_a9263.dts
/freebsd-10-stable/sys/contrib/dts/arm/tny_a9g20.dts
/freebsd-10-stable/sys/contrib/dts/arm/usb_a9260.dts
/freebsd-10-stable/sys/contrib/dts/arm/usb_a9260_common.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/usb_a9263.dts
/freebsd-10-stable/sys/contrib/dts/arm/usb_a9g20.dts
/freebsd-10-stable/sys/contrib/dts/arm/usb_a9g20_common.dtsi
/freebsd-10-stable/sys/contrib/dts/arm/usb_a9g20_lpw.dts
/freebsd-10-stable/sys/dev/nand/nfc_at91.c
controller/at91dci_fdt.c
controller/ohci_fdt.c
266170 15-May-2014 ian

MFC r261616, r261639

Remove FreeBSD 6 support from atmel usb controllers.

Add Vybrid drivers for:
- Enhanced Direct Memory Access Controller (eDMA)
- Direct Memory Access Multiplexer (DMAMUX)

266152 15-May-2014 ian

MFC r261410

Follow r261352 by updating all drivers which are children of simplebus
to check the status property in their probe routines.


/freebsd-10-stable/sys/arm/allwinner/a10_clk.c
/freebsd-10-stable/sys/arm/allwinner/a10_ehci.c
/freebsd-10-stable/sys/arm/allwinner/a10_gpio.c
/freebsd-10-stable/sys/arm/allwinner/a10_wdog.c
/freebsd-10-stable/sys/arm/allwinner/a20/a20_cpu_cfg.c
/freebsd-10-stable/sys/arm/allwinner/aintc.c
/freebsd-10-stable/sys/arm/arm/generic_timer.c
/freebsd-10-stable/sys/arm/arm/gic.c
/freebsd-10-stable/sys/arm/arm/mpcore_timer.c
/freebsd-10-stable/sys/arm/arm/pl190.c
/freebsd-10-stable/sys/arm/arm/pl310.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_bsc.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_dma.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_gpio.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_intr.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_mbox.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_sdhci.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_spi.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_systimer.c
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_wdog.c
/freebsd-10-stable/sys/arm/freescale/imx/i2c.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ccm.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_gpio.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_iomux.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ipuv3.c
/freebsd-10-stable/sys/arm/freescale/imx/imx51_ipuv3_fbd.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_anatop.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_ccm.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_usbphy.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_gpt.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_nop_usbphy.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_sdhci.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_wdog.c
/freebsd-10-stable/sys/arm/freescale/imx/tzic.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_anadig.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_ccm.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_ehci.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_gpio.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_iomuxc.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_mscm.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_nfc.c
/freebsd-10-stable/sys/arm/freescale/vybrid/vf_src.c
/freebsd-10-stable/sys/arm/lpc/if_lpe.c
/freebsd-10-stable/sys/arm/lpc/lpc_dmac.c
/freebsd-10-stable/sys/arm/lpc/lpc_fb.c
/freebsd-10-stable/sys/arm/lpc/lpc_gpio.c
/freebsd-10-stable/sys/arm/lpc/lpc_intc.c
/freebsd-10-stable/sys/arm/lpc/lpc_mmc.c
/freebsd-10-stable/sys/arm/lpc/lpc_ohci.c
/freebsd-10-stable/sys/arm/lpc/lpc_pwr.c
/freebsd-10-stable/sys/arm/lpc/lpc_rtc.c
/freebsd-10-stable/sys/arm/lpc/lpc_spi.c
/freebsd-10-stable/sys/arm/lpc/lpc_timer.c
/freebsd-10-stable/sys/arm/mv/gpio.c
/freebsd-10-stable/sys/arm/mv/ic.c
/freebsd-10-stable/sys/arm/mv/mpic.c
/freebsd-10-stable/sys/arm/mv/mv_sata.c
/freebsd-10-stable/sys/arm/mv/mv_ts.c
/freebsd-10-stable/sys/arm/mv/rtc.c
/freebsd-10-stable/sys/arm/mv/timer.c
/freebsd-10-stable/sys/arm/mv/twsi.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_gpio.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_grf.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_pmu.c
/freebsd-10-stable/sys/arm/rockchip/rk30xx_wdog.c
/freebsd-10-stable/sys/arm/samsung/exynos/arch_timer.c
/freebsd-10-stable/sys/arm/samsung/exynos/ehci_exynos5.c
/freebsd-10-stable/sys/arm/ti/aintc.c
/freebsd-10-stable/sys/arm/ti/am335x/am335x_dmtimer.c
/freebsd-10-stable/sys/arm/ti/am335x/am335x_lcd.c
/freebsd-10-stable/sys/arm/ti/am335x/am335x_prcm.c
/freebsd-10-stable/sys/arm/ti/am335x/am335x_pwm.c
/freebsd-10-stable/sys/arm/ti/am335x/am335x_usbss.c
/freebsd-10-stable/sys/arm/ti/cpsw/if_cpsw.c
/freebsd-10-stable/sys/arm/ti/omap4/omap4_prcm_clks.c
/freebsd-10-stable/sys/arm/ti/ti_edma3.c
/freebsd-10-stable/sys/arm/ti/ti_gpio.c
/freebsd-10-stable/sys/arm/ti/ti_i2c.c
/freebsd-10-stable/sys/arm/ti/ti_mbox.c
/freebsd-10-stable/sys/arm/ti/ti_mmchs.c
/freebsd-10-stable/sys/arm/ti/ti_pruss.c
/freebsd-10-stable/sys/arm/ti/ti_scm.c
/freebsd-10-stable/sys/arm/ti/ti_sdhci.c
/freebsd-10-stable/sys/arm/ti/ti_sdma.c
/freebsd-10-stable/sys/arm/ti/usb/omap_ehci.c
/freebsd-10-stable/sys/arm/versatile/if_smc_fdt.c
/freebsd-10-stable/sys/arm/versatile/pl050.c
/freebsd-10-stable/sys/arm/versatile/sp804.c
/freebsd-10-stable/sys/arm/versatile/versatile_clcd.c
/freebsd-10-stable/sys/arm/versatile/versatile_pci.c
/freebsd-10-stable/sys/arm/versatile/versatile_sic.c
/freebsd-10-stable/sys/arm/xilinx/zy7_devcfg.c
/freebsd-10-stable/sys/arm/xilinx/zy7_ehci.c
/freebsd-10-stable/sys/arm/xilinx/zy7_gpio.c
/freebsd-10-stable/sys/arm/xilinx/zy7_slcr.c
/freebsd-10-stable/sys/dev/altera/atse/if_atse_fdt.c
/freebsd-10-stable/sys/dev/altera/avgen/altera_avgen_fdt.c
/freebsd-10-stable/sys/dev/altera/jtag_uart/altera_jtag_uart_fdt.c
/freebsd-10-stable/sys/dev/altera/sdcard/altera_sdcard_fdt.c
/freebsd-10-stable/sys/dev/ata/chipsets/ata-fsl.c
/freebsd-10-stable/sys/dev/cesa/cesa.c
/freebsd-10-stable/sys/dev/cfi/cfi_bus_fdt.c
/freebsd-10-stable/sys/dev/fdt/simplebus.c
/freebsd-10-stable/sys/dev/ffec/if_ffec.c
/freebsd-10-stable/sys/dev/mge/if_mge.c
/freebsd-10-stable/sys/dev/mvs/mvs_soc.c
/freebsd-10-stable/sys/dev/quicc/quicc_bfe_fdt.c
/freebsd-10-stable/sys/dev/sdhci/sdhci_fdt.c
/freebsd-10-stable/sys/dev/sec/sec.c
/freebsd-10-stable/sys/dev/terasic/de4led/terasic_de4led_fdt.c
/freebsd-10-stable/sys/dev/terasic/mtl/terasic_mtl_fdt.c
/freebsd-10-stable/sys/dev/tsec/if_tsec_fdt.c
/freebsd-10-stable/sys/dev/uart/uart_bus_fdt.c
controller/dwc_otg_fdt.c
controller/ehci_fsl.c
controller/ehci_imx.c
controller/ehci_mv.c
/freebsd-10-stable/sys/mips/beri/beri_pic.c
/freebsd-10-stable/sys/mips/beri/beri_simplebus.c
266085 14-May-2014 ian

MFC r256839, r256948, r256950, r257299, r257414, r258057, r259090

Add configuration for the Freescale i.MX53 Quick Start Board.

Add the Raspberry Pi BSC (I2C compliant) controller driver.

Add Radxa Rock board (by radxa.com) support.

Digi-CCWMX53: enable ffec and uart, USB.

Add support for Freescale Vybrid Family VF600

Move and rename dwc otg driver to more generic one as it appears to work
for rk3188 SoC based board too.

265610 07-May-2014 gavin

Merge r256782 from head:

Add 26 new device IDs to uslcom(4). This brings us in sync with Linux
v3.12 rc5

265345 05-May-2014 kevlo

MFC r264317, r264864:

- Add the Asus USB-N10 NANO [1]
- Fix panic by adding mtx_assert() to urtwn_init_locked() and
urtwn_stop_locked() [2]

Tested by: Kuan-Chung Chiu <buganini@gmail.com> [1]
Anthony Jenkins <scoobi_doo at yahoo dot com> [2]

265078 29-Apr-2014 hselasky

MFC r265015:
Setting the IMOD value below 0x3F8 can cause IRQ lockups in the Intel
LynxPoint USB 3.0 controllers found in MacBookPro 2013's.

265048 28-Apr-2014 ian

MFC r264800: fixes for problems found by Coverity scan...
- Get transmit loop more in line with the other serial drivers.
- Add a comment about FTDI and ZLPs.
- Correctly check odditiy of baud rate divisor.
- Correct IOCTL handling for "error" and "event" char.

265047 28-Apr-2014 ian

MFC uftdi(4) driver changes...
r264010: Support speeds up to 12mbaud on newer chips.
r264031: Use 2K IO buffers for improved throughput.
r264149: Add ioctl(2) calls to access bitbang, MPSSE, CPU_FIFO,
and other modes.

264913 25-Apr-2014 hselasky

MFC r264653:
Add new USB quirk.

264745 22-Apr-2014 yongari

MFC r264062:
Correct endianness handling in getting station address from EEPROM.
While I'm here, remove aue_eeprom_getword() as its only usage is to
read station address and make it more readable. This change is
inspired by NetBSD.
With this change, aue(4) should work on big endian architectures.

PR: 188177

264640 18-Apr-2014 hselasky

MFC r264340:
Correct IMOD default value according to comment.

264336 11-Apr-2014 hselasky

MFC r264294:
Fix for infinite XHCI reset loops when the set address USB request fails.

264328 10-Apr-2014 joerg

Merge r264084: make the Dresden Elektronik "USB Level Shifter Low Cost"
known to the FTDI driver.

263799 27-Mar-2014 hselasky

MFC r263423:
Try to resolve a possible deadlock when detaching USB devices which
create character devices. The deadlock can happen if an application is
issuing IOCTLs which require USB refcounting, at the same time the USB
device is detaching.

There is already a counter in place in the USB device structure to
detect this situation, but it was not always checked ahead of invoking
functions that might destroy character devices, like detach, set
configuration, set alternate interface or detach active kernel driver.

263687 24-Mar-2014 emaste

MFC r263289: Update NetBSD Foundation copyrights to 2-clause BSD

The NetBSD Foundation states "Third parties are encouraged to change the
license on any files which have a 4-clause license contributed to the
NetBSD Foundation to a 2-clause license."

This change removes clauses 3 and 4 from copyright / license blocks that
list The NetBSD Foundation as the only copyright holder.

Sponsored by: The FreeBSD Foundation


/freebsd-10-stable/contrib/file/mygetopt.h
/freebsd-10-stable/contrib/pf/pflogd/pidfile.c
/freebsd-10-stable/contrib/tnftp/COPYING
/freebsd-10-stable/contrib/vis/extern.h
/freebsd-10-stable/lib/libedit/chartype.h
/freebsd-10-stable/share/man/man9/bus_dma.9
/freebsd-10-stable/share/man/man9/bus_space.9
/freebsd-10-stable/sys/compat/svr4/svr4_fuser.h
/freebsd-10-stable/sys/compat/svr4/svr4_ipc.c
/freebsd-10-stable/sys/compat/svr4/svr4_resource.c
/freebsd-10-stable/sys/compat/svr4/svr4_resource.h
/freebsd-10-stable/sys/dev/esp/ncr53c9xvar.h
/freebsd-10-stable/sys/dev/le/am7990.c
/freebsd-10-stable/sys/dev/le/am79900.c
/freebsd-10-stable/sys/dev/le/am79900reg.h
/freebsd-10-stable/sys/dev/le/am7990reg.h
/freebsd-10-stable/sys/dev/le/if_le_isa.c
/freebsd-10-stable/sys/dev/le/if_le_pci.c
/freebsd-10-stable/sys/dev/le/lance.c
/freebsd-10-stable/sys/dev/le/lancereg.h
serial/ubsa.c
serial/ubser.c
serial/uchcom.c
serial/ufoma.c
serial/umodem.c
serial/uplcom.c
serial/usb_serial.c
serial/usb_serial.h
/freebsd-10-stable/sys/mips/cavium/octopci_bus_space.c
/freebsd-10-stable/sys/mips/include/bus.h
/freebsd-10-stable/sys/mips/mips/bus_space_fdt.c
/freebsd-10-stable/sys/mips/mips/bus_space_generic.c
/freebsd-10-stable/sys/mips/mips/gdb_machdep.c
/freebsd-10-stable/sys/powerpc/aim/mmu_oea.c
/freebsd-10-stable/sys/powerpc/aim/mmu_oea64.c
/freebsd-10-stable/sys/powerpc/aim/moea64_native.c
/freebsd-10-stable/sys/powerpc/include/bat.h
/freebsd-10-stable/sys/powerpc/include/bus.h
/freebsd-10-stable/sys/sys/bus_dma.h
/freebsd-10-stable/sys/tools/miidevs2h.awk
/freebsd-10-stable/sys/tools/pccarddevs2h.awk
/freebsd-10-stable/sys/x86/include/bus.h
263643 22-Mar-2014 hselasky

MFC r263159:
Workaround for USB MIDI adapters which use non-supported values of
wMaxPacketSize for BULK endpoints.

263261 17-Mar-2014 hselasky

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

263256 17-Mar-2014 kevlo

MFC r263153, r263154:

- Similar to r246614, fix panic on removing urtwn(4). It happens because
nodes are freed after the adapter is gone.

- Reset the bit of the R92C_MCUFWDL associated with checksum report
before loading firmware page. It may fix this problem:
"urtwn0: timeout waiting for checksum report"

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.

263162 14-Mar-2014 hselasky

MFC r262550, r262551 and r262554:
Add support for kqfilter to USB character devices.

263076 12-Mar-2014 hselasky

MFC r262732:
Add new quirk.

PR: usb/187188

263073 12-Mar-2014 hselasky

MFC r262795:
- Temporary fix for race in RUN driver which can
cause freed memory to be accessed.
- Properly lock callout_reset()'s.

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.

263000 11-Mar-2014 kevlo

MFC r262822:

Fix a logic error when enabling MAC.

262604 28-Feb-2014 kevlo

MFC r262465:

Add a flag to run's device list which uses a standard scsi eject.
The flag indicates that the mcu doesn't need to load firmware.

Tested by: Alex Deiter <alex dot deiter at gmail.com>, myself
Tested on: ASUS USB-N66

262457 24-Feb-2014 dim

MFC r262125:

In sys/dev/usb/controller/uss820dci.c, similar to r261977, fix a warning
about uss820dci_odevd being unused, by adding it to the part that
handles getting descriptors.

Reported by: loos
Reviewed by: hselasky

262436 24-Feb-2014 rodrigc

MFC r262142:

In ue_attach_post_task(), initialize curvnet to vnet0 before calling if_attach().
Before this patch, curvnet was NULL.
When the VIMAGE kernel option is enabled, this eliminates
kernel panics when USB ethernet devices are plugged in.

PR: 183835
Submitted by: Hiroo Oono <hiroo.ono at gmail dot com>

262370 23-Feb-2014 hselasky

MFC r261872:
Fix minor logical error in the XHCI driver. Set correct SETUP packet
direction value.

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.

262364 23-Feb-2014 hselasky

MFC r261981:
Add new PCI ID for hardware which needs port routing for USB 3.0.

PR: usb/186811

262363 23-Feb-2014 hselasky

MFC r261541, r261543 and r261544:
Import USB RNDIS driver to FreeBSD from OpenBSD.
Useful for so-called USB tethering.
- Imported code from OpenBSD
- Adapted code to FreeBSD
- Removed some unused functions
- Fixed some buffer encoding and decoding issues
- Optimised data transport path a bit, by sending multiple packets at a time
- Increased receive buffer to 16K

262360 23-Feb-2014 hselasky

MFC r261795:
Issue doorbell twice before finally freeing the DMA descriptors. This
should fix DMA descriptor caching issues seen with the EHCI controller
found in Google Chromebook C720 during removal and insertion of USB
devices.

262213 19-Feb-2014 dim

MFC r261977:

In sys/dev/usb/controller/musb_otg.c, fix a warning about musbotg_odevd
being unused, by adding it to the part that handles getting descriptors.

Reviewed by: hselasky

262137 17-Feb-2014 markj

MFC r258036:
Add IDs for the ASIX 88179 and 88178A USB to GigE adapters.

MFC r258331:
Import the axge(4) driver for the ASIX AX88178A and AX88179 USB Ethernet
adapters. Both devices support Gigabit Ethernet and USB 2.0, and the AX88179
supports USB 3.0.

MFC r258617 (by lwhsu):
Also note to add xhci(4) to kernel configuration to utilize USB 3.0

MFC r258618 (by lwhsu):
Mention axge(4)

262009 17-Feb-2014 kevlo

MFC r261506:

Correct setting R92C_TXAGC_MCS11_MCS08 register.

262008 17-Feb-2014 kevlo

MFC r260463:

Replace deprecated M_DONTWAIT with M_NOWAIT.

262007 17-Feb-2014 kevlo

MFC r260444:

Rename definition of IEEE80211_FC1_WEP to IEEE80211_FC1_PROTECTED.

The origin of WEP comes from IEEE Std 802.11-1997 where it defines
whether the frame body of MAC frame has been encrypted using WEP
algorithm or not.
IEEE Std. 802.11-2007 changes WEP to Protected Frame, indicates
whether the frame is protected by a cryptographic encapsulation
algorithm.

Reviewed by: adrian, rpaulo


/freebsd-10-stable/contrib/libpcap/ieee80211.h
/freebsd-10-stable/share/man/man9/ieee80211_crypto.9
/freebsd-10-stable/sys/dev/ath/if_ath_tx.c
/freebsd-10-stable/sys/dev/bwi/if_bwi.c
/freebsd-10-stable/sys/dev/bwn/if_bwn.c
/freebsd-10-stable/sys/dev/ipw/if_ipw.c
/freebsd-10-stable/sys/dev/iwi/if_iwi.c
/freebsd-10-stable/sys/dev/iwn/if_iwn.c
/freebsd-10-stable/sys/dev/malo/if_malo.c
/freebsd-10-stable/sys/dev/mwl/if_mwl.c
/freebsd-10-stable/sys/dev/ral/rt2560.c
/freebsd-10-stable/sys/dev/ral/rt2661.c
/freebsd-10-stable/sys/dev/ral/rt2860.c
wlan/if_rsu.c
wlan/if_rum.c
wlan/if_run.c
wlan/if_uath.c
wlan/if_upgt.c
wlan/if_ural.c
wlan/if_urtw.c
wlan/if_urtwn.c
wlan/if_zyd.c
/freebsd-10-stable/sys/dev/wi/if_wi.c
/freebsd-10-stable/sys/dev/wpi/if_wpi.c
/freebsd-10-stable/sys/net80211/ieee80211.h
/freebsd-10-stable/sys/net80211/ieee80211_adhoc.c
/freebsd-10-stable/sys/net80211/ieee80211_hostap.c
/freebsd-10-stable/sys/net80211/ieee80211_mesh.c
/freebsd-10-stable/sys/net80211/ieee80211_output.c
/freebsd-10-stable/sys/net80211/ieee80211_proto.c
/freebsd-10-stable/sys/net80211/ieee80211_sta.c
/freebsd-10-stable/sys/net80211/ieee80211_wds.c
/freebsd-10-stable/tools/tools/net80211/stumbler/stumbler.c
/freebsd-10-stable/tools/tools/net80211/w00t/ap/ap.c
/freebsd-10-stable/tools/tools/net80211/w00t/assoc/assoc.c
/freebsd-10-stable/tools/tools/net80211/w00t/expand/expand.c
/freebsd-10-stable/tools/tools/net80211/w00t/prga/prga.c
/freebsd-10-stable/tools/tools/net80211/w00t/redir/redir.c
/freebsd-10-stable/tools/tools/net80211/wesside/wesside/wesside.c
/freebsd-10-stable/tools/tools/net80211/wlaninject/wlaninject.c
261961 16-Feb-2014 rpaulo

MFC r261863
Add urtwn_start_locked() to avoid unlocking during TX.

261868 14-Feb-2014 kevlo

MFC r259544, r259545, r259546, r259547, r259812, r259939, r260219, r260542,
r261118, r261124, r261330:

- Add support for the MediaTek/Ralink RT3593 chipset.
- Various minor USB WLAN fixes and improvements.

261579 07-Feb-2014 hselasky

MFC r261505:
Fix a regression issue. Contiguous single segment allocations above
PAGE_SIZE bytes should only use one USB page structure. Fixes a
problem with some external drivers.

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.

261486 04-Feb-2014 hselasky

MFC r260903:
Add support for GPS ports to UHSO driver.

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.

261471 04-Feb-2014 hselasky

MFC r261134:
Add more USB quirks.

261468 04-Feb-2014 hselasky

MFC r261123:
Reduce dmesg verbosity.

261465 04-Feb-2014 hselasky

MFC r261004, r261005 and r261033:
Adjust the DMA delay logic so that the DMA delay does not become too small.

261463 04-Feb-2014 hselasky

MFC r261003:
Add new quirk.

PR: usb/185968

261455 04-Feb-2014 eadler

MFC r258779,r258780,r258787,r258822:

Fix undefined behavior: (1 << 31) is not defined as 1 is an int and this
shifts into the sign bit. Instead use (1U << 31) which gets the
expected result.

Similar to the (1 << 31) case it is not defined to do (2 << 30).

This fix is not ideal as it assumes a 32 bit int, but does fix the issue
for most cases.

A similar change was made in OpenBSD.


/freebsd-10-stable/lib/libc/sparc64/fpu/fpu.c
/freebsd-10-stable/lib/libc/sparc64/fpu/fpu_sqrt.c
/freebsd-10-stable/lib/libc/xdr/xdr_rec.c
/freebsd-10-stable/sys/amd64/pci/pci_cfgreg.c
/freebsd-10-stable/sys/amd64/vmm/intel/vmcs.h
/freebsd-10-stable/sys/amd64/vmm/intel/vmx_controls.h
/freebsd-10-stable/sys/amd64/vmm/intel/vtd.c
/freebsd-10-stable/sys/arm/arm/cpufunc_asm_pj4b.S
/freebsd-10-stable/sys/arm/arm/db_trace.c
/freebsd-10-stable/sys/arm/arm/pl190.c
/freebsd-10-stable/sys/arm/at91/if_macbvar.h
/freebsd-10-stable/sys/arm/broadcom/bcm2835/bcm2835_dma.c
/freebsd-10-stable/sys/arm/econa/if_ece.c
/freebsd-10-stable/sys/arm/freescale/imx/imx6_anatopreg.h
/freebsd-10-stable/sys/arm/freescale/imx/imx6_usbphy.c
/freebsd-10-stable/sys/arm/freescale/imx/imx_gptreg.h
/freebsd-10-stable/sys/arm/include/armreg.h
/freebsd-10-stable/sys/arm/lpc/if_lpereg.h
/freebsd-10-stable/sys/arm/lpc/lpcreg.h
/freebsd-10-stable/sys/arm/mv/mv_pci.c
/freebsd-10-stable/sys/arm/samsung/exynos/ehci_exynos5.c
/freebsd-10-stable/sys/arm/xscale/i8134x/i81342reg.h
/freebsd-10-stable/sys/arm/xscale/ixp425/ixp425reg.h
/freebsd-10-stable/sys/boot/arm/at91/libat91/mci_device.h
/freebsd-10-stable/sys/boot/i386/libfirewire/fwohci.h
/freebsd-10-stable/sys/boot/i386/libfirewire/fwohcireg.h
/freebsd-10-stable/sys/dev/aac/aacvar.h
/freebsd-10-stable/sys/dev/acpica/acpi_video.c
/freebsd-10-stable/sys/dev/agp/agp_i810.c
/freebsd-10-stable/sys/dev/ahci/ahci.h
/freebsd-10-stable/sys/dev/bktr/bktr_core.c
/freebsd-10-stable/sys/dev/cesa/cesa.h
/freebsd-10-stable/sys/dev/drm/i915_reg.h
/freebsd-10-stable/sys/dev/drm/mach64_drv.h
/freebsd-10-stable/sys/dev/drm/mga_drv.h
/freebsd-10-stable/sys/dev/drm/r128_drv.h
/freebsd-10-stable/sys/dev/drm/r300_reg.h
/freebsd-10-stable/sys/dev/drm/r600_blit.c
/freebsd-10-stable/sys/dev/drm/radeon_cp.c
/freebsd-10-stable/sys/dev/drm/radeon_drv.h
/freebsd-10-stable/sys/dev/drm/via_irq.c
/freebsd-10-stable/sys/dev/drm2/i915/i915_reg.h
/freebsd-10-stable/sys/dev/drm2/radeon/evergreen_blit_kms.c
/freebsd-10-stable/sys/dev/drm2/radeon/evergreen_cs.c
/freebsd-10-stable/sys/dev/drm2/radeon/evergreend.h
/freebsd-10-stable/sys/dev/drm2/radeon/nid.h
/freebsd-10-stable/sys/dev/drm2/radeon/r200.c
/freebsd-10-stable/sys/dev/drm2/radeon/r300.c
/freebsd-10-stable/sys/dev/drm2/radeon/r300_reg.h
/freebsd-10-stable/sys/dev/drm2/radeon/r500_reg.h
/freebsd-10-stable/sys/dev/drm2/radeon/r600_blit.c
/freebsd-10-stable/sys/dev/drm2/radeon/r600_blit_kms.c
/freebsd-10-stable/sys/dev/drm2/radeon/r600_cs.c
/freebsd-10-stable/sys/dev/drm2/radeon/r600d.h
/freebsd-10-stable/sys/dev/drm2/radeon/radeon_cp.c
/freebsd-10-stable/sys/dev/drm2/radeon/radeon_drv.h
/freebsd-10-stable/sys/dev/drm2/radeon/radeon_reg.h
/freebsd-10-stable/sys/dev/drm2/radeon/rv770d.h
/freebsd-10-stable/sys/dev/drm2/radeon/sid.h
/freebsd-10-stable/sys/dev/drm2/ttm/ttm_bo.c
/freebsd-10-stable/sys/dev/e1000/e1000_82575.h
/freebsd-10-stable/sys/dev/e1000/e1000_ich8lan.c
/freebsd-10-stable/sys/dev/e1000/e1000_regs.h
/freebsd-10-stable/sys/dev/etherswitch/arswitch/arswitchreg.h
/freebsd-10-stable/sys/dev/ffec/if_ffecreg.h
/freebsd-10-stable/sys/dev/firewire/firewire.c
/freebsd-10-stable/sys/dev/firewire/fwohci.c
/freebsd-10-stable/sys/dev/firewire/fwohcireg.h
/freebsd-10-stable/sys/dev/firewire/sbp.c
/freebsd-10-stable/sys/dev/firewire/sbp.h
/freebsd-10-stable/sys/dev/firewire/sbp_targ.c
/freebsd-10-stable/sys/dev/hatm/if_hatmreg.h
/freebsd-10-stable/sys/dev/hwpmc/hwpmc_piv.h
/freebsd-10-stable/sys/dev/iwn/if_iwnreg.h
/freebsd-10-stable/sys/dev/mge/if_mgevar.h
/freebsd-10-stable/sys/dev/mpt/mpt_cam.c
/freebsd-10-stable/sys/dev/msk/if_mskreg.h
/freebsd-10-stable/sys/dev/mvs/mvs.h
/freebsd-10-stable/sys/dev/mxge/mxge_mcp.h
/freebsd-10-stable/sys/dev/qlxge/qls_dump.c
/freebsd-10-stable/sys/dev/ral/rt2560reg.h
/freebsd-10-stable/sys/dev/ral/rt2661reg.h
/freebsd-10-stable/sys/dev/ral/rt2860reg.h
/freebsd-10-stable/sys/dev/sound/pci/hda/hdaa.h
controller/ehci.h
wlan/if_rumreg.h
wlan/if_runreg.h
wlan/if_uralreg.h
wlan/if_urtwreg.h
wlan/if_zydreg.h
/freebsd-10-stable/sys/dev/wpi/if_wpireg.h
/freebsd-10-stable/sys/geom/raid/tr_raid1e.c
/freebsd-10-stable/sys/i386/pci/pci_cfgreg.c
/freebsd-10-stable/sys/mips/atheros/ar71xxreg.h
/freebsd-10-stable/sys/mips/atheros/ar934xreg.h
/freebsd-10-stable/sys/mips/atheros/if_argevar.h
/freebsd-10-stable/sys/mips/malta/gt_pci.c
/freebsd-10-stable/sys/mips/nlm/dev/net/nae.c
/freebsd-10-stable/sys/mips/nlm/xlp_machdep.c
/freebsd-10-stable/sys/mips/rmi/pic.h
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mlx4/qp.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_mcg.c
/freebsd-10-stable/sys/ofed/drivers/infiniband/hw/mthca/mthca_qp.c
/freebsd-10-stable/sys/ofed/drivers/net/mlx4/mcg.c
/freebsd-10-stable/sys/powerpc/fpu/fpu_emu.c
/freebsd-10-stable/sys/powerpc/fpu/fpu_sqrt.c
/freebsd-10-stable/sys/powerpc/powermac/nvbl.c
/freebsd-10-stable/sys/sys/consio.h
/freebsd-10-stable/sys/x86/iommu/intel_reg.h
/freebsd-10-stable/usr.sbin/bluetooth/bthidd/kbd.c
261116 24-Jan-2014 hselasky

MFC r257132:
Add id for GTM661W.
This also fixes kernel build breakage since last revision.

261115 24-Jan-2014 hselasky

MFC r260534:
Move USB ID from u3g driver to uhso driver.

261111 24-Jan-2014 hselasky

MFC r258545:
Comply to the XHCI specification. Certain input context fields should
always be zero.

261110 24-Jan-2014 hselasky

MFC r260808 and r260814:
- Close a minor deadlock.
- Fix a possible memory use after free and leak situation associated
with USB device detach when using character device handles. This also
includes LibUSB. It turns out that "usb_close()" cannot always get a
reference to clean up its USB transfers and such, if called during the
kernel USB device detach.

261105 24-Jan-2014 hselasky

MFC r260588 and r260589:
- Separate I/O errors from reception of STALL PID.
- Implement better error recovery for Transaction Translators, TTs,
found in High Speed USB HUBs which translate from High Speed USB into
FULL or LOW speed USB. In some rare cases SPLIT transactions might get
lost, which might leave the TT in an unknown state. Whenever we detect
such an error try to issue either a clear TT buffer request, or if
that is not possible reset the whole TT.

261104 24-Jan-2014 hselasky

MFC r260563:
Make sure reserved fields of the EHCI DMA descriptors are not dirty
after previous transfers.

261099 24-Jan-2014 hselasky

MFC r260559:
Don't do synchronous USB requests inside USB transfer callbacks. It is
technically OK, but not recommended.

261096 24-Jan-2014 hselasky

MFC r260388, r260535 and r260536:
Fix XHCI interrupt logic for "Intel Lynx Point" found in MBP2013.

260537 11-Jan-2014 hselasky

MFC r260184:
Minor correction for the XHCI reset logic.

260348 05-Jan-2014 mav

MFC r258162:
Add some more IDs for Intel ATA, AHCI and USB controllers.

260284 04-Jan-2014 dim

MFC r260055:

In sys/dev/usb/wlan/if_urtw.c, #if 0 a static const variable, which has
been unused since r198194.

259607 19-Dec-2013 hselasky

MFC r259248 and r259462:
Set chain bit correctly. This will fix some problems sending and
receiving Zero Length Packets, ZLPs. See comment in code for more
information.

259603 19-Dec-2013 hselasky

MFC r259023 and r259095:
Improve the XHCI command timeout recovery handling code.
Fix some typos while at it.

259592 19-Dec-2013 truckman

MFC r258363:

Add alternate ID for Novatel MiFi 2200 CDMA, which is used by my
Virgin Mobile branded device. It needs the U3GINIT_SCSIEJECT quirk.

259461 16-Dec-2013 hselasky

MFC r256718, r257410 and r257411:
- Fix RF registers for RT3070.
- Initialize BBP68 to improve RX sensitivity.
- Add RT2860_BCN_OFFSET1 and RT2860_MAX_LEN_CFG register initialization to
match with the vendor driver. While here, remove unused RT2860_DEF_MAC
definition.

259453 16-Dec-2013 hselasky

MFC r238274, r246752, r256720, r256721, r256722, r256955, r257409
r257429, r257435, r257712, r257732, r257743, r257748, r257955
r257957, r257958, r258082, r258641, r258643, r258732, r258733,
r258840, r258919, r258921, r259029, r259030, r259031, r259032 and r259046:

- Add support for the MediaTek/Ralink RT5370/RT5372 chipset.
- Various minor USB WLAN fixes and improvements.

PR: usb/182936

259345 13-Dec-2013 ian

MFC r257393:

Rework the imx ehci driver so that it's four separate ehci units rather
than one unit with four busses attached to it. This allows us to use
existing fdt data which describes separate devices with separate resources.
It also allows any combination of the units to be en/disabled in the
board dts files.

Adjust our dts code to match what's used by linux and u-boot now that
we're structured to do so.

259344 13-Dec-2013 ian

MFC r257390: Add a vendor entry for Freescale Semiconductor.

257375 30-Oct-2013 hselasky

MFC r257206:
Fix a deadlock when trying to power off a USB device. The deadlock
happens because the code in question is trying to modify the parent
USB port registers outside the USB explore thread.

Approved by: re (glebius)

257110 25-Oct-2013 hselasky

MFC r256750:
Improve XHCI stability. When a command timeout happens, the command
should be aborted else the command queue can stop. Refer to section
"4.6.1.2" of the XHCI specification.

Approved by: re (glebius)

257044 24-Oct-2013 hselasky

MFC r256500:
Add new USB ID.

PR: usb/182936
Approved by: re (Xin LI)
Obtainedrom:

257043 24-Oct-2013 hselasky

MFC r256548:
Correct programming of XXX_MAXP register. This register is 16-bit wide
and not 8-bit. Fix support for isochronous transfers in USB host mode.
Fix a whitespace while at it.

PR: usb/181987
Approved by: re (Xin Li)

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


255768 21-Sep-2013 hselasky

Stability fixes for Intel LynxPoint XHCI controllers. Disable XHCI port
routing if we get certain errors. Poll for command completion upon
command timeouts. The XHCI error events might not generate interrupts.

MFC after: 1 week
Reported by: Daniel Gerzo <danger@rulez.sk>, Antonis Anastasiadis <anastasiadis@datalive.gr>
PR: usb/181159
Approved by: re (gjb)


255488 12-Sep-2013 hselasky

Don't issue USB resume signalling in USB device mode, if the USB power
mode is ON and suspend is detected. This confuses iPads running in USB
host mode at least.

MFC after: 1 week
Approved by: re (hrs)


255472 11-Sep-2013 hselasky

Clear correct data structure.

MFC after: 1 week
Approved by: re (hrs)


255471 11-Sep-2013 glebius

Clean up SIOCSIFDSTADDR usage from ifnet drivers. The ioctl itself is
extremely outdated, and I doubt that it was ever used for ifnet drivers.
It was used for AF_INET sockets in pre-FreeBSD time.

Approved by: re (hrs)
Sponsored by: Nginx, Inc.


255356 07-Sep-2013 hselasky

Revert parts of r245132 and r245175. We don't need to write to the
IMAN register to clear the pending interrupt status bits. This patch
tries to solve problems seen on the MacBook Air, as reported by
Johannes Lundberg <johannes@brilliantservice.co.jp>

MFC after: 1 week


255347 07-Sep-2013 hselasky

Disable USB 3.0 streams mode by default, hence not all XHCI chipsets
implement it to avoid undefined behaviour.


255238 05-Sep-2013 br

Add support for DLINK DWA-127 Wireless Adapter

Approved by: cognet (mentor)


255123 01-Sep-2013 ian

Add the device ID for a new flavor of FTDI serial adapter (model 232EX).


255090 31-Aug-2013 hselasky

Sync USB bluetooth product list with Linux.

MFC after: 1 week


254828 25-Aug-2013 hselasky

Bugfix: The endpoint profile should only be checked in device mode when
allocating USB transfers and not in host mode.

Reported by: George Mitchell <george+freebsd@m5p.com>


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


254438 17-Aug-2013 hselasky

Fix some USB controller names according to pciconf output.

MFC after: 1 week
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>


254404 16-Aug-2013 kevlo

Bring datasheet URL up to date.


254243 12-Aug-2013 hselasky

- Try to fix build of 32-bit compatibility USB support for FreeBSD and
Linux targets without breaking the existing IOCTL API.

- Remove some not-needed header file inclusions.

- Wrap a long line.

MFC after: 1 week
Reported by: Damjan Jovanovic <damjan.jov@gmail.com>


254238 12-Aug-2013 hselasky

Correct an EHCI register write.

MFC after: 1 week
Reported by: aseem.jolly@gmail.com


253831 31-Jul-2013 rpaulo

Cleanup the allocations when the attachment fails.


253807 30-Jul-2013 rpaulo

Unbreak sparc64 LINT. Need to fix this correctly at some point in the future.


253789 30-Jul-2013 rpaulo

Import OpenBSD's rsu(4) WLAN driver.
Support chipsets are the Realtek RTL8188SU, RTL8191SU, and RTL8192SU.

Many thanks to Idwer Vollering for porting/writing the man page and for
testing.

Reviewed by: adrian, hselasky
Obtained from: OpenBSD
Tested by: kevlo, Idwer Vollering <vidwer at gmail.com>


253757 29-Jul-2013 hselasky

Fix alignment of USB WLAN radiotap headers. This makes USB WLAN adapters
work on ARM, MIPS and similar platforms, where alignment matters.

MFC after: 1 week
Reported by: XiaoQI Ge <ghw@7axu.com>


253750 28-Jul-2013 avg

Revert r253748,253749

This WIP should not have been committed yet.

Pointyhat to: avg


253670 26-Jul-2013 hselasky

Assume that all Apple products using interface class 255, subclass 253
and protocol 1 are USB ethernet adapters. This avoids keeping and updating
the product list every now and then. This patch will add support for the
USB ethernet interface found in the IPAD.

MFC after: 1 week


253618 24-Jul-2013 obrien

per style(9):
Kernel include files (i.e. sys/*.h) come first; normally, include
<sys/types.h> OR <sys/param.h>, but not both. <sys/types.h> includes
<sys/cdefs.h>, and it is okay to depend on that.


253544 22-Jul-2013 hselasky

Add some USB gadget example drivers for USB audio, USB keyboard,
USB mouse and USB modem classes. Hopefully someone will find
these examples useful when implementing USB device side drivers
using the FreeBSD USB stack.


253532 21-Jul-2013 hselasky

Fix an XHCI regression:

The Block Event Interrupts, BEI, feature does not
work like expected with the Renesas XHCI chipsets.
Revert feature.

While at it correct the TD SIZE computation in
case of Zero Length Packet, ZLP, in the end of a
multi frame USB transfer.

MFC after: 1 week
PR: usb/180726


253477 19-Jul-2013 np

There's nothing to free if the unit wasn't allocated.


253398 16-Jul-2013 kib

Add a tunable to force disable MSI use for xhci(4).

Requested and tested by: delphij
Sponsored by: The FreeBSD Foundation
MFC after: 3 days


253340 14-Jul-2013 rpaulo

Revert r252725 as it breaks WPA.

We need to fix wpa_supplicant because it checks whether the card has
ic_cryptocaps set. Since net80211 can do software encryption this check in
wpa_supplicant is wrong.


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.


253139 10-Jul-2013 hiren

Adding urtwn(4) firmware and related changes.

Reviewed by: rpaulo
Approved by: sbruno (mentor)


253094 09-Jul-2013 kib

Use MSI for xhci(4), if supported.

Reviewed by: jhb
Tested by: dchagin
Sponsored by: The FreeBSD Foundation
MFC after: 1 week


252912 07-Jul-2013 gonzo

- Add initial host mode support for Mentor Graphics USB OTG controller
- Sync musb_otg_atmelarm with new core logic API


252725 04-Jul-2013 rpaulo

Set ic_cryptocaps to make sure wpa_supplicant works with WEP.


252501 02-Jul-2013 hrs

Add Planex MZK-UE150N.

Submitted by: Yusuke Tanaka
MFC after: 3 days


252498 02-Jul-2013 rpaulo

Add RealTek 8192SU product IDs.


252406 30-Jun-2013 rpaulo

Fix a typo.


252405 30-Jun-2013 rpaulo

Fix the RSSI calculation.


252403 30-Jun-2013 rpaulo

Fix the ni_txrate calculation.


252401 30-Jun-2013 rpaulo

Fix a reference count bug in urtwn_ra_init().


252295 27-Jun-2013 remko

Add support for the NTT Docomo L-02C card.
(This file didn't get along in the previous commit)

PR: 180017
Submitted by: Masaharu FUJITA
Glanced at by: imp
MFC after: 1 week


252294 27-Jun-2013 remko

Add support for the NTT Docomo L-02C card.

PR: 180017
Submitted by: Masaharu FUJITA
Glanced at by: imp
MFC after: 1 week


252196 25-Jun-2013 kevlo

Add support for D-Link DWA-131.


252185 25-Jun-2013 yongari

Add Lenovo USB 2.0 Ethernet adapter.

PR: usb/179920
MFC After: 1 week


252143 24-Jun-2013 yongari

When RX checksum offloading is active, AX88772B will prepend a
checksum header. The header contains a received frame length but
the defined length for AX88772B is different with other ASIX
controllers. When the RX checksum is off, AX88772B controller does
not prepend a checksum header so driver has to use normal header
length mask.
This change should fix RX errors when RX checksum offloading is
off.

Tested by: kevlo
MFC After: 1 week


252125 23-Jun-2013 thomas

Revert previous change to uark.c (restore previous rev), which was
committed by mistake.


252123 23-Jun-2013 thomas

Fix minor typo in comment


251734 14-Jun-2013 kevlo

- Use the consistenly PHY-specific reset routine PHY_RESET() rather than
generic mii_phy_reset().
- Return the result of mii_mediachg() rather than blindly returning 0.
- on smsc(4), driver lock should be held to get current
mii_media_active/mii_media_status value.

Reviewed by: yongari


251679 13-Jun-2013 kevlo

Remove unused variable sc_tx_bufsz.
The variable is initialized but not used.

Reviewed by: yongari


251674 13-Jun-2013 kevlo

Fix a typo: s/KLSI/CATC/


251596 10-Jun-2013 rpaulo

Use STRUCT_USB_HOST_ID to make sure we have the right ELF section.


251538 08-Jun-2013 rpaulo

Import Kevin Lo's port of urtwn(4) from OpenBSD. urtwn(4) is a driver for the
Realtek RTL8188CU/RTL8192CU USB IEEE 802.11b/g/n wireless cards.
This driver requires microcode which is available in FreeBSD ports:
net/urtwn-firmware-kmod.

Hiren ported the urtwn(4) man page from OpenBSD and Glen just commited a port
for the firmware.

TODO:
- 802.11n support
- Stability fixes - the driver can sustain lots of traffic but has trouble
coping with simultaneous iperf sessions.
- fix debugging

MFC after: 2 months
Tested by: kevlo, hiren, gjb


251515 07-Jun-2013 hselasky

Fix some recent regression issues:

1) Only multi-TD isochronous transfers should use NORMAL
type after specific type as per XHCI specification.

2) BEI bit is only available in NORMAL and ISOCHRONOUS
TRB types. Don't use this bit for other types to avoid
hardware asserts. Reserved bits should be don't care
though ...

MFC after: 1 week
PR: usb/179342


251499 07-Jun-2013 hselasky

Add support for polling the XHCI interrupt handler when
the regular interrupt handler is not working properly or
in case of MSI interrupts which are not yet supported.
Remove interrupt setup code for FreeBSD versions older
than 700031.

MFC after: 1 week
PR: usb/179342


251351 03-Jun-2013 hiren

Fixing a typo.

Approved by: sbruno (mentor)
MFC after: 3 days


251254 02-Jun-2013 hselasky

Correct the TD size computation. npkt should reflect the number of packets
remaining after the current TRB has been executed. Refer to section 4.11.2.4
of the XHCI specification for USB.

MFC after: 1 week


251253 02-Jun-2013 hselasky

Correct TRB type for multi TRB transfers of non-NORMAL type, like isochronous.
Only the first TRB should be markes as special. Subsequent ones should be
marked as NORMAL. Optimise away TD first variable.

MFC after: 1 week


251252 02-Jun-2013 hselasky

Use the correct constant for 8000 IRQ/s.

MFC after: 1 week


251251 02-Jun-2013 hselasky

Block event interrupts when we don't need it as soon as possible.
Typically this feature is used for isochronous transfers.
This reduces the amount of XHCI interrupting.

MFC after: 1 week


251249 02-Jun-2013 hselasky

Don't set the start ISOC ASAP bit for non-isochronous TRBs.

MFC after: 1 week


251247 02-Jun-2013 hselasky

Correct some XHCI streams mode transfer handling found by code inspection.
The existing streams mode support is not working and has not been tested
due to lack of hardware which supports the given feature.

MFC after: 1 week


251109 29-May-2013 eadler

Add support for tethering on the iPhone 4S

PR: usb/179078
Submitted by: Christopher Sean Hilton <chris@vindaloo.com>
MFC After: 1 week


251065 28-May-2013 hselasky

Revert r251023 until a more proper solution is found
for ATI based USB controllers.

MFC after: 1 week


251023 27-May-2013 hselasky

Workaround for for a problem seen with ATI Technologies EHCI
controller hardware most likely present on UHCI chipsets aswell. The
bug manifests itself when issuing isochronous transfers and bulk
transfers towards the same device simultaneously. From time to time it
happens that either the completion IRQ was missing or that the
completion IRQ was happening before the ITD/SITD was completely
written back to memory. The workaround assumes that double buffered
isochronous transfers are used, and that a second interrupt is
generated at the beginning of the next isochronous transfer to
complete the previous one. Possibly skipping the interrupt at the last
isochronous frame is possible, but will then break single buffered
isochronous transfers. For now we can live with some extra interrupts.

MFC after: 1 week


250986 25-May-2013 hselasky

Fix some statical clang analyzer warnings.


250848 21-May-2013 hselasky

Add new USB quirk.

MFC after: 1 week
PR: usb/178771


250753 17-May-2013 imp

For ARM, MIPS, and PowerPC, default to 32-byte alignment, but allow it
to be as small as 8.


250749 17-May-2013 gavin

o Retrive the part number (CP2103 etc) from the hardware on attach.
o The CP2101 and CP2102 do not support GPIO pin use at all, enforce this.
o Support reading the GPIO status on the second port of the CP2105. More
work is needed before the CP2105 GPIO pins can be used as outputs.

Hardware donated by: Silicon Labs
MFC after: 3 weeks


250576 12-May-2013 eadler

Fix several typos

PR: kern/176054
Submitted by: Christoph Mallon <christoph.mallon@gmx.de>
MFC after: 3 days


250212 03-May-2013 hselasky

Fix compile warning.


250207 03-May-2013 hselasky

- Add more defines to limit USB memory usage and number of allocations
in reduced memory systems.

- Split allocation and freeing of the configuration descriptor into a separate
function, so that the configuration descriptor can be made fixed size
to save memory allocations. This applies for both device and host mode.


250205 03-May-2013 hselasky

Always put space before the comma before ##__VA_ARGS__ due to subtle compiler
differences.


250204 03-May-2013 hselasky

Add some defines to limit USB memory usage in reduced memory systems.


250202 03-May-2013 hselasky

Allow the default USB template to be specified at compile time.


250201 03-May-2013 hselasky

Add new USB API to get the port path of a USB device.

MFC after: 2 weeks
Requested by: emaste @


249925 26-Apr-2013 glebius

Add const qualifier to the dst parameter of the ifnet if_output method.


249795 23-Apr-2013 hselasky

Add convenience wrapper functions to run callbacks in the context of the
USB explore thread.


249786 23-Apr-2013 hselasky

Add descriptive comment.


249725 21-Apr-2013 hselasky

Add OHCI controller ID.

MFC after: 2 weeks
Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>


249584 17-Apr-2013 gabor

- Correct mispellings of word miscellaneous

Submitted by: Christoph Mallon <christoph.mallon@gmx.de> (via private mail)


249336 10-Apr-2013 mav

Add ID for ASMedia ASM1042 USB 3.0 controller.

MFC after: 1 week


249232 07-Apr-2013 hselasky

Fix regression issue after r248910.

PR: arm/177685
Submitted by: Christoph Mallon <christoph.mallon@gmx.de>


249204 06-Apr-2013 hselasky

Add new USB ID.

PR: usb/177666
Submitted by: Nicolai Petri <nicolai@petri.dk>


249043 03-Apr-2013 hselasky

Add missing ifdef's for reduced feature compilations.


249039 03-Apr-2013 hselasky

Add new USB ID.

MFC after: 1 week
Submitted by: Bruce Simpson <bms@fastmail.net>


248566 21-Mar-2013 hselasky

Add new USB ID.

PR: usb/177173
MFC after: 1 week


248557 20-Mar-2013 ray

Integrate Efika MX project back to home.

Sponsored by: The FreeBSD Foundation


248554 20-Mar-2013 hselasky

Fix spelling.


248499 19-Mar-2013 hselasky

Add new USB ID.

PR: usb/177105
MFC after: 1 week


248458 18-Mar-2013 hselasky

Add new USB ID.

PR: usb/177013
MFC after: 1 week


248247 13-Mar-2013 hselasky

Fix typo.


248246 13-Mar-2013 hselasky

- Make quirk for reading device descriptor from broken USB devices.
Else they won't enumerate at all:
hw.usb.full_ddesc=1
- Reduce the USB descriptor read timeout from 1000ms to
500ms. Typical value for LOW speed devices is 50-100ms.
- Enumerate USB device a maximum of 3 times when a port
connection change event is detected, before giving up.

MFC after: 1 month


248175 11-Mar-2013 gavin

Add support for Optoelectronics USB barcode readers to uftdi(4).
Add entries for other Optoelectronics devices to usbdevs.

MFC after: 1 week


247263 25-Feb-2013 hselasky

Fix init/uninit function type.


247255 25-Feb-2013 hselasky

Add new USB ID.

Submitted by: Dmitry Luhtionov <dmitryluhtionov@gmail.com>


246944 18-Feb-2013 hselasky

Fix bad EEPROM parsing code.

MFC after: 2 weeks


246789 14-Feb-2013 hselasky

Add USB API to read power draw on USB devices.
Update usbconfig to print power draw on USB devices.

MFC after: 2 weeks
Submitted by: Matt Burke @ icritical.com


246765 13-Feb-2013 hselasky

Remove unused variable.

MFC after: 1 week


246759 13-Feb-2013 hselasky

Resolve a LOR after r246616. Protect control requests using the USB device
enumeration lock. Make sure all callers of usbd_enum_lock() check the return
value. Remove the control transfer specific lock. Bump the FreeBSD version
number, hence external USB modules may need to be recompiled due to a USB
device structure change.

MFC after: 1 week


246753 13-Feb-2013 hselasky

Add new USB ID to FTDI driver.

MFC after: 1 week
PR: kern/175893
Submitted by: Tomek


246616 10-Feb-2013 hselasky

- Move scratch data from the USB bus structure to the USB device structure
so that simultaneous access cannot happen. Protect scratch area using
the enumeration lock. Also reduce stack usage in usbd_transfer_setup()
by moving some big stack members to the scratch area. This saves around
200 bytes of stack.
- Fix a whitespace.

MFC after: 1 week


246615 10-Feb-2013 hselasky

Fix correct use of USB header files.


246614 10-Feb-2013 hselasky

- Streamline detach logic in wlan drivers, so that
freed memory cannot be used during detach.
- Remove all panic() calls from the urtw driver because
panic() is not appropriate here.
- Remove redundant checks for device detached in
device detach callbacks.
- Use DEVMETHOD_END to mark end of device methods.

MFC after: 2 weeks


246570 08-Feb-2013 hselasky

Make sure we don't leak command buffers when a USB
command transfer fails.

MFC after: 1 week
Reported by: Ian FREISLICH


246565 08-Feb-2013 hselasky

Fix regression issue after r244503:
Correct init order to fix a NULL pointer access.

MFC after: 1 week
Reported by: Ian FREISLICH


246363 05-Feb-2013 hselasky

Add defines to more easily allow a single threaded version of the FreeBSD
USB stack. This is useful for non-kernel purposes, like the loader.


246360 05-Feb-2013 hselasky

Fix some nits.


246196 01-Feb-2013 hselasky

Fix for hardware checksum offloading in SMSC driver.
This also fixes IPv6 support for this particular hardware.

Submitted by: Daisuke Aoyama


246194 01-Feb-2013 hselasky

Make use of USB ID sections configurable.


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


246126 30-Jan-2013 hselasky

Do not unnecessarily split a string literal, because
splitting it makes it hard to grep.

Submitted by: Christoph Mallon


246125 30-Jan-2013 hselasky

Use string literals in string descriptors for marginally
better readability.

Submitted by: Christoph Mallon


246124 30-Jan-2013 hselasky

Use an anonymous struct for generated string descriptors.

Submitted by: Christoph Mallon


246123 30-Jan-2013 hselasky

Provide one global language string descriptor for
american english instead of giving each module its
own.

Submitted by: Christoph Mallon


246122 30-Jan-2013 hselasky

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


246115 30-Jan-2013 hselasky

Add missing header file inclusion guard.


246113 30-Jan-2013 hselasky

Add missing NULL pointer check.

Reported by: Lars Engels
MFC after: 1 week


246037 28-Jan-2013 jhb

Mark 'ticks', 'time_second', and 'time_uptime' as volatile to prevent the
compiler from caching their values in tight loops.

Reviewed by: bde
MFC after: 1 week


246027 28-Jan-2013 hselasky

Remove some extra and not needed space characters.

MFC after: 1 week


246021 28-Jan-2013 hselasky

Add new USB ID.

Submitted by: Ramil
PR: usb/175639
MFC after: 1 week


245995 27-Jan-2013 hselasky

Fix regression issue after r244500 and r244503:

If a BUSDMA load operation results in a single segment which
is greater than the PAGE_SIZE, the USB computed physical
addresses will not be correct. Make sure that the first
segment is unfolded like the sub-sequent segments are into
USB_PAGE_SIZE big ranges.

Found by: Alexander Nedotsukov
MFC after: 1 week


245947 26-Jan-2013 hselasky

Add new USB quirk.

PR: usb/175599
Submitted by: Juan J Lopez
MFC after: 1 week


245725 21-Jan-2013 hselasky

Add new quirk and correct old one.

PR: usb/175454
MFC after: 1 week


245647 19-Jan-2013 kan

Do not pretend to have autosense data when no such data is available.

Make umass return an error code if SCSI sense retrieval request
has failed. Make sure scsi_error_action honors SF_NO_RETRY and
SF_NO_RECOVERY in all cases, even if it cannot parse sense bytes.

Reviewed by: hselasky (umass), scottl (cam)


245427 14-Jan-2013 hselasky

Add new u3g device quirk.

Submitted by: Lowell Gilbert
MFC after: 1 week


245328 12-Jan-2013 mav

Freeze device queue before returning errors to CAM. This is required
for proper error recovery, including keeping original request order.

Reviewed by: hselasky


245249 10-Jan-2013 hselasky

Bugfix: Fix sizeof() argument.

Found by: Haakon Loevdal
MFC after: 1 week


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


245175 08-Jan-2013 hselasky

Shave off another register write to save some more
microseconds of PCI access time.

Tested by: sos @
Submitted by: sos @
MFC after: 1 week


245132 07-Jan-2013 hselasky

Optimise the XHCI interrupt handling.
This patch will save CPU time when the XHCI interrupt is
shared with other devices.
Only check event rings when interrupt bits are set.
Otherwise would indicate hiding possible hardware fault(s).

Tested by: sos @
Submitted by: sos @
MFC after: 1 week


245047 04-Jan-2013 hselasky

Fix for "run0: wcid=xx out of range" error message.

MFC after: 1 week
PR: usb/174963
Submitted by: PseudoCylon <moonlightakkiy@yahoo.ca>


244837 29-Dec-2012 hselasky

Add new USB ID.

PR: usb/174814
Submitted by: Andy Balholm
MFC after: 1 week


244719 26-Dec-2012 markj

Add the NO_SYNC_CACHE quirk for all Apple USB MSC devices, as they
typically do not handle the SYNCHRONIZE_CACHE command - they either
return an error or the firmware enters a reset loop.

Reviewed by: hselasky
Approved by: rstone (co-mentor)
MFC after: 2 weeks


244650 24-Dec-2012 hselasky

Fix more regression issue after r244503.

usbd_transfer_setup() does not set a default length for USB transfers.
Only the number of frames is automatically setup.

MFC after: 1 week


244607 23-Dec-2012 hselasky

Fix regression issue after r244503.

MFC after: 1 week


244535 21-Dec-2012 hselasky

Regression issue:
Use a boundary of zero, hence a PAGE_SIZE boundary
is implied by all memory allocations.

Background:
Busdma has problems to allocate more than PAGE_SIZE
bytes when the boundary is PAGE_SIZE bytes too.
Initially it was thought that a boundary of PAGE_SIZE
bytes will only affect loading of DMA memory, so that
segments get split correctly, but it also affects
allocation of DMA'able memory.

Solution:
USB can detect big segments and split them as required
by the USB code.

MFC after: 1 week
Reported by: gonzo


244503 20-Dec-2012 hselasky

Make sure all USB drivers allocate buffer memory
through the USB API and/or busdma.

The following assumptions have been made:
umass - buffers passed from CAM/SCSI layer are OK
network - mbufs are OK.

Some other nits while at it.

MFC after: 1 week
Suggested by: imp


244500 20-Dec-2012 hselasky

Allocate separate USB buffers for DMA'ed data, so that
DMA data does not reside next to non DMA data. This
might cause more memory to be allocated, but solves
problems on platforms using manual cache
synchronization.

Add a convenience function to get the buffer only
from a USB transfer's page cache structure.

MFC after: 1 week
Suggested by: imp


244491 20-Dec-2012 hselasky

Add support for throttling UMASS.
Mostly useful for debugging purposes.

MFC after: 1 week


244489 20-Dec-2012 hselasky

Make sure we block recursion on TTY's inwakeup callback

Suggested by: davide
MFC after: 1 week


244047 09-Dec-2012 hselasky

Add new USB ID.

MFC after: 1 week
Submitted by: Artyom Mirgorodskiy


243857 04-Dec-2012 glebius

Mechanically substitute flags from historic mbuf allocator with
malloc(9) flags in sys/dev.


243780 01-Dec-2012 hselasky

- Add support for Etron EJ168 USB 3.0 Host Controllers.
This brand of controllers expects that the number of
contexts specified in the input slot context points
to an active endpoint context, else it refuses to
operate.

- Ring the correct doorbell when streams mode is used.
- Wrap one or two long lines.

Tested by: Markus Pfeiffer (DragonFlyBSD)
MFC after: 1 week


243663 29-Nov-2012 eadler

Add support for AT&T Sierra Wireless USB 3G adapter

PR: kern/173982
Submitted by: Eric Camachat <eric@camachat.org>
Approved by: cperciva (implicit)
MFC after: 1 week


243435 23-Nov-2012 hselasky

Remove no longer needed quirk.

Submitted by: Mark Johnston


243421 23-Nov-2012 gonzo

Look for MAC address in FDT tree nodes that are usb network devices and
have either "mac-address" or "local-mac-addrress" property.


243380 21-Nov-2012 hselasky

Fix uplcom clear stall logic for PL2303HX.

Submitted by: Mark Johnston
MFC after: 1 week


242906 12-Nov-2012 hselasky

Add new USB IDs.

MFC after: 1 week
PR: usb/173503


242829 09-Nov-2012 hselasky

Fix LOW and FULL speed USB INTERRUPT endpoint support for the
DWC OTG driver. Fix a hang issue when using LOW and FULL speed
BULK traffic. Make sure we don't ask for data in the last
microframe. This allows using devices like USB mice and USB
keyboards connected to the RPI-B.

Suggested by: gonzo @


242777 08-Nov-2012 hselasky

Make the USB ethernet methods constant again in if_udav.c,
so that both adapter variants can be attached at the same
time.

MFC after: 0 days


242748 08-Nov-2012 kevlo

Add new USB device ID.


242703 07-Nov-2012 hselasky

Add lock asserts instead of "auto-locking".

MFC after: 1 weeks
Suggested by: ed @


242702 07-Nov-2012 hselasky

The tty_inwakeup callback appears to be called both locked and unlocked.
Handle the required locking automatically for now.

MFC after: 1 weeks


242695 07-Nov-2012 hselasky

Patch to improve USB serial console.

MFC after: 1 weeks
Submitted by: Bruce Evans


242628 05-Nov-2012 marcel

Add the UQ_MSC_NO_PREVENT_ALLOW quirk to handle devices that do not support
the 'PREVENT/ALLOW MEDIUM REMOVAL' SCSI command. An example of such a
device is the STmicro ST72682. We send the SCSI command for every open and
close, which can result in a significant amount of spam on the console
during boot.

Reviewed by: hps@


242619 05-Nov-2012 hselasky

Add a jitter buffer in the common USB serial driver code which
temporarily stores characters if the TTY buffer is full when
used a as a console. This can happen when a console is suspended.
Also properly do the flow stop signalling when this happens and
flow start when the condition changes back to normal again.

Bump __FreeBSD_version to force external kernel modules
to be recompiled. No kernel API changes.

MFC after: 1 week
Suggested by: ed @


242523 03-Nov-2012 marcel

Allow using the embedded EHCI host controller in Freescale SoCs
by adding the missing bits. See ehci_fsl.c for their use.


242364 30-Oct-2012 hselasky

If a USB mass storage device doesn't respond properly
to the initial SCSI INQUIRY command, enable all quirks.
This fixes detection of some Transcend TS2GUFM devices.

MFC after: 1 week
Reported by: Michael Dexter


242127 26-Oct-2012 hselasky

Add support for Fast Track Ultra 8R from M-audio.

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


241987 24-Oct-2012 hselasky

Make several timing parameters of the USB enumeration sequence tuneable.
Also update the port reset time from 250ms to 50ms. Some USB devices
have a hard limit in hardware at 222ms for the port reset time and will
not enumerate unless this delay is closer to the usb.org defined value.
This patch can fix enumeration with some USB devices.

Tested by: Guido van Rooij
Submitted by: Nick Hibma
MFC after: 1 week


241844 22-Oct-2012 eadler

remove duplicate semicolons where possible.

Approved by: cperciva
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


241793 21-Oct-2012 eadler

Add support for iPhone 5 tethering.

PR: usb/172172
Submitted by: Ali Mashtizadeh <mashtizadeh@gmail.com>
Approved by: cperciva
MFC after: 1 week


241610 16-Oct-2012 glebius

Make the "struct if_clone" opaque to users of the cloning API. Users
now use function calls:

if_clone_simple()
if_clone_advanced()

to initialize a cloner, instead of macros that initialize if_clone
structure.

Discussed with: brooks, bz, 1 year ago


241555 14-Oct-2012 n_hibma

Implement modem control in u3g. Tested on Option GTM382W, Huawei E220,
and Sierra Wireless MC8790V. Also implement the .ucom_poll method.

Note: This makes it possible to use lqr/echo in ppp.conf. And it
resolves ppp hanging during the PPp> phase.

Reviewed by: hps
MFC after: 1 week


241553 14-Oct-2012 eadler

Add support for the extrememory Snippy

PR: usb/159611
Submitted by: Fabian Keil <fk@fabiankeil.de>
Approved by: cperciva (implicit)
MFC after: 3 days


241552 14-Oct-2012 eadler

Add support for Feiya Elango USB MicroSD

PR: usb/153599
Submitted by: CyberLeo <cyberleo@cyberleo.net>
Approved by: cperciva (implicit)
MFC after: 3 days


241551 14-Oct-2012 eadler

Add support for the Buffalo RUF2 flash drive.

PR: usb/166848
Submitted by: Andrew Gregory <andrew@scss.com.au>
Reviewed by: hselasky
Approved by: cperciva (implicit)
MFC after: 3 days


241432 10-Oct-2012 mav

- Remove ancient checks for sim->softc == NULL. It can't be NULL, as it is
set not-NULL during SIM registration and set to UMASS_GONE on destruction.
Debug messages there look broken for at least 9 years, as they dereference
softc value that was just checked to be equal to NULL.
- Remove magic pointer value UMASS_GONE and use simple NULL instead.

Found by: Clang Static Analyzer


241394 10-Oct-2012 kevlo

Revert previous commit...

Pointyhat to: kevlo (myself)


241370 09-Oct-2012 kevlo

Prefer NULL over 0 for pointers


241128 02-Oct-2012 hselasky

Style.

MFC after: 1 week


241127 02-Oct-2012 hselasky

Remove unused field.

MFC after: 1 week


241082 01-Oct-2012 hselasky

Inherit USB mode from RootHUB port where the USB device is connected.
Only RootHUB ports can be dual mode. Disallow OTG ports on external HUBs.
This simplifies some checks in the USB controller drivers.

MFC after: 1 week


241050 29-Sep-2012 kevlo

If devclass_get_devices(9) returns success but a count of 0,
free the pointer.


241034 28-Sep-2012 hselasky

Make sure we don't leak a mbuf in a fail case.


241033 28-Sep-2012 hselasky

Remove some trailing bytes which are not part of the ethernet packet.

Discussed with: bgray @


241032 28-Sep-2012 hselasky

Correct NYET handling. Remove superfluous transfer complete interrupt mask.


240999 27-Sep-2012 hselasky

Make sure the "wMaxPacketSize" limitations are respected.


240998 27-Sep-2012 hselasky

Make sure we record NAK tokens in the TD structure for IN direction.
Improve host channel disabling. Wait two times 125us for channel to be
disabled. The DWC OTG doesn't like when channels are re-used too early.


240969 26-Sep-2012 hselasky

Make sure the DWC OTG host mode channels are given enough time to disable.


240890 24-Sep-2012 hselasky

DWC OTG host mode improvements:
- Make HSIC selection dynamic.
- Make LOW speed USB devices work through HIGH speed USB HUB.


240857 23-Sep-2012 hselasky

DWC OTG host mode improvements. Add support for the 3-strikes and you are
gone rule. Optimise use of channels so that when a channel
is not ready another channel is used. Instead of using the SOF interrupt
use the system timer to drive the host statemachine. This might
give lower throughput and higher latency, but reduces the CPU usage
significantly. The DWC OTG host mode support should not be considered
for serious USB host controller applications. Some problems are still
seen with LOW speed USB devices.


240856 23-Sep-2012 hselasky

Correct driver name.

MFC after: 1 weeks


240806 22-Sep-2012 hselasky

Apply some more casting.


240804 22-Sep-2012 hselasky

Apply correct casting.


240750 20-Sep-2012 hselasky

Fix typo.


240743 20-Sep-2012 kevlo

Fix typo: s/protocl/protocol


240683 18-Sep-2012 gavin

Add entries for two USB devices I have locally.

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


240597 17-Sep-2012 kevlo

Remove unused variable cd.
This variable is initialized but not used.


240482 14-Sep-2012 hselasky

DWC OTG improvements. Implement full support for SPLIT transactions, in other
words FULL/LOW speed devices through HIGH speed HUBs. Improve support for
suspend and resume in host mode.


240419 12-Sep-2012 hselasky

Fix TX FIFO sizes. Correct FIFO handling in Host mode.


240382 12-Sep-2012 kevlo

Restart the USB transfer if the error is not USB_ERR_CANCELLED.


240381 12-Sep-2012 hselasky

Reduce DWC OTG polling rate by using the SOF interrupt.


240374 11-Sep-2012 hselasky

Fix missing parts of DWC OTG host mode support. The host mode support
of the DWC OTG is very simple in PIO mode, and we need to re-transmit
data when NAK is received among other things. We probably will need
to implement some kind of rate limitation on the NAK-ing.


240314 10-Sep-2012 hselasky

Poll VBUS status every second, hence the AT91 GPIO library doesn't support
registering interrupt handlers yet for GPIO events.


240312 10-Sep-2012 hselasky

Fix for IRQ hang in DWC OTG host mode.


240302 10-Sep-2012 hselasky

Cleanup interrupt handling in Host Mode.


240282 09-Sep-2012 hselasky

Implement missing USB suspend and resume support for DWC OTG driver.


240281 09-Sep-2012 hselasky

Add support for DWC OTG.


240279 09-Sep-2012 hselasky

Add support for host mode to the DWC OTG controller driver.
The DWC OTG host mode support should still be considered
experimental. Isochronous support for DWC OTG is not
fully implemented. Some code added derives from
Aleksandr Rybalko's dotg.c driver.


240118 04-Sep-2012 gavin

Support another uchcom(4) device.

MFC after: 1 week


240074 03-Sep-2012 hselasky

Add more DWC OTG register definitions.

Submitted by: Nick Hudson


239909 30-Aug-2012 hselasky

Preparations for adding USB HOST mode to the DWC OTG driver.
Merge register file with external one and put all register
definitions in a separate file.

Submitted by: ray @


239617 23-Aug-2012 hselasky

Add tunable for XHCI port routing.

MFC after: 1 week


239567 22-Aug-2012 hselasky

Add new USB device ID.

Submitted by: Dmitry Luhtionov
MFC after: 1 week


239532 21-Aug-2012 hselasky

Style.


239531 21-Aug-2012 hselasky

Fix USB drivers for KB920X target.
Add missing clock settings.
VBUS GPIO IRQ is still missing (TODO).


239358 17-Aug-2012 hselasky

Add new USB device ID.

PR: usb/170688
MFC after: 1 week


239299 15-Aug-2012 hselasky

Revert r239178 and implement two new functions, namely
"device_free_softc()" and "device_claim_softc()",
to allow USB serial drivers refcounting the softc.
These functions are used to grab the softc from
auto-free and to free the softc back to the correct
malloc type, respectivly.

Discussed with: jhb
MFC after: 2 weeks


239298 15-Aug-2012 hselasky

Add new USB device quirk.

Submitted by: Kra OTN
MFC after: 2 weeks


239275 15-Aug-2012 gonzo

Merging of projects/armv6, part 5

- Driver for SMSC LAN95XX and LAN8710A ethernet controllers
- Driver for LAN8710A PHY

Submitted by: Ben Gray, Damjan Marion, Tim Kientzle


239260 14-Aug-2012 gavin

Rename command defines to match names used in the datasheet, in order to
make maintaining this driver from the documentation easier in the future.
This is a mostly mechanical change.

In uslcom_param(), move the zeroing of the final two fields of the
flowctrl structure outside of the "if CRTSCTS" section - not only were
they being zeroed in both the clauses, but these two fields have nothing
to do with hardware flow control anyway.


239240 13-Aug-2012 hselasky

Fix for missing locks due to recent change.

PR: usb/170606
MFC after: 2 weeks


239238 13-Aug-2012 hselasky

Rename new IOCTL to singular form of the noun "streams".

MFC after: 2 weeks


239237 13-Aug-2012 hselasky

Improve auto-quirks detection for certain Kingston memory sticks.

MFC after: 2 weeks


239215 12-Aug-2012 hselasky

Compile fix.

MFC after: 2 weeks


239214 12-Aug-2012 hselasky

Add support for the so-called streams feature of BULK endpoints
in SUPER-speed mode, USB 3.0.

This feature has not been tested yet, due to lack of hardware.

This feature is useful when implementing protocols like UASP,
USB attached SCSI which promises higher USB mass storage throughput.

This patch also implements support for hardware processing of endpoints
for increased performance. The switching to hardware processing
of an endpoint is done via a callback to the USB controller driver. The
stream feature is implemented like a variant of a hardware USB protocol.

USB controller drivers implementing device mode needs to be updated to
implement the new "xfer_stall" USB controller method and remove the
"xfer" argument from the "set_stall" method.

The API's toward existing USB drivers are preserved. To setup a USB transfer
in stream mode, set the "stream_id" field of the USB config structure to
the desired value.

The maximum number of BULK streams is currently hardcoded and limited to 8
via a define in usb_freebsd.h.

All USB drivers should be re-compiled after this change.

LibUSB will be updated next week to support streams mode. A new IOCTL to
setup BULK streams as already been implemented. The ugen device nodes
currently only supports stream ID zero.

The FreeBSD version has been bumped.

MFC after: 2 weeks


239182 10-Aug-2012 hselasky

Style.

MFC after: 2 weeks


239181 10-Aug-2012 hselasky

Remove unused structure field.

MFC after: 2 weeks


239180 10-Aug-2012 hselasky

Take advantage of new UCOM and bus functionality so that
the device_detach() function doesn't block on UCOM device
drivers until the TTY handle is closed by the userspace
application. This is implemented by a postpone of the
softc free where the UCOM structures reside until the
TTY references are gone.

Discussed with: kib, ed
MFC after: 2 weeks


239179 10-Aug-2012 hselasky

Switch unit management in UCOM to unrhdr.

Extend the callback table of UCOM to include a
"ucom_free" function pointer which is called when
all refs on a UCOM super structure is gone.

Implement various helper functions to handle
refcounting and draining on the UCOM super
structure.

Implement macro which can be used in device
drivers to avoid module unload before all
pending TTY references are gone.

The UCOM API is backwards compatible after this
change and device drivers require no changes
to function with this change. Only a recompilation
of UCOM device drivers is required. The FreeBSD
version has been bumped in that regard.

Discussed with: kib, ed
MFC after: 2 weeks


239177 10-Aug-2012 hselasky

Style.

MFC after: 2 weeks


239176 10-Aug-2012 hselasky

Fix spelling.

MFC after: 2 weeks


239055 05-Aug-2012 hselasky

Update the list of devices supported by the FTDI driver. It might be
that the wrong UART reference clock will be used for a few of the IDs.
It is currently not possible to figure that out because the Linux FTDI
driver detects this run-time and not compile time based on the bcdDevice
field of the USB device descriptor. Some of the ID's in usbdevs are not
sorted according to the product ID value. Please feel free to fix this.
I'm out of my xemacs magic today.

This syncronises us with the linux kernel at kernel.org (HEAD).

MFC after: 2 weeks


239050 05-Aug-2012 hselasky

Minor style nit:
Use the interface number from the USB interface descriptor
like in the other USB serial drivers. These numbers are not
supposed to be different, though in theory they can. Make sure
that the driver then uses the interface number given by the USB
descriptor, and not the logical index of the USB stack.

For the future:
Whenever the term "index" is used in the USB code, it refers to
a number computed by the USB stack.
Whenever the term "number" is used in the USB code, it refers to
a number in a USB descriptor.

MFC after: 2 weeks


239037 04-Aug-2012 gavin

Support multiple interface devices. The driver had previously hardcoded
support for only the first port, but the CP2105 can have multiple ports.
Although this allowed the first port to mostly work on multi port devices,
there could be issues with this arrangement.

Update the man page to reflect support for both ports and the CP2105.

Many thanks to Silicon Labs (www.silabs.com) for providing a CP2105-EK
dev board for testing.

MFC after: 2 weeks


238848 27-Jul-2012 imp

Make this compile again. Also note that it is AT91RM9200+KB9202B
specific still and needs some love to make it work on anything else.


238819 27-Jul-2012 imp

Minor style(9) nit.


238804 26-Jul-2012 gavin

Improve descriptions for several devices supported by uslcom(4).
Correct the spelling of the company Telegesis.
Move MpMan to the correct location alphabetically.

MFC after: 2 weeks


238803 26-Jul-2012 gavin

Add support for more devices to uslcom(4). This commit syncronises the
list of supported devices with the union of:

NetBSD src/sys/dev/usb/uslsa.c 1.18
OpenBSD src/sys/dev/usb/uslcom.c 1.24
Linux source/drivers/usb/serial/cp210x.c HEAD

Remove duplicate JABLOTRON PC60B entry.

Note that some of the devices added here are multi-port devices. The
uslcom(4) driver currently only supports the first port on such devices.

Update the man page to reflect the full list of supported devices.
Remove two caveats from the CAVEATS section, as both listed caveats no
longer apply. Add a caveat about multi-port devices.

MFC after: 2 weeks


238779 25-Jul-2012 gavin

Add vendor.product for a mouse I have laying around


238778 25-Jul-2012 gavin

The baud rate on CP1201/2/3 devices can be set in one of two ways:
- The USLCOM_SET_BAUD_DIV command (0x01)
- The USLCOM_SET_BAUD_RATE command (0x13)

Devices based on the CP1204 will only accept the latter command, and ignore
the former. As the latter command works on all chips that this driver
supports, switch to always using it.

A slight confusion here is that the previously used command was incorrectly
named USLCOM_BAUD_RATE - even though we no longer use it, rename it to
USLCOM_SET_BAUD_DIV to closer match the name used in the datasheet.

This change reflects a similar change made in the Linux driver, which was
submitted by preston.fick at silabs.com, and has been tested on all of the
uslcom(4) devices I have to hand.

MFC after: 2 weeks


238766 25-Jul-2012 gavin

Update the list of devices supported by uplcom. Although this only adds
one device (support for Motorola cables), this syncronises us with:

OpenBSD src/sys/dev/usb/uplcom.c 1.56
NetBSD src/sys/dev/usb/uplcom.c 1.73
Linux kernel.org HEAD

MFC after: 1 week


238718 23-Jul-2012 emaste

Quirk MS keyboard so that function keys work

The function keys on a Microsoft Natural Egronomic Keyboard 4000 have been
repurposed as "Help", "Undo", "Redo" etc., and a special "F Lock" key is
required to return them to their normal purpose.

This change enables the UQ_KBD_BOOTPROTO quirk for the MS Natural 4000
keyboard to get the keys working again. More extensive changes to the USB
keyboard infrastructure would be needed to fully support the "F Lock" mode
and the extended keys on this keyboard.

PR: usb/116947
Approved by: hselasky@


238717 23-Jul-2012 rea

u3g: add support for Huawei E392 LTE modem

I am using it rebranded and it carries the label "Megafon"
(it is Russian mobile operator); works fine with my 3G network.

Approved by: hselasky


238551 17-Jul-2012 mav

For Intel Panther/Lynx Point USB 3.0 xHCI controllers enable SuperSpeed USB
capability and reroute USB 2.0 ports to the xHCI controller.

Reviewed by: hselasky


238529 16-Jul-2012 hselasky

Add new USB device ID.

PR: usb/169789
Submitted by: Ruslan Bukin
MFC after: 1 week


238526 16-Jul-2012 hselasky

Add new USB device ID.

PR: usb/169789
MFC after: 1 week


238493 15-Jul-2012 hselasky

Add new USB device ID.

PR: usb/169789
MFC after: 1 week


238466 15-Jul-2012 rpaulo

The JP1082 device doesn't respond to the MII_BMSR command and it turns
out that it has an unusable PHY. It still works, although very slowly,
without a PHY, so I implemented non-PHY support in the udav driver.


238361 11-Jul-2012 hrs

Merge from r234532:

- Fix an ifname matching issue which prevented "ifconfig wlan0 create" from
working.
- Return non-zero status when unit < 0.

Spotted by: dhw


238279 09-Jul-2012 hrs

Make usbusN logging pseudo-interface used by usbdump(8) clonable. One is
now created/destroyed automatically by usbdump(8).

Note that "hw.usb.no_pf" loader tunable is now obsolete.

Reviewed by: hselasky


238274 09-Jul-2012 hrs

- Add support of the following USB devices to run(4):

* Logitec LAN-W150N/U2
* Buffalo WLI-UC-GNM2

- Add device id of Planex GW-USValue-EZ.


238079 03-Jul-2012 hselasky

Add new USB device ID.

Submitted by: Erich Dollansky
MFC after: 1 week


238078 03-Jul-2012 hselasky

Add more quirks for USB mass storage adapters.

Submitted by: Erich Dollansky
MFC after: 1 week


238015 02-Jul-2012 mav

Add IDs for some USB controllers I have around. Just a cosmetics.

MFC after: 3 days


237236 18-Jun-2012 marius

Refine r237102 a bit:
- Anounce JTAG interfaces deliberately skipped.
- Bring back empty lines too eagerly removed.

MFC after: 3 days


237102 14-Jun-2012 marius

- Add support for the FT2232 based egnite Turtelizer 2 JTAG/RS232 Adapter.
This includes adding support for skipping FTDI interfaces used for JTAG
leaving them for userland and just attaching to the RS232 half, similarly
to how the corresponding Linux drivers handles these kind of adapters.
While at it, sort uftdi_devs and return BUS_PROBE_SPECIFIC (because
uftdi_probe() alters the instance variables for better or worse as do
other probe routines of USB drivers) instead of 0.
- Remove duplicated entries for BeagleBone.
- Use DEVMETHOD_END.
- Use NULL instead of 0 for pointers.
- Remove some stray lines.

MFC after: 3 days


237079 14-Jun-2012 hselasky

Add more quirks for USB MIDI adapters.

Obtained from: Clemens Ladisch
MFC after: 1 week


236439 02-Jun-2012 hselasky

Add appropriate checks for ic_bsschan being set to IEEE80211_CHAN_ANYC in
some of the USB WLAN drivers. This fixes a panic when using monitor mode.

MFC after: 1 week
Submitted by: PseudoCylon


236407 01-Jun-2012 hselasky

Improve support for detaching kernel drivers on a per interface basis.

MFC after: 1 week


236120 26-May-2012 raj

Import EHCI attachment driver for Freescale integrated controller.

Obtained from: Freescale, Semihalf.
Written by: Michal Dubiel


236073 26-May-2012 marius

Make the VIA workaround application somewhat more consistent with the
ATI one.


236070 26-May-2012 marius

Consistently use USB_PAGE_SIZE. Currently, this is cosmetic.

MFC after: 3 days


236069 26-May-2012 marius

Make the VIA workaround actually do its intended job.

MFC after: 3 days


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


235510 16-May-2012 mav

HID Report ID is unsigned value, so clear the rest of bits from possible
sign expansion.


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


235255 11-May-2012 marius

- Change the module order of these MAC drivers to be last so they are
deterministically handled after the corresponding PHY drivers when
loaded as modules. Otherwise, when these MAC/PHY driver pairs are
compiled into a single module probing the PHY driver may fail. This
makes r151438 and r226154 actually work. [1]
Reported and tested by: yongari (fxp(4))
- Use DEVMETHOD_END.
- Use NULL instead of 0 for pointers.

Submitted by: jhb [1]
MFC after: 3 days


234961 03-May-2012 hselasky

Make sure the EHCI bandwidth allocation algorithm
for FULL speed SPLIT transactions works fully.

MFC after: 1 week


234803 29-Apr-2012 hselasky

Add support for Multi-TT mode of modern USB HUBs.
This will give you more bandwidth for isochronous
FULL speed applications connected through a
High Speed HUB.

This patch has been tested with XHCI and EHCI.

MFC after: 1 week


234541 21-Apr-2012 kevlo

Add support for the SIMCom SIM5218, tested by me.


234418 18-Apr-2012 thomas

Fix typo in comment


233774 02-Apr-2012 hselasky

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

MFC after: 1 weeks


233771 02-Apr-2012 hselasky

Add definitions and structures for USB 2.0 Link Power Management, LPM.

MFC after: 2 weeks


233283 21-Mar-2012 bschmidt

Load the firmware during init not attach, as a root filesystem might
not yet be available. While here, also print the firmware version.

Submitted by: PseudoCylon
MFC after: 3 days


232684 08-Mar-2012 hselasky

Add new USB device IDs.

PR: usb/165815
MFC after: 1 week


232539 05-Mar-2012 hselasky

Fix for DWC OTG interrupt register programming.
Fix a compiler warning.
Add missing header file.

MFC after: 1 week


232448 03-Mar-2012 hselasky

Make sure that the USB system suspend event is executed synchronously
and not asynchronously. This fixes problems related to USB system
suspend and resume. It is assumed that we are always allowed to sleep
from the device_suspend() method.

MFC after: 1 week
Submitted by: jkim


232361 01-Mar-2012 hselasky

Style change: Expand redundant #if's. Remove a couple of empty lines.

MFC after: 1 week


232358 01-Mar-2012 hselasky

Close a detach race. Make sure all pending
CCB's get canceled at device detach.

MFC after: 1 week


232257 28-Feb-2012 kevlo

Add support for the MCS7832

Obtained from: OpenBSD


231713 14-Feb-2012 hselasky

Add new USB device ID.

MFC after: 3 days
PR: usb/165154


231378 10-Feb-2012 ed

Remove direct access to si_name.

Code should just use the devtoname() function to obtain the name of a
character device. Also add const keywords to pieces of code that need it
to build properly.

MFC after: 2 weeks


230643 28-Jan-2012 attilio

Avoid to check the same cache line/variable from all the locking
primitives by breaking stop_scheduler into a per-thread variable.
Also, store the new td_stopsched very close to td_*locks members as
they will be accessed mostly in the same codepaths as td_stopsched and
this results in avoiding a further cache-line pollution, possibly.

STOP_SCHEDULER() was pondered to use a new 'thread' argument, in order to
take advantage of already cached curthread, but in the end there should
not really be a performance benefit, while introducing a KPI breakage.

In collabouration with: flo
Reviewed by: avg
MFC after: 3 months (or never)
X-MFC: r228424


230424 21-Jan-2012 hselasky

Add support for the DesignWare USB 2.0 OTG controller chipset.
Currently the code is not built by any modules. That will
be fixed later. The Atmel ARM bus interface file part of this
commit is just for sake of example. All registers and bits are
declared like macros and not C-structures like in official
Synopsis header files. This driver mostly origins from the
musb_otg.c driver in FreeBSD except that the chip specific
programming has been replaced by the one for DWC 2.0 USB OTG.
Some parts related to system suspend and resume have been left
like empty functions for the future. USB suspend and resume is
fully supported.


230333 19-Jan-2012 hselasky

Add support for new USB device.

PR: usb/164275
MFC after: 3 days


230242 16-Jan-2012 stas

- Add ID for the BeagleBone FTDI serial over usb port.

MFC after: 3 days


230238 16-Jan-2012 hselasky

Add support for more USB devices.

Submitted by: pav @
MFC after: 1 week


230209 16-Jan-2012 hselasky

Export ttyname instead of ttyunit via the sysctl interface.

Submitted by: Mykhaylo Yehorov
PR: usb/164090
MFC after: 1 week


230204 16-Jan-2012 hselasky

Export information about USB serial port unit and port numbers
directly via the sysctl interface.

Submitted by: Mykhaylo Yehorov
PR: usb/164090
MFC after: 1 week


230179 15-Jan-2012 kientzle

BeagleBone uses an FTDI chip with
an altered Product ID.


230132 15-Jan-2012 uqs

Convert files to UTF-8


230091 13-Jan-2012 hselasky

Improve support for USB 3.0 HUBs. In certain states we
should do a warm reset instead of the default reset.

MFC after: 5 days


230090 13-Jan-2012 hselasky

Bugfix: Make sure the XHCI driver doesn't clear
the route string field. Else USB 3.0 HUBs
won't work.

MFC after: 5 days


230050 13-Jan-2012 hselasky

Correct use of USB 3.0 POWER bit in the port status register,
hence it was overlapping the USB 3.0 root HUB's speed bits.

Reported by: Kohji Okuno
MFC after: 1 week


230032 12-Jan-2012 hselasky

- Try to fix support for USB 3.0 HUBs.
- Try to fix support for USB 3.0 suspend and resume.

MFC after: 1 week


229767 07-Jan-2012 kevlo

ether_ifattach() sets if_mtu to ETHERMTU, don't bother set it again

Reviewed by: yongari


229317 02-Jan-2012 hselasky

Make sure we probe and attach the root HUB after
resume else no devices will appear again.

MFC after: 1 day


229086 31-Dec-2011 hselasky

Add missing change to XHCI driver similar to changes in r228483.

MFC after: 0 days


228854 24-Dec-2011 gonzo

- Enable usbus on octusb


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


228760 21-Dec-2011 avg

adapt usb transfer code for SCHEDULER_STOPPED

When SCHEDULER_STOPPED() is true the mtx_owned() call may return
an unexpected and thus meaningless result.
So, in the code paths that can be reached when SCHEDULER_STOPPED() is true
we need to protect the mtx_owned() calls with the SCHEDULER_STOPPED()
checks and ensure that an appropriate branch is taken in each case.

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


228758 21-Dec-2011 hselasky

Fix for race against user-space applications trying to change the
configuration on USB HUBs.

PR: kern/163091
MFC after: 1 week


228723 19-Dec-2011 hselasky

Make the recently added "no_shutdown_wait" sysctl writeable.

Suggested by: avg @
MFC after: 3 days


228711 19-Dec-2011 hselasky

Add code to wait for USB shutdown to be executed at system shutdown.
Add sysctl which can be used to skip this waiting.

MFC after: 3 days


228709 19-Dec-2011 hselasky

Add missing unlock of USB controller's lock, when
doing shutdown, suspend and resume.

Suggested by: avg @
MFC after: 3 days


228637 17-Dec-2011 kevlo

Another axe(4), found in ASUS zenbook.


228631 17-Dec-2011 avg

kern cons: introduce infrastructure for console grabbing by kernel

At the moment grab and ungrab methods of all console drivers are no-ops.

Current intended meaning of the calls is that the kernel takes control of
console input. In the future the semantics may be extended to mean that
the calling thread takes full ownership of the console (e.g. console
output from other threads could be suspended).

Inspired by: bde
MFC after: 2 months


228621 17-Dec-2011 bschmidt

Fix some net80211 enum nits:
- ic_vap_create() uses an ieee80211_opmode argument
- ieee80211_rate2media() takes an ieee80211_phymode argument
- ieee80211_plcp2rate() takes an ieee80211_phytype argument
- cast to enum ieee80211_protmode and ieee80211_roamingmode to silence
compiler warnings

Submitted by: arundel@


228508 14-Dec-2011 hselasky

Improve fix for random USB transfer time out.

Suggested by: YougHyeon
MFC after: 3 days


228494 14-Dec-2011 hselasky

Fix for random USB transfer time out.

Submitted by: PseudoCylon
MFC after: 3 days


228493 14-Dec-2011 hselasky

Fix definition of XHCI port power bit.

Reported by: Kohji Okuno
MFC after: 3 days


228483 14-Dec-2011 hselasky

Implement better support for USB controller suspend and resume.

This patch should remove the need for kldunload of USB
controller drivers at suspend and kldload of USB controller
drivers at resume.

This patch also fixes some build issues in avr32dci.c

MFC after: 2 weeks


228304 06-Dec-2011 hselasky

Correct some bInterval USB template descriptor values.

MFC after: 3 days


228303 06-Dec-2011 hselasky

Fix compile warning when using clang to compile the code.

Submitted by: arundel @
MFC after: 3 days


228243 03-Dec-2011 emaste

Add quirk for Micron RealSSD eUSB failing on unsupported SCSI command

It appears this device fails if sent a SYNCHRONIZE_CACHE command, so add
quirk to avoid sending it.

I will follow up with Micron on this issue, and will adjust the quirk if
necessary based on their feedback.

Reviewed by: hselasky@


228232 03-Dec-2011 hselasky

Fix a compile warning with clang.

Reported by: arundel @
MFC after: 3 days


228195 02-Dec-2011 kevlo

Fix checks for error return from urtw_alloc_rx_data_list() and
urtw_alloc_tx_data_list().


228056 28-Nov-2011 hselasky

This commit marks the beginning of a new internal USB
transfer statemachine. This work is about using a single
state variable instead of multiple state bits as input
for the USB statemachine to determine what to do in the
various parts of the code. No APIs towards USB device
drivers or USB host controller drivers will be changed.

MFC after: 1 month


227908 23-Nov-2011 marius

Use DEVMETHOD_END.


227849 22-Nov-2011 hselasky

Rename device_delete_all_children() into device_delete_children().

Suggested by: jhb @ and marius @
MFC after: 1 week


227843 22-Nov-2011 marius

- There's no need to overwrite the default device method with the default
one. Interestingly, these are actually the default for quite some time
(bus_generic_driver_added(9) since r52045 and bus_generic_print_child(9)
since r52045) but even recently added device drivers do this unnecessarily.
Discussed with: jhb, marcel
- While at it, use DEVMETHOD_END.
Discussed with: jhb
- Also while at it, use __FBSDID.


227781 21-Nov-2011 hselasky

Add new USB IDs to RUN driver.

PR: usb/162712
MFC after: 1 week


227751 20-Nov-2011 miwi

- Add support for Add LOGITECH Webcam C100
- While here whitespace fixes

PR: usb/161559
Submitted by: Sergey Zaykov <mail_of_sergey@mail.ru>
Reviewed by: hselasky
Approved by: hselasky, rwatson (mentor)


227706 19-Nov-2011 hselasky

Simplify the usb_pause_mtx() function by factoring out the generic parts
to the kernel's pause() function. The pause() function can now be used
when cold != 0. Also assert that the timeout in system ticks must be
positive.

Suggested by: Bruce Evans
MFC after: 1 week


227701 19-Nov-2011 hselasky

Move the device_delete_all_children() function from usb_util.c
to kern/subr_bus.c. Simplify this function so that it no longer
depends on malloc() to execute. Identify a few other places where
it makes sense to use device_delete_all_children().

MFC after: 1 week


227654 18-Nov-2011 hselasky

Make some XHCI command timeouts less strict.

Reported by: Jan Henrik Sylvester
MFC after: 1 week


227610 17-Nov-2011 hselasky

Quirk all of ALCOR's mass storage devices instead of
quirking individual devices.

Submitted by: Dmitry Luhtionov
MFC after: 1 week


227541 15-Nov-2011 hselasky

Some brands of XHCI controllers needs more time to reset.

Reported by: Jan Henrik Sylvester
MFC after: 1 week


227463 12-Nov-2011 hselasky

- This patch adds custom IOCTLs to read and write the 4 GPIO pins on the
cp2103 usb-to-serial chip.
- This patch also makes the line status polling asynchronous, to reduce
the time needed to change the GPIO pins.

Submitted by: JD Louw
MFC after: 1 week


227462 12-Nov-2011 hselasky

Enable power save mode for the USB storage device driver.

MFC after: 1 week


227461 12-Nov-2011 hselasky

Style change.
- Make it easier to port the USB code to other platforms by only using
one set of memory functions for clearing and copying memory. None of
the memory copies are overlapping. This means using bcopy() is not
required.
- Fix a compile warning when USB_HAVE_BUSDMA=0
- Add missing semicolon in avr32dci.
- Update some comments.

MFC after: 1 week


227401 09-Nov-2011 hselasky

Fix size of USB 3.0 descriptor field.

MFC after: 3 days


227396 09-Nov-2011 hselasky

Fix size of USB 3.0 descriptor field.

MFC after: 3 days


227383 09-Nov-2011 hselasky

Some minor corrections to a modem driver.

PR: usb/162307
MFC after: 3 days


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.


227286 06-Nov-2011 hselasky

Fix build breakage for 8-stable and older.

MFC after: 0 days


227285 06-Nov-2011 hselasky

Add support for new USB modem protocol.

PR: usb/159919
MFC after: 1 week


227108 05-Nov-2011 hselasky

Implement support for modem control lines.
Don't short terminate transmitted BULK data.
Assume that the chip reads one USB packet at a time.

PR: usb/162307
MFC after: 3 days


227075 04-Nov-2011 hselasky

Fix for panic at USB controller attach failure during cold boot.

Reported by: Jan Henrik Sylvester, Xin LI and more.
MFC after: 3 days


226903 29-Oct-2011 hselasky

Improve USB mass storage quirk auto detection.

MFC after: 3 days


226803 26-Oct-2011 hselasky

Fix suspend and resume of FULL and HIGH speed USB devices
in the generic XHCI driver. There appears to be some minor
logic missing for this feature to work.

MFC after: 3 days


226743 25-Oct-2011 yongari

Implement TX/RX checksum offloading support for ASIX AX88772B
controller.

AX88772B data sheet does not show detailed information about
checksum offloading related things. It seems the controller has
lots of options to support checksum offloading but I failed to
understand why this feature requires so much complex controller
configuration and status bits.
One of major difference between AX88772B and its predecessor is
AX88772B uses a new RX header format when RX checksum offloading is
enabled. It also requires the received length of a frame should be
multiple of 4. Controller will pad necessary bytes to make the
length of received frame to be multiple of 4. It is driver's
responsibility to offset this pad bytes.
Note, AX88772B could be configured to get partial checksum value in
in RX header. This mode uses different RX header format and
currently we don't use that fature.

This change makes axe(4) use driver specific MII attach handler to
override uether(9)'s default MII attach and announce flow-control
capability for AX88178/AX88772A/AX88772B to PHY drivers. It seems
original AX88772 also supports flow-control but I didn't enable it
due to lack of test/access to the controller. The flow-control
threshold parameter is loaded from EEPROM and there is no way to
override this value without reprogramming EEPROM. For AX88772B,
TX/RX IP/TCP/UDP checksum offloading is announced to network stack.
IPv6 and PPPoE checksum offloading is also supported by controller
but we have no way to take advantage of these features.
Driver already knows PHY address so make PHY driver know that
information and remove unnecessary PHY address check used in
miibus_readreg/miibus_writereg callbacks. Also announce AX88178,
AX88772A and AX88772B support VLAN over-sized frame.

While I'm here clean up headers and remove axe_start() in
axe_init() because the link wouldn't be available right after media
change.


226709 24-Oct-2011 yongari

This change makes it possible to define driver specific attach
handler such that driver can announce interface capabilities and
can do its own MII attach. Currently all USB ethernet controllers
have no way to establish a link with pause capabilities. Lack of
checksum offloading support also was one of reason to bring this
change in.

This change adds a couple of wrappers to USB ethernet drivers
(uether_ifmedia_upd, uether_init and uether_start). All exported
functions in uether has prefix uether_ so I think it's more
consistent to have wrappers that follow the convention.
This change preserves ABI/KPI so it should be safe to merge this
change to stable/8.

While I'm here add missing __FBSDID and clean up headers.

Reviewed by: hselasky


226534 19-Oct-2011 hselasky

Add new USB IDs to RUN driver. Update usb.conf.

PR: usb/161798
MFC after: 3 days


226479 17-Oct-2011 yongari

Close a race where SIOCGIFMEDIA ioctl get inconsistent link status.
Because driver is accessing a common MII structure in
mii_pollstat(), updating user supplied structure should be done
before dropping a driver lock.

Reported by: Karim (fodillemlinkarimi <> gmail dot com)


226467 17-Oct-2011 bz

Fix build after r226465.
Cast void * to char * for arithmetics and make function return "no error".

MFC after: 3 days


226465 17-Oct-2011 adrian

Fix an issue with 11g beacon frames which looks to be a limitation
on the largest multi-write size.

From the submitter:

==
I looked further into the magic 88-byte threshold after which the bug
occurs. It turns out that figure included the 24-byte tx_desc, and up
to 64 bytes of beacon frame (header+data).

rum_write_multi doesn't seem happy with writing >64 bytes at a time to
the MAC register. If I break it up into separate calls (e.g. bytes
0-63, then bytes 64-65, written at the appropriate offset) I see the
proper beacon frames being transmitted now.
==

Submitted by: Steven Chamberlain <steven@pyro.eu.org>
MFC after: 3 days


226221 10-Oct-2011 hselasky

Add USB mass storage quirk for device that emits errors after the automatic
no synchronize cache detection.

Submitted by: Scott Allendorf
MFC after: 3 days


226219 10-Oct-2011 hselasky

Bugfix: The ucom detach function is sometimes called on zeroed structures.
Check for this case and just return, so that the UCOM unit number zero is
not accidentially freed.

Submitted by: Danish FreeBSD user at EuroBSDcon 2011
MFC after: 3 days


226154 08-Oct-2011 marius

- Follow the lead of dcphy(4) and pnphy(4) and move the reminder of the PHY
drivers that only ever attach to a particular MAC driver, i.e. inphy(4),
ruephy(4) and xlphy(4), to the directory where the respective MAC driver
lives and only compile it into the kernel when the latter is also there,
also removing it from miibus.ko and moving it into the module of the
respective MAC driver.
- While at it, rename exphy.c, which comes from NetBSD where the MAC driver
it corresponds to also is named ex(4) instead of xl(4) but that in FreeBSD
actually identifies itself as xlphy(4), and its function names accordingly
for consistency.
- Additionally while at it, fix some minor style issues like whitespace
in the register headers and add multi-inclusion protection to inphyreg.h.


225950 03-Oct-2011 ken

Add descriptor sense support to CAM, and honor sense residuals properly in
CAM.

Desriptor sense is a new sense data format that originated in SPC-3. Among
other things, it allows for an 8-byte info field, which is necessary to
pass back block numbers larger than 4 bytes.

This change adds a number of new functions to scsi_all.c (and therefore
libcam) that abstract out most access to sense data.

This includes a bump of CAM_VERSION, because the CCB ABI has changed.
Userland programs that use the CAM pass(4) driver will need to be
recompiled.

camcontrol.c: Change uses of scsi_extract_sense() to use
scsi_extract_sense_len().

Use scsi_get_sks() instead of accessing sense key specific
data directly.

scsi_modes: Update the control mode page to the latest version (SPC-4).

scsi_cmds.c,
scsi_target.c: Change references to struct scsi_sense_data to struct
scsi_sense_data_fixed. This should be changed to allow the
user to specify fixed or descriptor sense, and then use
scsi_set_sense_data() to build the sense data.

ps3cdrom.c: Use scsi_set_sense_data() instead of setting sense data
manually.

cam_periph.c: Use scsi_extract_sense_len() instead of using
scsi_extract_sense() or accessing sense data directly.

cam_ccb.h: Bump the CAM_VERSION from 0x15 to 0x16. The change of
struct scsi_sense_data from 32 to 252 bytes changes the
size of struct ccb_scsiio, but not the size of union ccb.
So the version must be bumped to prevent structure
mis-matches.

scsi_all.h: Lots of updated SCSI sense data and other structures.

Add function prototypes for the new sense data functions.

Take out the inline implementation of scsi_extract_sense().
It is now too large to put in a header file.

Add macros to calculate whether fields are present and
filled in fixed and descriptor sense data

scsi_all.c: In scsi_op_desc(), allow the user to pass in NULL inquiry
data, and we'll assume a direct access device in that case.

Changed the SCSI RESERVED sense key name and description
to COMPLETED, as it is now defined in the spec.

Change the error recovery action for a number of read errors
to prevent lots of retries when the drive has said that the
block isn't accessible. This speeds up reconstruction of
the block by any RAID software running on top of the drive
(e.g. ZFS).

In scsi_sense_desc(), allow for invalid sense key numbers.
This allows calling this routine without checking the input
values first.

Change scsi_error_action() to use scsi_extract_sense_len(),
and handle things when invalid asc/ascq values are
encountered.

Add a new routine, scsi_desc_iterate(), that will call the
supplied function for every descriptor in descriptor format
sense data.

Add scsi_set_sense_data(), and scsi_set_sense_data_va(),
which build descriptor and fixed format sense data. They
currently default to fixed format sense data.

Add a number of scsi_get_*() functions, which get different
types of sense data fields from either fixed or descriptor
format sense data, if the data is present.

Add a number of scsi_*_sbuf() functions, which print
formatted versions of various sense data fields. These
functions work for either fixed or descriptor sense.

Add a number of scsi_sense_*_sbuf() functions, which have a
standard calling interface and print the indicated field.
These functions take descriptors only.

Add scsi_sense_desc_sbuf(), which will print a formatted
version of the given sense descriptor.

Pull out a majority of the scsi_sense_sbuf() function and
put it into scsi_sense_only_sbuf(). This allows callers
that don't use struct ccb_scsiio to easily utilize the
printing routines. Revamp that function to handle
descriptor sense and use the new sense fetching and
printing routines.

Move scsi_extract_sense() into scsi_all.c, and implement it
in terms of the new function, scsi_extract_sense_len().
The _len() version takes a length (which should be the
sense length - residual) and can indicate which fields are
present and valid in the sense data.

Add a couple of new scsi_get_*() routines to get the sense
key, asc, and ascq only.

mly.c: Rename struct scsi_sense_data to struct
scsi_sense_data_fixed.

sbp_targ.c: Use the new sense fetching routines to get sense data
instead of accessing it directly.

sbp.c: Change the firewire/SCSI sense data transformation code to
use struct scsi_sense_data_fixed instead of struct
scsi_sense_data. This should be changed later to use
scsi_set_sense_data().

ciss.c: Calculate the sense residual properly. Use
scsi_get_sense_key() to fetch the sense key.

mps_sas.c,
mpt_cam.c: Set the sense residual properly.

iir.c: Use scsi_set_sense_data() instead of building sense data by
hand.

iscsi_subr.c: Use scsi_extract_sense_len() instead of grabbing sense data
directly.

umass.c: Use scsi_set_sense_data() to build sense data.

Grab the sense key using scsi_get_sense_key().

Calculate the sense residual properly.

isp_freebsd.h: Use scsi_get_*() routines to grab asc, ascq, and sense key
values.

Calculate and set the sense residual.

MFC after: 3 days
Sponsored by: Spectra Logic Corporation


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.


225777 27-Sep-2011 hselasky

Add quirks for some USB mass storage devices which doesn't respond
after trying to query the synchronize cache support.

Submitted by: Keith White
PR: usb/160911
Approved by: re (kensmith)
MFC after: 1 week


225695 20-Sep-2011 hselasky

Avoid starting the USB transfer if an error is already pending.
This change fixes a race in device side mode during clear-stall from
host, which can cause data to be sent too early on the given
endpoint.

Approved by: re (kib)
MFC after: 1 week


225617 16-Sep-2011 kmacy

In order to maximize the re-usability of kernel code in user space this
patch modifies makesyscalls.sh to prefix all of the non-compatibility
calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel
entry points and all places in the code that use them. It also
fixes an additional name space collision between the kernel function
psignal and the libc function of the same name by renaming the kernel
psignal kern_psignal(). By introducing this change now we will ease future
MFCs that change syscalls.

Reviewed by: rwatson
Approved by: re (bz)


225556 14-Sep-2011 hselasky

Reduce USB memory usage during enumeration.

We are allocating some kilobytes of extra memory during USB device enumeration.
This does not change alot under FreeBSD, but makes sense for various embedded
operating systems using the FreeBSD USB stack, which have less memory
resources available.

Approved by: re (kib)
MFC after: 1 week


225469 10-Sep-2011 hselasky

Refactor auto-quirk solution so that we break as few external
drivers as possible.

PR: usb/160299
Approved by: re (kib)
Suggested by: rwatson
MFC after: 0 days


225400 05-Sep-2011 hselasky

Some USB mass storage devices requires that the sense information
is retrieved after a failed SCSI command to continue normal
operation. Else this sense information is retrived at the next
SCSI command.

Approved by: re (kib)
Reported by: Alex Kozlov
MFC after: 1 week
PR: usb/160299


225350 02-Sep-2011 hselasky

This patch adds automatic detection of USB mass storage devices
which does not support the no synchronize cache SCSI command.

The __FreeBSD_version version macro has been bumped and
external kernel modules needs to be recompiled after
this patch.

Approved by: re (kib)
MFC after: 1 week
PR: usb/160299


225041 20-Aug-2011 hselasky

Add new USB ID to u3g driver.

Approved by: re (kib)
MFC after: 1 week
PR: usb/159919


225038 20-Aug-2011 hselasky

Fix for recursive locking in usb_close() after change 224777.

Approved by: re (kib)
MFC after: 3 days
Reported by: kwm @


225037 20-Aug-2011 hselasky

Add new USB ID.

Approved by: re (kib)
MFC after: 1 week
PR: usb/159836


225000 19-Aug-2011 hselasky

Add sysctl to not reset the device on clear stall failures, to
temporarily mitigate problems with VMs.

Approved by: re (kib)
MFC after: 1 week


224777 11-Aug-2011 hselasky

Use synchronous device destruction instead of asynchronous, so that a new
device having the same name like a previous one is not created before the old
one is gone. This fixes some panics due to asserts in the devfs code which
were added recently.

Approved by: re (kib)
MFC after: 1 week


224728 09-Aug-2011 mav

Do not block zero report ID. It is correct value for devices with single
ID. This fixes USB_SET_IMMED call (synchronous operation) of the uhid(4)
driver on devices with single report ID.

Reviewed by: hselasky
Approved by: re (kib)
MFC after: 1 week


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)


224239 21-Jul-2011 hselasky

Add new USB ID to u3g driver.

Approved by: re (kib)
Submitted by: Nick Hibma
MFC after: 3 days


224180 18-Jul-2011 hselasky

Only the USB root HUB thread is allowed to attach and detach drivers
to and from USB devices. Remove related DEVMETHOD() lines from USB
drivers.

Reported by: YongHyeon PYUN
MFC after: 3 days


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.


224095 16-Jul-2011 hselasky

Fix for VirtualBox 4.x and other virtual machines that fail
to generate a port reset change event.

MFC after: 1 weeks


224020 14-Jul-2011 yongari

Add initial support for AX88772B USB Fast Ethernet. AX88772B
supports IPv4/IPv6 checksum offloading and VLAN tag insertion/
stripping as well as WOL. Because uether does not provide a way
to announce driver specific offload capabilities to upper stack,
checksum offloading support needs more work and will be done in
future.
Special thanks to ASIX for donating sample hardware.

H/W donated by: ASIX Electronics
Reviewed by: hselasky


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


223896 09-Jul-2011 hselasky

Remove reviewed line from copyright header.

Suggested by: joel @


223864 08-Jul-2011 hselasky

Add new USB 3G driver.

Submitted by: PseudoCylon <moonlightakkiy@yahoo.ca>
MFC after: 14 days


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


223741 03-Jul-2011 bz

Tag mbufs of all incoming frames or packets with the interface's FIB
setting (either default or if supported as set by SIOCSIFFIB, e.g.
from ifconfig).

Submitted by: Alexander V. Chernikov (melifaro ipfw.ru)
Reviewed by: julian
MFC after: 2 weeks


223736 03-Jul-2011 hselasky

Introduce a quirk for broken USB MIDI hardware instead of limiting performance
in general.

MFC after: 1 week


223728 02-Jul-2011 hselasky

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

MFC after: 3 days


223624 28-Jun-2011 kevlo

Remove duplicate header includes


223566 26-Jun-2011 gavin

The SMCWUSBG is a zyd(4) device, not an uath(4) device. Remove from the
latter.

It appears that the addition to uath(4) came in through PR kern/135009,
which had tested another device, the SMCWUSBTG2, successfully with uath(4)
and included the SMCWUSBG as it "has the same chipset". I can find no
other evidence that these two do actually share the same chipset. Moreover,
Linux treats the SMCWUSBG as a zyd(4) device also.

This reverts r223537.

Discussed with: hselasky, kevlo
MFC after: 1 week


223538 25-Jun-2011 hselasky

- Export the USB device ID format to userspace tools.

MFC after: 14 days


223537 25-Jun-2011 hselasky

- Remove duplicate USB ID.

MFC after: 3 days


223521 24-Jun-2011 hselasky

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

MFC after: 3 days


223515 24-Jun-2011 hselasky

- Export more USB device ID's.

MFC after: 3 days


223513 24-Jun-2011 hselasky

- Ensure that we get all the required nomatch devd events.

MFC after: 3 days


223512 24-Jun-2011 hselasky

- Move execution of event handlers into the probe and attach function so that
dynamically loaded device drivers get a chance to run their event hooks.

- Decouple the USB suspend and resume lock from witness. It produces some
false warnings due to reusing the lock name among multiple devices.

MFC after: 3 days


223511 24-Jun-2011 hselasky

- Export the URIO USB device ID's.
- Add checks for configuration and interface index.

MFC after: 3 days


223489 24-Jun-2011 hselasky

- Add additional information to the PnP info of USB HUBs children which
is now required by bus_autoconf.
- Allow interface class matching even if device class is vendor specific.
- Update bus_autoconf tool to not generate system and subsystem match lines
for the nomatch event.

PR: misc/157903
MFC after: 14 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


223472 23-Jun-2011 hselasky

- Add some comments about the origin of some USB descriptors.

MFC after: 7 days


223467 23-Jun-2011 hselasky

- Add more USB templates for various USB device classes
- Add basic template support for USB 3.0
- Export definition of template sysctl numbers through usb_ioctl.h

MFC after: 7 days


223446 22-Jun-2011 gavin

Use USB_VENDOR_OVISLINK define rather than the vendor ID.

PR: usb/158142
Submitted by: Robert Millan <rmh debian.org>
MFC after: 1 week


223288 19-Jun-2011 hselasky

Add new USB ID to UDAV driver.

Submitted by: Luiz Gustavo S. Costa <lgcosta@pfsense.org>
MFC after: 7 days


222790 06-Jun-2011 hselasky

Reset clear-stall error counter before setting up the USB control transfers.

MFC after: 14 days


222786 06-Jun-2011 hselasky

Improve enumeration of Low- and Full-speed devices connected through a
High-speed USB HUB by resetting the transaction translator (TT)
before trying re-enumeration. Also when clear-stall fails multiple times
try a re-enumeration.

Suggested by: Trevor Blackwell
MFC after: 14 days


222696 04-Jun-2011 hselasky

Rename recently added USB serial driver.

Suggested by: YongHyeon PYUN
MFC after: 7 days


222581 01-Jun-2011 yongari

Poke correct GPIO pins for newer axe(4) controllers with Marvell
PHY. Newer models seem to use different LED mode that requires
enabling both GPIO1 and GPIO2.

Tested by: marcel


222578 01-Jun-2011 hselasky

Add support for new USB serial driver.

Submitted by: Lev Serebryakov, lev @
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


222018 17-May-2011 ru

Renamed PCI_INTERFACE_XHCI to PCIP_SERIALBUS_USB_XHCI and moved it
to <dev/pci/pcireg.h>.

Reviewed by: hselasky
MFC after: 3 days


221883 14-May-2011 hselasky

Add new USB ID's.

Submitted by: Jim Bryant
MFC after: 3 days


221720 10-May-2011 bms

Add VID for Simtec Electronics.
Add PID for Simtec Electronics EntropyKey, a hardware random number generator.


221623 08-May-2011 hselasky

Cleanup usb_notify_addq_compat(). It should not
be needed any more.

MFC after: 7 days


221605 07-May-2011 hselasky

Add new USB ID.

Submitted by: Dmitry Luhtionov
MFC after: 7 days


221407 03-May-2011 marius

- Remove attempts to implement setting of BMCR_LOOP/MIIF_NOLOOP
(reporting IFM_LOOP based on BMCR_LOOP is left in place though as
it might provide useful for debugging). For most mii(4) drivers it
was unclear whether the PHYs driven by them actually support
loopback or not. Moreover, typically loopback mode also needs to
be activated on the MAC, which none of the Ethernet drivers using
mii(4) implements. Given that loopback media has no real use (and
obviously hardly had a chance to actually work) besides for driver
development (which just loopback mode should be sufficient for
though, i.e one doesn't necessary need support for loopback media)
support for it is just dropped as both NetBSD and OpenBSD already
did quite some time ago.
- Let mii_phy_add_media() also announce the support of IFM_NONE.
- Restructure the PHY entry points to use a structure of entry points
instead of discrete function pointers, and extend this to include
a "reset" entry point. Make sure any PHY-specific reset routine is
always used, and provide one for lxtphy(4) which disables MII
interrupts (as is done for a few other PHYs we have drivers for).
This includes changing NIC drivers which previously just called the
generic mii_phy_reset() to now actually call the PHY-specific reset
routine, which might be crucial in some cases. While at it, the
redundant checks in these NIC drivers for mii->mii_instance not being
zero before calling the reset routines were removed because as soon
as one PHY driver attaches mii->mii_instance is incremented and we
hardly can end up in their media change callbacks etc if no PHY driver
has attached as mii_attach() would have failed in that case and not
attach a miibus(4) instance.
Consequently, NIC drivers now no longer should call mii_phy_reset()
directly, so it was removed from EXPORT_SYMS.
- Add a mii_phy_dev_attach() as a companion helper to mii_phy_dev_probe().
The purpose of that function is to perform the common steps to attach
a PHY driver instance and to hook it up to the miibus(4) instance and to
optionally also handle the probing, addition and initialization of the
supported media. So all a PHY driver without any special requirements
has to do in its bus attach method is to call mii_phy_dev_attach()
along with PHY-specific MIIF_* flags, a pointer to its PHY functions
and the add_media set to one. All PHY drivers were updated to take
advantage of mii_phy_dev_attach() as appropriate. Along with these
changes the capability mask was added to the mii_softc structure so
PHY drivers taking advantage of mii_phy_dev_attach() but still
handling media on their own do not need to fiddle with the MII attach
arguments anyway.
- Keep track of the PHY offset in the mii_softc structure. This is done
for compatibility with NetBSD/OpenBSD.
- Keep track of the PHY's OUI, model and revision in the mii_softc
structure. Several PHY drivers require this information also after
attaching and previously had to wrap their own softc around mii_softc.
NetBSD/OpenBSD also keep track of the model and revision on their
mii_softc structure. All PHY drivers were updated to take advantage
as appropriate.
- Convert the mebers of the MII data structure to unsigned where
appropriate. This is partly inspired by NetBSD/OpenBSD.
- According to IEEE 802.3-2002 the bits actually have to be reversed
when mapping an OUI to the MII ID registers. All PHY drivers and
miidevs where changed as necessary. Actually this now again allows to
largely share miidevs with NetBSD, which fixed this problem already
9 years ago. Consequently miidevs was synced as far as possible.
- Add MIIF_NOMANPAUSE and mii_phy_flowstatus() calls to drivers that
weren't explicitly converted to support flow control before. It's
unclear whether flow control actually works with these but typically
it should and their net behavior should be more correct with these
changes in place than without if the MAC driver sets MIIF_DOPAUSE.

Obtained from: NetBSD (partially)
Reviewed by: yongari (earlier version), silence on arch@ and net@


221199 29-Apr-2011 kevlo

Guard against default ni_chan

PR: kern/144642
Submitted by: Arthur Hartwig <a_hartwig at fastmaildot fm>


221179 28-Apr-2011 jhb

Trim some additional unnecessary <linker_set.h> includes.

MFC after: 1 week


221077 26-Apr-2011 hselasky

The maximum NCM frame size must be so that it
will generate a short terminated USB transfer if
the maximum NCM frame size is greater than what
the driver can handle.

Reported by: Matthias Benesch
MFC after: 7 days
Approved by: thompsa (mentor)


221073 26-Apr-2011 hselasky

Fix for missing EHCI datatoggle change case.

Reported by: Mike Tancsa
MFC after: 3 days
Approved by: thompsa (mentor)


220558 12-Apr-2011 hselasky

We don't need to call EOWRITE4(sc, EHCI_USBINTR, 0) directly from each EHCI
bus driver at detach, hence ehci_detach() does exactly this since r199718.

Submitted by: Luiz Otavio O Souza
MFC after: 7 days
Approved by: thompsa (mentor)


220535 11-Apr-2011 mav

Rework change made at r203146. Instead of reporting all wire errors as
SCSI status errors to CAM (that was wrong, as it too often turned retriable
wire errors into non-retriable REQUEST SENSE errors), do it only for STALL
errors on control pipe of the CBI devices. STALL on control pipe is just
a one of the ways to report error for CBI devices.

PR: usb/150401, usb/154593.
Reviewed by: hselasky
MFC after: 1 week


220304 03-Apr-2011 hselasky

- Fix for missing event if a libUSB USB transfer is started and
stopped rapidly in succession.

Reported by: J.R. Oldroyd
MFC after: 7 days
Approved by: thompsa (mentor)


220303 03-Apr-2011 hselasky

- Correct EHCI interrupt disabling at detach.

Submitted by: Luiz Otavio O Souza
MFC after: 7 days
Approved by: thompsa (mentor)


220301 03-Apr-2011 hselasky

- Improvements to USB PF solution
- Add more fields for USB device and host mode
- Add more information to USB PF header so that decoding
can easily be done by software analyzer tools like
Wireshark.
- Optimise usbdump to display USB streams in text format
more efficiently.
- Software using USB PF must be recompiled after
this commit, due to structure changes.

MFC after: 7 days
Approved by: thompsa (mentor)


220235 01-Apr-2011 kevlo

- Minor style(9) cleanup
- Make functions static


219983 25-Mar-2011 hselasky

Fix initialisation order with regard to debug prints.

Reported by: Luiz Otavio O Souza
MFC after: 14 days
Approved by: thompsa (mentor)


219982 25-Mar-2011 kevlo

Fix panic while associating access point.
While here, add the SMC SMCWUSB-G


219949 24-Mar-2011 hselasky

Fix typo.

Reported by: Garrett Cooper
MFC after: 14 days
Approved by: thompsa (mentor)


219930 23-Mar-2011 hselasky

Comply with style(9).

Reported by: gavin
MFC after: 14 days
Approved by: thompsa (mentor)


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)


219845 21-Mar-2011 hselasky

- Bugfix: Fix a EHCI hardware race, where the hardware computed data toggle
value is updated after that we read it in the queue-head. This patch can
fix problems with BULK timeouts. The issue was found on a Nvidia chipset.

MFC after: 14 days
Approved by: thompsa (mentor)


219395 08-Mar-2011 hselasky

- Bugfix: Root HUBs do not support re-enumeration.

MFC after: 14 days
Approved by: thompsa (mentor)


219257 04-Mar-2011 daichi

Add the Buffalo (Melco Inc.) WLI-UC-G301N

PR: usb/155229
Submitted by: Yoshiaki UCHIKAWA
MFC after: 1 week


219221 03-Mar-2011 hselasky

- Remove dependency to ucom from ulpt.

MFC after: 14 days
Approved by: thompsa (mentor)


219100 28-Feb-2011 hselasky

- Add support for software pre-scaling of ISOCHRONOUS transfers.

MFC after: 14 days
Approved by: thompsa (mentor)


219048 26-Feb-2011 hselasky

- Correct USB 3.0 wire-speed to 5.0Gbps

MFC after: 3 days
Approved by: thompsa (mentor)


218988 24-Feb-2011 hselasky

- Add support for some non-standard USB MIDI devices from Roland, by
means of allowing vendor specific interface class for audio and MIDI devices.
- Add new quirks for this. The vendor and product list in OpenBSD's
dev/usb/umidi_quirks.c was used as reference.

MFC after: 14 days
Approved by: thompsa (mentor)


218909 21-Feb-2011 brucec

Fix typos - remove duplicate "the".

PR: bin/154928
Submitted by: Eitan Adler <lists at eitanadler.com>
MFC after: 3 days


218864 19-Feb-2011 hselasky

Add more udav device ID's.

Submitted by: Rick van der Zwet <info@rickvanderzwet.nl>
MFC after: 7 days
Approved by: thompsa (mentor)


218765 17-Feb-2011 hselasky

- Fix build of manual page and inclusion of mos driver into kernel config file.
- Fix style compliancy by wrapping some long lines in if_mos.c

Approved by: thompsa (mentor)


218730 16-Feb-2011 hselasky

Fix build breakage in if_mos.c when USB_DEBUG option is set.

Approved by: thompsa (mentor)


218729 16-Feb-2011 hselasky

Add support for new USB to ethernet controller:
Moschip MCS7730/MCS7830

Submitted by: Rick van der Zwet <info@rickvanderzwet.nl>
Approved by: thompsa (mentor)


218676 14-Feb-2011 hselasky

* Fix page fault caused by referring freed node.

While updating Tx stats, already freed node could be referred and cause
page fault. To avoid such panic, spool Tx stats in driver's softc. Then,
on every ratectl interval, grab node though ieee80211_iterate_nodes() and
update ratectl stats.

* Simplify some code in run_iter_func().

* Fix typo

* Use memset instead of bzero (hselasky @)

PR: kern/153938
Submitted by: PseudoCylon <moonlightakkiy@yahoo.ca>
Approved by: thompsa (mentor)


218492 09-Feb-2011 bschmidt

Rework beacon handling re-enable run_updateslot().

Drivers which rely on net80211 to create the beacon need to call
ieee80211_beacon_update() on iv_update_beacon() calls. This is required
that certain bits, e.g. TIM, get updated. A call to ieee80211_beacon_alloc()
is not enough because it does not care about flags which can only change
during runtime. By design a beacon is supposed to be allocated only once
while moving into RUN state.

To handle all possible calls to iv_update_beacon() the run_updateslot()
function has been revived and run_updateprot() has been added.
run_updateslot() handles slot time changes and run_updateprot() changes
to protection, both can change while nodes associate/leave.

Submitted by: Alexander Zagrebin <alex at zagrebin.ru>,
PseudoCylon <moonlightakkiy atyahoo.ca>
MFC after: 3 weeks


218475 09-Feb-2011 hselasky

Minor cleanup:
- use device_printf() instead of printf() to give more accurate warnings.
- use memcpy() instead of bcopy().
- add missing #if's for non-FreeBSD compilation.

Approved by: thompsa (mentor)


218461 08-Feb-2011 marcel

Improve the error interrupt handler. In particular, read the
error address on a decoding error to unlatch it and to allow
us to print a better diagnostics message. This also has the
side effect of clearing the condition, which prevents an
interrupt storm.


218422 07-Feb-2011 n_hibma

Curitel UM150 needs a quirk to stop it from detaching straight after
attach (resetting actually).

Submitted by: Oleg Nauman
MFC after: 1 week


218229 03-Feb-2011 hselasky

Fix for detection of MTK 3329 GPS USB devices.

Submitted by: Mykhaylo Yehorov
PR: usb/153929
Approved by: thompsa (mentor)


218178 01-Feb-2011 n_hibma

New ID for the Novatel MC547

PR: 154127
Submitted by: Mike Tancsa
MFC after: 1 day


218165 01-Feb-2011 hselasky

Use correct kernel types for all fields in USB PF code and headers.

Approved by: thompsa (mentor)


217793 24-Jan-2011 hselasky

Add more sanity checks for USB_HOST_ALIGN input values. Re-factor existing
checks for readability.

Approved by: thompsa (mentor)


217718 22-Jan-2011 hselasky

Allow USB_HOST_ALIGN to be configured at compile time. This patch is
necessary for MIPS based RouterStation Pro board and maybe other MIPS
based boards as well.

Submitted by: Milan Obuch
Approved by: thompsa (mentor)


217637 20-Jan-2011 n_hibma

Add another ID for the ZTE MF190 Surf Stick

Submitted by: nagilum
MFC after: 1 day


217558 18-Jan-2011 hselasky

Make USB packet filtering code optional.

Approved by: thompsa (mentor)


217556 18-Jan-2011 mdf

Specify a CTLTYPE_FOO so that a future sysctl(8) change does not need
to rely on the format string.


217511 17-Jan-2011 bschmidt

Pull ieee80211_ratectl_node_init() calls from drivers into net80211.
This fixes hostap mode for at least ral(4) and run(4), because there is
no sufficient call into drivers which could be used initialize the node
related ratectl variables.

MFC after: 3 days


217374 13-Jan-2011 hselasky

- Add support for 64-byte contexts to XHCI driver.
- Remove some dead code.
- Fixed one instance of missing endian conversion.

Approved by: thompsa (mentor)


217350 13-Jan-2011 jhb

Use software interrupt priorities for USB kthreads instead of hardware
interrupt priorities.

Reviewed by: hps
MFC after: 2 weeks


217323 12-Jan-2011 mdf

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

Commit the rest of the devices.


217274 11-Jan-2011 gavin

Improve or fix some comments. No functional change.

MFC after: 1 week


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


217202 09-Jan-2011 gavin

Add support for the Zeagle N2iTion3 Dive Computer to uplcom(4). This brings
the list of supported devices in sync with kernel.org git revision
f36ecd5de93e4c85a9e3d25100c6e233155b12e5, and OpenBSD uplcom.c r1.54


217200 09-Jan-2011 gavin

Sync the list of devices supported by uslcom(4) with Linux, bringing in
all new devices added between our r211022 and their git revision
93ad03d60b5b18897030038234aa2ebae8234748

Also correct a Foxconn entry.

MFC after: 1 week


217072 06-Jan-2011 jhb

Remove bogus usage of INTR_FAST. "Fast" interrupts are now indicated by
registering a filter handler rather than a threaded handler. Also remove
a bogus use of INTR_MPSAFE for a filter.


217061 06-Jan-2011 gavin

Support the Uniform Industrial Corp (UIC) MSR206 Magnetic Card Reader.

MFC after: 1 week


216284 08-Dec-2010 yongari

r184610 changed the way how TX frames are handled on AX88178 and
AX88772 controllers. ASIX added a new feature for AX88178/AX88772
controllers which allows combining multiple TX frames into a single
big frame. This was to overcome one of USB limitation where it
can't generate more than 8k interrupts/sec which in turn means USB
ethernet controllers can not send more than 8k packets per second.
Using ASIX's feature greatly enhanced TX performance(more than 3~4
times) compared to 7.x driver. However it seems r184610 removed
boundary checking for buffered frames which in turn caused
instability issues under certain conditions. In addition, using
ASIX's feature triggered another issue which made USB controller
hang under certain conditions. Restarting ethernet controller
didn't help under this hang condition and unplugging and replugging
the controller was the only solution. I believe there is a silicon
bug in TX frame combining feature on AX88178/AX88772 controllers.

To address these issues, reintroduce the boundary checking for both
AX88178 and AX88772 after copying a frame to USB buffer and do not
use ASIX's multiple frame combining feature. Instead, use USB
controller's multi-frame transmit capability to enhance TX
performance as suggested by Hans[1].
This should fix a long standing axe(4) instability issues reported
on AX88772 and AX88178 controllers. While I'm here remove
unnecessary TX frame length check since upper stack always
guarantee the size of a frame to be less than MCLBYTES.

Special thanks to Derrick Brashear who tried numerous patches
during last 4 months and waited real fix with patience. Without
this enthusiastic support, patience and H/W donation I couldn't fix
it since I was not able to trigger the issue on my box.

Suggested by: hselasky [1]
Tested by: Derrick Brashear (shadow <> gmail dot com>
H/W donated by: Derrick Brashear (shadow <> gmail dot com>
PR: usb/140883


216267 07-Dec-2010 weongyo

Introduces IFF_CANTCONFIG interface flag to point that the interface
isn't configurable in a meaningful way. This is for ifconfig(8) or
other tools not to change code whenever IFT_USB-like interfaces are
registered at the interface list.

Reviewed by: brooks
No objections: gavin, jkim


216249 07-Dec-2010 hselasky

Re-add a status check which sneaked out during r214804.
This change can fix some USB error messages showing up
during bootup.

MFC after: 3 days
Approved by: thompsa (mentor)


216091 01-Dec-2010 weongyo

Explicitly UP and DOWN the usbus interfaces (IFT_USB) when it's attached
or detached. Normally it should be changed through user land ioctl(2)
system calls but it looks there's no apps for USB and no need.

With this patch, libpcap would detect the usbus interfaces correctly and
tcpdump(1) could dump the USB packets into PCAP format with -w option.
However it couldn't print the output to console because there's no
printer-routine at tcpdump(1).


216072 30-Nov-2010 hselasky

We need to define a cdev variable associated with each USB device,
hence existing applications like webcamd are expecting that.
This problem was introduced by SVN change 214221 where cdev=
was replaced by ugen= by accident. Solve this problem by
redefining cdev= in devd notifications.

MFC after 3 days.

Approved by: thompsa (mentor)


216057 29-Nov-2010 sanpei

Add new device ids.
Buffalo (Melco Inc.) WLI-UC-G

PR: 141777


216045 29-Nov-2010 gavin

Support the Falcom Twist USB GSM/GPRS modem in uftdi(4)

PR: usb/151862
Submitted by: Alessandro de Manzano <demanzano dqmicro.it>
MFC after: 1 week


215969 28-Nov-2010 yongari

Add initial AX88772A support.

H/W donated by: Derrick Brashear (shadow <> gmail dot com)


215968 28-Nov-2010 yongari

Introduce new macro AXE_IS_178_FAMILY and AXE_IS_772. Include
AX88772A and AX88772B for future extension. While here add TX
buffer size for 178 family controllers.


215966 28-Nov-2010 yongari

Do full controller initialization in axe_reset() for controllers
that require special configuration from EEPROM. This will put
controllers into known sane state.


215964 28-Nov-2010 yongari

Make sure to change to currently selected media.


215963 28-Nov-2010 yongari

Do not reinitialize controller if it's already running.


215962 28-Nov-2010 yongari

Move axe_reset() to axe_init().


215960 28-Nov-2010 yongari

Apply GPIO configuration for all CICADA PHYs.
While I'm here show selected phymode to ease of debugging.


215846 25-Nov-2010 weongyo

Removes a unused function `usb_bus_find'.


215812 25-Nov-2010 weongyo

Handles the unit number correctly that the previous commit had a problem
(wrong unit number for a host controller) when the module is load /
unloaded repeatly. Attaching the USB pf is moved to usbus device's
attach.

Pointed by: yongari


215810 25-Nov-2010 weongyo

Assigning the unit number for each interfaces could not use ubus->parent
because it could differ depending on the host controller type. It could
lead the duplicate unit number assignment.


215804 24-Nov-2010 weongyo

Fixes a compiler warning when it's compiled with INVARIANTS.

Pointy hat to: me


215802 24-Nov-2010 weongyo

Removes all duplicated code with BPF that it's greatly simplified and
take all benefits whenever BPF code is improved.

Pointed by: jkim
Reviewed by: thompsa


215764 23-Nov-2010 weongyo

Fixes a kernel crash when usb module is reloaded after unload that it
didn't destroy the cdev properly.

Pointy hat to: me
Reported by: Brandon Gooch <jamesbrandongooch at gmail dot com>, jkim


215734 23-Nov-2010 n_hibma

Make the Huawei E1820 work (Emile Coetzee).
Shorten the descriptive strings for Huawei devices. The vendor or
operator name should not be included in the device name.

Submitted by: Emile Coetzee
MFC after: 3 days


215649 22-Nov-2010 weongyo

Adds a USB packet filter feature to the stack that it could capture
packets which go through each USB host controllers. Its implementations
are almost based on BPF code and very similar with it except it's
little bit customized for USB packet only. The userland program
usbdump(8) would be committed soon.

Discussed with: hps, thompsa, yongari


215335 15-Nov-2010 kevlo

Remove unused struct rue_type


215330 15-Nov-2010 thompsa

Add the Sierra MC8700.


215326 14-Nov-2010 dd

Add a special INIT product ID used by some models of the HUAWEI
K3765 datacard. After ejecting this device, it reappears using
the normal K3765 ID. It does not switch automatically

Reviewed by: n_hibma
Obtained from: OpenBSD
MFC after: 2 weeks


215258 13-Nov-2010 n_hibma

Add the switch config for the XS Stick.

It speaks AT commands on 2 out of 3 serial ports, but it has not been
verified to work at all speaking PPP yet.


215254 13-Nov-2010 hselasky

Fix compiler warnings.

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


215104 10-Nov-2010 n_hibma

Add a man page for usb_quirk module, plus references in other man pages,
and updated comments in the usb_quirk.h header file.

The main purpose of this is to expose the quirks for ejecting 3G
modules. usb_modeswitch in Linux does a great job of collecting
information on these, and with the quirks module people can try out the
modeswitch config file entries on FreeBSD, hence the SCSI strings in the
man page.

MFC after: 2 weeks


215095 10-Nov-2010 n_hibma

Allow specification of eject method through quirks, so people can test
drive eject methods before supplying patches.


214919 07-Nov-2010 n_hibma

Bugfix: Set the bit that marks a device number in use.
This would cause a panic when disconnecting the second serial device.

Submitted by: Lucius Windschuh


214894 06-Nov-2010 bschmidt

Instead of using the AMRR ratectl algo as default for drivers which have
the IEEE80211_C_RATECTL flag set, default to NONE for all drivers. Only if
a driver calls ieee80211_ratectl_init() check if the NONE algo is still
selected and try to use AMRR in that case. Drivers are still free to use
any other algo by calling ieee80211_ratectl_set() prior to the
ieee80211_ratectl_init() call.

After this change it is now safe to assume that a ratectl algo is always
available and selected, which renders the IEEE80211_C_RATECTL flag pretty
much useless. Therefore revert r211314 and 211546.

Reviewed by: rpaulo
MFC after: 2 weeks


214852 05-Nov-2010 n_hibma

Bugfix: In rev 213509 Alexander committed a duplicate ID for ZTE STOR
based devices (QUALCOMMINC 0x2000). He made it use SCSI eject instead of
ZTE STOR eject. This prevented my ZTE MF626 dongle from switching.

- Apply both eject methods for ZTE STOR based devices. Works on my as
well as mav's device.
- Remove the duplicate.
- Sort the usbdevs entries for Qualcomm so this won't happen again.
- Add bootverbose message displaying the fact that we are ejecting (and
how).

Reviewed by: mav
MFC after: 2 weeks


214843 05-Nov-2010 n_hibma

Implement ucom_set_pnpinfo_usb() providing ttyname and port number
information through devd. My E220 now produces the notification (1 line):

+u3g0 at bus=1 hubaddr=1 port=0 devaddr=2 interface=0 \
vendor=0x12d1 product=0x1003 devclass=0x00 devsubclass=0x00 \
sernum="" release=0x0000 intclass=0xff intsubclass=0xff \
ttyname=U0 ttyports=2 on uhub0

Note: serial/ufoma and net/uhso still provide port number and tty name
(uhso only) information through sysctls, which should now be removed.

Reviewed by: hpselasky


214831 05-Nov-2010 n_hibma

- Remove an unused entry from the softc (only used in a debugging printf).
- Fix the loop count on detach (causing a panic on detaching a serial
dongle).
- Increase a buffer in case some driver want extra long tty device names
(postfixing the purpose of the tty for example, e.g. u3g.ppp).


214830 05-Nov-2010 n_hibma

Bugfix: Move the 'at <location string' to the beginning of the attach
notification. devd would stop evaluating at 'at' (not '<k>=<v>') and
hence prevent 'port=X' (and 'bus=<"on" string>) from making it into the
environment for the devd action.

Reviewed by: hselasky
MFC after: 2 weeks


214809 04-Nov-2010 n_hibma

Don't terminate the notification with \n. This is done in
usb_device.c:devctl_notify_f().


214804 04-Nov-2010 hselasky

Add code to warm reset a USB 3.0 port.

Approved by: thompsa (mentor)


214800 04-Nov-2010 hselasky

Add new USB quirk.

Submitted by: Dmitry Luhtionov
Approved by: thompsa (mentor)


214761 03-Nov-2010 n_hibma

- Simplify the way unit/subunit allocation is done in ucom.
- hw.usb.ucom.cons_unit is now split into
hw.usb.ucom.cons_unit/...cons_subunit.

Note: The tunable/sysctl hw.usb.ucom.cons_unit needs to be reviewed if

a) a console was defined a USB serial devices, and a USB device with
more than 1 subunit is present, and this device is attached before the
device functioning as a console

or

b) a console was defined on a USB device with more than 1 subunit

Reviewed by: hps
MFC after: 2 weeks


214726 03-Nov-2010 hselasky

Clean up leftover USB device ID after r213856. This fixes:
options USB_VERBOSE

Submitted by: Lucius Windschuh
Approved by: thompsa (mentor)


214429 27-Oct-2010 hselasky

Add support for setting per-interface PnP information.

Submitted by: Nick Hibma
Approved by: thompsa (mentor)


214349 25-Oct-2010 nwhitehorn

The EHCI_CAPLENGTH and EHCI_HCIVERSION registers are actually sub-registers
within the first 4 bytes of the EHCI memory space. For controllers that
use big-endian MMIO, reading them with 1- and 2-byte reads would then
return the wrong values. Instead, read the combined register with a 4-byte
read and mask out the interesting quantities.


214221 22-Oct-2010 hselasky

Add possibility to generate devctl notifications regardless of UGEN presence.

Submitted by: Nick Hibma
Approved by: thompsa (mentor)


213931 16-Oct-2010 mav

Allow umass to use bigger transactions for USB 3.0 devices. It is less
important for USB 2.0 devices and some of them reported to have problems
with large transactions. But USB 3.0 benchmarks show that limited number
of transactions per second on USB makes impossible to reach high transfer
speeds without using bigger transactions.

On my tests this change allows to read up to 220MB/s from USB-attached SSD
(at block size of 256-512KB), comparing to only 113MB/s without it.

Reviewed by: hselasky


213894 15-Oct-2010 marius

Converted the remainder of the NIC drivers to use the mii_attach()
introduced in r213878 instead of mii_phy_probe(). Unlike r213893 these
are only straight forward conversions though.

Reviewed by: yongari


213880 14-Oct-2010 hselasky

Add new USB device IDs to the list of supported devices.

PR: usb/151043
Approved by: thompsa (mentor)


213879 14-Oct-2010 hselasky

- Add more USB devices to usbdevs and rename some previously unknown ones.
- Add more USB mass storage quirks.

Submitted by: Dmitry Luhtionov
PR: usb/149934, usb/143045
Approved by: thompsa (mentor)


213876 14-Oct-2010 hselasky

Add more USB device IDs to supported list of devices.

Submitted by: Nick Hibma
PR: usb/149900
Approved by: thompsa (mentor)


213872 14-Oct-2010 hselasky

Fix forwarding of Line Register Status changes to TTY layer.

PR: usb/149675
Approved by: thompsa (mentor)


213871 14-Oct-2010 hselasky

Remove unused EHCI register definition.
Define reserved EHCI register.

Approved by: thompsa (mentor)


213869 14-Oct-2010 hselasky

Revert most of r197682 (EHCI Hardware BUG workaround). Implement
proper solution which is to not use the TERMINATE pointer, but rather
link to a halted TD. The initial fix was due to a misunderstanding
about how the EHCI hardware works. Thanks to Alan Stern for clearing
this up. This patch can increase mass storage read performance
significantly when the IRQ rate is less than 8000 IRQ/s.

Approved by: thompsa (mentor)


213864 14-Oct-2010 hselasky

Avoid using endless retransmission at EHCI hardware level, hence this hide
errors from the applications. Only use endless retransmission while in the
non-addressed state on a High-Speed device.

Approved by: thompsa (mentor)


213861 14-Oct-2010 hselasky

Correct EHCI root HUB interface descriptor.

Approved by: thompsa (mentor)


213857 14-Oct-2010 hselasky

Correct EHCI port register read.

Approved by: thompsa (mentor)


213856 14-Oct-2010 hselasky

- Add more USB devices to usbdevs and rename some previously unknown ones.
- Add more USB mass storage quirks.

Submitted by: Dmitry Luhtionov
PR: usb/149934, usb/143045
Approved by: thompsa (mentor)


213852 14-Oct-2010 hselasky

- Add support for LibUSB in 32-bit compatibility mode.

Approved by: thompsa (mentor)


213809 13-Oct-2010 hselasky

USB network (NCM driver):
- correct the ethernet payload remainder which
must be post-offseted by -14 bytes instead of
0 bytes. This is not very clearly defined in the
NCM specification.
- add development feature about limiting the
maximum datagram count in each NCM payload.
- zero-pad alignment data
- add TX-interval tuning sysctl

Approved by: thompsa (mentor)


213805 13-Oct-2010 hselasky

USB Network:
- Add new driver for iPhone tethering
- Supports the iPhone 3G/3GS/4G ethernet protocol

Approved by: thompsa (mentor)


213804 13-Oct-2010 hselasky

USB WLAN:
- Add new device ID

PR: usb/150989
Approved by: thompsa (mentor)


213803 13-Oct-2010 hselasky

USB network (UHSO):
- Correct network interface flags.

PR: usb/149039
Submitted by: Fredrik Lindberg
Approved by: thompsa (mentor)


213802 13-Oct-2010 hselasky

Correct some root HUB descriptor fields in multiple controller drivers.
Remove an unused structure.

Approved by: thompsa (mentor)


213717 12-Oct-2010 glebius

We already have dummy receive buffer in sc->buffer.

Suggested by: hselasky


213696 11-Oct-2010 yongari

Do not setup interrupt endpoint for axe(4).
It seems axe(4) controllers support interrupt endpoint such that
enabling interrupt endpoint generates about 1000 interrupts/sec.
Controllers transfer 8 bytes data through interrupt endpoint and
the data include link UP/DOWN state as well as some PHY related
information. Previously axe(4) didn't use the transferred data and
didn't even try to read the data. Because axe(4) counts on mii(4)
to detect link state changes there is no need to use interrupt
endpoint here.

This change fixes generation of unnecessary interrupts which was
seen when interface is brought to UP.

No objections from: hselasky


213537 08-Oct-2010 emaste

In r207768 I silenced a console warning from rum(4). There was legitimate
opposition to the change, since really we need to implement missing
functionality in drivers or the 802.3 layer.

For now, restore a reminder message for a missing rum_update_mcast, but
print it only once.


213509 07-Oct-2010 mav

Add ID for Vodafone (ZTE) Mobile Broadband K3565-Z modem.

Reviewed by: hselasky


213481 06-Oct-2010 glebius

Remove extra assignment.


213480 06-Oct-2010 glebius

Add support to Alcatel/TCTMobile X080S USB 3G modem. The device needs
special eject command to reappear as modem. It also requires DIR_IN flag
in the command message, so we supply some dummy data along with the command.

Feedback from X080S owners appreciated. I have not a pure Alcatel/TCTMobile
device, but another one under "Svyaznoy" (Связной) brand, and I didn't yet
managed to get it working. It is successfully recognized, it responds to
AT commands, but it shuts up right after successfull CONNECT response.

Reviewed by: hps


213439 04-Oct-2010 hselasky

Print out correct USB connection speed for USB 3.0 mass storage devices.

Approved by: thompsa (mentor)


213438 04-Oct-2010 yongari

RX buffer allocation failure is not an input error. Controller
successfully received a frame but we failed to pass it to upper
stack due to lack of resources. So update if_iqdrops counter
instead of updating if_ierrors counter.


213436 04-Oct-2010 yongari

Don't count input error twice. uether_rxbuf() already updated that
counter.


213435 04-Oct-2010 hselasky

This commit adds full support for USB 3.0 devices in host and device
mode in the USB core. The patch mostly consists of updating the USB
HUB code to support USB 3.0 HUBs. This patch also add some more USB
controller methods to support more active-alike USB controllers like
the XHCI which needs to be informed about various device state events.

USB 3.0 HUBs are not tested yet, due to lack of hardware, but are
believed to work.

After this update the initial device descriptor is only read twice
when we know that the bMaxPacketSize is too small for a single packet
transfer of this descriptor.

Approved by: thompsa (mentor)


213434 04-Oct-2010 hselasky

Add missing #if's

Approved by: thompsa (mentor)


213433 04-Oct-2010 hselasky

Add more strict USB string filtering.

Approved by: thompsa (mentor)


213432 04-Oct-2010 hselasky

Serialise USB re-enumeration with the USB explore thread.
This patch can solve problems when multiple USB devices are
re-enumerated at the same time on the same bus.

Approved by: thompsa (mentor)


213431 04-Oct-2010 hselasky

Correct IOCTL return code.

Approved by: thompsa (mentor)


213427 04-Oct-2010 hselasky

Add missing USB 3.0 definitions. Correct some wrong ones.

Approved by: thompsa (mentor)


213426 04-Oct-2010 hselasky

Add missing DRIVER_MODULE() entry for the musbotg driver.
Add some more comments.

Approved by: thompsa (mentor)


213425 04-Oct-2010 hselasky

The root mount hold reference was not released on USB controller
attach failures during boot. Fix this.

Approved by: thompsa (mentor)


213424 04-Oct-2010 yongari

Make upper stack know driver's output status. This change increased
TX performance from 221kpps to 231kpps.


213423 04-Oct-2010 yongari

Move updating TX packet counter to the inside of send loop. axe(4)
controllers combine multiple TX requests into single one if there
is room in TX buffer of controller. Updating TX packet counter at
the end of TX completion resulted in incorrect TX packet counter as
axe(4) thought it sent 1 packet. There is no easy way to know how
many combined TX were completed in the callback.
Because this change updates TX packet counter before actual
transmission, it may not be ideal one. But I believe it's better
than showing fake 8kpps under high TX load. With this change, TX
shows 221kpps on Linksus USB200M.


213379 03-Oct-2010 hselasky

Commit initial version of new XHCI driver which was written from
scratch. This driver adds support for USB3.0 devices. The XHCI
interface is also backwards compatible to USB2.0 and USB1.0 and will
evntually replace the OHCI/UHCI and EHCI drivers.

There will be follow-up commits during the coming week to link the
driver into the default kernel build and add missing USB3.0
functionality in the USB core. Currently only the driver files are
committed.

Approved by: thompsa (mentor)


212980 21-Sep-2010 sanpei

Add new device ids.
Buffalo (Melco Inc.) LUA3-U2-AGT
Logitec LAN-GTJ/U2A(usb/119981)

PR: usb/119981 and me
Submitted by: "Y.Okabe" <be_works_us at yahoo.com>, hiroo at oikumene.gcd.org
Reviewed by: thompsa
MFC after: 3 days


212830 18-Sep-2010 n_hibma

Cleanup white space and typos.


212621 14-Sep-2010 marius

Use saner nsegments and maxsegsz parameters when creating certain DMA tags;
tags for 1-byte allocations cannot possibly be split across 2 segments and
maxsegsz must not exceed maxsize.


212136 02-Sep-2010 thompsa

Reduce the need to accesss struct usb_device by providing functions to access
the product, manufacturer and serial strings.

Submitted by: Hans Petter Selasky


212135 02-Sep-2010 thompsa

Add support for power mode filtering as some USB hardware does not support
power saving.

Submitted by: Hans Petter Selasky


212134 02-Sep-2010 thompsa

Change argument for usbd_get_dma_delay() from USB bus to USB device, some
embedded hardware needs to know exactly which device is in question before it
exactly can decide the required delay.

Submitted by: Hans Petter Selasky


212133 02-Sep-2010 thompsa

Fix setting of the rx_max and tx_max variables. If the expected buffer size is
greater than 65535 bytes then the CDC driver might not work as expected, which
is not likely with the existing USB speeds.

Submitted by: Hans Petter Selasky


212132 02-Sep-2010 thompsa

Fix UMS_BUTTON_MAX define name


212131 02-Sep-2010 thompsa

Fix build breakage from r212127


212130 02-Sep-2010 thompsa

Add GPIO programming for more PHY hardware.

Submitted by: yongari


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


212127 02-Sep-2010 thompsa

We need to grab a node reference count to vap->iv_bss before using it as it is
possible for the node to be replaced and freed at any time by
ieee80211_sta_join1().


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


211314 14-Aug-2010 bschmidt

Introduce IEEE80211_C_RATECTL, drivers which use the ratectl framework
should set this capability.

MFC after: 2 weeks


211153 10-Aug-2010 gavin

Now that the uplcom(4) driver can autodetect the chipset type, sync the
list of devices supported by uplcom(4) with the following sources:

NetBSD src/sys/dev/usb/uplcom.c 1.70
OpenBSD src/sys/dev/usb/uplcom.c 1.52
Linux drivers/usb/serial/pl2303.h from kernel 2.6.35
BeOS usb_serial/driver.c 1.32

Give several devices better descriptions, and rename
PROLIFIC2 -> NETINDEX while here to match everybody else.

MFC after: 6 weeks (after r211111)


211111 09-Aug-2010 gavin

Attempt to autodetect the cype of chipset, rather than storing this
within the device table. This code uses the same algorithm as used in the
Linux, NetBSD and DragonflyBSD driver.

While investigating this, it became apparent that the Linux driver always
initialises the device, and not just in the PL2303HX case. Change
uplcom(4) to do the same.

This change allows us to synchronize our device ID list with Linux and
NetBSD, without requiring knowledge of the chipset in use.

Reviewed by: hselasky
MFC after: 6 weeks


211104 09-Aug-2010 gavin

Add entries for some devices I have locally.


211083 08-Aug-2010 gavin

The PL2302X can support any baud rate <= 6Mbps, allow any rate to be set.

PR: usb/128324
Submitted by: Mike Durian <durian shadetreesoftware.com> (original patch)
MFC after: 2 weeks


211022 07-Aug-2010 gavin

Sync the list of devices supported by uslcom(4) with NetBSD, Linux, OpenBSD
and BeOS. The devices supported by uslcom(4) are now in sync with:

NetBSD src/sys/dev/usb/uslsa.c 1.11
OpenBSD src/sys/dev/usb/uslcom.c 1.20
Linux source/drivers/usb/serial/cp210x.c from kernel 2.6.35
BeOS usb_serial/driver.c 1.32

Two vendor/product IDs from Linux have not been added to uslcom(4):
SILABS SAEL - This device has special code in u3g to support it
SILABS GSM2228 - I suspect this should also be covered by u3g(4).

MFC after: 1 week


211021 07-Aug-2010 gavin

Sort this file a little better: the vendors are supposed to be sorted by
vendor ID in the vendor section, and by symbolic name in the product
section. Products are sorted by product ID. While here, get rid of a
duplicate Microsoft Mouse entry, revealed by sorting.

MFC after: 1 week


210931 06-Aug-2010 kib

Disable sync cache for the Transcend Jetflash V90. It is more specific
quirk over the general one for transcend sticks.

Submitted by: Mykola Dzham <i levsha me>
MFC after: 1 week


210576 28-Jul-2010 tijl

Add quirk for Apacer HT202 USB 2.0 Flash Drive.

PR: usb/107243
Approved by: kib (mentor)
MFC after: 1 week


210575 28-Jul-2010 gavin

Provide descriptions for three vendors and four devices in usbdevs. Use
the official vendor listed for 0x076b, rather than Omnikey, as in the PR.

PR: usb/123351
Submitted by: Marcin Cieslak <saper SYSTEM.PL>
MFC after: 1 week


210571 28-Jul-2010 gavin

Add support for the Corega CG-USBRS232R to uplcom(4)

PR: usb/129173
Submitted by: SHIMAOKA Shunsuke <shimaoka.shunsuke gmail.com>
MFC after: 1 week


210556 28-Jul-2010 gavin

Support the Pyramid KBS USB LCD under uftdi(4)

PR: usb/129758
Submitted by: joao lima <jlima visionware.pt>
MFC after: 1 week


210553 27-Jul-2010 thompsa

Fix the entry for the Option ICON452 where an underscore was used instead of
whitespace.

Submitted by: Lucius Windschuh


210543 27-Jul-2010 gavin

Prevent uhid(4) from attaching to the Liebert PowerSure Personal XT UPS.

PR: usb/129251
Submitted by: Andrew D Wiles <adw+gnats avatastic.co.uk>
MFC after: 1 week


210534 27-Jul-2010 gavin

Add support for the Longcheer WM66 USB HSDPA Modem to u3g(4)

This patch is different to that provided in the PR, due to the changes in
this driver since 7.x.

PR: usb/129945
Submitted by: Antonio Hilario <avahilario gmail.com>
MFC after: 1 week


210524 27-Jul-2010 gavin

- Support two devices made by West Mountain Radio in uslcom(4) [1]

- Bring in several other devices from OpenBSD while here. Use the
official manufacturer name over the OpenBSD name in the case of
GEMALTO. Reorder list slightly to aid future syncing.

- Remove duplicate SILABS CP2102 define from usbdevs

PR: usb/131912 [1]
Submitted by: Jack Twilley <mathuin gmail.com> [1]
MFC after: 1 week


210516 26-Jul-2010 gavin

Prevent uhid(4) from attaching to the Gembird Silver Shield remote power
plug. Note that the Vendor ID 0x04b4 is officially assigned to Cypress,
so use that instead of adding a second vendor with an identical ID, in the
same way other similar cases are treated in usb/usbdevs.

PR: usb/132785
Submitted by: Dirk-Willem van Gulik <dirkx webweaving.org>
MFC after: 1 week


210515 26-Jul-2010 gavin

Prevent ukbd(4) and uhid(4) from attaching when a WiSPY DBx Spectrum
Analyzer is attached.

PR: usb/134631
Submitted by: Jesse Kempf <jkempf davisvision.com>
MFC after: 1 week


210469 25-Jul-2010 gavin

Give a name to the HTC Wizard Smartphone

PR: usb/135575
Submitted by: lioux


210275 20-Jul-2010 thompsa

- Support for Globetrotter iCON 452.
- Fixed the interface probe routine to only attach to USB interfaces the driver
actually supports. This allows other drivers to attach to things like
MicroSD slots etc.
- Fixed network interface enumeration to be globally sequential instead of
relying on the USB interface numbers. This make sure the first network
interface always is at uhso0 and the second at usho1 and so on.
- Added a radio kill switch; exposed through sysctl.
- Updated the manual page to be verbose about the number of serial ports and
include iCON 452 in the set of tested hardware.

Submitted by: Fredrik Lindberg


210018 13-Jul-2010 remko

Add a 4 and 7 port USB hub from NEC.

PR: 148189
MFC after: 1 week


209968 13-Jul-2010 takawata

Fix comment.

Pointed out by: hrs


209967 13-Jul-2010 takawata

One more Prolific serial device ID.

Submitted by: Kouichi Hirabayashi on FreeBSD-users-jp
MFC after: 1 week.


209918 11-Jul-2010 thompsa

Use more compact deviceid table.

Submitted by: Akinori Furukoshi


209917 11-Jul-2010 thompsa

Update for style(9).

Submitted by: Akinori Furukoshi (author)


209447 22-Jun-2010 thompsa

Add new device id.

PR: usb/147190


209445 22-Jun-2010 thompsa

Add a mass storage quirk.

PR: usb/147196


209444 22-Jun-2010 thompsa

Add new device id.

PR: usb/146907


209443 22-Jun-2010 thompsa

Add support for LOW speed BULK transfers. This mode is not recommended by the
USB 2.0 standard, though some USB devices use it anyway.

Submitted by: Hans Petter Selasky


209189 14-Jun-2010 jkim

Fix typos that broke duration calculations on protection frames. A similar
fix was done for ral(4) long ago and it must be copy-and-paste bugs.

Found by: clang


209144 14-Jun-2010 thompsa

- Because hostapd calls iv_key_set() before if_init(), make sure key_set
callback function will be executed, and that the key won't be deleted during
the init process.
- txmic and rxmic are written into the chip the same place regardless of
opmode.
- Make the hardware generate 802.11 sequence numbers.

Submitted by: Akinori Furukoshi
Obtained from: git://gitorious.org/run/run.git


209131 13-Jun-2010 raj

Convert Marvell ARM platforms to FDT convention.

The following systems are involved:

- DB-88F5182
- DB-88F5281
- DB-88F6281
- DB-78100
- SheevaPlug

This overhaul covers the following major changes:

- All integrated peripherals drivers for Marvell ARM SoC, which are
currently in the FreeBSD source tree are reworked and adjusted so they
derive config data out of the device tree blob (instead of hard coded /
tabelarized values).

- Since the common FDT infrastrucutre (fdtbus, simplebus) is used we say
good by to obio / mbus drivers and numerous hard-coded config data.

Note that world needs to be built WITH_FDT for the affected platforms.

Reviewed by: imp
Sponsored by: The FreeBSD Foundation.


209062 11-Jun-2010 avg

fix a few cases where a string is passed via format argument instead of
via %s

Most of the cases looked harmless, but this is done for the sake of
correctness. In one case it even allowed to drop an intermediate buffer.

Found by: clang
MFC after: 2 week


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.


208019 13-May-2010 thompsa

Sync run(4) driver from author's site.

Submitted by: Akinori Furukoshi
Obtained from: git://gitorious.org/run/run.git


208018 12-May-2010 thompsa

Reduce diffs to p4.

Add test code for delaying or failing usb control requests, disabled by
default under ifdef USB_REQ_DEBUG.

Submitted by: Hans Petter Selasky


208017 12-May-2010 thompsa

Fix possibly wrong bit masking.

Reported by: n_hibma
Submitted by: Hans Petter Selasky


208016 12-May-2010 thompsa

Add new FTDI USB device ID.

PR: kern/146483
Submitted by: Andre Albsmeier


208015 12-May-2010 thompsa

Increase the max ports to 12, 3G devices exist where the ppp endpoint is #9.

Requested by: n_hibma


208014 12-May-2010 thompsa

Back out r203140 which was causing problems when the first and the last
microframe slot was not in the smask. The problem was that the EHCI driver was
then thinking that the transfer was immediately complete in some cases. Which
could lead to freeze-like situations, which can be recovered by unplugging the
USB device.

Reported by: Richard Kolkovich
Submitted by: Hans Petter Selasky


208013 12-May-2010 thompsa

Add missing ifdefs for usb power saving support.

Submitted by: Hans Petter Selasky


208012 12-May-2010 thompsa

Support getting signed and unsigned HID data.

Submitted by: Alex Deiter
Reviewed by: Hans Petter Selaksy


208011 12-May-2010 thompsa

Add the ASUS MyPal A730W device id.

Submitted by: Dmitry Luhtionov


208010 12-May-2010 thompsa

Provide more information about the device location in the USB system.

Submitted by: Hans Petter Sekasky


208009 12-May-2010 thompsa

Enable support for mouse panning wheels.

Submitted by: Henry Hu


208008 12-May-2010 thompsa

If a USB device is suspended and a USB set config request is issued when the
USB enumeration lock is locked, then the USB stack fails to resume the device
because locking the USB enumeration lock is part of the resume procedure. To
solve this issue a new lock is introduced which only protects the suspend and
resume callbacks, which can be dropped inside the usbd_do_request_flags()
function, to allow suspend and resume during so-called enumeration operations.

Submitted by: Hans Petter Selasky


208007 12-May-2010 thompsa

Staticise usb_ref_device and usb_unref_device.

Submitted by: Hans Petter Selasky


208006 12-May-2010 thompsa

Add quirks for the Alcor SDCR_6362 Card Reader, Freecom HDD storage device and
Samsung YP_U4 music player.

PR: usb/145265, usb/146104
Submitted by: Dmitry Luhtionov, Urankar Mikael, Peter Toth


207768 08-May-2010 emaste

Add dummy function for ic_update_mcast (a la if_urtw) to avoid console
spam.


207554 03-May-2010 sobomax

Add new tunable 'net.link.ifqmaxlen' to set default send interface
queue length. The default value for this parameter is 50, which is
quite low for many of today's uses and the only way to modify this
parameter right now is to edit if_var.h file. Also add read-only
sysctl with the same name, so that it's possible to retrieve the
current value.

MFC after: 1 month


207080 22-Apr-2010 thompsa

Use a more obvious prefix for the USB control (endpoint 0) transfers rather
than default_*.


207079 22-Apr-2010 thompsa

Properly name the sxlocks, mutexes and condvars.


207078 22-Apr-2010 thompsa

Use SX_DUPOK rather than making the string unique.


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


207027 21-Apr-2010 thompsa

Also add the usb mode to the devd string as the usb controller can work in both
host or device (gadget) modes.

Suggested by: HPS


207020 21-Apr-2010 thompsa

Change usb devd events from fake attach to a notify. The ugen device is not a
proper device_t so it faked the devctl event to appear like one, this is now a
notify which allows more information to be passed.

We notify for both the device attach/detach and for each usb interface. A devd
rule can now match on the interface properties, including composite devices
which may have a uvideo interface and also usound and possibly uhid too.

An example to match a umass device with a scsi subclass and BBB protocol would be

notify 100 {
match "system" "USB";
match "subsystem" "INTERFACE";
match "type" "ATTACH";
match "intclass" "0x08";
match "intsubclass" "0x06";
match "intprotocol" "0x50";
action ...
};

The old attach devctl event has been retained for the moment to make merging to
8.1 easier. This was never compatible with 7.x or earlier due to the ugen regex
change needed.

Reviewed by: warner
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


206595 14-Apr-2010 kevlo

Eliminate duplicate comment


206544 13-Apr-2010 kevlo

The Quanta Q101 modem has a different type of cdrom driver disk,
add the product id and use a standard scsi eject.

Reviewed by: thompsa
MFC after: 3 days


206417 09-Apr-2010 rpaulo

Remove previously added if 0's.

MFC after: 1 month


206369 07-Apr-2010 rpaulo

Remove debugging code that snuck in.


206358 07-Apr-2010 rpaulo

net80211 rate control framework (net80211 ratectl).

This framework allows drivers to abstract the rate control algorithm and
just feed the framework with the usable parameters. The rate control
framework will now deal with passing the parameters to the selected
algorithm. Right now we have AMRR (the default) and RSSADAPT but there's
no way to select one with ifconfig, yet.
The objective is to have more rate control algorithms in the net80211
stack so all drivers[0] can use it. Ideally, we'll have the well-known
sample rate control algorithm in the net80211 at some point so all
drivers can use it (not just ath).

[0] all drivers that do rate control in software, that is.

Reviewed by: bschmidt, thompsa, weyongo
MFC after: 1 months


205805 28-Mar-2010 thompsa

Do not sync cache for the PL2506

PR: usb/144915
Submitted by: Monty Hall


205804 28-Mar-2010 thompsa

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

Reported by: Steven Noonan
Submitted by: Hans Petter Selasky


205803 28-Mar-2010 thompsa

Make sure the bsd_urb_list gets initialised and that new URB's are queued at
the end of the list.

Submitted by: Hans Petter Selasky


205802 28-Mar-2010 thompsa

Add PCI IDs for two more nForce controllers.

Submitted by: Dmitry Luhtionov @ gmail.com


205801 28-Mar-2010 thompsa

Add a couple of usb product IDs.

Submitted by: Dmitry Luhtionov @ gmail.com


205681 26-Mar-2010 netchild

- add some usb devices (scanner, printer, usb storage)
- add quirks for the usb storage

Reviewed by: hselasky


205354 20-Mar-2010 imp

Add support for the Samsung S3C2xx0 family of ARM SoCs written by
Andrew Turner. The kernel supports the LN2410SBC evaluation board,
and likely others. These parts (or similar ones) are in some open
hardware designs for phones.

Submitted by: Andrew Turner


205043 11-Mar-2010 thompsa

Add device ID for the NATURAL4000 keyboard


205042 11-Mar-2010 thompsa

- Integrate latest driver code from OpenBSD
- Drain our tasks from the ieee80211 taskqueue
- Add more IDs

Submitted by: Akinori Furukoshi


205040 11-Mar-2010 thompsa

extend search for Apple Function Key.

PR: usb/144414
Submitted by: Hans Petter Selasky


205039 11-Mar-2010 thompsa

Add new device ID for the SMC 2514HUB

Submitted by: Alexander Best


205038 11-Mar-2010 thompsa

add new vendor ID for APACER

Submitted by: Paul B Mahol


205036 11-Mar-2010 thompsa

Implement USB kernel driver detach from userland.

Submitted by: Hans Petter Selasky


205035 11-Mar-2010 thompsa

Make sure there is a way to reset the endpoint FIFO on transfer errors for
ISOCHRONOUS transfers

Submitted by: Hans Petter Selasky


205034 11-Mar-2010 thompsa

For USS820 driver we need to manually reset TX FIFO at each SETUP transaction
because the chip doesn't do this by itself.

Submitted by: Hans Petter Selasky


205033 11-Mar-2010 thompsa

isochronous endpoint descriptors should have two more bytes which are zero by
default.

Submitted by: Hans Petter Selasky


205032 11-Mar-2010 thompsa

Add new uvisor(4) device ID.

PR: usb/144201


205031 11-Mar-2010 thompsa

It appears that some UVISOR devices do not handle when the clear stall command
is issued at the beginning of the initial IN/OUT data transfers. Reason
unknown, probably firmware fault. Now the stall is only cleared on data
transfer errors.

PR: usb/144199
Submitted by: Hans Petter Selasky


205030 11-Mar-2010 thompsa

- make the usb_temp_setup() and usb_temp_unsetup() functions public so that
other modules can generate USB descriptors.
- extend the vendor specific request function by one length pointer argument,
because not all descriptors store the length in the first byte. For example
HID descriptors.

Submitted by: Hans Petter Selasky


205029 11-Mar-2010 thompsa

Use wMaxPacketSize for the uftdi input buffer size.

Submitted by: Hans Petter Selasky


205026 11-Mar-2010 thompsa

Reapply r185998 which was overwritten at some point.


205005 11-Mar-2010 thompsa

Wrap the proc wakeup special case for ddb in ifdef DDB.

Submitted by: Giovanni Trematerra


204632 03-Mar-2010 joel

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

Obtained from: NetBSD


203906 14-Feb-2010 thompsa

Add device ID for the FTDI 4232H.

PR: usb/143832
Submitted by: UEMURA Tetsuya


203905 14-Feb-2010 thompsa

Add support for the E1752 3G modem and the required eject command.

Submitted by: Milan Obuch


203903 14-Feb-2010 thompsa

Make umodem more tolerant for devices which modem descriptors are misplaced.

Reported by: Erick Wales
Submitted by: Hans Petter Selasky


203899 14-Feb-2010 thompsa

Add UQ_KBD_BOOTPROTO quirk needed in r203896


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


203693 09-Feb-2010 thompsa

Disable the use of the IAAD usb doorbell on NVidia controllers as it can cause
the hardware to stall.

Submitted by: Hans Petter Selasky


203507 05-Feb-2010 thompsa

The ZTE MF633R modem has a different type of cdrom driver disk, add the product
ID and use a standard scsi eject.

Reported by: Patrick Lamaiziere
MFC after: 3 days


203506 04-Feb-2010 thompsa

Properly name the 0x0016 ZTE product as MF633R now that its known.


203146 29-Jan-2010 thompsa

Rework cam error handling to fix Mitsumi floppy drives.

Submitted by: mav


203145 29-Jan-2010 thompsa

Simplify attach for UMASS_PROTO_CBI_I mode and change some switch() returns
into breaks.

Submitted by: Hans Petter Selesky


203144 29-Jan-2010 thompsa

Add null check on quirk lookup and add a couple of umass quirks.

Submitted by: Hans Petter Selesky


203143 29-Jan-2010 thompsa

Add the Netgear WPN111


203142 29-Jan-2010 thompsa

Sync usb products to perforce.


203141 29-Jan-2010 thompsa

Attempt to recover on a TX error rather than stopping all transfers.

Submitted by: Hans Petter Selesky


203140 29-Jan-2010 thompsa

Optimise EHCI ISOC HS done check.

Submitted by: Hans Petter Selasky


203139 29-Jan-2010 thompsa

Add device ID.

PR: usb/142427


203138 28-Jan-2010 thompsa

Use device_printf rather than printf + device_get_nameunit.


203137 28-Jan-2010 thompsa

Release the firmware after loading to the device.


203134 28-Jan-2010 thompsa

Add run(4), a driver for Ralink RT2700U/RT2800U/RT3000U USB 802.11agn devices.

This driver was written for OpenBSD by Damien Bergamini and ported over by
Akinori Furukoshi.


203108 28-Jan-2010 mav

MFp4: Large set of CAM inprovements.

- Unify bus reset/probe sequence. Whenever bus attached at boot or later,
CAM will automatically reset and scan it. It allows to remove duplicate
code from many drivers.
- Any bus, attached before CAM completed it's boot-time initialization,
will equally join to the process, delaying boot if needed.
- New kern.cam.boot_delay loader tunable should help controllers that
are still unable to register their buses in time (such as slow USB/
PCCard/ CardBus devices), by adding one more event to wait on boot.
- To allow synchronization between different CAM levels, concept of
requests priorities was extended. Priorities now split between several
"run levels". Device can be freezed at specified level, allowing higher
priority requests to pass. For example, no payload requests allowed,
until PMP driver enable port. ATA XPT negotiate transfer parameters,
periph driver configure caching and so on.
- Frozen requests are no more counted by request allocation scheduler.
It fixes deadlocks, when frozen low priority payload requests occupying
slots, required by higher levels to manage theit execution.
- Two last changes were holding proper ATA reinitialization and error
recovery implementation. Now it is done: SATA controllers and Port
Multipliers now implement automatic hot-plug and should correctly
recover from timeouts and bus resets.
- Improve SCSI error recovery for devices on buses without automatic sense
reporting, such as ATAPI or USB. For example, it allows CAM to wait, while
CD drive loads disk, instead of immediately return error status.
- Decapitalize diagnostic messages and make them more readable and sensible.
- Teach PMP driver to limit maximum speed on fan-out ports.
- Make boot wait for PMP scan completes, and make rescan more reliable.
- Fix pass driver, to return CCB to user level in case of error.
- Increase number of retries in cd driver, as device may return several UAs.


203087 27-Jan-2010 weongyo

adds sysctl knobs to show rate statistics that it could be useful to
debug slow TX speed.


202609 19-Jan-2010 weongyo

Product ID of D-Link DWA-120 after loading the firmware is incorrect.


202608 19-Jan-2010 weongyo

removes a hack to attach TRENDnet TEW-504UB/EU that I think this issue
is solved with r202607. Now idProduct of all uath(4) devices should be
decreased after loading the firmware.


202270 14-Jan-2010 thompsa

Grammar nits.

Submitted by: Ben Kaduk


202243 13-Jan-2010 thompsa

Update to Fredrik's latest uhso driver. This changes port detection, adds
comments and other code nits.

Submitted by: Fredrik Lindberg <fli@shapeshifter.se>


202181 13-Jan-2010 thompsa

Add a driver by Fredrik Lindberg for Option HSDPA USB devices. These differ
from standard 3G wireless units by supplying a raw IP/IPv6 endpoint rather than
using PPP over serial. uhsoctl(1) is used to initiate and close the WAN
connection.

Obtained from: Fredrik Lindberg <fli@shapeshifter.se>


202054 11-Jan-2010 thompsa

Add the Globetrotter GE40x.

Submitted by: Mike Tancsa


201797 08-Jan-2010 trasz

Remove unused uhci_dump_qhs().

Reviewed by: hps


201766 08-Jan-2010 thompsa

Remove unneeded includes.


201758 07-Jan-2010 mbr

Remove extraneous semicolons, no functional changes.

Submitted by: Marc Balmer <marc@msys.ch>
MFC after: 1 week


201714 07-Jan-2010 thompsa

Fix debug printf on 64bit arches.

Spotted by: b. f.


201701 07-Jan-2010 thompsa

Add new umass quirks for Western Digital MYBook and JMicron JM20337.

PR: usb/142225, usb/142228
Submitted by: Thomas Ward, Yoshikazu GOTO
MFC after: 1 week


201681 06-Jan-2010 thompsa

Improve u3g device ejecting by providing additional methods for the eject
command in the usb_msctest routines, as well as a general tidyup.

This now properly ejects the ZTE MF636, Option Gi0322 and Novatel MC950D
devices I have on my desk.


201680 06-Jan-2010 thompsa

scratch_size was incorrectly passed as language ID when retrieving the language
ID table, this broke string retrieval on some devices.

Submitted by: Hans Petter Selasky
Reported by: Renato Botelho


201318 31-Dec-2009 thompsa

Add new device ID to uipaq driver

PR: usb/141936
Submitted by: HASHI Hiroaki


201071 28-Dec-2009 thompsa

Compact USB_VENDOR_X and USB_PRODUCT_Y in the quirk tables.


201028 26-Dec-2009 thompsa

Use macros to strip off USB_VENDOR_ and USB_PRODUCT_ from some id tables to make
them more compact and readable.


200887 23-Dec-2009 thompsa

Shorten the USB_QUIRK_ENTRY macro and undef it at the end, its only internal.


200886 23-Dec-2009 thompsa

Move all Mass Storage Quirks over to the USB quirk module.

Submitted by: Hans Petter Selasky


200885 23-Dec-2009 thompsa

Sync usb vendor/product defines to p4

Submitted by: HPS


200827 22-Dec-2009 thompsa

Add missed usb product define in r200826.


200826 22-Dec-2009 thompsa

add new ID to UFTDI driver.

Submitted by: YAMAMOTO, Shigeru


200823 22-Dec-2009 thompsa

Add more OHCI pci ids.

Submitted by: Hans Petter Selasky


200822 22-Dec-2009 thompsa

Add more EHCI pci ids.

Submitted by: Hans Petter Selasky


200658 18-Dec-2009 thompsa

Keep list sorted.


200657 18-Dec-2009 thompsa

Add a bunch of new 3G ids obtained from from various operating systems and
Internet sources.

Obtained from: Linux, NetBSD, OpenBSD, etc


200653 17-Dec-2009 thompsa

Use the EVENTHANDLER system to hook into the usb device configuration and
perform a function such as ejecting a 3G autoinstaller disk. The eventhandler
system properly tracks threads and is safe to unload, remove the
setting/clearing of a function pointer in the kernel by u3g(4) which included a
tsleep for safety.


200396 11-Dec-2009 thompsa

Wrap long lines.


200395 11-Dec-2009 thompsa

Add a quirk for the Curitel UM175 where setting multiplexing for call
management over the data endpoint causes communication to die.

Take this one step further and model it on the existing NetBSD quirk and import
other device IDs from them.

Obtained from: NetBSD


200376 11-Dec-2009 thompsa

Revert r199331, the UM175 is in fact a cdc-acm device handled by umodem(4).


200308 09-Dec-2009 thompsa

Fix hardware issue with FTDI chips: avoid sending a zero length packet due to
hardware sending garbage on ZLPs.

Reported by: Corey Smith
Submitted by: HPS


200307 09-Dec-2009 thompsa

Fix dwSignature for NCM mode and add extra debug output.

Submitted by: HPS


200306 09-Dec-2009 thompsa

Add new device ids.

PR: usb/140951, usb/140923
Submitted by: Romain Tartiere, Brett Glass


200305 09-Dec-2009 thompsa

Correct name, 82801IJ -> 82801JI

Submitted by: mitya_cabletv.dp.ua


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>


200087 03-Dec-2009 thompsa

Add uhci/ehci controller ids.

Submitted by: mitya_cabletv.dp.ua


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


199876 28-Nov-2009 ed

Remove unneeded inclusion of <sys/termios.h>.


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.


199814 25-Nov-2009 thompsa

Disable interrupts after doing early takeover of the usb controller in case usb
isnt actually compiled in (or kldloaded) as the controller could cause spurious
interrupts.

Tested by: Florian Smeets


199718 23-Nov-2009 thompsa

Actually disable interrupts in ehci_detach().

Reviewed by: HPS


199680 22-Nov-2009 thompsa

Make the mode setting transfer asynchronous.

Submitted by: Rohit Grover


199678 22-Nov-2009 thompsa

Add missed register change in r199676.

Submitted by: Hans Petter Selasky


199676 22-Nov-2009 thompsa

Correct register access for USB device side operation on the musb controller.

Submitted by: Hans Petter Selasky


199675 22-Nov-2009 thompsa

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

Submitted by: Andriy Gapon


199673 22-Nov-2009 thompsa

Initialise variable before use.

Submitted by: Hans Petter Selasky


199672 22-Nov-2009 thompsa

Improve High Speed slot allocation mechanism by moving the computation to the
endpoint rather than per xfer and provide functions around get/free of resources.

Submitted by: Hans Petter Selasky


199332 16-Nov-2009 thompsa

Sort ID list by vendor.


199331 16-Nov-2009 thompsa

Add the Curitel UM175 3g device.


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


199062 08-Nov-2009 thompsa

Correct Olympus quirk.

Submitted by: Pavel Gubin


199061 08-Nov-2009 thompsa

Add missing mtx_destroy().

Submitted by: Sebastian Huber


199059 08-Nov-2009 thompsa

improve support for high speed isochronous endpoints which does not run 1:1,
but needs intervalling 1:2, 1:4 or 1:8

Submitted by: Hans Petter Selasky


199058 08-Nov-2009 thompsa

Integrate lost interrupts patch from the old USB stack.

Some EHCI chips from VIA / ATI seem to trigger interrupts before writing back
the qTD status, or miss signalling occasionally under heavy load. If the host
machine is too fast, we can miss transaction completion - when we scan the
active list the transaction still seems to be active. This generally exhibits
itself as a umass stall that never recovers.

We work around this behaviour by setting up this callback after any softintr
that completes with transactions still pending, giving us another chance to
check for completion after the writeback has taken place

Submitted by: Alexander Nedotsuko
MFC after: 3 days


199057 08-Nov-2009 thompsa

ehci_init() will do reset and set the usbrev flag. Fix problem where
ehci_reset() was called before ehci_init().

PR: usb/140242
Submitted by: Sebastian Huber


198862 03-Nov-2009 weongyo

fixes a typo that value should be 0 not 10.


198776 01-Nov-2009 thompsa

- Add usb_fill_bulk_urb() and usb_bulk_msg() linux compat functions [1]
- Don't write actual length if the actual length pointer is NULL [2]
- correct Linux Compatibility error codes for short isochronous IN transfers
and make status field signed.

Submitted by: Leunam Elebek [1], Manuel Gebele [2]


198775 01-Nov-2009 thompsa

Fix a corner case where usbd_transfer_drain() can return too early if the
callback has dropped the mutex, leading to a panic.

Submitted by: HPS
MFC after: 3 days


198774 01-Nov-2009 thompsa

Check unit number and provide string name for consdev.

Submitted by: HPS


198501 26-Oct-2009 thompsa

Revert r198500 for now, this will break situations when
hw.pci.usb_early_takeover is set to zero and the SMM release
is never done.

Pointed out by: marcel


198500 26-Oct-2009 thompsa

Remove usb controller takeover code now that it is handled by the pci code.

Reminded by: jhb
Reviewed by: HPS


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


198307 20-Oct-2009 thompsa

Change from CAM_TID_INVALID to CAM_SEL_TIMEOUT error code when the usb device
has been yanked, this works around a cam recounting bug when
CAM_DEV_UNCONFIGURED is set late in the detach. In certain conditions the
reference to the XPT device would not be released which would cause the usb
explore thread to sleep forever on "simfree", preventing any new usb devices to
be found/ejected on the bus.

This is intended to be a quick workaround to the problem without touching CAM
so it can be merged to 8.0.

Suggested by: mav
MFC after: 3 days


198257 19-Oct-2009 thompsa

Add support for newer WinChipHead CH341 chips, previously in the uch341 driver.

Submitted by: HPS


198256 19-Oct-2009 thompsa

Remove the newly added uch341 driver, it will be merged into uchcom instead.

Suggested by: takawata
Submitted by: HPS


198194 18-Oct-2009 weongyo

overhauls urtw(4) for supporting RTL8187B devices properly that there
was major changes to initialize RF chipset and set H/W registers and
removed a lot of magic numbers on code. Details are as follows:

- uses the endpoint 0x89 to get TX status information which used to
get TX complete or retry numbers or get a beacon interrupt. It's
only valuable for RTL8187B.
- removes urtw_write[8|16|32]_i functions that it's useless now.
- uses ic->ic_updateslot to set SLOT, SIFS, DIES, EIFS, CW_VAL
registers that doesn't set these whenever the channel is changed.
- code for initializing RF chipset for RTL8187B changed a lot that
there was many problems on TX transfers so it doesn't work properly
even if just for a ping/pong. Now it becomes more stable than
before that TX throughputs using netperf(1) were about 15 ~ 17Mbps/s
though sometimes it encounters packet losses.
- removes a lot of magic numbers that in the previous all of
representing RX and TX descriptors were consisted of magic numbers
and structures. It'd be more readable rather than before.
- calculates TX duration more accurately for urtw(4) devices.
- style(9)


198153 15-Oct-2009 thompsa

Correct offset calcluation for the NCM implementation.

Submitted by: HPS


198152 15-Oct-2009 thompsa

Only poll ukbd if KDB is active.

Submitted by: HPS


198151 15-Oct-2009 thompsa

Workaround buggy BIOS code in USB regard. By doing the BIOS to OS handover for
all host controllers at the same time, we avoid problems where the BIOS will
actually write to the USB registers of all the USB host controllers every time
we handover one of them, and consequently reset the OS programmed values.

Submitted by: avg
Reviewed by: jhb


198099 14-Oct-2009 weongyo

fixes a TX hang that could be possible to happen when the trasfers are
in the high speed that some drivers don't call if_start callback after
marking ~IFF_DRV_OACTIVE.

MFC after: 3 days


198098 14-Oct-2009 weongyo

fixes a TX hang bug that it could happen when if_start callback didn't
be restarted by full of the output queue.

MFC after: 3 days
Tested by: bsduser <bsd at acd.homelinux.org>


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


197761 04-Oct-2009 weongyo

updates device entries supported with the product name not magic numbers
and sorts entries. WUSB54GCV2 is added.

Obtained from: OpenBSD


197682 01-Oct-2009 thompsa

EHCI Hardware BUG workaround

The EHCI HW can use the qtd_next field instead of qtd_altnext when a short
packet is received. This contradicts what is stated in the EHCI datasheet.
Also the total-bytes field in the status field of the following TD gets
corrupted upon reception of a short packet! We work this around in software by
not queueing more than one job/TD at a time of up to 16Kbytes! The bug has been
seen on multiple INTEL based EHCI chips. Other vendors have not been tested
yet.

- Applications using /dev/usb/X.Y.Z, where Z is non-zero are affected, but not
applications using LibUSB v0.1, v1.2 and v2.0.
- Mass Storage (umass) is affected.

Submitted by: Hans Petter Selasky
MFC after: 3 days


197573 28-Sep-2009 thompsa

Add back endpoint swap detection that was disabled in an earlier driver
conversion.

Submitted by: Hans Petter Selasky


197572 28-Sep-2009 thompsa

Add new FTDI IDs.

Submitted by: Maks Verver, Arrigo Marchiori


197570 28-Sep-2009 thompsa

Add experimental support for usb serial console and polled mode during DDB.

Submitted by: Hans Petter Selasky


197569 28-Sep-2009 thompsa

Add a config number quirk for the ELSA_MODEM1

Submitted by: Stefan Bethke


197568 28-Sep-2009 thompsa

add more device IDs

Reported by: Mike Tancsa
Submitted by: Hans Petter Selasky


197567 28-Sep-2009 thompsa

Allow setting of MAC address for AXE based ethernet adapters.

Submitted by: yongari


197566 28-Sep-2009 thompsa

Increase the rx buffer size to 16384 bytes, this increases RX performance from
50Mbps to 220Mbps on PLANEX GU-1000T.

Submitted by: yongari


197565 28-Sep-2009 thompsa

- Remove SAMSUNG_YP_U2 now that it is in the cam layer
- Add quirk from Tobias Grosser for Western Mypassword

Submitted by: Hans Petter Selasky


197564 28-Sep-2009 thompsa

MFp4

Add new usbdev entries for Marvell, FTDI, Option and Western.


197563 28-Sep-2009 thompsa

Add basic support for USB Network Control Model (NCM) v1.0 to if_cdce.c.

http://www.usb.org/developers/devclass_docs/NCM10.zip

Submitted by: Hans Petter Selasky


197562 28-Sep-2009 thompsa

Add extra safety locking when clobbering xfer->flags_int.started in start and
stop functions, because xfer->flags_int is also updated by the USB controller,
under the controller lock.

Submitted by: Hans Petter Selasky


197561 28-Sep-2009 thompsa

Correct buffer sizes used so that they match. The old code could give the
impression that a overflow situation existed but was not possible.

Reported by: kib
Submitted by: Hans Petter Selasky


197559 28-Sep-2009 thompsa

Add support for USB language selection.

PR: usb/138563
Reported by: Bruce Cran
Submitted by: Hans Petter Selasky


197558 28-Sep-2009 thompsa

Fix NULL-pointer dereference in usb_endpoint_foreach().

PR: usb/138389
Submitted by: Patroklos Argyroudis at census, inc


197557 28-Sep-2009 thompsa

Add support for ChipHead 341 serial port adapter.

Submitted by: Hans Petter Selasky


197556 28-Sep-2009 thompsa

Clear all interrupts rather than just SETUP packet.

Submitted by: Hans Petter Selasky


197555 28-Sep-2009 thompsa

Simplify logic around setting EHCI_QH_DTC and expand some htohc32(temp.sc, 0)
statements to zero.

Submitted by: Hans Petter Selasky


197554 28-Sep-2009 thompsa

Import two PCI quirks from Linux

- Add quirk for ATI SB600 and SB700 to free SMB controller
- Correct schedule sleep time to 10us on the VIA ehci controller

Reported by: Dorian B<FC>ttner, Andriy Gapon
Submitted by: Hans Petter Selasky


197553 28-Sep-2009 thompsa

MFp4 @ 168387

- clean up USB detach logic. There seems to be some problems detaching multiple
USB HUBs connected in series from the root.

- after this patch the rule is:
1) Always use device_detach() on the USB HUB first.
2) Never just device_delete_child() on the USB HUB, because that function
will traverse to all the device leaves and free them first, and then the USB
stack will free the devices twice which doesn't work very well.

- make sure the did DMA delay gets set after the timeout has elapsed to make
logic more clear. There is no functional difference.

Submitted by: Hans Petter Selasky


196970 08-Sep-2009 phk

Revert previous commit and add myself to the list of people who should
know better than to commit with a cat in the area.


196969 08-Sep-2009 phk

Add necessary include.


196826 04-Sep-2009 trasz

Make umass(4) pass device USB serial number to CAM, making it possible
to e.g. retrieve it using camcontrol(8).

Reviewed by: scottl, hps (earlier version)
Obtained from: Wheel Sp. z o.o. (http://www.wheel.pl)


196809 04-Sep-2009 weongyo

fix a TX issue on big endian machines like powerpc or sparc64. Now
zyd(4) should work on all architectures.

Obtained from: OpenBSD


196547 25-Aug-2009 thompsa

It is possible for all the kthreads to exit (hci modules unloaded) which in
turn ends our usb process. This means the proc pointer becomes invalid and will
panic if a new kthread is added. Count the number of threads and clear the proc
pointer on the last one.

Suggested by: julian
MFC after: 3 days


196498 24-Aug-2009 alfred

- Patch to allow USB controller to resume operation after
being polled.

- Remove the need for Giant from the USB HUB driver.

- Leave device unconfigured instead of disabling the USB port
when Huawei Autoinstall disk detection triggers. This should
fix problems that the Huawei device is not detected after
Autoinstall eject is issued.
- Reported by: Nikolay Antsiferov

- Fix memory use after free race for USB character devices.
- Reported by: Lucius Windschuh

- Factor out the enumeration lock into three functions to make the
coming newbus lock conversion more easy.
- usbd_enum_lock
- usbd_enum_unlock
- usbd_enum_is_locked

Submitted by: hps


196497 24-Aug-2009 alfred

Remove redundant locking.

Submitted by: hps


196496 24-Aug-2009 alfred

Add a reminder comment to optimize bus_dmamap_sync calls.

Submitted by: hps


196495 24-Aug-2009 alfred

Add mass storage quirks.

PR: usb/137138,usb/137226,usb/137789,usb/135372

Submitted by: hps


196494 24-Aug-2009 alfred

- fix uvisor support, mostly correct buffer sizes used.
- correct device info flag for SONY Cli NR70V

Reported by: Marc Fonvieille
Submitted by: hps


196493 24-Aug-2009 alfred

- Fix false positive uipaq probe

Reported by: Alexander Motin <mav@freebsd.org>

Submitted by: hps


196492 24-Aug-2009 alfred

- fix CDC ethernet matching order so that the match flags get correct.

Reported by: Juergen Lock

Submitted by: hps


196491 24-Aug-2009 alfred

We used force all of the GPIO pins low first and then
enable the ones we want. This has been changed to better
match the ADMtek's reference design to avoid setting the
power-down configuration line of the PHY at the same time
it is reset.

Submitted by: John Hood via hps


196490 24-Aug-2009 alfred

- FIFO's are always opened separately in read and write
direction even if the actual device is opened for read and
write. Fix fflags check so that the UFM and URIO drivers work.
Reported by: Krassimir Slavchev

Submitted by: hps


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


196488 24-Aug-2009 alfred

- allow disabling "root_mount_hold()" by
setting a sysctl/tunable at boot
- remove some redundant initial explore code

Submitted by: hps


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


196380 19-Aug-2009 raj

Fix USB cache sync operations for platforms with non-coherent DMA.

- usb_pc_cpu_invalidate() is called between [consecutive] reads from a device,
so a sequence of BUS_DMASYNC_POSTREAD and _PREREAD should be used. Note we
cannot use or'ed shorthand ( _POSTREAD | _PREREAD) for BUS_DMASYNC flags, as
the low level bus dma sync operation is implementation dependent and we
cannot assume the required order of operations to be guaranteed.

- usb_pc_cpu_flush() is called before writing to a device, so
BUS_DMASYNC_PREWRITE should be used.

Submitted by: Grzegorz Bernacki
Reviewed by: HPS, arm@, usb@ ML
Tested by: HPS, Mike Tancsa
Approved by: re (kib)
Obtained from: Semihalf


196274 16-Aug-2009 thompsa

Change the usb workers from kernel processes to threads, this is mostly a
cosmetic change to reduce cruft in the proc table.

Also change the idle wait message to `-` like how taskqueues are.

Reviewed by: julian
Approved by: re (kib)


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)


195978 30-Jul-2009 weongyo

fixes a typo for DWA120 device ID.

Reported by: Alexander Kuznetsov <skritku at gmail.com>
Approved by: re (kib)


195968 30-Jul-2009 alfred

Missed this file for r195963:
USB core:
- add support for defragging of written device data.
- improve handling of alternate settings in device side mode.
- correct return value from usbd_get_no_alts() function.
- reported by: HPS
- P4 ID: 166156, 166168

- report USB device release information to devd and pnpinfo.
- reported by: MIHIRA Sanpei Yoshiro
- P4 ID: 166221

Submitted by: hps
Approved by: re


195967 30-Jul-2009 alfred

USB CORE - Improve HID parsing

See PR description for more info. Patch is
implemented differently than suggested, but
having the same result.

PR: usb/137188

Submitted by: hps
Approved by: re


195966 30-Jul-2009 alfred

USB CORE - compat Linux:
- Patch request from Tim Borgeaud:
- add automatic locking
- add refcount for killing URB's

Submitted by: hps
Approved by: re


195965 30-Jul-2009 alfred

USB controller:
- allow disabling "root_mount_hold()" by setting "hw.usb.no_boot_wait" sysctl

Submitted by: hps
Approved by: re


195964 30-Jul-2009 alfred

ULPT:
- add conditional printer status checking
- P4 ID: 166176

Submitted by: hps
Approved by: re


195963 30-Jul-2009 alfred

USB core:
- add support for defragging of written device data.
- improve handling of alternate settings in device side mode.
- correct return value from usbd_get_no_alts() function.
- reported by: HPS
- P4 ID: 166156, 166168

- report USB device release information to devd and pnpinfo.
- reported by: MIHIRA Sanpei Yoshiro
- P4 ID: 166221

Submitted by: hps
Approved by: re


195962 30-Jul-2009 alfred

USB serial:
- add new ID for Huawei
- P4 ID: 166150

PR: usb/136761

Submitted by: hps
Approved by: re


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


195958 30-Jul-2009 alfred

USB controller:
- patch from Alexander Motin <mav@freebsd.org>
- add more ID's
- P4 ID: 165805

Submitted by: hps
Approved by: re


195916 27-Jul-2009 weongyo

adds DLINK2 DWA120 device.

PR: usb/136950
Reported by: Alexander Kuznetsov <skritku at gmail.com>
Approved by: re (kib)


195639 12-Jul-2009 marcel

MFp4:
USB CORE: busdma improvement

For single segment allocations the boundary field
of the BUSDMA tag should be zero. Currently all
single segment allocations are less than or equal
to 4096 bytes, so the limit does not kick in. If
any single segment USB allocations would be greater
than 4K, then it would be a problem.

Approved by: re (kensmith)
Obtained from: HPS


195146 28-Jun-2009 ed

Don't pick up Giant inside ucom(4).

Giant was only used here to lock down a bit mask of allocated unit
numbers. Change the code to use its own mutex.

Reviewed by: hselasky
Approved by: re (kib)


195133 28-Jun-2009 phk

Add ids of Sitecom USB wlan gadget.

Approved by: re (kib)


195121 27-Jun-2009 thompsa

Sync to p4

- Add support for devices that handle set and clear stall in hardware.
- Add missing get timestamp function
- Add more xfer flags

Submitted by: Hans Petter Selasky
Approved by: re (kib)


195080 26-Jun-2009 delphij

Add quirks for Actions MP4 player.

Submitted by: John Hixson <john ixsystems com>
Approved by: re (kib)
MFC after: 2 weeks


195049 26-Jun-2009 rwatson

Use if_maddr_rlock()/if_maddr_runlock() rather than IF_ADDR_LOCK()/
IF_ADDR_UNLOCK() across network device drivers when accessing the
per-interface multicast address list, if_multiaddrs. This will
allow us to change the locking strategy without affecting our driver
programming interface or binary interface.

For two wireless drivers, remove unnecessary locking, since they
don't actually access the multicast address list.

Approved by: re (kib)
MFC after: 6 weeks


194939 25-Jun-2009 weongyo

updates AMRR statistics with tx complete status that if not the tx rate
always would be reduced.


194937 25-Jun-2009 weongyo

uses ZYD_NOTIF_RETRYSTATUS info to count the number of retries.


194682 23-Jun-2009 thompsa

Fix a typeo in the frame len function to unbreak the build, make it shorter
while I am here.


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


194659 22-Jun-2009 thompsa

Fix length check for ugen control transfer.

Submitted by: Sylvestre Gallon, HPS


194584 21-Jun-2009 remko

use PROTO_DEFAULT.

Requested by: hps


194582 21-Jun-2009 remko

Add support for the Myson Heden 8813.
Note that I also added the usbdev to the list, because the 8813 version
is not yet known there. I might have twisted the sorting there but because
8813 comes before 8818, I added it before that (with _8813 to differentiate)
the item.

PR: 135628
Submitted by: Yoshikazu GOTO <goto at on-link dot jp>
Approved by: imp (mentor, implicit)


194329 17-Jun-2009 weongyo

reorders the sequence when the device is detached. After detaching the
interface is completed then it'll process other parts to avoid a race
condition.

Pointed by: jhb


194271 15-Jun-2009 thompsa

Fix usb2_find_descriptor function name.


194230 15-Jun-2009 thompsa

Fix _USB2_* refernces in the header protection defines.


194228 15-Jun-2009 thompsa

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


194227 15-Jun-2009 thompsa

Remove usb2_cv_* and just use the kernel condvar implementation, it was needed
earlier since condition variables didnt work with Giant but this was fixed 10
months ago.


194102 13-Jun-2009 sanpei

Correct entry of vendor ID 0x0d8c. It's C-Media, not ABC.

Obtained from: NetBSD usbdevs rev.1.418


194099 13-Jun-2009 thompsa

Make variables static where appropriate.

Found by: cscout


194072 12-Jun-2009 marcel

Move the memory layout definitions and logic from mvreg.h to mvwin.h
so that it isn't exposured unless needed. In particular this means
that it's easier to tune the memory layout based on board details.
While here, remove inclusion of <machine/intr.h> from mvreg.h. This
also contains exposure to SoC specifics in MI drivers, because NIRQ
depends on the SoC.


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


194065 12-Jun-2009 thompsa

Free the correct memory pointer.

Submitted by: Tim Borgeaud (via HPS)


194064 12-Jun-2009 thompsa

Minor device side improvement. Make sure a not complete state gets paired with
a complete state in device side mode for the default control endpoint.

Submitted by: Hans Petter Selasky


193803 09-Jun-2009 weongyo

unify zyd_tx_mgt() and zyd_tx_data() to simplify TX path and sorts
setting TX descritor.

While I'm here fixes a bug that the management frames only sent at 2
Mbits/s.


193733 08-Jun-2009 thompsa

Change driver_info to a ulong as it always stores a number and remove the only
diff of the usb_device_id struct to Linux.

Reviewed by: HPS


193644 07-Jun-2009 thompsa

Rename usb pipes to endpoints as it better represents what they are, and struct
usb_pipe may be used for a different purpose later on.


193466 04-Jun-2009 thompsa

Remove duplicate variable setting.

Spotted by: Sylvestre Gallon


193420 04-Jun-2009 weongyo

reimplements RF logic for GCT chipset (as known as UW2453) to support
ICIDU NI-707503 which is donated by Nick Hibma (great thanks!). Though
it has a MAXIM RF (0x8) there's some success reports with using GCT RF
(0x9) codes and it worked well for ICIDU NI-707503 too. So codes for
MAXIM and GCT RFs are integrated.

Before this commit, if I rememeber correctly, MAXIM RF is never tested
that it seems it's a first report working with FreeBSD.


193419 04-Jun-2009 weongyo

cleanups the device match list.


193338 02-Jun-2009 thompsa

Place the fifo and ref counting variables on the stack to prevent races.

Submitted by: Hans Petter Selasky


193318 02-Jun-2009 thompsa

Reorgansise the logic for tranversing the pipe list.

Submitted by: Hans Petter Selasky


193317 02-Jun-2009 thompsa

Fix compile after the removal of bsd_udev.

Submitted by: Hans Petter Selasky


193316 02-Jun-2009 thompsa

Fix multithread issue where the is_uref variable was not set and cleared
properly in the CDEV private data.

Submitted by: Hans Petter Selasky


193315 02-Jun-2009 thompsa

Staticize ukbd_detach and fix indentation.

Submitted by: Sylvestre Gallon


193194 01-Jun-2009 weongyo

ZyXEL G-202 has zd1211b chipset, not zd1211.

Tested by: Samuel Boivie <samuel at boivie.org>


193171 31-May-2009 deischen

Add a NO_SYNCHRONIZE_CACHE quirk for an AIPTEK2
part identified as Sunplus Technology Inc. This
happens to sit in a Rosewill RX81U-ES-25A 2.5" SATA
to USB 2.0 external enclosure.

Reviewed by: Hans Petter Selasky


193074 30-May-2009 thompsa

Revert the size_t part of the last commit for the moment, this blows up the
USB_ADD_BYTES macro.


193073 29-May-2009 sam

validate tx rate(s) in the raw xmit path

Tested by: "Paul B. Mahol" <onemda@gmail.com> (rum, bwi)


193068 29-May-2009 thompsa

Fix function arguments were previously they matched the typedef by accident.


193045 29-May-2009 thompsa

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


193042 29-May-2009 thompsa

Free device strings.

Spotted by: HPS


193029 29-May-2009 weongyo

adds new device IDs.

PR: usb/135009
Submitted by: Bill Squire <billsf at 2600.COM>


193018 29-May-2009 ed

Last minute TTY API change: remove mutex argument from tty_alloc().

I don't want people to override the mutex when allocating a TTY. It has
to be there, to keep drivers like syscons happy. So I'm creating a
tty_alloc_mutex() which can be used in those cases. tty_alloc_mutex()
should eventually be removed.

The advantage of this approach, is that we can just remove a function,
without breaking the regular API in the future.


192984 28-May-2009 thompsa

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


192938 27-May-2009 thompsa

Allocate the usb serial, manufacturer and product strings rather than use char
arrays in the usb_device struct. This also eliminates USB_HAVE_STRINGS.


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


192910 27-May-2009 thompsa

Remove empty dir.


192907 27-May-2009 thompsa

move ng_ubt_var.h back to its original place


192906 27-May-2009 thompsa

move ng_ubt.c back to its original place


192905 27-May-2009 thompsa

move ubtbcmfw.c back to its original place


192873 27-May-2009 weongyo

ports urtw(4) for USB2. Additionally it supports a 8187B chipset weakly
that it needs more stabilization.


192857 26-May-2009 thompsa

Unifdef __NetBSD__ here, the usb stack as a whole doesnt support NetBSD and it
obsfucates the code.


192820 26-May-2009 thompsa

Do not forcefully close the write transfer when closing the tty, it needs to
run to completion and drain the tty queue.


192559 21-May-2009 thompsa

Don't clear last usage when a new HID item is found, it improves parsing of
Apple keyboard HID descriptors.

Submitted by: Hans Petter Selasky


192558 21-May-2009 thompsa

Remove README.TXT as the info is in usb(4).


192557 21-May-2009 thompsa

Add Sharp WILLCOM03 ipaq and Option GTHSDPA 3g device ids.

Submitted by: Hans Petter Selasky


192556 21-May-2009 thompsa

Use the correct usb config number on attach.

Reported by: Greg Rivers
Submitted by: Hans Petter Selasky


192555 21-May-2009 thompsa

Fix a failure to report failure on stalled status stage for control
transactions.

Submitted by: Hans Petter Selasky


192554 21-May-2009 thompsa

Add a driver for the AVR32 series USB Device Controller. Not hooked up as
FreeBSD does not yet support this platform but it makes it easier to stay in
sync.

Submitted by: Hans Petter Selasky


192552 21-May-2009 thompsa

Improve device mode (gadget) stall handling.

Some hardware easily comes out of sync with regard to whether the current or
the next control transfer should be stalled, if a stall command is always
issued before receiving the SETUP packet. After this patch the stall command
will only be issued when a transfer should actually be stalled.

Submitted by: Hans Petter Selasky


192511 21-May-2009 thompsa

Print out device attachment.


192502 21-May-2009 thompsa

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

Submitted by: Hans Petter Selasky


192500 21-May-2009 thompsa

Use enums for speed and rev data types.


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]


192468 20-May-2009 sam

Overhaul monitor mode handling:
o replace DLT_IEEE802_11 support in net80211 with DLT_IEEE802_11_RADIO
and remove explicit bpf support from wireless drivers; drivers now
use ieee80211_radiotap_attach to setup shared data structures that
hold the radiotap header for each packet tx/rx
o remove rx timestamp from the rx path; it was used only by the tdma support
for debugging and was mostly useless due to it being 32-bits and mostly
unavailable
o track DLT_IEEE80211_RADIO bpf attachments and maintain per-vap and
per-com state when there are active taps
o track the number of monitor mode vaps
o use bpf tap and monitor mode vap state to decide when to collect radiotap
state and dispatch frames; drivers no longer explicitly directly check
bpf state or use bpf calls to tap frames
o handle radiotap state updates on channel change in net80211; drivers
should not do this (unless they bypass net80211 which is almost always
a mistake)
o update various drivers to be more consistent/correct in handling radiotap
o update ral to include TSF in radiotap'd frames
o add promisc mode callback to wi

Reviewed by: cbzimmer, rpaulo, thompsa


192448 20-May-2009 thompsa

Use defines for register offsets that do not change.

Submitted by: Hans Petter Selasky


192446 20-May-2009 thompsa

- Add new register definitions
- Enable the controller and wait for the PLL to start

Submitted by: Hans Petter Selasky


192444 20-May-2009 thompsa

The register shift is not needed on this controller.

Submitted by: Hans Petter Selasky


192419 20-May-2009 weongyo

try to unsetup USB xfers before calling ieee80211_ifdetach() to fix a
bug referencing a destroyed lock within TX callbacks during device
detach.

Submitted by: hps (original version)
Tested by: Lucius Windschuh <lwindschuh at googlemail.com>


192258 17-May-2009 sam

add TRENDnet TEW-504UB/EU

Submitted by: Lucius Windschuh <lwindschuh@googlemail.com>


192257 17-May-2009 sam

fix 11a channel use; mark OFDM operation correctly

Submitted by: Lucius Windschuh <lwindschuh@googlemail.com>


192057 13-May-2009 thompsa

Ensure the bmRequestType is the right type for the incoming control request.

Submitted by: Hans Petter Selasky


192056 13-May-2009 thompsa

Add parenthesis around the xfer macro argument.

Submitted by: Hans Petter Selasky


192055 13-May-2009 thompsa

Make sure collections have the usage field set.

Submitted by: Hans Petter Selasky


192054 13-May-2009 thompsa

Check the correct variable for IO_NDELAY.

Submitted by: Hans Petter Selasky


192053 13-May-2009 thompsa

Add debug lines for fullspeed and highspeed xfer completion.

Submitted by: Hans Petter Selasky


192052 13-May-2009 thompsa

Sync to P4

Add umass quirks for Alcor AU6390, Cypress PATA 6830XX and MPMan MPF400.

Submitted by: Hans Petter Selasky


192051 13-May-2009 thompsa

The transfer must return USB_ERR_CANCELLED when the device is gone due to the
way usb drivers work.

Submitted by: Hans Petter Selasky


192006 12-May-2009 weongyo

Add WUSB54AG and XM142 entries for upgt(4)


191983 11-May-2009 weongyo

ports upgt(4) driver for USB2.


191892 07-May-2009 thompsa

Use a 32 bit type for the interface mask as this equals the max interface
count.


191870 07-May-2009 thompsa

Add the Sierra AC885U and increase the max ports to 8.


191869 07-May-2009 thompsa

- Fix the u3g port detection where it would not calculate the correct number of
ports when multiple interfaces are present.
- Claim all interfaces regardless of how many are attached


191868 07-May-2009 thompsa

Use vendor and product macro expansion to make the device table smaller and
more readable.


191826 05-May-2009 thompsa

Make sure the frame list base address is re-programmed after stopping the USB
schedule, in case the hardware clears the frame list base address.

Submitted by: Hans Petter Selasky
Reported by: Chao Shin


191825 05-May-2009 thompsa

Remove USB shutdown methods from device drivers as its the host controllers
responsibility to detach the bus.

PR: usb/133896
Submitted by: Hans Petter Selasky


191824 05-May-2009 thompsa

Revert part of r191494 which used the udev state to mark suspending, this needs
to be set via two variables (peer_suspended and self_suspended) and can not be
merged into one.

Submitted by: Hans Petter Selasky
Pointy hat: me


191746 02-May-2009 thompsa

Create a taskqueue for each wireless interface which provides a serialised
sleepable context for net80211 driver callbacks. This removes the need for USB
and firmware based drivers to roll their own code to defer the chip programming
for state changes, scan requests, channel changes and mcast/promisc updates.
When a driver callback completes the hardware state is now guaranteed to have
been updated and is in sync with net80211 layer.

This nukes around 1300 lines of code from the wireless device drivers making
them more readable and less race prone.

The net80211 layer has been updated as follows
- all state/channel changes are serialised on the taskqueue.
- ieee80211_new_state() always queues and can now be called from any context
- scanning runs from a single taskq function and executes to completion. driver
callbacks are synchronous so the channel, phy mode and rx filters are
guaranteed to be set in hardware before probe request frames are
transmitted.

Help and contributions from Sam Leffler.

Reviewed by: sam


191710 30-Apr-2009 thompsa

We need to ref the bss node when sending the beacon since it goes through the
normal tx path and will be decremented on the mbuf free.


191498 25-Apr-2009 thompsa

Make the state string descriptions public.


191494 25-Apr-2009 thompsa

Track the usb device state as its powered on, addressed and configured. This helps
to avoid touching the device when it is not going to respond and would otherwise
timeout.

Implement the suspend tracking as a udev state too.


191402 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160930

Change the roothub exec functions to take the usb request and data pointers
directly rather than placing them on the parent bus struct.

Submitted by: Hans Petter Selasky


191401 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160708

Need to check Read/Write allowed before writing any data for non-control
transfers.

Submitted by: Hans Petter Selasky


191400 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160706

Resolve possible device side mode deadlock by creating another thread.

Submitted by: Hans Petter Selasky


191399 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160678

Remove unused field.

Submitted by: Hans Petter Selasky


191398 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160655

Fix possible issue with clear-stall and set-config happening at the same time.

Submitted by: Hans Petter Selasky


191397 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160614

Fix errornous printout.

Submitted by: Hans Petter Selasky


191396 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160485

Fix a bug in the USB power daemon code where connection of multiple HUBs in
series would result in incorrect device suspend.

Reported by: Nicolas xxx@wanadoo.fr
Submitted by: Hans Petter Selasky


191395 22-Apr-2009 thompsa

MFp4 //depot/projects/usb@160413

Use direct reference to parent high-speed HUB instead of indirect, due to
pointer clearing race at detach of parent USB HUB.

Reported by: kientzle
Submitted by: Hans Petter Selasky
PR: usb/133545


191346 21-Apr-2009 takawata

Add another FTDI serial converter.


190878 10-Apr-2009 thompsa

Revert r190676,190677

The geom and CAM changes for root_hold are the wrong solution for USB design
quirks.

Requested by: scottl


190755 06-Apr-2009 thompsa

Remove usb_sw_transfer.[ch] which are now empty after r190735.


190754 06-Apr-2009 thompsa

Provide a better commit log for r190735, forced by making a whitespace change.

Refactor how we interface with the root HUB. This is achieved by making a
direct call from usb2_do_request to the host controller for root hub requests,
this call will perform the controller specific register read/writes and return
the error code.

This cuts out a lot of code in the host controller files and saves one thread
per USB bus.

Submitted by: Hans Petter Selasky


190749 05-Apr-2009 piso

Remove pointeless mergeinfo that crept in from r190633.


190744 05-Apr-2009 thompsa

Catch up with usb2_config struct layout changes.


190743 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@160056

Remove code for unused and unlikely quirk, "uq_power_claim"

Submitted by: Hans Petter Selasky


190742 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@160052

Wait until line configuration is complete before starting data transfers.

Submitted by: Hans Petter Selasky


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


190739 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159948

Add more debugging output on enumeration failures.

Submitted by: Hans Petter Selasky


190738 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159946

Some cancelable flags are always true. Substitute these away. These cancelable
flags were mostly useful with the root HUB which is now handled differently.

Submitted by: Hans Petter Selasky


190737 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159926

Minor code factorisation in atmegadci.c

Submitted by: Hans Petter Selasky


190736 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159925

Cast variables properly for non-32-bit platforms.

Submitted by: Hans Petter Selasky


190735 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159922

Refactor how we interface with the root HUB. This cuts around 1200 lines of
code totally and saves one thread per USB bus.

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


190733 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159908

Reduce the amount of memory used by better sizing buffer arrays.

Submitted by: Hans Petter Selasky


190732 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159897

Add new endpoint direction values for use with usb2_config

Submitted by: Hans Petter Selasky


190731 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159871

- bugfixes after the memory usage reduction patch
- Use "udev->pipes_max" instead of USB_EP_MAX
- Use correct "bmRequestType" for getting the config descriptor.

Submitted by: Hans Petter Selasky


190730 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159866

- memory usage reduction by only allocating the required USB pipes and USB
interfaces.
- cleanup some USB parsing functions to be more flexible.

Submitted by: Hans Petter Selasky


190729 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159864

Fix possible deadlock with UGEN at detach.

Submitted by: Hans Petter Selasky


190728 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159863

Speed up the endpoint descriptor search

Submitted by: Hans Petter Selasky


190727 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159811

First patch in a series of memory save patches.

Submitted by: Hans Petter Selasky


190726 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159806

Properly name usb2_uref_location() so that it is not confused with
usb2_unref_location() .

Submitted by: Hans Petter Selasky


190725 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159797

Remove unused field in "struct usb2_pipe".

Submitted by: Hans Petter Selasky


190724 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159700

Get rid of the last CALLOUT_RETURNUNLOCKED reference.

Submitted by: Hans Petter Selasky


190723 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159677

Remove redundant locking.

Submitted by: Hans Petter Selasky


190722 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159674

Fix more corner cases around reception of SETUP packets.

Submitted by: Hans Petter Selasky


190721 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159673

Fix a corner case around stalling SETUP packets in device side mode.

Submitted by: Hans Petter Selasky


190720 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159671

Fix interrupt register setting on the atmegadci controller.

Submitted by: Hans Petter Selasky


190719 05-Apr-2009 thompsa

MFp4 //depot/projects/usb@159562

Reapply r190173 with compilation fixed on 64bit arches.

Submitted by: Hans Petter Selasky


190688 04-Apr-2009 weongyo

Add uath(4) wireless USB driver for Atheros AR5005UG and AR5005UX
chipsets.

Reviewed by: sam


190676 03-Apr-2009 thompsa

Add a how argument to root_mount_hold() so it can be passed NOWAIT and be called
in situations where sleeping isnt allowed.


190633 01-Apr-2009 piso

Implement an ipfw action to reassemble ip packets: reass.


190588 31-Mar-2009 kevlo

Add another rum(4) device found in
http://www.fit-pc.com/new/whats-new.html


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


190579 30-Mar-2009 sam

Hoist 802.11 encapsulation up into net80211:
o call ieee80211_encap in ieee80211_start so frames passed down to drivers
are already encapsulated
o remove ieee80211_encap calls in drivers
o fixup wi so it recreates the 802.3 head it requires from the 802.11
header contents
o move fast-frame aggregation from ath to net80211 (conditional on
IEEE80211_SUPPORT_SUPERG):
- aggregation is now done in ieee80211_start; it is enabled when the
packets/sec exceeds ieee80211_ffppsmin (net.wlan.ffppsmin) and frames
are held on a staging queue according to ieee80211_ffagemax
(net.wlan.ffagemax) to wait for a frame to combine with
- drivers must call back to age/flush the staging queue (ath does this
on tx done, at swba, and on rx according to the state of the tx queues
and/or the contents of the staging queue)
- remove fast-frame-related data structures from ath
- add ieee80211_ff_node_init and ieee80211_ff_node_cleanup to handle
per-node fast-frames state (we reuse 11n tx ampdu state)
o change ieee80211_encap calling convention to include an explicit vap
so frames coming through a WDS vap are recognized w/o setting M_WDS

With these changes any device able to tx/rx 3Kbyte+ frames can use fast-frames.

Reviewed by: thompsa, rpaulo, avatar, imp, sephe


190532 29-Mar-2009 sam

o add ic_rt to track the rate table for the current channel; this enables
calculation of packet transmit times to do things like check txop limits
o remove equivalent driver code and convert to use net80211 state


190526 29-Mar-2009 sam

Eliminate ic_myaddr so changing the mac address of a device works correctly:
o remove ic_myaddr from ieee80211com
o change ieee80211_ifattach to take the mac address of the physical device
and use that to setup the lladdr.
o replace all references to ic_myaddr in drivers by IF_LLADDR
o related cleanups (e.g. kill dead code)

PR: kern/133178
Reviewed by: thompsa, rpaulo


190471 27-Mar-2009 thompsa

The buffer start and end phys addresses should be 0x0 for an OHCI zero length
packet, this fixes LS/FS devices on the Gateworks 2348 XScale board.

Reviewed by: HPS


190328 23-Mar-2009 thompsa

Fix order of debug printf items, addr and config# were swapped.


190306 23-Mar-2009 kan

Do not pass uninitialized data buffer to devctl_queue_data function.
This was botched in revision 190191.


190269 22-Mar-2009 thompsa

Set the endpoint on the preallocated fifo so it doesnt get matched as an
endpoint fifo.

Reported by: Pieter de Goeje


190263 22-Mar-2009 imp

NO_INQUIRY is wrong for this device. Alternatively, if it is right,
it is right for only a tiny fraction of these devices and this
wild-card entry is too broad.

# I run a kernel without this entry at all without ill effects...


190238 22-Mar-2009 thompsa

Improve debugging output around ioctls.


190195 21-Mar-2009 thompsa

Revert r190173 as it breaks 64bit arches.


190191 20-Mar-2009 thompsa

Fix compile with USB_HAVE_BUSDMA/USB_HAVE_UGEN/USB_HAVE_STRINGS.

Submitted by: Hans Petter Selasky


190189 20-Mar-2009 thompsa

Add umass quirk.

PR: usb/132799
Reported by: Yoshihiro Ota
Submitted by: Hans Petter Selasky


190188 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159423, 159497

- Return a Zero Length packet on read errors.
- Allow for smaller buffer size.

Submitted by: Hans Petter Selasky


190187 20-Mar-2009 thompsa

MFp4 //depot/projects/usb@159446

Remove unused and depreciated function: usb2_get_devid().

Submitted by: Hans Petter Selasky


190186 20-Mar-2009 thompsa

MFp4 //depot/projects/usb@159517

Fix warnings with the IAR compiler.

Submitted by: Hans Petter Selasky


190185 20-Mar-2009 thompsa

MFp4 //depot/projects/usb

Sync usb_core.h after header changes.

Submitted by: Hans Petter Selasky


190184 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159479,159502,159516,159522,159529

Workaround for buggy USB hardware not handling new SETUP packet before STATUS
stage is complete, this allows xfers to endpoint0 to return a short frame.

Submitted by: Hans Petter Selasky
Reported by: me


190183 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159479,159502,159516,159522,159529

Workaround for buggy USB hardware not handling new SETUP packet before STATUS
stage is complete, this allows xfers to endpoint0 to return a short frame.

Submitted by: Hans Petter Selasky
Reported by: me


190181 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159431,159437,159438

- start using the new USB typedefs in the USB core
- Remove usage of USB_ADD_BYTES()

Submitted by: Hans Petter Selasky


190180 20-Mar-2009 thompsa

MFp4 //depot/projects/usb@159392

Add ifdefs for making parts of usb conditional.

Submitted by: Hans Petter Selasky


190174 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159430

- Move tunable defines into usb_core.h and dependancy towards usb_defs.h
- Leave hardcoded defines in "usb_defs.h".
- Allow overriding all tunable defines.
- Add more customisable typedefs.
- Correct maximum device number.

Submitted by: Hans Petter Selasky


190173 20-Mar-2009 thompsa

MFp4 //depot/projects/usb @159379,159380

Fixes for 8-bit and 16-bit compilation.

Submitted by: Hans Petter Selasky


190172 20-Mar-2009 thompsa

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

Further remove dependancy towards Giant.

Submitted by: Hans Petter Selasky


190102 19-Mar-2009 thompsa

Remove empty dirs.


190100 19-Mar-2009 thompsa

Remove the uscanner(4) driver, this follows the removal of the kernel scanner
driver in Linux 2.6. uscanner was just a simple wrapper around a fifo and
contained no logic, the default interface is now libusb (supported by sane).

Reviewed by: HPS


190089 19-Mar-2009 garga

- Add Sun Type 7 keyboard
- Rename Type 6 entry (following NetBSD)
- Add Sun Type 7 Keyboard USB Hub

PR: usb/132811
Reviewed by: thompsa
Approved by: thompsa


189906 17-Mar-2009 thompsa

MFp4 //depot/projects/usb 159225,159241,159292

Fix regression issue in the USB file system interface.
- Use cdev_privdata pointer as indicator of correct file handle.
- Remove redundant FIFO opened flags.

Don't send ZLP at close for ulpt and uscanner devices as this causes some
models to stop working. This reverts back to the USB1 behaviour.

Submitted by: Hans Petter Selasky


189905 17-Mar-2009 thompsa

MFp4 //depot/projects/usb 159238,159275

Add umass quirks.

Submitted by: Michael Gmelin


189904 17-Mar-2009 thompsa

Add Supertop IDE adapter and Quickcam entries.


189776 13-Mar-2009 thompsa

HID usage minimum can be equal to the maximum.

Submitted by: Hans Petter Selasky
Tested by: Andreas Tobler


189718 12-Mar-2009 thompsa

MFp4 //depot/projects/usb 159004,159053,159091

More HID parsing fixes for usb mice.
- be less strict on the last HID item usage.
- preserve item size and count accross items
- improve default HID usage selection.

Tested by: ache
Submitted by: Hans Petter Selasky


189699 11-Mar-2009 dfr

Merge in support for Xen HVM on amd64 architecture.


189677 11-Mar-2009 thompsa

MFp4 //depot/projects/usb 158981,159016,159024

Sync support for ATMEGA DCI parts.

Submitted by: Hans Petter Selasky


189676 11-Mar-2009 thompsa

Fix a possible NULL pointer access at controller attach.

Submitted by: Hans Petter Selasky


189646 10-Mar-2009 thompsa

Make sure HID has a default usage, this fixes recent mouse problems.

Tested by: Renato Botelho
Tested by: beech (earlier version)
Submitted by: Hans Petter Selasky


189599 09-Mar-2009 thompsa

MFp4 //depot/projects/usb 158942,158948

Allow USB to be compiled without ugen support.

Submitted by: Hans Petter Selasky


189598 09-Mar-2009 thompsa

Fix musb_otg.h include filename.

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


189575 09-Mar-2009 imp

remove now-redunant cardbus attachment.


189547 08-Mar-2009 thompsa

MFp4 //depot/projects/usb@158868

Fix bugs and improve HID parsing.
- fix possible memory leak found
- fix possible NULL pointer access
- fix possible invalid memory read
- parsing improvements
- reset item data position when a new report ID is detected.

Submitted by: Hans Petter Selasky


189546 08-Mar-2009 thompsa

MFp4 //depot/projects/usb@158869

Fix sael init code.

Reported by: Alberto Mijares
Submitted by: Hans Petter Selasky


189528 08-Mar-2009 thompsa

Move m_getcl() into its own function. This also fixes a bug where the m_adj for
ETHER_ALIGN was having no effect since m_len had not been set.


189522 08-Mar-2009 thompsa

Fix endian conversion from htole16 to htole32.

Tested with: ARM xscale


189496 07-Mar-2009 thompsa

(re)merge r186415,186416 from the old usb stack;

o add Transaction Translator support (still missing ISOC xfers)
o add EHCI_SCFLG_BIGEMMIO flag to force big-endian byte-select to be
set in USBMODE
o split reset work into new public routine ehci_reset so bus shim drivers
can force big-endian byte-select before ehci_init
o enable TT and big-endian MMIO
o force a reset before ehci_init to get byte-select setup

Also go back to using USB_EHCI_BIG_ENDIAN_DESC at compile time to enable the
byteswapping and reduce diffs to the original commits.

This fixes the new USB stack on the Cambria board.


189491 07-Mar-2009 thompsa

Fix some missed htole32 conversions to htoehci32.

Reviewed by: hps


189453 06-Mar-2009 thompsa

MFp4 //depot/projects/usb@158692

Workaround a EHCI performance problem by issuing a doorbell after queueing a
bulk xfer.

Submitted by: Hans Petter Selasky


189452 06-Mar-2009 thompsa

Ensure the cached rq pointer is still valid before waking up the address, the
zyd_cmd function may have timed out. It wouldnt cause a panic but could wakeup
someone.

Spotted by: HPS


189449 06-Mar-2009 joerg

Add a couple of more things to the FTDI driver I came across:

. Dresden Elektronik "Wireless Handheld Terminal"
. Atmel STK541 "Zigbee Controller"

MFC after: 1 week


189422 05-Mar-2009 thompsa

Fix usb2_poll not to return an error number as the function return value is a
bitmask of events.

Pointed out by: HPS


189405 05-Mar-2009 thompsa

Add support for the UNION interface descriptor, used by Nokia phones.

PR: usb/117185


189360 04-Mar-2009 thompsa

Add Mobile Action MA-620 Infrared Adapter.

PR: usb/125072
Submitted by: Alexander Logvinov
MFC after: 1 week


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


189265 02-Mar-2009 thompsa

Move the serial drivers from Giant to using their own mutexs.

Tested with: u3g, ubser, uplcom


189173 28-Feb-2009 thompsa

A couple of style nits in the last commit
- unwrap short lines
- move variable initialisation out of the declaration.


189172 28-Feb-2009 thompsa

- Remove the usb interface number from the device nodes as it is not needed.
- Do not recreate the device nodes in set_alt_interface as the endpoints do not
change.

Submitted by: Hans Petter Selasky


189125 27-Feb-2009 thompsa

Change the last references to PRIV_ROOT. /dev/usb used to be world writable so
further root checks were needed, this isnt the case anymore but just change it
to PRIV_DRIVER until it can be investigated later.

Spotted by: rwatson


189124 27-Feb-2009 thompsa

Remove ic_update_mcast calls that are not implemented.

Spotted by: sam
Pointy hat: me


189123 27-Feb-2009 thompsa

Partial sync to //depot/projects/usb

- Reissue the ctrl request on failure
- Ensure Tx and ctrl requests are not interleaved
- Add promisc callbacks

Obtained from: Hans Petter Selasky


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)


189002 24-Feb-2009 ed

Also use proper capitalisation of FreeBSD in other source files.

Approved by: thompsa


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.


188989 24-Feb-2009 thompsa

MFp4 //depot/projects/usb@158015

Add support for the Sael M460 3G modem.

Submitted by: Hans Petter Selasky


188988 24-Feb-2009 thompsa

Fix compiler warning.


188987 24-Feb-2009 thompsa

MFp4 //depot/projects/usb@157974

Add support for setting and getting the USB template value through libusb20 and
usbconfig.

Submitted by: Hans Petter Selasky


188986 24-Feb-2009 thompsa

MFp4 //depot/projects/usb@157958

- We don't need to exit the Giant mutex when sleeping. This is done
automatically. Replace Giant by NULL mutex for all control requests in the
enumeration path.
- Optimise away duplicate alternate interface selection requests in USB Host
mode.

Submitted by: Hans Petter Selasky


188985 24-Feb-2009 thompsa

MFp4 //depot/projects/usb@157909

Changes to make implementing USB NDIS easier.

Submitted by: Hans Petter Selasky


188983 24-Feb-2009 thompsa

MFp4 //depot/projects/usb@157853

Clean up old way of polling the USB hardware. The existing polling support was
a bit hackish.

Submitted by: Hans Petter Selasky


188982 24-Feb-2009 thompsa

MFp4 //depot/projects/usb@157847

Improvements to "usb2_transfer_setup()" and "usb2_transfer_unsetup()". Set
"ppxfer[n]" when the transfer setup is complete to prevent races. Remove
redundant NULL-checks from "usb2_transfer_unsetup()".

Submitted by: Hans Petter Selasky


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


188969 23-Feb-2009 thompsa

Make sure at least two tx slots are free before sending the mbuf since an
additional frame may be sent for 80211 protection.


188957 23-Feb-2009 thompsa

Move the uaudio and ata-usb drivers into their correct locations.


188947 23-Feb-2009 thompsa

Reintroduce r188878, provide compat typedefs for usb1.


188942 23-Feb-2009 thompsa

Move the new USB stack into its new home.