History log of /freebsd-current/sys/dev/usb/controller/ehci_pci.c
Revision Date Author Comments
# f969fb53 30-Oct-2023 Dmitry Luhtionov <dmitryluhtionov@gmail.com>

Add some Intel ICH10 PCI IDs.


# 685dc743 16-Aug-2023 Warner Losh <imp@FreeBSD.org>

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

Remove /^[\s*]*__FBSDID\("\$FreeBSD\$"\);?\s*\n/


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

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

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

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


# 95b2d16b 17-Mar-2023 Zhenlei Huang <zlei@FreeBSD.org>

ehci(4): Correct PCI device ID for Zhaoxin USB 2.0 controller

And minor style fixes.

Tested by: Weitao Wang <WeitaoWang-oc@zhaoxin.com>
Fixes: f9237e1937a4 ehci(4): Add new USB IDs
Differential Revision: https://reviews.freebsd.org/D38923


# 336fbb23 22-Jun-2022 Elliott Mitchell <ehem+freebsd@m5p.com>

usb: purge EOL release compatibility

Remove conditionsals for FreeBSD 6, 7, 8 and 9 compatibility.

Reviewed by: imp
Pull Request: https://github.com/freebsd/freebsd-src/pull/603
Differential Revision: https://reviews.freebsd.org/D35560


# f9237e19 17-Jan-2023 Dmitry Luhtionov <dmitryluhtionov@gmail.com>

ehci(4): Add new USB IDs.

MFC after: 1 week
Sponsored by: NVIDIA Networking


# 2a31a06b 20-Oct-2022 Alexander Motin <mav@FreeBSD.org>

Add random VMware device IDs.

Just to make dmesg look nicer there.

MFC after: 1 week


# bc9372d7 06-May-2022 John Baldwin <jhb@FreeBSD.org>

usb: Remove unused devclass arguments to DRIVER_MODULE.


# 42cf33dd 06-Feb-2022 Hans Petter Selasky <hselasky@FreeBSD.org>

Add new USB host controller PCI ID's.

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


# d82c0ebc 10-Feb-2020 Hans Petter Selasky <hselasky@FreeBSD.org>

Add USB host controller PCI ID's for Hygon.

Differential Revision: https://reviews.freebsd.org/D23564
MFC after: 1 week
Sponsored by: Mellanox Technologies


# d93f6d3a 26-Nov-2019 Alexander Motin <mav@FreeBSD.org>

Add some IDs of Intel Wildcat Point-LP.

MFC after: 1 week


# 16fba2f3 15-Apr-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Remove superfluous USB keyword.

Discussed with: danfe@
MFC after: 1 week
Sponsored by: Mellanox Technologies


# 1175aabd 15-Apr-2019 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix spelling.

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


# 46b05e19 02-Nov-2018 Hans Petter Selasky <hselasky@FreeBSD.org>

Add new USB v2.0 PCI ID.

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


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

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

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

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


# 7e907868 02-Apr-2017 Alexander Motin <mav@FreeBSD.org>

Add IDs for Intel Cougar Point USB 2.0 controller.

MFC after: 1 week


# d3bf5efc 17-Oct-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

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
MFC after: 2 weeks


# 15e01a35 28-Mar-2016 Alexander Motin <mav@FreeBSD.org>

Add some device IDs found on AMD FCH shipsets.

MFC after: 2 weeks


# cb6b0ad1 19-Mar-2016 Alexander Motin <mav@FreeBSD.org>

Add IDs for Intel Wellsburg USB controllers.

MFC after: 1 week


# 4bc7e098 10-Feb-2016 Hans Petter Selasky <hselasky@FreeBSD.org>

Correct PCI device description.

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


# 9b0e3c5a 13-Apr-2015 Neel Natu <neel@FreeBSD.org>

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.

Reviewed by: hselasky
MFC after: 2 weeks


# b217d184 05-Jan-2015 Hans Petter Selasky <hselasky@FreeBSD.org>

Add 64-bit DMA support in the XHCI controller driver.
- Fix some comments and whitespace while at it.

MFC after: 1 month
Submitted by: marius@


# c1a4be0f 26-Nov-2014 Adrian Chadd <adrian@FreeBSD.org>

Add PCI ID for Intel Lynx Point LP controller.

PR: kern/195398
Submitted by: grembo
Obtained from: DragonflyBSD
MFC after: 1 week


# e67f3bec 25-Nov-2014 Alexander Motin <mav@FreeBSD.org>

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

MFC after: 1 week


# 7eb88464 21-Oct-2014 Kevin Lo <kevlo@FreeBSD.org>

Add the Intel BayTrail USB device which needs port routing for USB 3.0.

Tested on the BayTrail E3845 platform.
Reviewed by: hselasky


# 4255b98b 05-Sep-2014 Alexander Motin <mav@FreeBSD.org>

Add IDs for Intel Patsburg USB 2.0 controller.


# eda36fb4 15-Nov-2013 Alexander Motin <mav@FreeBSD.org>

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


# 78153657 03-Nov-2013 Hans Petter Selasky <hselasky@FreeBSD.org>

Add description of two EHCI PCI IDs.

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


# 3147331e 17-Aug-2013 Hans Petter Selasky <hselasky@FreeBSD.org>

Fix some USB controller names according to pciconf output.

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


# f0d0cee0 02-Jul-2012 Alexander Motin <mav@FreeBSD.org>

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

MFC after: 3 days


# 243d601f 26-May-2012 Marius Strobl <marius@FreeBSD.org>

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


# 7e543a0e 26-May-2012 Marius Strobl <marius@FreeBSD.org>

Make the VIA workaround actually do its intended job.

MFC after: 3 days


# 2e141748 13-Dec-2011 Hans Petter Selasky <hselasky@FreeBSD.org>

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


# 3b12bdb5 22-Nov-2011 Hans Petter Selasky <hselasky@FreeBSD.org>

Rename device_delete_all_children() into device_delete_children().

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


# 4b7ec270 22-Nov-2011 Marius Strobl <marius@FreeBSD.org>

- 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.


# b0a5e05f 12-Apr-2011 Hans Petter Selasky <hselasky@FreeBSD.org>

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)


# 3ea35375 03-Apr-2011 Hans Petter Selasky <hselasky@FreeBSD.org>

- Correct EHCI interrupt disabling at detach.

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


# 58ccf5b4 11-Jan-2011 John Baldwin <jhb@FreeBSD.org>

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

Reviewed by: bde


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

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


# f7d8cf85 14-Oct-2010 Hans Petter Selasky <hselasky@FreeBSD.org>

Remove unused EHCI register definition.
Define reserved EHCI register.

Approved by: thompsa (mentor)


# 441f5e4c 06-Apr-2010 Andrew Thompson <thompsa@FreeBSD.org>

MFC r205802

Add PCI IDs for two more nForce controllers.

Submitted by: Dmitry Luhtionov @ gmail.com


# 90812029 06-Apr-2010 Andrew Thompson <thompsa@FreeBSD.org>

MFC r203693

Disable the use of the IAAD usb doorbell on NVidia controllers as it can cause
the hardware to stall.

Submitted by: Hans Petter Selasky


# 4a4bd31b 28-Mar-2010 Andrew Thompson <thompsa@FreeBSD.org>

Add PCI IDs for two more nForce controllers.

Submitted by: Dmitry Luhtionov @ gmail.com


# 7e4b1c06 03-Mar-2010 Joel Dahl <joel@FreeBSD.org>

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

Obtained from: NetBSD


# cf223a88 08-Feb-2010 Andrew Thompson <thompsa@FreeBSD.org>

Disable the use of the IAAD usb doorbell on NVidia controllers as it can cause
the hardware to stall.

Submitted by: Hans Petter Selasky


# 3a1f0cab 30-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r200822

Add more EHCI pci ids.


# 2510f6c6 30-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r200305

Correct name, 82801IJ -> 82801JI


# eed2c062 30-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r200087

Add uhci/ehci controller ids.

Submitted by: mitya_cabletv.dp.ua


# bae15f4a 21-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

Add more EHCI pci ids.

Submitted by: Hans Petter Selasky


# 653a3d45 09-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r199057

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


# 741194f1 09-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

Correct name, 82801IJ -> 82801JI

Submitted by: mitya_cabletv.dp.ua


# ce70efd1 03-Dec-2009 Andrew Thompson <thompsa@FreeBSD.org>

Add uhci/ehci controller ids.

Submitted by: mitya_cabletv.dp.ua


# 41de7865 10-Nov-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r199058

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


# 30b22abe 08-Nov-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# 10454ab7 08-Nov-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# 1ea6a20c 29-Oct-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r198151

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.


# ffa540b7 29-Oct-2009 Andrew Thompson <thompsa@FreeBSD.org>

MFC r197554

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


# c2e8b89c 26-Oct-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# 77cbe30e 26-Oct-2009 Andrew Thompson <thompsa@FreeBSD.org>

Remove usb controller takeover code now that it is handled by the pci code.

Reminded by: jhb
Reviewed by: HPS


# 1def609a 15-Oct-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# 6450e5ba 28-Sep-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# f724bcec 29-Jul-2009 Alfred Perlstein <alfred@FreeBSD.org>

USB controller:
- patch from Alexander Motin <mav@freebsd.org>
- add more ID's
- P4 ID: 165805

Submitted by: hps
Approved by: re


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

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


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

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


# 6830af1a 05-Apr-2009 Andrew Thompson <thompsa@FreeBSD.org>

Remove usb_sw_transfer.[ch] which are now empty after r190735.


# 0f7d4548 20-Mar-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# ab42e8b2 20-Mar-2009 Andrew Thompson <thompsa@FreeBSD.org>

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


# 155a83e8 09-Mar-2009 Warner Losh <imp@FreeBSD.org>

remove now-redunant cardbus attachment.


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

Move the new USB stack into its new home.