USB_CREATE_PM_COMPONENTS(9F) | Kernel Functions for Drivers | USB_CREATE_PM_COMPONENTS(9F) |
usb_create_pm_components - Create power management components for USB devices
#include <sys/usb/usba.h> int usb_create_pm_components(dev_info_t *dip, uint_t *pwrstates);
illumos DDI specific (illumos DDI)
dip
pwrstates
USB_DEV_PWRMASK_D0
USB_DEV_PWRMASK_D1
USB_DEV_PWRMASK_D2
USB_DEV_PWRMASK_D3
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.
USB_SUCCESS
USB_FAILURE
May be called from user or kernel context.
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);
}
See attributes(7) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
Architecture | PCI-based systems |
Interface stability | Committed |
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 | OmniOS |