|
@@ -812,32 +812,11 @@ struct attribute_group *usb_interface_groups[] = {
|
|
NULL
|
|
NULL
|
|
};
|
|
};
|
|
|
|
|
|
-static inline void usb_create_intf_ep_files(struct usb_interface *intf,
|
|
|
|
- struct usb_device *udev)
|
|
|
|
-{
|
|
|
|
- struct usb_host_interface *iface_desc;
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- iface_desc = intf->cur_altsetting;
|
|
|
|
- for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i)
|
|
|
|
- usb_create_ep_files(&intf->dev, &iface_desc->endpoint[i],
|
|
|
|
- udev);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-static inline void usb_remove_intf_ep_files(struct usb_interface *intf)
|
|
|
|
-{
|
|
|
|
- struct usb_host_interface *iface_desc;
|
|
|
|
- int i;
|
|
|
|
-
|
|
|
|
- iface_desc = intf->cur_altsetting;
|
|
|
|
- for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i)
|
|
|
|
- usb_remove_ep_files(&iface_desc->endpoint[i]);
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
int usb_create_sysfs_intf_files(struct usb_interface *intf)
|
|
int usb_create_sysfs_intf_files(struct usb_interface *intf)
|
|
{
|
|
{
|
|
struct usb_device *udev = interface_to_usbdev(intf);
|
|
struct usb_device *udev = interface_to_usbdev(intf);
|
|
struct usb_host_interface *alt = intf->cur_altsetting;
|
|
struct usb_host_interface *alt = intf->cur_altsetting;
|
|
|
|
+ int i;
|
|
int retval;
|
|
int retval;
|
|
|
|
|
|
if (intf->sysfs_files_created || intf->unregistering)
|
|
if (intf->sysfs_files_created || intf->unregistering)
|
|
@@ -851,18 +830,22 @@ int usb_create_sysfs_intf_files(struct usb_interface *intf)
|
|
alt->string = usb_cache_string(udev, alt->desc.iInterface);
|
|
alt->string = usb_cache_string(udev, alt->desc.iInterface);
|
|
if (alt->string)
|
|
if (alt->string)
|
|
retval = device_create_file(&intf->dev, &dev_attr_interface);
|
|
retval = device_create_file(&intf->dev, &dev_attr_interface);
|
|
- usb_create_intf_ep_files(intf, udev);
|
|
|
|
|
|
+ for (i = 0; i < alt->desc.bNumEndpoints; ++i)
|
|
|
|
+ usb_create_ep_files(&intf->dev, &alt->endpoint[i], udev);
|
|
intf->sysfs_files_created = 1;
|
|
intf->sysfs_files_created = 1;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
void usb_remove_sysfs_intf_files(struct usb_interface *intf)
|
|
void usb_remove_sysfs_intf_files(struct usb_interface *intf)
|
|
{
|
|
{
|
|
- struct device *dev = &intf->dev;
|
|
|
|
|
|
+ struct usb_host_interface *alt = intf->cur_altsetting;
|
|
|
|
+ int i;
|
|
|
|
|
|
if (!intf->sysfs_files_created)
|
|
if (!intf->sysfs_files_created)
|
|
return;
|
|
return;
|
|
- usb_remove_intf_ep_files(intf);
|
|
|
|
- device_remove_file(dev, &dev_attr_interface);
|
|
|
|
|
|
+
|
|
|
|
+ for (i = 0; i < alt->desc.bNumEndpoints; ++i)
|
|
|
|
+ usb_remove_ep_files(&alt->endpoint[i]);
|
|
|
|
+ device_remove_file(&intf->dev, &dev_attr_interface);
|
|
intf->sysfs_files_created = 0;
|
|
intf->sysfs_files_created = 0;
|
|
}
|
|
}
|