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()
321 struct usb_interface *intf = to_usb_interface(dev); in usb_probe_interface() local
322 struct usb_device *udev = interface_to_usbdev(intf); in usb_probe_interface()
329 intf->needs_binding = 0; in usb_probe_interface()
335 dev_err(&intf->dev, "Device is not authorized for usage\n"); in usb_probe_interface()
337 } else if (intf->authorized == 0) { in usb_probe_interface()
338 dev_err(&intf->dev, "Interface %d is not authorized for usage\n", in usb_probe_interface()
339 intf->altsetting->desc.bInterfaceNumber); in usb_probe_interface()
343 id = usb_match_dynamic_id(intf, driver); in usb_probe_interface()
345 id = usb_match_id(intf, driver->id_table); in usb_probe_interface()
355 intf->condition = USB_INTERFACE_BINDING; in usb_probe_interface()
380 dev_err(&intf->dev, "%s Failed to disable LPM for driver %s\n", in usb_probe_interface()
388 if (intf->needs_altsetting0) { in usb_probe_interface()
389 error = usb_set_interface(udev, intf->altsetting[0]. in usb_probe_interface()
393 intf->needs_altsetting0 = 0; in usb_probe_interface()
396 error = driver->probe(intf, id); in usb_probe_interface()
400 intf->condition = USB_INTERFACE_BOUND; in usb_probe_interface()
410 usb_set_intfdata(intf, NULL); in usb_probe_interface()
411 intf->needs_remote_wakeup = 0; in usb_probe_interface()
412 intf->condition = USB_INTERFACE_UNBOUND; in usb_probe_interface()
431 struct usb_interface *intf = to_usb_interface(dev); in usb_unbind_interface() local
437 intf->condition = USB_INTERFACE_UNBINDING; in usb_unbind_interface()
440 udev = interface_to_usbdev(intf); in usb_unbind_interface()
456 usb_disable_interface(udev, intf, false); in usb_unbind_interface()
458 driver->disconnect(intf); in usb_unbind_interface()
461 for (i = 0, j = 0; i < intf->cur_altsetting->desc.bNumEndpoints; i++) { in usb_unbind_interface()
462 ep = &intf->cur_altsetting->endpoint[i]; in usb_unbind_interface()
474 usb_free_streams(intf, eps, j, GFP_KERNEL); in usb_unbind_interface()
484 if (intf->cur_altsetting->desc.bAlternateSetting == 0) { in usb_unbind_interface()
488 usb_enable_interface(udev, intf, false); in usb_unbind_interface()
489 } else if (!error && !intf->dev.power.is_prepared) { in usb_unbind_interface()
490 r = usb_set_interface(udev, intf->altsetting[0]. in usb_unbind_interface()
493 intf->needs_altsetting0 = 1; in usb_unbind_interface()
495 intf->needs_altsetting0 = 1; in usb_unbind_interface()
497 usb_set_intfdata(intf, NULL); in usb_unbind_interface()
499 intf->condition = USB_INTERFACE_UNBOUND; in usb_unbind_interface()
500 intf->needs_remote_wakeup = 0; in usb_unbind_interface()
679 struct usb_host_interface *intf, in usb_match_one_id_intf() argument
694 (id->bInterfaceClass != intf->desc.bInterfaceClass)) in usb_match_one_id_intf()
698 (id->bInterfaceSubClass != intf->desc.bInterfaceSubClass)) in usb_match_one_id_intf()
702 (id->bInterfaceProtocol != intf->desc.bInterfaceProtocol)) in usb_match_one_id_intf()
706 (id->bInterfaceNumber != intf->desc.bInterfaceNumber)) in usb_match_one_id_intf()
716 struct usb_host_interface *intf; in usb_match_one_id() local
723 intf = interface->cur_altsetting; in usb_match_one_id()
729 return usb_match_one_id_intf(dev, intf, id); in usb_match_one_id()
882 struct usb_interface *intf; in usb_device_match() local
890 intf = to_usb_interface(dev); in usb_device_match()
893 id = usb_match_id(intf, usb_drv->id_table); in usb_device_match()
897 id = usb_match_dynamic_id(intf, usb_drv); in usb_device_match()
912 struct usb_interface *intf = to_usb_interface(dev); in usb_uevent() local
914 usb_dev = interface_to_usbdev(intf); in usb_uevent()
1116 void usb_forced_unbind_intf(struct usb_interface *intf) in usb_forced_unbind_intf() argument
1118 struct usb_driver *driver = to_usb_driver(intf->dev.driver); in usb_forced_unbind_intf()
1120 dev_dbg(&intf->dev, "forced unbind\n"); in usb_forced_unbind_intf()
1121 usb_driver_release_interface(driver, intf); in usb_forced_unbind_intf()
1124 intf->needs_binding = 1; in usb_forced_unbind_intf()
1137 struct usb_interface *intf; in unbind_marked_interfaces() local
1142 intf = config->interface[i]; in unbind_marked_interfaces()
1143 if (intf->dev.driver && intf->needs_binding) in unbind_marked_interfaces()
1144 usb_forced_unbind_intf(intf); in unbind_marked_interfaces()
1157 static void usb_rebind_intf(struct usb_interface *intf) in usb_rebind_intf() argument
1162 if (intf->dev.driver) in usb_rebind_intf()
1163 usb_forced_unbind_intf(intf); in usb_rebind_intf()
1166 if (!intf->dev.power.is_prepared) { in usb_rebind_intf()
1167 intf->needs_binding = 0; in usb_rebind_intf()
1168 rc = device_attach(&intf->dev); in usb_rebind_intf()
1170 dev_warn(&intf->dev, "rebind failed: %d\n", rc); in usb_rebind_intf()
1184 struct usb_interface *intf; in rebind_marked_interfaces() local
1189 intf = config->interface[i]; in rebind_marked_interfaces()
1190 if (intf->needs_binding) in rebind_marked_interfaces()
1191 usb_rebind_intf(intf); in rebind_marked_interfaces()
1221 struct usb_interface *intf; in unbind_no_pm_drivers_interfaces() local
1227 intf = config->interface[i]; in unbind_no_pm_drivers_interfaces()
1229 if (intf->dev.driver) { in unbind_no_pm_drivers_interfaces()
1230 drv = to_usb_driver(intf->dev.driver); in unbind_no_pm_drivers_interfaces()
1232 usb_forced_unbind_intf(intf); in unbind_no_pm_drivers_interfaces()
1300 struct usb_interface *intf, pm_message_t msg) in usb_suspend_interface() argument
1306 intf->condition == USB_INTERFACE_UNBOUND) in usb_suspend_interface()
1308 driver = to_usb_driver(intf->dev.driver); in usb_suspend_interface()
1311 status = driver->suspend(intf, msg); in usb_suspend_interface()
1313 dev_err(&intf->dev, "suspend error %d\n", status); in usb_suspend_interface()
1316 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); in usb_suspend_interface()
1321 struct usb_interface *intf, pm_message_t msg, int reset_resume) in usb_resume_interface() argument
1330 if (intf->condition == USB_INTERFACE_UNBINDING) in usb_resume_interface()
1334 if (intf->condition == USB_INTERFACE_UNBOUND) { in usb_resume_interface()
1337 if (intf->needs_altsetting0 && !intf->dev.power.is_prepared) { in usb_resume_interface()
1338 usb_set_interface(udev, intf->altsetting[0]. in usb_resume_interface()
1340 intf->needs_altsetting0 = 0; in usb_resume_interface()
1346 if (intf->needs_binding) in usb_resume_interface()
1348 driver = to_usb_driver(intf->dev.driver); in usb_resume_interface()
1352 status = driver->reset_resume(intf); in usb_resume_interface()
1354 dev_err(&intf->dev, "%s error %d\n", in usb_resume_interface()
1357 intf->needs_binding = 1; in usb_resume_interface()
1358 dev_dbg(&intf->dev, "no reset_resume for driver %s?\n", in usb_resume_interface()
1362 status = driver->resume(intf); in usb_resume_interface()
1364 dev_err(&intf->dev, "resume error %d\n", status); in usb_resume_interface()
1368 dev_vdbg(&intf->dev, "%s: status %d\n", __func__, status); in usb_resume_interface()
1405 struct usb_interface *intf; in usb_suspend_both() local
1415 intf = udev->actconfig->interface[i]; in usb_suspend_both()
1416 status = usb_suspend_interface(udev, intf, msg); in usb_suspend_both()
1461 intf = udev->actconfig->interface[i]; in usb_suspend_both()
1462 usb_resume_interface(udev, intf, msg, 0); in usb_suspend_both()
1506 struct usb_interface *intf; in usb_resume_both() local
1521 intf = udev->actconfig->interface[i]; in usb_resume_both()
1522 usb_resume_interface(udev, intf, msg, in usb_resume_both()
1735 void usb_autopm_put_interface(struct usb_interface *intf) in usb_autopm_put_interface() argument
1737 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface()
1741 status = pm_runtime_put_sync(&intf->dev); in usb_autopm_put_interface()
1742 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_put_interface()
1743 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_put_interface()
1763 void usb_autopm_put_interface_async(struct usb_interface *intf) in usb_autopm_put_interface_async() argument
1765 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface_async()
1769 status = pm_runtime_put(&intf->dev); in usb_autopm_put_interface_async()
1770 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_put_interface_async()
1771 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_put_interface_async()
1785 void usb_autopm_put_interface_no_suspend(struct usb_interface *intf) in usb_autopm_put_interface_no_suspend() argument
1787 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_put_interface_no_suspend()
1790 pm_runtime_put_noidle(&intf->dev); in usb_autopm_put_interface_no_suspend()
1813 int usb_autopm_get_interface(struct usb_interface *intf) in usb_autopm_get_interface() argument
1817 status = pm_runtime_get_sync(&intf->dev); in usb_autopm_get_interface()
1819 pm_runtime_put_sync(&intf->dev); in usb_autopm_get_interface()
1820 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_get_interface()
1821 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_get_interface()
1846 int usb_autopm_get_interface_async(struct usb_interface *intf) in usb_autopm_get_interface_async() argument
1850 status = pm_runtime_get(&intf->dev); in usb_autopm_get_interface_async()
1852 pm_runtime_put_noidle(&intf->dev); in usb_autopm_get_interface_async()
1853 dev_vdbg(&intf->dev, "%s: cnt %d -> %d\n", in usb_autopm_get_interface_async()
1854 __func__, atomic_read(&intf->dev.power.usage_count), in usb_autopm_get_interface_async()
1871 void usb_autopm_get_interface_no_resume(struct usb_interface *intf) in usb_autopm_get_interface_no_resume() argument
1873 struct usb_device *udev = interface_to_usbdev(intf); in usb_autopm_get_interface_no_resume()
1876 pm_runtime_get_noresume(&intf->dev); in usb_autopm_get_interface_no_resume()
1884 struct usb_interface *intf; in autosuspend_check() local
1895 intf = udev->actconfig->interface[i]; in autosuspend_check()
1902 if (intf->dev.power.disable_depth) in autosuspend_check()
1904 if (atomic_read(&intf->dev.power.usage_count) > 0) in autosuspend_check()
1906 w |= intf->needs_remote_wakeup; in autosuspend_check()
1915 driver = to_usb_driver(intf->dev.driver); in autosuspend_check()
1917 intf->needs_remote_wakeup) in autosuspend_check()