Current File : //usr/share/man/man9f/usb_create_pm_components.9f
'\" te
.\" Copyright (c) 2004, Sun Microsystems, Inc., All Rights Reserved
.TH usb_create_pm_components 9F "5 Jan 2004" "SunOS 5.11" "Kernel Functions for Drivers"
.SH NAME
usb_create_pm_components \- Create power management components for USB devices
.SH SYNOPSIS
.LP
.nf
#include <sys/usb/usba.h>

\fBint\fR \fBusb_create_pm_components\fR(\fBdev_info_t *\fR\fIdip\fR, \fBuint_t *\fR\fIpwrstates\fR);
.fi

.SH INTERFACE LEVEL
.sp
.LP
Solaris DDI specific (Solaris DDI)
.SH PARAMETERS
.sp
.ne 2
.mk
.na
\fB\fIdip\fR\fR
.ad
.RS 13n
.rt  
Pointer to the device's \fBdev_info\fR structure.
.RE

.sp
.ne 2
.mk
.na
\fB\fIpwrstates\fR\fR
.ad
.RS 13n
.rt  
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:
.RE

.sp
.ne 2
.mk
.na
\fBUSB_DEV_PWRMASK_D0\fR
.ad
.RS 22n
.rt  
Corresponds to USB_DEV_OS_PWR_3 or full power.
.RE

.sp
.ne 2
.mk
.na
\fBUSB_DEV_PWRMASK_D1\fR
.ad
.RS 22n
.rt  
Corresponds to USB_DEV_OS_PWR_2.
.RE

.sp
.ne 2
.mk
.na
\fBUSB_DEV_PWRMASK_D2\fR
.ad
.RS 22n
.rt  
Corresponds to USB_DEV_OS_PWR_1.
.RE

.sp
.ne 2
.mk
.na
\fBUSB_DEV_PWRMASK_D3\fR
.ad
.RS 22n
.rt  
Corresponds to USB_DEV_OS_PWR_0 or no power.
.RE

.SH DESCRIPTION
.sp
.LP
The \fBusb_create_pm_components()\fR 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 \fBusb_create_pm_components()\fR function also updates the pm-components property in the device's dev_info structure.
.sp
.LP
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.
.SH RETURN VALUES
.sp
.ne 2
.mk
.na
\fBUSB_SUCCESS\fR
.ad
.RS 15n
.rt  
Power management facilities in device are recognized by system.
.RE

.sp
.ne 2
.mk
.na
\fBUSB_FAILURE\fR
.ad
.RS 15n
.rt  
An error occurred.
.RE

.SH CONTEXT
.sp
.LP
May be called from user or kernel context. 
.SH EXAMPLES
.sp
.in +2
.nf
   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);
    }
            
.fi
.in -2

.SH ATTRIBUTES
.sp
.LP
See \fBattributes\fR(5) for descriptions of the following attributes: 
.sp

.sp
.TS
tab() box;
cw(2.75i) |cw(2.75i) 
lw(2.75i) |lw(2.75i) 
.
ATTRIBUTE TYPEATTRIBUTE VALUE
_
ArchitecturePCI-based systems
_
Interface StabilityCommitted
_
Availabilitysystem/io/usb
.TE

.SH SEE ALSO
.sp
.LP
\fBattributes\fR(5), \fBusb_clr_feature\fR(9F), \fBusb_register_hotplug_cbs\fR(9F), \fBusb_get_cfg\fR(9F), \fBusb_get_dev_data\fR(9F), \fBusb_handle_remote_wakeup\fR(9F), \fBpm_idle_component\fR(9F), \fBpm_busy_component\fR(9F), \fBpm_raise_power\fR(9F), \fBpm_lower_power\fR(9F), \fBusb_cfg_descr\fR(9S)