summaryrefslogtreecommitdiffstats
path: root/drivers/usb/core/endpoint.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-05-14 10:52:40 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-14 10:52:40 -0700
commite90a4e475a8b34adbefe189c9d0932fa0b7b750f (patch)
tree9547183741c7361edd9e329d8a000ae432378a87 /drivers/usb/core/endpoint.c
parent6aa5fc434958d15a4d66d922d0416dfb03c07def (diff)
parent405177070614f35133304d4daa1332afeb83ffa2 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb-2.6: (22 commits) USB: atmel_usba_udc fixes, mostly disconnect() USB: pxa27x_udc: minor fixes usbtest: comment on why this code "expects" negative and positive errnos USB: remove PICDEM FS USB demo (04d8:000c) device from ldusb USB: option: add new Dell 5520 HSDPA variant USB: unusual_devs: Add support for GI 0401 SD-Card interface USB: serial gadget: descriptor cleanup USB: serial gadget: simplify endpoint handling USB: serial gadget: remove needless data structure USB: serial gadget: cleanup/reorg usb: fix compile warning in isp1760 USB: do not handle device 1410:5010 in 'option' driver USB: Fix unusual_devs.h ordering USB: add Zoom Telephonics Model 3095F V.92 USB Mini External modem to cdc-acm USB: Support for the ET502HS HDSPA modem in option driver USB: Support for the ET502HS HDSPA modem usb: fix integer as NULL pointer warnings found by sparse USB: isp1760: fix printk format USB: add Telstra NextG CDMA id to option driver USB: add association.h ...
Diffstat (limited to 'drivers/usb/core/endpoint.c')
-rw-r--r--drivers/usb/core/endpoint.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/usb/core/endpoint.c b/drivers/usb/core/endpoint.c
index 99e5a68a3f1..fae55a31e26 100644
--- a/drivers/usb/core/endpoint.c
+++ b/drivers/usb/core/endpoint.c
@@ -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)
{
@@ -298,6 +302,7 @@ int usb_create_ep_files(struct device *parent,
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;
@@ -309,9 +314,6 @@ int usb_create_ep_files(struct device *parent,
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 +324,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;
@@ -348,7 +348,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();