This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / drivers / usb / core / sysfs.c
index bae974d..78c5ca2 100644 (file)
 static ssize_t  show_##field (struct device *dev, char *buf)           \
 {                                                                      \
        struct usb_device *udev;                                        \
-       struct usb_host_config *actconfig;                              \
                                                                        \
        udev = to_usb_device (dev);                                     \
-       actconfig = udev->actconfig;                                    \
-       if (actconfig)                                                  \
+       if (udev->actconfig)                                            \
                return sprintf (buf, format_string,                     \
-                               actconfig->desc.field * multiplier);    \
+                               udev->actconfig->desc.field * multiplier);      \
        else                                                            \
                return 0;                                               \
 }                                                                      \
@@ -46,28 +44,6 @@ usb_actconfig_attr (bNumInterfaces, 1, "%2d\n")
 usb_actconfig_attr (bmAttributes, 1, "%2x\n")
 usb_actconfig_attr (bMaxPower, 2, "%3dmA\n")
 
-#define usb_actconfig_str(name, field)                                 \
-static ssize_t  show_##name(struct device *dev, char *buf)             \
-{                                                                      \
-       struct usb_device *udev;                                        \
-       struct usb_host_config *actconfig;                              \
-       int len;                                                        \
-                                                                       \
-       udev = to_usb_device (dev);                                     \
-       actconfig = udev->actconfig;                                    \
-       if (!actconfig)                                                 \
-               return 0;                                               \
-       len = usb_string(udev, actconfig->desc.field, buf, PAGE_SIZE);  \
-       if (len < 0)                                                    \
-               return 0;                                               \
-       buf[len] = '\n';                                                \
-       buf[len+1] = 0;                                                 \
-       return len+1;                                                   \
-}                                                                      \
-static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL);
-
-usb_actconfig_str (configuration, iConfiguration)
-
 /* configuration value is always present, and r/w */
 usb_actconfig_show(bConfigurationValue, 1, "%u\n");
 
@@ -79,9 +55,9 @@ set_bConfigurationValue (struct device *dev, const char *buf, size_t count)
 
        if (sscanf (buf, "%u", &config) != 1 || config > 255)
                return -EINVAL;
-       usb_lock_device(udev);
+       down(&udev->serialize);
        value = usb_set_configuration (udev, config);
-       usb_unlock_device(udev);
+       up(&udev->serialize);
        return (value < 0) ? value : count;
 }
 
@@ -222,7 +198,6 @@ void usb_create_sysfs_dev_files (struct usb_device *udev)
                device_create_file (dev, &dev_attr_product);
        if (udev->descriptor.iSerialNumber)
                device_create_file (dev, &dev_attr_serial);
-       device_create_file (dev, &dev_attr_configuration);
 }
 
 void usb_remove_sysfs_dev_files (struct usb_device *udev)
@@ -237,7 +212,6 @@ void usb_remove_sysfs_dev_files (struct usb_device *udev)
                device_remove_file(dev, &dev_attr_product);
        if (udev->descriptor.iSerialNumber)
                device_remove_file(dev, &dev_attr_serial);
-       device_remove_file (dev, &dev_attr_configuration);
 }
 
 /* Interface fields */
@@ -257,26 +231,7 @@ usb_intf_attr (bNumEndpoints, "%02x\n")
 usb_intf_attr (bInterfaceClass, "%02x\n")
 usb_intf_attr (bInterfaceSubClass, "%02x\n")
 usb_intf_attr (bInterfaceProtocol, "%02x\n")
-
-#define usb_intf_str(name, field)                                      \
-static ssize_t  show_##name(struct device *dev, char *buf)             \
-{                                                                      \
-       struct usb_interface *intf;                                     \
-       struct usb_device *udev;                                        \
-       int len;                                                        \
-                                                                       \
-       intf = to_usb_interface (dev);                                  \
-       udev = interface_to_usbdev (intf);                              \
-       len = usb_string(udev, intf->cur_altsetting->desc.field, buf, PAGE_SIZE);\
-       if (len < 0)                                                    \
-               return 0;                                               \
-       buf[len] = '\n';                                                \
-       buf[len+1] = 0;                                                 \
-       return len+1;                                                   \
-}                                                                      \
-static DEVICE_ATTR(name, S_IRUGO, show_##name, NULL);
-
-usb_intf_str (interface, iInterface);
+usb_intf_attr (iInterface, "%02x\n")
 
 static struct attribute *intf_attrs[] = {
        &dev_attr_bInterfaceNumber.attr,
@@ -285,6 +240,7 @@ static struct attribute *intf_attrs[] = {
        &dev_attr_bInterfaceClass.attr,
        &dev_attr_bInterfaceSubClass.attr,
        &dev_attr_bInterfaceProtocol.attr,
+       &dev_attr_iInterface.attr,
        NULL,
 };
 static struct attribute_group intf_attr_grp = {
@@ -294,17 +250,9 @@ static struct attribute_group intf_attr_grp = {
 void usb_create_sysfs_intf_files (struct usb_interface *intf)
 {
        sysfs_create_group(&intf->dev.kobj, &intf_attr_grp);
-
-       if (intf->cur_altsetting->desc.iInterface)
-               device_create_file(&intf->dev, &dev_attr_interface);
-               
 }
 
 void usb_remove_sysfs_intf_files (struct usb_interface *intf)
 {
        sysfs_remove_group(&intf->dev.kobj, &intf_attr_grp);
-
-       if (intf->cur_altsetting->desc.iInterface)
-               device_remove_file(&intf->dev, &dev_attr_interface);
-
 }