/* * Functions to handle power transition for OS levels 0 -> 3 * The same level as OS state, different from USB state */ static int uftdi_pwrlvl0(uftdi_state_t *uf) { int rval; USB_DPRINTF_L4(DPRINT_PM, uf->uf_lh, "uftdi_pwrlvl0"); switch (uf->uf_dev_state) { case USB_DEV_ONLINE: /* issue USB D3 command to the device */ rval = usb_set_device_pwrlvl3(uf->uf_dip); ASSERT(rval == USB_SUCCESS); uf->uf_dev_state = USB_DEV_PWRED_DOWN; uf->uf_pm->pm_cur_power = USB_DEV_OS_PWR_OFF; /*FALLTHROUGH*/ case USB_DEV_DISCONNECTED: case USB_DEV_SUSPENDED: /* allow a disconnect/cpr'ed device to go to lower power */ return (USB_SUCCESS); case USB_DEV_PWRED_DOWN: default: USB_DPRINTF_L2(DPRINT_PM, uf->uf_lh, "uftdi_pwrlvl0: illegal device state"); return (USB_FAILURE); } }
int usba10_usb_set_device_pwrlvl3(dev_info_t *dip) { return (usb_set_device_pwrlvl3(dip)); }