hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/usb/core/usb.h
....@@ -1,4 +1,4 @@
1
-// SPDX-License-Identifier: GPL-2.0
1
+/* SPDX-License-Identifier: GPL-2.0 */
22 /*
33 * Released under the GPLv2 only.
44 */
....@@ -37,19 +37,25 @@
3737 extern void usb_detect_quirks(struct usb_device *udev);
3838 extern void usb_detect_interface_quirks(struct usb_device *udev);
3939 extern void usb_release_quirk_list(void);
40
-extern bool usb_endpoint_is_blacklisted(struct usb_device *udev,
40
+extern bool usb_endpoint_is_ignored(struct usb_device *udev,
4141 struct usb_host_interface *intf,
4242 struct usb_endpoint_descriptor *epd);
4343 extern int usb_remove_device(struct usb_device *udev);
4444
45
-extern int usb_get_device_descriptor(struct usb_device *dev,
46
- unsigned int size);
45
+extern struct usb_device_descriptor *usb_get_device_descriptor(
46
+ struct usb_device *udev);
4747 extern int usb_set_isoch_delay(struct usb_device *dev);
4848 extern int usb_get_bos_descriptor(struct usb_device *dev);
4949 extern void usb_release_bos_descriptor(struct usb_device *dev);
5050 extern char *usb_cache_string(struct usb_device *udev, int index);
5151 extern int usb_set_configuration(struct usb_device *dev, int configuration);
5252 extern int usb_choose_configuration(struct usb_device *udev);
53
+extern int usb_generic_driver_probe(struct usb_device *udev);
54
+extern void usb_generic_driver_disconnect(struct usb_device *udev);
55
+extern int usb_generic_driver_suspend(struct usb_device *udev,
56
+ pm_message_t msg);
57
+extern int usb_generic_driver_resume(struct usb_device *udev,
58
+ pm_message_t msg);
5359
5460 static inline unsigned usb_get_max_power(struct usb_device *udev,
5561 struct usb_host_config *c)
....@@ -66,6 +72,10 @@
6672 const struct usb_device_id *id);
6773 extern int usb_match_device(struct usb_device *dev,
6874 const struct usb_device_id *id);
75
+extern const struct usb_device_id *usb_device_match_id(struct usb_device *udev,
76
+ const struct usb_device_id *id);
77
+extern bool usb_driver_applicable(struct usb_device *udev,
78
+ struct usb_device_driver *udrv);
6979 extern void usb_forced_unbind_intf(struct usb_interface *intf);
7080 extern void usb_unbind_and_rebind_marked_interfaces(struct usb_device *udev);
7181
....@@ -97,6 +107,9 @@
97107 extern int usb_runtime_idle(struct device *dev);
98108 extern int usb_enable_usb2_hardware_lpm(struct usb_device *udev);
99109 extern int usb_disable_usb2_hardware_lpm(struct usb_device *udev);
110
+
111
+extern void usbfs_notify_suspend(struct usb_device *udev);
112
+extern void usbfs_notify_resume(struct usb_device *udev);
100113
101114 #else
102115
....@@ -156,6 +169,11 @@
156169 return dev->type == &usb_port_device_type;
157170 }
158171
172
+static inline int is_root_hub(struct usb_device *udev)
173
+{
174
+ return (udev->parent == NULL);
175
+}
176
+
159177 /* Do the same for device drivers and interface drivers. */
160178
161179 static inline int is_usb_device_driver(struct device_driver *drv)
....@@ -172,11 +190,9 @@
172190 extern const struct attribute_group *usb_interface_groups[];
173191
174192 /* usbfs stuff */
175
-extern struct mutex usbfs_mutex;
176193 extern struct usb_driver usbfs_driver;
177194 extern const struct file_operations usbfs_devices_fops;
178195 extern const struct file_operations usbdev_file_operations;
179
-extern void usbfs_conn_disc_event(void);
180196
181197 extern int usb_devio_init(void);
182198 extern void usb_devio_cleanup(void);
....@@ -192,7 +208,6 @@
192208 extern void usb_notify_remove_device(struct usb_device *udev);
193209 extern void usb_notify_add_bus(struct usb_bus *ubus);
194210 extern void usb_notify_remove_bus(struct usb_bus *ubus);
195
-extern void usb_atomic_notify_dead_bus(struct usb_bus *ubus);
196211 extern void usb_hub_adjust_deviceremovable(struct usb_device *hdev,
197212 struct usb_hub_descriptor *desc);
198213