Lines Matching refs:intf
231 static const struct usb_device_id *usb_match_dynamic_id(struct usb_interface *intf, in usb_match_dynamic_id() argument
238 if (usb_match_one_id(intf, &dynid->id)) { in usb_match_dynamic_id()
286 struct usb_interface *intf = to_usb_interface(dev); in usb_probe_interface() local
287 struct usb_device *udev = interface_to_usbdev(intf); in usb_probe_interface()
294 intf->needs_binding = 0; in usb_probe_interface()
300 dev_err(&intf->dev, "Device is not authorized for usage\n"); in usb_probe_interface()
302 } else if (intf->authorized == 0) { in usb_probe_interface()
303 dev_err(&intf->dev, "Interface %d is not authorized for usage\n", in usb_probe_interface()
304 intf->altsetting->desc.bInterfaceNumber); in usb_probe_interface()
308 id = usb_match_dynamic_id(intf, driver); in usb_probe_interface()
310 id = usb_match_id(intf, driver->id_table); in usb_probe_interface()
320 intf->condition = USB_INTERFACE_BINDING; in usb_probe_interface()
345 dev_err(&intf->dev, "%s Failed to disable LPM for driver %s\n", in usb_probe_interface()
353 if (intf->needs_altsetting0) { in usb_probe_interface()
354 error = usb_set_interface(udev, intf->altsetting[0]. in usb_probe_interface()
358 intf->needs_altsetting0 = 0; in usb_probe_interface()
361 error = driver->probe(intf, id); in usb_probe_interface()
365 intf->condition = USB_INTERFACE_BOUND; in usb_probe_interface()
375 usb_set_intfdata(intf, NULL); in usb_probe_interface()
376 intf->needs_remote_wakeup = 0; in usb_probe_interface()
377 intf->condition = USB_INTERFACE_UNBOUND; in usb_probe_interface()
396 struct usb_interface *intf = to_usb_interface(dev); in usb_unbind_interface() local
402 intf->condition = USB_INTERFACE_UNBINDING; in usb_unbind_interface()
405 udev = interface_to_usbdev(intf); in usb_unbind_interface()
421 usb_disable_interface(udev, intf, false); in usb_unbind_interface()
423 driver->disconnect(intf); in usb_unbind_interface()
426 for (i = 0, j = 0; i < intf->cur_altsetting->desc.bNumEndpoints; i++) { in usb_unbind_interface()
427 ep = &intf->cur_altsetting->endpoint[i]; in usb_unbind_interface()
439 usb_free_streams(intf, eps, j, GFP_KERNEL); in usb_unbind_interface()
449 if (intf->cur_altsetting->desc.bAlternateSetting == 0) { in usb_unbind_interface()
453 usb_enable_interface(udev, intf, false); in usb_unbind_interface()
454 } else if (!error && !intf->dev.power.is_prepared) { in usb_unbind_interface()
455 r = usb_set_interface(udev, intf->altsetting[0]. in usb_unbind_interface()
458 intf->needs_altsetting0 = 1; in usb_unbind_interface()
460 intf->needs_altsetting0 = 1; in usb_unbind_interface()
462 usb_set_intfdata(intf, NULL); in usb_unbind_interface()
464 intf->condition = USB_INTERFACE_UNBOUND; in usb_unbind_interface()
465 intf->needs_remote_wakeup = 0; in usb_unbind_interface()
644 struct usb_host_interface *intf, in usb_match_one_id_intf() argument
659 (id->bInterfaceClass != intf->desc.bInterfaceClass)) in usb_match_one_id_intf()
663 (id->bInterfaceSubClass != intf->desc.bInterfaceSubClass)) in usb_match_one_id_intf()
667 (id->bInterfaceProtocol != intf->desc.bInterfaceProtocol)) in usb_match_one_id_intf()
671 (id->bInterfaceNumber != intf->desc.bInterfaceNumber)) in usb_match_one_id_intf()
681 struct usb_host_interface *intf; in usb_match_one_id() local
688 intf = interface->cur_altsetting; in usb_match_one_id()
694 return usb_match_one_id_intf(dev, intf, id); in usb_match_one_id()
806 struct usb_interface *intf; in usb_device_match() local
814 intf = to_usb_interface(dev); in usb_device_match()
817 id = usb_match_id(intf, usb_drv->id_table); in usb_device_match()
821 id = usb_match_dynamic_id(intf, usb_drv); in usb_device_match()
836 struct usb_interface *intf = to_usb_interface(dev); in usb_uevent() local
838 usb_dev = interface_to_usbdev(intf); in usb_uevent()
1014 void usb_forced_unbind_intf(struct usb_interface *intf) in usb_forced_unbind_intf() argument
1016 struct usb_driver *driver = to_usb_driver(intf->dev.driver); in usb_forced_unbind_intf()
1018 dev_dbg(&intf->dev, "forced unbind\n"); in usb_forced_unbind_intf()
1019 usb_driver_release_interface(driver, intf); in usb_forced_unbind_intf()
1022 intf->needs_binding = 1; in usb_forced_unbind_intf()
1035 struct usb_interface *intf; in unbind_marked_interfaces() local
1040 intf = config->interface[i]; in unbind_marked_interfaces()
1041 if (intf->dev.driver && intf->needs_binding) in unbind_marked_interfaces()
1042 usb_forced_unbind_intf(intf); in unbind_marked_interfaces()
1055 static void usb_rebind_intf(struct usb_interface *intf) in usb_rebind_intf() argument
1060 if (intf->dev.driver) in usb_rebind_intf()
1061 usb_forced_unbind_intf(intf); in usb_rebind_intf()
1064 if (!intf->dev.power.is_prepared) { in usb_rebind_intf()
1065 intf->needs_binding = 0; in usb_rebind_intf()
1066 rc = device_attach(&intf->dev); in usb_rebind_intf()
1068 dev_warn(&intf->dev, "rebind failed: %d\n", rc); in usb_rebind_intf()
1082 struct usb_interface *intf; in rebind_marked_interfaces() local
1087 intf = config->interface[i]; in rebind_marked_interfaces()
1088 if (intf->needs_binding) in rebind_marked_interfaces()
1089 usb_rebind_intf(intf); in rebind_marked_interfaces()
1119 struct usb_interface *intf; in unbind_no_pm_drivers_interfaces() local
1125 intf = config->interface[i]; in unbind_no_pm_drivers_interfaces()
1127 if (intf->dev.driver) { in unbind_no_pm_drivers_interfaces()
1128 drv = to_usb_driver(intf->dev.driver); in unbind_no_pm_drivers_interfaces()
1130 usb_forced_unbind_intf(intf); in unbind_no_pm_drivers_interfaces()
1192 struct usb_interface *intf, pm_message_t msg) in usb_suspend_interface() argument
1198 intf->condition == USB_INTERFACE_UNBOUND) in usb_suspend_interface()
1200 driver = to_usb_driver(intf->dev.driver); in usb_suspend_interface()
1203 status = driver->suspend(intf, msg); in usb_suspend_interface()
1205 dev_err(&intf->dev, "suspend error %d\n", status); in usb_suspend_interface()
1208 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); in usb_suspend_interface()
1213 struct usb_interface *intf, pm_message_t msg, int reset_resume) in usb_resume_interface() argument
1222 if (intf->condition == USB_INTERFACE_UNBINDING) in usb_resume_interface()
1226 if (intf->condition == USB_INTERFACE_UNBOUND) { in usb_resume_interface()
1229 if (intf->needs_altsetting0 && !intf->dev.power.is_prepared) { in usb_resume_interface()
1230 usb_set_interface(udev, intf->altsetting[0]. in usb_resume_interface()
1232 intf->needs_altsetting0 = 0; in usb_resume_interface()
1238 if (intf->needs_binding) in usb_resume_interface()
1240 driver = to_usb_driver(intf->dev.driver); in usb_resume_interface()
1244 status = driver->reset_resume(intf); in usb_resume_interface()
1246 dev_err(&intf->dev, "%s error %d\n", in usb_resume_interface()
1249 intf->needs_binding = 1; in usb_resume_interface()
1250 dev_dbg(&intf->dev, "no reset_resume for driver %s?\n", in usb_resume_interface()
1254 status = driver->resume(intf); in usb_resume_interface()
1256 dev_err(&intf->dev, "resume error %d\n", status); in usb_resume_interface()
1260 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); in usb_resume_interface()
1297 struct usb_interface *intf; in usb_suspend_both() local
1307 intf = udev->actconfig->interface[i]; in usb_suspend_both()
1308 status = usb_suspend_interface(udev, intf, msg); in usb_suspend_both()
1353 intf = udev->actconfig->interface[i]; in usb_suspend_both()
1354 usb_resume_interface(udev, intf, msg, 0); in usb_suspend_both()
1398 struct usb_interface *intf; in usb_resume_both() local
1413 intf = udev->actconfig->interface[i]; in usb_resume_both()
1414 usb_resume_interface(udev, intf, msg, in usb_resume_both()
1627 void usb_autopm_put_interface(struct usb_interface *intf) in usb_autopm_put_interface() argument
1629 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface()
1633 status = pm_runtime_put_sync(&intf->dev); in usb_autopm_put_interface()
1634 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_put_interface()
1635 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_put_interface()
1655 void usb_autopm_put_interface_async(struct usb_interface *intf) in usb_autopm_put_interface_async() argument
1657 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface_async()
1661 status = pm_runtime_put(&intf->dev); in usb_autopm_put_interface_async()
1662 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_put_interface_async()
1663 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_put_interface_async()
1677 void usb_autopm_put_interface_no_suspend(struct usb_interface *intf) in usb_autopm_put_interface_no_suspend() argument
1679 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface_no_suspend()
1682 pm_runtime_put_noidle(&intf->dev); in usb_autopm_put_interface_no_suspend()
1705 int usb_autopm_get_interface(struct usb_interface *intf) in usb_autopm_get_interface() argument
1709 status = pm_runtime_get_sync(&intf->dev); in usb_autopm_get_interface()
1711 pm_runtime_put_sync(&intf->dev); in usb_autopm_get_interface()
1712 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_get_interface()
1713 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_get_interface()
1738 int usb_autopm_get_interface_async(struct usb_interface *intf) in usb_autopm_get_interface_async() argument
1742 status = pm_runtime_get(&intf->dev); in usb_autopm_get_interface_async()
1744 pm_runtime_put_noidle(&intf->dev); in usb_autopm_get_interface_async()
1745 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_get_interface_async()
1746 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_get_interface_async()
1763 void usb_autopm_get_interface_no_resume(struct usb_interface *intf) in usb_autopm_get_interface_no_resume() argument
1765 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_get_interface_no_resume()
1768 pm_runtime_get_noresume(&intf->dev); in usb_autopm_get_interface_no_resume()
1776 struct usb_interface *intf; in autosuspend_check() local
1787 intf = udev->actconfig->interface[i]; in autosuspend_check()
1794 if (intf->dev.power.disable_depth) in autosuspend_check()
1796 if (atomic_read(&intf->dev.power.usage_count) > 0) in autosuspend_check()
1798 w |= intf->needs_remote_wakeup; in autosuspend_check()
1807 driver = to_usb_driver(intf->dev.driver); in autosuspend_check()
1809 intf->needs_remote_wakeup) in autosuspend_check()