Go to main content

man pages section 9: DDI and DKI Kernel Functions

Exit Print View

Updated: July 2017
 
 

usb_create_pm_components(9F)

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

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 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(5) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Architecture
PCI-based systems
Interface Stability
Committed
Availability
system/io/usb

See Also

attributes(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)