USBA_HCDI_HUB_UPDATE(9E) Driver Entry Points USBA_HCDI_HUB_UPDATE(9E)

NAME


usba_hcdi_hub_update - USB HCD hub update entry point

SYNOPSIS


#include <sys/usb/usba/hcdi.h>

int
prefix_hcdi_hub_update(usba_device_t *ud, uint8_t nports, uint8_t tt);

INTERFACE LEVEL


Volatile - illumos USB HCD private function

This is a private function that is not part of the stable DDI. It may be
removed or changed at any time.

PARAMETERS


ud Pointer to a USB device structure being updated. See
usba_device(9S) for more information.

nports The number of ports present on the hub.

tt The value of the Think Time property as defined in the USB
specification's hub descriptor.

DESCRIPTION


The usba_hcdi_hub_update() entry point is an optional entry point for USB
host controller drivers. It is used by some controllers to allow them to
update information about a device in the controller after a device has been
determined to be a hub during enumeration. If a host controller does not
need to take any specific action after enumerating a hub, then it should
simply set this entry point in the usba_hcdi_ops(9S) structure to NULL.

The nports and tt members provide relevant information from the device's
hub class descriptor which can be used to help program the host controller.
Any programming should be performed synchronously and be completed before
this function returns.

This function will be called after usba_hcdi_device_init(9E) has been
called. Any private data registered with that function will be available.

If this function fails, the enumeration of this device will fail, the hub
driver will not attach to this USB device, and all devices plugged into
this hub will not be detected by the system.

CONTEXT


This function is called from kernel context only.

RETURN VALUES


Upon successful completion, the usba_hcdi_hub_update() function should
return USB_SUCCESS. Otherwise, it should return the appropriate USB error.
If uncertain, use USB_FAILURE.

SEE ALSO


usba_hcdi_device_init(9E), usba_device(9S), usba_hcdi_ops(9S)

OmniOS February 15, 2020 OmniOS