History log of /haiku/src/add-ons/kernel/bus_managers/usb/usbspec_private.h
Revision Date Author Comments
# 22002cf4 01-Sep-2021 Augustin Cavalier <waddlesplash@gmail.com>

USB: Rename usb_endpoint_companion_descriptor...

...to usb_endpoint_superspeed_companion_descriptor, as it is
really SuperSpeed-specific (there are more companion descriptors
introduced in SuperSpeedPlus.)

No functional change, and this is a private struct at present.


# 086528f6 16-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

USB & XHCI: Refactor endpoint initialization to support SuperSpeed better.

SuperSpeed (USB3) devices have a "companion descriptor" along with the
endpoint descriptors that describes certain other attributes they have,
which are important for the controller to schedule transfers properly.
Previously we were just using USB2 values; now we are properly using USB3
ones.

Tested on an Intel Lynx Point controller. As far as I can tell, no
regressions, but #15000 is not fixed anyway.


# 60497373 21-Feb-2019 Augustin Cavalier <waddlesplash@gmail.com>

USB: Pack the usb_request_data struct.

We really should not be writing raw structs out to devices
for endianness' sake, but that's currently what *all* the
USB bus drivers do with this struct. So, add the _PACKED flag
to ensure it's always precisely 8 bytes.

Additionally, remove memory_chunk, as nothing uses it anymore.


# 642ac9c9 10-Oct-2018 Peter Kosyh <p.kosyh@gmail.com>

xhci: GetPortStatus, ClearPortFeature (PS_PLC, PS_WRC) fix

Fixes #13768.

Change-Id: Ia783e62a15917a2c8f7b3169ee5204a8d8d6f5ef
Reviewed-on: https://review.haiku-os.org/622
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Reviewed-by: Alexander von Gluck IV <kallisti5@unixzen.com>


# 273c3bc4 26-Oct-2016 Alexander von Gluck IV <kallisti5@unixzen.com>

usb: Bump max USB_MAX_PORTS to 255

* Seems more common to have > 16 USB ports on xHCI
hubs (18 on my XPS 13 root hub)
* This fixes 'hub supports more ports than we do' error
* The FreeBSD USB driver works a lot like ours and
sets the maximum USB ports on a hub to 255
* Doesn't solve #12885 but fixes one of the errors


# 22af7532 27-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Reduce port reset recovery time from 250ms to 50ms.

The specs say the reset recovery time is 10ms only. The extra 40ms are
taken from the Linux hub driver.


# 827c7224 27-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Implement debounce sequence according to USB 2.0 specs.

This replaces waiting a fixed time of 300ms for the device power to
stabilize. In the ideal case this reduces the boot time by 200ms per
connected device (including internal hubs).

This is very similar to what Linux implements and we use the same time
values. An interval of 25ms is used to check for connection state
changes, the stable time is at least 100ms as per the USB specs and the
whole process times out after 1.5 seconds.


# d8b4cfc9 04-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Get USB functional on x86-64.

- Various changes to printf format specifiers to make them 32/64 safe.
- Adjustments to various descriptor structures since addr_t is not 32-bit
on x86-64, and consequently this breaks the physical structure that's
expected. Also adjusted padding to accomodate 32-byte boundaries when
64-bit pointers are in use.
- Adjustments to make use of phys_addr_t where needed.


# 319a3798 22-Dec-2011 Jérôme Duval <jerome.duval@gmail.com>

Work in progress on XHCI bus driver.

* USB Core:
Hub: pass more correct speed, port and address for USB3 devices.
Transfer: doesn't care for bandwidth computation for super speed.
BusManager: Make AllocateDevice() and FreeDevice() virtual, XHCI needs to setup
a slot and an address for the device.
Add USB_SPEED_WIRELESS usb_speed definition.
Add USB2.0 erratum definition and some USB3 definitions
* XHCI:
Find outs which port supports SuperSpeed or not.
Override AllocateDevice() to configure slot and address for a connected device.
Override FreeDevice() to free ressources associated to a slot.
Add context struct definitions.


# 0e76cf0b 31-Mar-2011 Jérôme Duval <korli@users.berlios.de>

added some hub ports information to listusb


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc9f959d 14-Apr-2010 Michael Lotz <mmlr@mlotz.ch>

Rename usbspec_p.h to usbspec_private.h and fix header guards.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36248 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 22af7532d1671c0ce1794b6413673fc5f886c953 27-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Reduce port reset recovery time from 250ms to 50ms.

The specs say the reset recovery time is 10ms only. The extra 40ms are
taken from the Linux hub driver.


# 827c7224a0aa44530aa8dfe11ec12c0e58bcb054 27-Apr-2013 Michael Lotz <mmlr@mlotz.ch>

Implement debounce sequence according to USB 2.0 specs.

This replaces waiting a fixed time of 300ms for the device power to
stabilize. In the ideal case this reduces the boot time by 200ms per
connected device (including internal hubs).

This is very similar to what Linux implements and we use the same time
values. An interval of 25ms is used to check for connection state
changes, the stable time is at least 100ms as per the USB specs and the
whole process times out after 1.5 seconds.


# d8b4cfc9829119291e68cfe0152c239fd8850b3d 04-Aug-2012 Rene Gollent <anevilyak@gmail.com>

Get USB functional on x86-64.

- Various changes to printf format specifiers to make them 32/64 safe.
- Adjustments to various descriptor structures since addr_t is not 32-bit
on x86-64, and consequently this breaks the physical structure that's
expected. Also adjusted padding to accomodate 32-byte boundaries when
64-bit pointers are in use.
- Adjustments to make use of phys_addr_t where needed.


# 319a3798bc05579e8be813c2524bc89864bae489 22-Dec-2011 Jérôme Duval <jerome.duval@gmail.com>

Work in progress on XHCI bus driver.

* USB Core:
Hub: pass more correct speed, port and address for USB3 devices.
Transfer: doesn't care for bandwidth computation for super speed.
BusManager: Make AllocateDevice() and FreeDevice() virtual, XHCI needs to setup
a slot and an address for the device.
Add USB_SPEED_WIRELESS usb_speed definition.
Add USB2.0 erratum definition and some USB3 definitions
* XHCI:
Find outs which port supports SuperSpeed or not.
Override AllocateDevice() to configure slot and address for a connected device.
Override FreeDevice() to free ressources associated to a slot.
Add context struct definitions.


# 0e76cf0b69324e071618d5a7105d1084d2a27550 31-Mar-2011 Jérôme Duval <korli@users.berlios.de>

added some hub ports information to listusb


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc9f959d8b7f501c488918df8dd0469443263438 14-Apr-2010 Michael Lotz <mmlr@mlotz.ch>

Rename usbspec_p.h to usbspec_private.h and fix header guards.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36248 a95241bf-73f2-0310-859d-f6bbb57e9c96