USB_CREATE_PM_COMPONENTS(9F)USB_CREATE_PM_COMPONENTS(9F)NAMEusb_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
Solaris DDI specific (Solaris 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 cor‐
responding 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(5) for descriptions of the following attributes:
┌────────────────────┬───────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├────────────────────┼───────────────────┤
│Architecture │ PCI-based systems │
├────────────────────┼───────────────────┤
│Interface stability │ Committed │
└────────────────────┴───────────────────┘
SEE ALSOattributes(5), usb_clr_feature(9F), usb_register_hotplug_cbs(9F),
usb_get_cfg(9F), usb_get_dev_data(9F), usb_handle_remote_wakeup(9F),
pm_idle_component(9F), pm_busy_component(9F), pm_raise_power(9F),
pm_lower_power(9F), usb_cfg_descr(9S)
Jan 5, 2004 USB_CREATE_PM_COMPONENTS(9F)