Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
[safe/jmp/linux-2.6] / drivers / usb / core / endpoint.c
index 99e5a68..e1710f2 100644 (file)
@@ -156,6 +156,10 @@ static struct attribute *ep_dev_attrs[] = {
 static struct attribute_group ep_dev_attr_grp = {
        .attrs = ep_dev_attrs,
 };
+static struct attribute_group *ep_dev_groups[] = {
+       &ep_dev_attr_grp,
+       NULL
+};
 
 static int usb_endpoint_major_init(void)
 {
@@ -165,7 +169,8 @@ static int usb_endpoint_major_init(void)
        error = alloc_chrdev_region(&dev, 0, MAX_ENDPOINT_MINORS,
                                    "usb_endpoint");
        if (error) {
-               err("unable to get a dynamic major for usb endpoints");
+               printk(KERN_ERR "Unable to get a dynamic major for "
+                      "usb endpoints.\n");
                return error;
        }
        usb_endpoint_major = MAJOR(dev);
@@ -271,7 +276,7 @@ static void ep_device_release(struct device *dev)
        kfree(ep_dev);
 }
 
-int usb_create_ep_files(struct device *parent,
+int usb_create_ep_devs(struct device *parent,
                        struct usb_host_endpoint *endpoint,
                        struct usb_device *udev)
 {
@@ -292,26 +297,24 @@ int usb_create_ep_files(struct device *parent,
        retval = endpoint_get_minor(ep_dev);
        if (retval) {
                dev_err(parent, "can not allocate minor number for %s\n",
-                       ep_dev->dev.bus_id);
+                       dev_name(&ep_dev->dev));
                goto error_register;
        }
 
        ep_dev->desc = &endpoint->desc;
        ep_dev->udev = udev;
+       ep_dev->dev.groups = ep_dev_groups;
        ep_dev->dev.devt = MKDEV(usb_endpoint_major, ep_dev->minor);
        ep_dev->dev.class = ep_class->class;
        ep_dev->dev.parent = parent;
        ep_dev->dev.release = ep_device_release;
-       snprintf(ep_dev->dev.bus_id, BUS_ID_SIZE, "usbdev%d.%d_ep%02x",
+       dev_set_name(&ep_dev->dev, "usbdev%d.%d_ep%02x",
                 udev->bus->busnum, udev->devnum,
                 endpoint->desc.bEndpointAddress);
 
        retval = device_register(&ep_dev->dev);
        if (retval)
                goto error_chrdev;
-       retval = sysfs_create_group(&ep_dev->dev.kobj, &ep_dev_attr_grp);
-       if (retval)
-               goto error_group;
 
        /* create the symlink to the old-style "ep_XX" directory */
        sprintf(name, "ep_%02x", endpoint->desc.bEndpointAddress);
@@ -322,8 +325,6 @@ int usb_create_ep_files(struct device *parent,
        return retval;
 
 error_link:
-       sysfs_remove_group(&ep_dev->dev.kobj, &ep_dev_attr_grp);
-error_group:
        device_unregister(&ep_dev->dev);
        destroy_endpoint_class();
        return retval;
@@ -339,7 +340,7 @@ exit:
        return retval;
 }
 
-void usb_remove_ep_files(struct usb_host_endpoint *endpoint)
+void usb_remove_ep_devs(struct usb_host_endpoint *endpoint)
 {
        struct ep_device *ep_dev = endpoint->ep_dev;
 
@@ -348,7 +349,6 @@ void usb_remove_ep_files(struct usb_host_endpoint *endpoint)
 
                sprintf(name, "ep_%02x", endpoint->desc.bEndpointAddress);
                sysfs_remove_link(&ep_dev->dev.parent->kobj, name);
-               sysfs_remove_group(&ep_dev->dev.kobj, &ep_dev_attr_grp);
                device_unregister(&ep_dev->dev);
                endpoint->ep_dev = NULL;
                destroy_endpoint_class();