Lines Matching refs:intf
227 static const struct usb_device_id *usb_match_dynamic_id(struct usb_interface *intf, in usb_match_dynamic_id() argument
234 if (usb_match_one_id(intf, &dynid->id)) { in usb_match_dynamic_id()
282 struct usb_interface *intf = to_usb_interface(dev); in usb_probe_interface() local
283 struct usb_device *udev = interface_to_usbdev(intf); in usb_probe_interface()
290 intf->needs_binding = 0; in usb_probe_interface()
296 dev_err(&intf->dev, "Device is not authorized for usage\n"); in usb_probe_interface()
300 id = usb_match_dynamic_id(intf, driver); in usb_probe_interface()
302 id = usb_match_id(intf, driver->id_table); in usb_probe_interface()
312 intf->condition = USB_INTERFACE_BINDING; in usb_probe_interface()
337 dev_err(&intf->dev, "%s Failed to disable LPM for driver %s\n.", in usb_probe_interface()
345 if (intf->needs_altsetting0) { in usb_probe_interface()
346 error = usb_set_interface(udev, intf->altsetting[0]. in usb_probe_interface()
350 intf->needs_altsetting0 = 0; in usb_probe_interface()
353 error = driver->probe(intf, id); in usb_probe_interface()
357 intf->condition = USB_INTERFACE_BOUND; in usb_probe_interface()
367 usb_set_intfdata(intf, NULL); in usb_probe_interface()
368 intf->needs_remote_wakeup = 0; in usb_probe_interface()
369 intf->condition = USB_INTERFACE_UNBOUND; in usb_probe_interface()
388 struct usb_interface *intf = to_usb_interface(dev); in usb_unbind_interface() local
394 intf->condition = USB_INTERFACE_UNBINDING; in usb_unbind_interface()
397 udev = interface_to_usbdev(intf); in usb_unbind_interface()
413 usb_disable_interface(udev, intf, false); in usb_unbind_interface()
415 driver->disconnect(intf); in usb_unbind_interface()
418 for (i = 0, j = 0; i < intf->cur_altsetting->desc.bNumEndpoints; i++) { in usb_unbind_interface()
419 ep = &intf->cur_altsetting->endpoint[i]; in usb_unbind_interface()
433 usb_free_streams(intf, eps, j, GFP_KERNEL); in usb_unbind_interface()
443 if (intf->cur_altsetting->desc.bAlternateSetting == 0) { in usb_unbind_interface()
447 usb_enable_interface(udev, intf, false); in usb_unbind_interface()
448 } else if (!error && !intf->dev.power.is_prepared) { in usb_unbind_interface()
449 r = usb_set_interface(udev, intf->altsetting[0]. in usb_unbind_interface()
452 intf->needs_altsetting0 = 1; in usb_unbind_interface()
454 intf->needs_altsetting0 = 1; in usb_unbind_interface()
456 usb_set_intfdata(intf, NULL); in usb_unbind_interface()
458 intf->condition = USB_INTERFACE_UNBOUND; in usb_unbind_interface()
459 intf->needs_remote_wakeup = 0; in usb_unbind_interface()
471 for (r = atomic_read(&intf->pm_usage_cnt); r > 0; --r) in usb_unbind_interface()
472 usb_autopm_put_interface_no_suspend(intf); in usb_unbind_interface()
473 atomic_set(&intf->pm_usage_cnt, 0); in usb_unbind_interface()
642 struct usb_host_interface *intf, in usb_match_one_id_intf() argument
657 (id->bInterfaceClass != intf->desc.bInterfaceClass)) in usb_match_one_id_intf()
661 (id->bInterfaceSubClass != intf->desc.bInterfaceSubClass)) in usb_match_one_id_intf()
665 (id->bInterfaceProtocol != intf->desc.bInterfaceProtocol)) in usb_match_one_id_intf()
669 (id->bInterfaceNumber != intf->desc.bInterfaceNumber)) in usb_match_one_id_intf()
679 struct usb_host_interface *intf; in usb_match_one_id() local
686 intf = interface->cur_altsetting; in usb_match_one_id()
692 return usb_match_one_id_intf(dev, intf, id); in usb_match_one_id()
804 struct usb_interface *intf; in usb_device_match() local
812 intf = to_usb_interface(dev); in usb_device_match()
815 id = usb_match_id(intf, usb_drv->id_table); in usb_device_match()
819 id = usb_match_dynamic_id(intf, usb_drv); in usb_device_match()
834 struct usb_interface *intf = to_usb_interface(dev); in usb_uevent() local
836 usb_dev = interface_to_usbdev(intf); in usb_uevent()
1010 void usb_forced_unbind_intf(struct usb_interface *intf) in usb_forced_unbind_intf() argument
1012 struct usb_driver *driver = to_usb_driver(intf->dev.driver); in usb_forced_unbind_intf()
1014 dev_dbg(&intf->dev, "forced unbind\n"); in usb_forced_unbind_intf()
1015 usb_driver_release_interface(driver, intf); in usb_forced_unbind_intf()
1018 intf->needs_binding = 1; in usb_forced_unbind_intf()
1031 struct usb_interface *intf; in unbind_marked_interfaces() local
1036 intf = config->interface[i]; in unbind_marked_interfaces()
1037 if (intf->dev.driver && intf->needs_binding) in unbind_marked_interfaces()
1038 usb_forced_unbind_intf(intf); in unbind_marked_interfaces()
1051 static void usb_rebind_intf(struct usb_interface *intf) in usb_rebind_intf() argument
1056 if (intf->dev.driver) in usb_rebind_intf()
1057 usb_forced_unbind_intf(intf); in usb_rebind_intf()
1060 if (!intf->dev.power.is_prepared) { in usb_rebind_intf()
1061 intf->needs_binding = 0; in usb_rebind_intf()
1062 rc = device_attach(&intf->dev); in usb_rebind_intf()
1064 dev_warn(&intf->dev, "rebind failed: %d\n", rc); in usb_rebind_intf()
1078 struct usb_interface *intf; in rebind_marked_interfaces() local
1083 intf = config->interface[i]; in rebind_marked_interfaces()
1084 if (intf->needs_binding) in rebind_marked_interfaces()
1085 usb_rebind_intf(intf); in rebind_marked_interfaces()
1115 struct usb_interface *intf; in unbind_no_pm_drivers_interfaces() local
1121 intf = config->interface[i]; in unbind_no_pm_drivers_interfaces()
1123 if (intf->dev.driver) { in unbind_no_pm_drivers_interfaces()
1124 drv = to_usb_driver(intf->dev.driver); in unbind_no_pm_drivers_interfaces()
1126 usb_forced_unbind_intf(intf); in unbind_no_pm_drivers_interfaces()
1188 struct usb_interface *intf, pm_message_t msg) in usb_suspend_interface() argument
1194 intf->condition == USB_INTERFACE_UNBOUND) in usb_suspend_interface()
1196 driver = to_usb_driver(intf->dev.driver); in usb_suspend_interface()
1199 status = driver->suspend(intf, msg); in usb_suspend_interface()
1201 dev_err(&intf->dev, "suspend error %d\n", status); in usb_suspend_interface()
1204 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); in usb_suspend_interface()
1209 struct usb_interface *intf, pm_message_t msg, int reset_resume) in usb_resume_interface() argument
1218 if (intf->condition == USB_INTERFACE_UNBINDING) in usb_resume_interface()
1222 if (intf->condition == USB_INTERFACE_UNBOUND) { in usb_resume_interface()
1225 if (intf->needs_altsetting0 && !intf->dev.power.is_prepared) { in usb_resume_interface()
1226 usb_set_interface(udev, intf->altsetting[0]. in usb_resume_interface()
1228 intf->needs_altsetting0 = 0; in usb_resume_interface()
1234 if (intf->needs_binding) in usb_resume_interface()
1236 driver = to_usb_driver(intf->dev.driver); in usb_resume_interface()
1240 status = driver->reset_resume(intf); in usb_resume_interface()
1242 dev_err(&intf->dev, "%s error %d\n", in usb_resume_interface()
1245 intf->needs_binding = 1; in usb_resume_interface()
1246 dev_dbg(&intf->dev, "no reset_resume for driver %s?\n", in usb_resume_interface()
1250 status = driver->resume(intf); in usb_resume_interface()
1252 dev_err(&intf->dev, "resume error %d\n", status); in usb_resume_interface()
1256 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); in usb_resume_interface()
1293 struct usb_interface *intf; in usb_suspend_both() local
1303 intf = udev->actconfig->interface[i]; in usb_suspend_both()
1304 status = usb_suspend_interface(udev, intf, msg); in usb_suspend_both()
1331 intf = udev->actconfig->interface[i]; in usb_suspend_both()
1332 usb_resume_interface(udev, intf, msg, 0); in usb_suspend_both()
1376 struct usb_interface *intf; in usb_resume_both() local
1391 intf = udev->actconfig->interface[i]; in usb_resume_both()
1392 usb_resume_interface(udev, intf, msg, in usb_resume_both()
1597 void usb_autopm_put_interface(struct usb_interface *intf) in usb_autopm_put_interface() argument
1599 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface()
1603 atomic_dec(&intf->pm_usage_cnt); in usb_autopm_put_interface()
1604 status = pm_runtime_put_sync(&intf->dev); in usb_autopm_put_interface()
1605 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_put_interface()
1606 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_put_interface()
1626 void usb_autopm_put_interface_async(struct usb_interface *intf) in usb_autopm_put_interface_async() argument
1628 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface_async()
1632 atomic_dec(&intf->pm_usage_cnt); in usb_autopm_put_interface_async()
1633 status = pm_runtime_put(&intf->dev); in usb_autopm_put_interface_async()
1634 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_put_interface_async()
1635 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_put_interface_async()
1649 void usb_autopm_put_interface_no_suspend(struct usb_interface *intf) in usb_autopm_put_interface_no_suspend() argument
1651 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface_no_suspend()
1654 atomic_dec(&intf->pm_usage_cnt); in usb_autopm_put_interface_no_suspend()
1655 pm_runtime_put_noidle(&intf->dev); in usb_autopm_put_interface_no_suspend()
1678 int usb_autopm_get_interface(struct usb_interface *intf) in usb_autopm_get_interface() argument
1682 status = pm_runtime_get_sync(&intf->dev); in usb_autopm_get_interface()
1684 pm_runtime_put_sync(&intf->dev); in usb_autopm_get_interface()
1686 atomic_inc(&intf->pm_usage_cnt); in usb_autopm_get_interface()
1687 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_get_interface()
1688 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_get_interface()
1713 int usb_autopm_get_interface_async(struct usb_interface *intf) in usb_autopm_get_interface_async() argument
1717 status = pm_runtime_get(&intf->dev); in usb_autopm_get_interface_async()
1719 pm_runtime_put_noidle(&intf->dev); in usb_autopm_get_interface_async()
1721 atomic_inc(&intf->pm_usage_cnt); in usb_autopm_get_interface_async()
1722 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_get_interface_async()
1723 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_get_interface_async()
1740 void usb_autopm_get_interface_no_resume(struct usb_interface *intf) in usb_autopm_get_interface_no_resume() argument
1742 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_get_interface_no_resume()
1745 atomic_inc(&intf->pm_usage_cnt); in usb_autopm_get_interface_no_resume()
1746 pm_runtime_get_noresume(&intf->dev); in usb_autopm_get_interface_no_resume()
1754 struct usb_interface *intf; in autosuspend_check() local
1762 intf = udev->actconfig->interface[i]; in autosuspend_check()
1769 if (intf->dev.power.disable_depth) in autosuspend_check()
1771 if (atomic_read(&intf->dev.power.usage_count) > 0) in autosuspend_check()
1773 w |= intf->needs_remote_wakeup; in autosuspend_check()
1782 driver = to_usb_driver(intf->dev.driver); in autosuspend_check()
1784 intf->needs_remote_wakeup) in autosuspend_check()