USB_CREATE_PM_COMPONENTS(9F) Kernel Functions for Drivers

NAME


usb_create_pm_components - Create power management components for USB
devices

SYNOPSIS


#include <sys/usb/usba.h>


int usb_create_pm_components(dev_info_t *dip, uint_t *pwrstates);


INTERFACE LEVEL


illumos DDI specific (illumos DDI)

PARAMETERS


dip
Pointer to the device's dev_info structure.


pwrstates
Address into which a mask which lists power states
capable by device is returned. This is a bitmask
containing zero or more of the following values:


USB_DEV_PWRMASK_D0
Corresponds to USB_DEV_OS_PWR_3 or full power.


USB_DEV_PWRMASK_D1
Corresponds to USB_DEV_OS_PWR_2.


USB_DEV_PWRMASK_D2
Corresponds to USB_DEV_OS_PWR_1.


USB_DEV_PWRMASK_D3
Corresponds to USB_DEV_OS_PWR_0 or no power.


DESCRIPTION


The usb_create_pm_components() function creates pm component
properties that assume the standard USB D0-D3 powerlevels
(USB_DEV_PWR_D0 - USB_DEV_PWR_D3). See the device's relevant USB
descriptor to determine the device's power management capabilities
and account for bus-powered devices. The usb_create_pm_components()
function also updates the pm-components property in the device's
dev_info structure.


Note that these USB power levels are inverse of OS power levels. For
example, USB_DEV_OS_PWR_0 and USB_DEV_PWR_D3 are equivalent levels
corresponding to powered-down.

RETURN VALUES


USB_SUCCESS
Power management facilities in device are recognized
by system.


USB_FAILURE
An error occurred.


CONTEXT


May be called from user or kernel context.

EXAMPLES


uint_t *pwrstates;

/* Hook into device's power management. Enable remote wakeup. */
if (usb_create_pm_components(dip, pwrstates) == USB_SUCCESS) {
usb_handle_remote_wakeup(dip,USB_REMOTE_WAKEUP_ENABLE);
}


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-------------------+
|Architecture | PCI-based systems |
+--------------------+-------------------+
|Interface stability | Committed |
+--------------------+-------------------+

SEE ALSO


attributes(7), pm_busy_component(9F), pm_idle_component(9F),
pm_lower_power(9F), pm_raise_power(9F), usb_clr_feature(9F),
usb_get_cfg(9F), usb_get_dev_data(9F), usb_handle_remote_wakeup(9F),
usb_register_hotplug_cbs(9F), usb_cfg_descr(9S)

January 5, 2004 USB_CREATE_PM_COMPONENTS(9F)

tribblix@gmail.com :: GitHub :: Privacy