diff options
Diffstat (limited to 'drivers/usb')
-rw-r--r-- | drivers/usb/core/devices.c | 2 | ||||
-rw-r--r-- | drivers/usb/core/file.c | 13 | ||||
-rw-r--r-- | drivers/usb/core/hcd.c | 61 | ||||
-rw-r--r-- | drivers/usb/core/sysfs.c | 26 | ||||
-rw-r--r-- | drivers/usb/core/usb.c | 53 | ||||
-rw-r--r-- | drivers/usb/gadget/dummy_hcd.c | 4 | ||||
-rw-r--r-- | drivers/usb/gadget/file_storage.c | 8 | ||||
-rw-r--r-- | drivers/usb/gadget/net2280.c | 6 | ||||
-rw-r--r-- | drivers/usb/gadget/pxa2xx_udc.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ehci-dbg.c | 10 | ||||
-rw-r--r-- | drivers/usb/host/ohci-dbg.c | 10 | ||||
-rw-r--r-- | drivers/usb/input/aiptek.c | 78 | ||||
-rw-r--r-- | drivers/usb/misc/cytherm.c | 20 | ||||
-rw-r--r-- | drivers/usb/misc/phidgetkit.c | 14 | ||||
-rw-r--r-- | drivers/usb/misc/phidgetservo.c | 4 | ||||
-rw-r--r-- | drivers/usb/misc/usbled.c | 4 | ||||
-rw-r--r-- | drivers/usb/serial/ftdi_sio.c | 6 | ||||
-rw-r--r-- | drivers/usb/storage/scsiglue.c | 4 |
18 files changed, 165 insertions, 160 deletions
diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c index ef0b35731ff0..83e815d3cd52 100644 --- a/drivers/usb/core/devices.c +++ b/drivers/usb/core/devices.c | |||
@@ -239,7 +239,7 @@ static char *usb_dump_interface_descriptor(char *start, char *end, | |||
239 | int setno) | 239 | int setno) |
240 | { | 240 | { |
241 | const struct usb_interface_descriptor *desc = &intfc->altsetting[setno].desc; | 241 | const struct usb_interface_descriptor *desc = &intfc->altsetting[setno].desc; |
242 | char *driver_name = ""; | 242 | const char *driver_name = ""; |
243 | 243 | ||
244 | if (start > end) | 244 | if (start > end) |
245 | return start; | 245 | return start; |
diff --git a/drivers/usb/core/file.c b/drivers/usb/core/file.c index 38ed2220c9fc..65ca131cc44c 100644 --- a/drivers/usb/core/file.c +++ b/drivers/usb/core/file.c | |||
@@ -68,7 +68,7 @@ static struct file_operations usb_fops = { | |||
68 | .open = usb_open, | 68 | .open = usb_open, |
69 | }; | 69 | }; |
70 | 70 | ||
71 | static struct class_simple *usb_class; | 71 | static struct class *usb_class; |
72 | 72 | ||
73 | int usb_major_init(void) | 73 | int usb_major_init(void) |
74 | { | 74 | { |
@@ -80,9 +80,10 @@ int usb_major_init(void) | |||
80 | goto out; | 80 | goto out; |
81 | } | 81 | } |
82 | 82 | ||
83 | usb_class = class_simple_create(THIS_MODULE, "usb"); | 83 | usb_class = class_create(THIS_MODULE, "usb"); |
84 | if (IS_ERR(usb_class)) { | 84 | if (IS_ERR(usb_class)) { |
85 | err("class_simple_create failed for usb devices"); | 85 | error = PTR_ERR(usb_class); |
86 | err("class_create failed for usb devices"); | ||
86 | unregister_chrdev(USB_MAJOR, "usb"); | 87 | unregister_chrdev(USB_MAJOR, "usb"); |
87 | goto out; | 88 | goto out; |
88 | } | 89 | } |
@@ -95,7 +96,7 @@ out: | |||
95 | 96 | ||
96 | void usb_major_cleanup(void) | 97 | void usb_major_cleanup(void) |
97 | { | 98 | { |
98 | class_simple_destroy(usb_class); | 99 | class_destroy(usb_class); |
99 | devfs_remove("usb"); | 100 | devfs_remove("usb"); |
100 | unregister_chrdev(USB_MAJOR, "usb"); | 101 | unregister_chrdev(USB_MAJOR, "usb"); |
101 | } | 102 | } |
@@ -171,7 +172,7 @@ int usb_register_dev(struct usb_interface *intf, | |||
171 | ++temp; | 172 | ++temp; |
172 | else | 173 | else |
173 | temp = name; | 174 | temp = name; |
174 | intf->class_dev = class_simple_device_add(usb_class, MKDEV(USB_MAJOR, minor), &intf->dev, "%s", temp); | 175 | intf->class_dev = class_device_create(usb_class, MKDEV(USB_MAJOR, minor), &intf->dev, "%s", temp); |
175 | if (IS_ERR(intf->class_dev)) { | 176 | if (IS_ERR(intf->class_dev)) { |
176 | spin_lock (&minor_lock); | 177 | spin_lock (&minor_lock); |
177 | usb_minors[intf->minor] = NULL; | 178 | usb_minors[intf->minor] = NULL; |
@@ -220,7 +221,7 @@ void usb_deregister_dev(struct usb_interface *intf, | |||
220 | 221 | ||
221 | snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); | 222 | snprintf(name, BUS_ID_SIZE, class_driver->name, intf->minor - minor_base); |
222 | devfs_remove (name); | 223 | devfs_remove (name); |
223 | class_simple_device_remove(MKDEV(USB_MAJOR, intf->minor)); | 224 | class_device_destroy(usb_class, MKDEV(USB_MAJOR, intf->minor)); |
224 | intf->class_dev = NULL; | 225 | intf->class_dev = NULL; |
225 | intf->minor = -1; | 226 | intf->minor = -1; |
226 | } | 227 | } |
diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c index 266e9e06a9f5..d041782e0c8b 100644 --- a/drivers/usb/core/hcd.c +++ b/drivers/usb/core/hcd.c | |||
@@ -651,50 +651,45 @@ static int usb_rh_urb_dequeue (struct usb_hcd *hcd, struct urb *urb) | |||
651 | /*-------------------------------------------------------------------------*/ | 651 | /*-------------------------------------------------------------------------*/ |
652 | 652 | ||
653 | /* exported only within usbcore */ | 653 | /* exported only within usbcore */ |
654 | struct usb_bus *usb_bus_get (struct usb_bus *bus) | 654 | struct usb_bus *usb_bus_get(struct usb_bus *bus) |
655 | { | 655 | { |
656 | struct class_device *tmp; | 656 | if (bus) |
657 | kref_get(&bus->kref); | ||
658 | return bus; | ||
659 | } | ||
657 | 660 | ||
658 | if (!bus) | 661 | static void usb_host_release(struct kref *kref) |
659 | return NULL; | 662 | { |
663 | struct usb_bus *bus = container_of(kref, struct usb_bus, kref); | ||
660 | 664 | ||
661 | tmp = class_device_get(&bus->class_dev); | 665 | if (bus->release) |
662 | if (tmp) | 666 | bus->release(bus); |
663 | return to_usb_bus(tmp); | ||
664 | else | ||
665 | return NULL; | ||
666 | } | 667 | } |
667 | 668 | ||
668 | /* exported only within usbcore */ | 669 | /* exported only within usbcore */ |
669 | void usb_bus_put (struct usb_bus *bus) | 670 | void usb_bus_put(struct usb_bus *bus) |
670 | { | 671 | { |
671 | if (bus) | 672 | if (bus) |
672 | class_device_put(&bus->class_dev); | 673 | kref_put(&bus->kref, usb_host_release); |
673 | } | 674 | } |
674 | 675 | ||
675 | /*-------------------------------------------------------------------------*/ | 676 | /*-------------------------------------------------------------------------*/ |
676 | 677 | ||
677 | static void usb_host_release(struct class_device *class_dev) | 678 | static struct class *usb_host_class; |
678 | { | ||
679 | struct usb_bus *bus = to_usb_bus(class_dev); | ||
680 | |||
681 | if (bus->release) | ||
682 | bus->release(bus); | ||
683 | } | ||
684 | |||
685 | static struct class usb_host_class = { | ||
686 | .name = "usb_host", | ||
687 | .release = &usb_host_release, | ||
688 | }; | ||
689 | 679 | ||
690 | int usb_host_init(void) | 680 | int usb_host_init(void) |
691 | { | 681 | { |
692 | return class_register(&usb_host_class); | 682 | int retval = 0; |
683 | |||
684 | usb_host_class = class_create(THIS_MODULE, "usb_host"); | ||
685 | if (IS_ERR(usb_host_class)) | ||
686 | retval = PTR_ERR(usb_host_class); | ||
687 | return retval; | ||
693 | } | 688 | } |
694 | 689 | ||
695 | void usb_host_cleanup(void) | 690 | void usb_host_cleanup(void) |
696 | { | 691 | { |
697 | class_unregister(&usb_host_class); | 692 | class_destroy(usb_host_class); |
698 | } | 693 | } |
699 | 694 | ||
700 | /** | 695 | /** |
@@ -719,8 +714,7 @@ static void usb_bus_init (struct usb_bus *bus) | |||
719 | 714 | ||
720 | INIT_LIST_HEAD (&bus->bus_list); | 715 | INIT_LIST_HEAD (&bus->bus_list); |
721 | 716 | ||
722 | class_device_initialize(&bus->class_dev); | 717 | kref_init(&bus->kref); |
723 | bus->class_dev.class = &usb_host_class; | ||
724 | } | 718 | } |
725 | 719 | ||
726 | /** | 720 | /** |
@@ -761,7 +755,6 @@ struct usb_bus *usb_alloc_bus (struct usb_operations *op) | |||
761 | static int usb_register_bus(struct usb_bus *bus) | 755 | static int usb_register_bus(struct usb_bus *bus) |
762 | { | 756 | { |
763 | int busnum; | 757 | int busnum; |
764 | int retval; | ||
765 | 758 | ||
766 | down (&usb_bus_list_lock); | 759 | down (&usb_bus_list_lock); |
767 | busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1); | 760 | busnum = find_next_zero_bit (busmap.busmap, USB_MAXBUS, 1); |
@@ -774,15 +767,15 @@ static int usb_register_bus(struct usb_bus *bus) | |||
774 | return -E2BIG; | 767 | return -E2BIG; |
775 | } | 768 | } |
776 | 769 | ||
777 | snprintf(bus->class_dev.class_id, BUS_ID_SIZE, "usb%d", busnum); | 770 | bus->class_dev = class_device_create(usb_host_class, MKDEV(0,0), bus->controller, "usb%d", busnum); |
778 | bus->class_dev.dev = bus->controller; | 771 | if (IS_ERR(bus->class_dev)) { |
779 | retval = class_device_add(&bus->class_dev); | ||
780 | if (retval) { | ||
781 | clear_bit(busnum, busmap.busmap); | 772 | clear_bit(busnum, busmap.busmap); |
782 | up(&usb_bus_list_lock); | 773 | up(&usb_bus_list_lock); |
783 | return retval; | 774 | return PTR_ERR(bus->class_dev); |
784 | } | 775 | } |
785 | 776 | ||
777 | class_set_devdata(bus->class_dev, bus); | ||
778 | |||
786 | /* Add it to the local list of buses */ | 779 | /* Add it to the local list of buses */ |
787 | list_add (&bus->bus_list, &usb_bus_list); | 780 | list_add (&bus->bus_list, &usb_bus_list); |
788 | up (&usb_bus_list_lock); | 781 | up (&usb_bus_list_lock); |
@@ -820,7 +813,7 @@ static void usb_deregister_bus (struct usb_bus *bus) | |||
820 | 813 | ||
821 | clear_bit (bus->busnum, busmap.busmap); | 814 | clear_bit (bus->busnum, busmap.busmap); |
822 | 815 | ||
823 | class_device_del(&bus->class_dev); | 816 | class_device_unregister(bus->class_dev); |
824 | } | 817 | } |
825 | 818 | ||
826 | /** | 819 | /** |
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c index 4d0c9e65cd03..740cb4c668df 100644 --- a/drivers/usb/core/sysfs.c +++ b/drivers/usb/core/sysfs.c | |||
@@ -24,7 +24,7 @@ | |||
24 | 24 | ||
25 | /* Active configuration fields */ | 25 | /* Active configuration fields */ |
26 | #define usb_actconfig_show(field, multiplier, format_string) \ | 26 | #define usb_actconfig_show(field, multiplier, format_string) \ |
27 | static ssize_t show_##field (struct device *dev, char *buf) \ | 27 | static ssize_t show_##field (struct device *dev, struct device_attribute *attr, char *buf) \ |
28 | { \ | 28 | { \ |
29 | struct usb_device *udev; \ | 29 | struct usb_device *udev; \ |
30 | struct usb_host_config *actconfig; \ | 30 | struct usb_host_config *actconfig; \ |
@@ -46,7 +46,7 @@ usb_actconfig_attr (bNumInterfaces, 1, "%2d\n") | |||
46 | usb_actconfig_attr (bmAttributes, 1, "%2x\n") | 46 | usb_actconfig_attr (bmAttributes, 1, "%2x\n") |
47 | usb_actconfig_attr (bMaxPower, 2, "%3dmA\n") | 47 | usb_actconfig_attr (bMaxPower, 2, "%3dmA\n") |
48 | 48 | ||
49 | static ssize_t show_configuration_string(struct device *dev, char *buf) | 49 | static ssize_t show_configuration_string(struct device *dev, struct device_attribute *attr, char *buf) |
50 | { | 50 | { |
51 | struct usb_device *udev; | 51 | struct usb_device *udev; |
52 | struct usb_host_config *actconfig; | 52 | struct usb_host_config *actconfig; |
@@ -69,7 +69,7 @@ static DEVICE_ATTR(configuration, S_IRUGO, show_configuration_string, NULL); | |||
69 | usb_actconfig_show(bConfigurationValue, 1, "%u\n"); | 69 | usb_actconfig_show(bConfigurationValue, 1, "%u\n"); |
70 | 70 | ||
71 | static ssize_t | 71 | static ssize_t |
72 | set_bConfigurationValue (struct device *dev, const char *buf, size_t count) | 72 | set_bConfigurationValue (struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
73 | { | 73 | { |
74 | struct usb_device *udev = udev = to_usb_device (dev); | 74 | struct usb_device *udev = udev = to_usb_device (dev); |
75 | int config, value; | 75 | int config, value; |
@@ -87,7 +87,7 @@ static DEVICE_ATTR(bConfigurationValue, S_IRUGO | S_IWUSR, | |||
87 | 87 | ||
88 | /* String fields */ | 88 | /* String fields */ |
89 | #define usb_string_attr(name) \ | 89 | #define usb_string_attr(name) \ |
90 | static ssize_t show_##name(struct device *dev, char *buf) \ | 90 | static ssize_t show_##name(struct device *dev, struct device_attribute *attr, char *buf) \ |
91 | { \ | 91 | { \ |
92 | struct usb_device *udev; \ | 92 | struct usb_device *udev; \ |
93 | int len; \ | 93 | int len; \ |
@@ -107,7 +107,7 @@ usb_string_attr(manufacturer); | |||
107 | usb_string_attr(serial); | 107 | usb_string_attr(serial); |
108 | 108 | ||
109 | static ssize_t | 109 | static ssize_t |
110 | show_speed (struct device *dev, char *buf) | 110 | show_speed (struct device *dev, struct device_attribute *attr, char *buf) |
111 | { | 111 | { |
112 | struct usb_device *udev; | 112 | struct usb_device *udev; |
113 | char *speed; | 113 | char *speed; |
@@ -133,7 +133,7 @@ show_speed (struct device *dev, char *buf) | |||
133 | static DEVICE_ATTR(speed, S_IRUGO, show_speed, NULL); | 133 | static DEVICE_ATTR(speed, S_IRUGO, show_speed, NULL); |
134 | 134 | ||
135 | static ssize_t | 135 | static ssize_t |
136 | show_devnum (struct device *dev, char *buf) | 136 | show_devnum (struct device *dev, struct device_attribute *attr, char *buf) |
137 | { | 137 | { |
138 | struct usb_device *udev; | 138 | struct usb_device *udev; |
139 | 139 | ||
@@ -143,7 +143,7 @@ show_devnum (struct device *dev, char *buf) | |||
143 | static DEVICE_ATTR(devnum, S_IRUGO, show_devnum, NULL); | 143 | static DEVICE_ATTR(devnum, S_IRUGO, show_devnum, NULL); |
144 | 144 | ||
145 | static ssize_t | 145 | static ssize_t |
146 | show_version (struct device *dev, char *buf) | 146 | show_version (struct device *dev, struct device_attribute *attr, char *buf) |
147 | { | 147 | { |
148 | struct usb_device *udev; | 148 | struct usb_device *udev; |
149 | u16 bcdUSB; | 149 | u16 bcdUSB; |
@@ -155,7 +155,7 @@ show_version (struct device *dev, char *buf) | |||
155 | static DEVICE_ATTR(version, S_IRUGO, show_version, NULL); | 155 | static DEVICE_ATTR(version, S_IRUGO, show_version, NULL); |
156 | 156 | ||
157 | static ssize_t | 157 | static ssize_t |
158 | show_maxchild (struct device *dev, char *buf) | 158 | show_maxchild (struct device *dev, struct device_attribute *attr, char *buf) |
159 | { | 159 | { |
160 | struct usb_device *udev; | 160 | struct usb_device *udev; |
161 | 161 | ||
@@ -167,7 +167,7 @@ static DEVICE_ATTR(maxchild, S_IRUGO, show_maxchild, NULL); | |||
167 | /* Descriptor fields */ | 167 | /* Descriptor fields */ |
168 | #define usb_descriptor_attr_le16(field, format_string) \ | 168 | #define usb_descriptor_attr_le16(field, format_string) \ |
169 | static ssize_t \ | 169 | static ssize_t \ |
170 | show_##field (struct device *dev, char *buf) \ | 170 | show_##field (struct device *dev, struct device_attribute *attr, char *buf) \ |
171 | { \ | 171 | { \ |
172 | struct usb_device *udev; \ | 172 | struct usb_device *udev; \ |
173 | \ | 173 | \ |
@@ -183,7 +183,7 @@ usb_descriptor_attr_le16(bcdDevice, "%04x\n") | |||
183 | 183 | ||
184 | #define usb_descriptor_attr(field, format_string) \ | 184 | #define usb_descriptor_attr(field, format_string) \ |
185 | static ssize_t \ | 185 | static ssize_t \ |
186 | show_##field (struct device *dev, char *buf) \ | 186 | show_##field (struct device *dev, struct device_attribute *attr, char *buf) \ |
187 | { \ | 187 | { \ |
188 | struct usb_device *udev; \ | 188 | struct usb_device *udev; \ |
189 | \ | 189 | \ |
@@ -254,7 +254,7 @@ void usb_remove_sysfs_dev_files (struct usb_device *udev) | |||
254 | /* Interface fields */ | 254 | /* Interface fields */ |
255 | #define usb_intf_attr(field, format_string) \ | 255 | #define usb_intf_attr(field, format_string) \ |
256 | static ssize_t \ | 256 | static ssize_t \ |
257 | show_##field (struct device *dev, char *buf) \ | 257 | show_##field (struct device *dev, struct device_attribute *attr, char *buf) \ |
258 | { \ | 258 | { \ |
259 | struct usb_interface *intf = to_usb_interface (dev); \ | 259 | struct usb_interface *intf = to_usb_interface (dev); \ |
260 | \ | 260 | \ |
@@ -269,7 +269,7 @@ usb_intf_attr (bInterfaceClass, "%02x\n") | |||
269 | usb_intf_attr (bInterfaceSubClass, "%02x\n") | 269 | usb_intf_attr (bInterfaceSubClass, "%02x\n") |
270 | usb_intf_attr (bInterfaceProtocol, "%02x\n") | 270 | usb_intf_attr (bInterfaceProtocol, "%02x\n") |
271 | 271 | ||
272 | static ssize_t show_interface_string(struct device *dev, char *buf) | 272 | static ssize_t show_interface_string(struct device *dev, struct device_attribute *attr, char *buf) |
273 | { | 273 | { |
274 | struct usb_interface *intf; | 274 | struct usb_interface *intf; |
275 | struct usb_device *udev; | 275 | struct usb_device *udev; |
@@ -286,7 +286,7 @@ static ssize_t show_interface_string(struct device *dev, char *buf) | |||
286 | } | 286 | } |
287 | static DEVICE_ATTR(interface, S_IRUGO, show_interface_string, NULL); | 287 | static DEVICE_ATTR(interface, S_IRUGO, show_interface_string, NULL); |
288 | 288 | ||
289 | static ssize_t show_modalias(struct device *dev, char *buf) | 289 | static ssize_t show_modalias(struct device *dev, struct device_attribute *attr, char *buf) |
290 | { | 290 | { |
291 | struct usb_interface *intf; | 291 | struct usb_interface *intf; |
292 | struct usb_device *udev; | 292 | struct usb_device *udev; |
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c index 25cf7e9eccfa..a3c42203213a 100644 --- a/drivers/usb/core/usb.c +++ b/drivers/usb/core/usb.c | |||
@@ -293,7 +293,7 @@ int usb_driver_claim_interface(struct usb_driver *driver, | |||
293 | /* if interface was already added, bind now; else let | 293 | /* if interface was already added, bind now; else let |
294 | * the future device_add() bind it, bypassing probe() | 294 | * the future device_add() bind it, bypassing probe() |
295 | */ | 295 | */ |
296 | if (!list_empty (&dev->bus_list)) | 296 | if (klist_node_attached(&dev->knode_bus)) |
297 | device_bind_driver(dev); | 297 | device_bind_driver(dev); |
298 | 298 | ||
299 | return 0; | 299 | return 0; |
@@ -322,9 +322,15 @@ void usb_driver_release_interface(struct usb_driver *driver, | |||
322 | if (!dev->driver || dev->driver != &driver->driver) | 322 | if (!dev->driver || dev->driver != &driver->driver) |
323 | return; | 323 | return; |
324 | 324 | ||
325 | /* don't disconnect from disconnect(), or before dev_add() */ | 325 | /* don't release from within disconnect() */ |
326 | if (!list_empty (&dev->driver_list) && !list_empty (&dev->bus_list)) | 326 | if (iface->condition != USB_INTERFACE_BOUND) |
327 | return; | ||
328 | |||
329 | /* release only after device_add() */ | ||
330 | if (klist_node_attached(&dev->knode_bus)) { | ||
331 | iface->condition = USB_INTERFACE_UNBINDING; | ||
327 | device_release_driver(dev); | 332 | device_release_driver(dev); |
333 | } | ||
328 | 334 | ||
329 | dev->driver = NULL; | 335 | dev->driver = NULL; |
330 | usb_set_intfdata(iface, NULL); | 336 | usb_set_intfdata(iface, NULL); |
@@ -462,6 +468,25 @@ usb_match_id(struct usb_interface *interface, const struct usb_device_id *id) | |||
462 | return NULL; | 468 | return NULL; |
463 | } | 469 | } |
464 | 470 | ||
471 | |||
472 | static int __find_interface(struct device * dev, void * data) | ||
473 | { | ||
474 | struct usb_interface ** ret = (struct usb_interface **)data; | ||
475 | struct usb_interface * intf = *ret; | ||
476 | int *minor = (int *)data; | ||
477 | |||
478 | /* can't look at usb devices, only interfaces */ | ||
479 | if (dev->driver == &usb_generic_driver) | ||
480 | return 0; | ||
481 | |||
482 | intf = to_usb_interface(dev); | ||
483 | if (intf->minor != -1 && intf->minor == *minor) { | ||
484 | *ret = intf; | ||
485 | return 1; | ||
486 | } | ||
487 | return 0; | ||
488 | } | ||
489 | |||
465 | /** | 490 | /** |
466 | * usb_find_interface - find usb_interface pointer for driver and device | 491 | * usb_find_interface - find usb_interface pointer for driver and device |
467 | * @drv: the driver whose current configuration is considered | 492 | * @drv: the driver whose current configuration is considered |
@@ -473,26 +498,12 @@ usb_match_id(struct usb_interface *interface, const struct usb_device_id *id) | |||
473 | */ | 498 | */ |
474 | struct usb_interface *usb_find_interface(struct usb_driver *drv, int minor) | 499 | struct usb_interface *usb_find_interface(struct usb_driver *drv, int minor) |
475 | { | 500 | { |
476 | struct list_head *entry; | 501 | struct usb_interface *intf = (struct usb_interface *)(long)minor; |
477 | struct device *dev; | 502 | int ret; |
478 | struct usb_interface *intf; | ||
479 | 503 | ||
480 | list_for_each(entry, &drv->driver.devices) { | 504 | ret = driver_for_each_device(&drv->driver, NULL, &intf, __find_interface); |
481 | dev = container_of(entry, struct device, driver_list); | ||
482 | |||
483 | /* can't look at usb devices, only interfaces */ | ||
484 | if (dev->driver == &usb_generic_driver) | ||
485 | continue; | ||
486 | |||
487 | intf = to_usb_interface(dev); | ||
488 | if (intf->minor == -1) | ||
489 | continue; | ||
490 | if (intf->minor == minor) | ||
491 | return intf; | ||
492 | } | ||
493 | 505 | ||
494 | /* no device found that matches */ | 506 | return ret ? intf : NULL; |
495 | return NULL; | ||
496 | } | 507 | } |
497 | 508 | ||
498 | static int usb_device_match (struct device *dev, struct device_driver *drv) | 509 | static int usb_device_match (struct device *dev, struct device_driver *drv) |
diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c index 8ef8a9cd9ac4..c039d2fbe7ab 100644 --- a/drivers/usb/gadget/dummy_hcd.c +++ b/drivers/usb/gadget/dummy_hcd.c | |||
@@ -633,7 +633,7 @@ static const struct usb_gadget_ops dummy_ops = { | |||
633 | 633 | ||
634 | /* "function" sysfs attribute */ | 634 | /* "function" sysfs attribute */ |
635 | static ssize_t | 635 | static ssize_t |
636 | show_function (struct device *dev, char *buf) | 636 | show_function (struct device *dev, struct device_attribute *attr, char *buf) |
637 | { | 637 | { |
638 | struct dummy *dum = gadget_dev_to_dummy (dev); | 638 | struct dummy *dum = gadget_dev_to_dummy (dev); |
639 | 639 | ||
@@ -1600,7 +1600,7 @@ show_urb (char *buf, size_t size, struct urb *urb) | |||
1600 | } | 1600 | } |
1601 | 1601 | ||
1602 | static ssize_t | 1602 | static ssize_t |
1603 | show_urbs (struct device *dev, char *buf) | 1603 | show_urbs (struct device *dev, struct device_attribute *attr, char *buf) |
1604 | { | 1604 | { |
1605 | struct usb_hcd *hcd = dev_get_drvdata (dev); | 1605 | struct usb_hcd *hcd = dev_get_drvdata (dev); |
1606 | struct dummy *dum = hcd_to_dummy (hcd); | 1606 | struct dummy *dum = hcd_to_dummy (hcd); |
diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c index 4857f0e4ef44..037a7f163822 100644 --- a/drivers/usb/gadget/file_storage.c +++ b/drivers/usb/gadget/file_storage.c | |||
@@ -3554,14 +3554,14 @@ static void close_all_backing_files(struct fsg_dev *fsg) | |||
3554 | } | 3554 | } |
3555 | 3555 | ||
3556 | 3556 | ||
3557 | static ssize_t show_ro(struct device *dev, char *buf) | 3557 | static ssize_t show_ro(struct device *dev, struct device_attribute *attr, char *buf) |
3558 | { | 3558 | { |
3559 | struct lun *curlun = dev_to_lun(dev); | 3559 | struct lun *curlun = dev_to_lun(dev); |
3560 | 3560 | ||
3561 | return sprintf(buf, "%d\n", curlun->ro); | 3561 | return sprintf(buf, "%d\n", curlun->ro); |
3562 | } | 3562 | } |
3563 | 3563 | ||
3564 | static ssize_t show_file(struct device *dev, char *buf) | 3564 | static ssize_t show_file(struct device *dev, struct device_attribute *attr, char *buf) |
3565 | { | 3565 | { |
3566 | struct lun *curlun = dev_to_lun(dev); | 3566 | struct lun *curlun = dev_to_lun(dev); |
3567 | struct fsg_dev *fsg = (struct fsg_dev *) dev_get_drvdata(dev); | 3567 | struct fsg_dev *fsg = (struct fsg_dev *) dev_get_drvdata(dev); |
@@ -3589,7 +3589,7 @@ static ssize_t show_file(struct device *dev, char *buf) | |||
3589 | } | 3589 | } |
3590 | 3590 | ||
3591 | 3591 | ||
3592 | static ssize_t store_ro(struct device *dev, const char *buf, size_t count) | 3592 | static ssize_t store_ro(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
3593 | { | 3593 | { |
3594 | ssize_t rc = count; | 3594 | ssize_t rc = count; |
3595 | struct lun *curlun = dev_to_lun(dev); | 3595 | struct lun *curlun = dev_to_lun(dev); |
@@ -3613,7 +3613,7 @@ static ssize_t store_ro(struct device *dev, const char *buf, size_t count) | |||
3613 | return rc; | 3613 | return rc; |
3614 | } | 3614 | } |
3615 | 3615 | ||
3616 | static ssize_t store_file(struct device *dev, const char *buf, size_t count) | 3616 | static ssize_t store_file(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
3617 | { | 3617 | { |
3618 | struct lun *curlun = dev_to_lun(dev); | 3618 | struct lun *curlun = dev_to_lun(dev); |
3619 | struct fsg_dev *fsg = (struct fsg_dev *) dev_get_drvdata(dev); | 3619 | struct fsg_dev *fsg = (struct fsg_dev *) dev_get_drvdata(dev); |
diff --git a/drivers/usb/gadget/net2280.c b/drivers/usb/gadget/net2280.c index e5457f2026cc..e47e398daeb5 100644 --- a/drivers/usb/gadget/net2280.c +++ b/drivers/usb/gadget/net2280.c | |||
@@ -1469,7 +1469,7 @@ static const struct usb_gadget_ops net2280_ops = { | |||
1469 | 1469 | ||
1470 | /* "function" sysfs attribute */ | 1470 | /* "function" sysfs attribute */ |
1471 | static ssize_t | 1471 | static ssize_t |
1472 | show_function (struct device *_dev, char *buf) | 1472 | show_function (struct device *_dev, struct device_attribute *attr, char *buf) |
1473 | { | 1473 | { |
1474 | struct net2280 *dev = dev_get_drvdata (_dev); | 1474 | struct net2280 *dev = dev_get_drvdata (_dev); |
1475 | 1475 | ||
@@ -1482,7 +1482,7 @@ show_function (struct device *_dev, char *buf) | |||
1482 | static DEVICE_ATTR (function, S_IRUGO, show_function, NULL); | 1482 | static DEVICE_ATTR (function, S_IRUGO, show_function, NULL); |
1483 | 1483 | ||
1484 | static ssize_t | 1484 | static ssize_t |
1485 | show_registers (struct device *_dev, char *buf) | 1485 | show_registers (struct device *_dev, struct device_attribute *attr, char *buf) |
1486 | { | 1486 | { |
1487 | struct net2280 *dev; | 1487 | struct net2280 *dev; |
1488 | char *next; | 1488 | char *next; |
@@ -1637,7 +1637,7 @@ show_registers (struct device *_dev, char *buf) | |||
1637 | static DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL); | 1637 | static DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL); |
1638 | 1638 | ||
1639 | static ssize_t | 1639 | static ssize_t |
1640 | show_queues (struct device *_dev, char *buf) | 1640 | show_queues (struct device *_dev, struct device_attribute *attr, char *buf) |
1641 | { | 1641 | { |
1642 | struct net2280 *dev; | 1642 | struct net2280 *dev; |
1643 | char *next; | 1643 | char *next; |
diff --git a/drivers/usb/gadget/pxa2xx_udc.c b/drivers/usb/gadget/pxa2xx_udc.c index 6390c5726d81..b8b4524ed746 100644 --- a/drivers/usb/gadget/pxa2xx_udc.c +++ b/drivers/usb/gadget/pxa2xx_udc.c | |||
@@ -1429,7 +1429,7 @@ done: | |||
1429 | 1429 | ||
1430 | /* "function" sysfs attribute */ | 1430 | /* "function" sysfs attribute */ |
1431 | static ssize_t | 1431 | static ssize_t |
1432 | show_function (struct device *_dev, char *buf) | 1432 | show_function (struct device *_dev, struct device_attribute *attr, char *buf) |
1433 | { | 1433 | { |
1434 | struct pxa2xx_udc *dev = dev_get_drvdata (_dev); | 1434 | struct pxa2xx_udc *dev = dev_get_drvdata (_dev); |
1435 | 1435 | ||
diff --git a/drivers/usb/host/ehci-dbg.c b/drivers/usb/host/ehci-dbg.c index 9b347d765383..2ff11d53567b 100644 --- a/drivers/usb/host/ehci-dbg.c +++ b/drivers/usb/host/ehci-dbg.c | |||
@@ -450,7 +450,7 @@ show_async (struct class_device *class_dev, char *buf) | |||
450 | 450 | ||
451 | *buf = 0; | 451 | *buf = 0; |
452 | 452 | ||
453 | bus = to_usb_bus(class_dev); | 453 | bus = class_get_devdata(class_dev); |
454 | hcd = bus->hcpriv; | 454 | hcd = bus->hcpriv; |
455 | ehci = hcd_to_ehci (hcd); | 455 | ehci = hcd_to_ehci (hcd); |
456 | next = buf; | 456 | next = buf; |
@@ -496,7 +496,7 @@ show_periodic (struct class_device *class_dev, char *buf) | |||
496 | return 0; | 496 | return 0; |
497 | seen_count = 0; | 497 | seen_count = 0; |
498 | 498 | ||
499 | bus = to_usb_bus(class_dev); | 499 | bus = class_get_devdata(class_dev); |
500 | hcd = bus->hcpriv; | 500 | hcd = bus->hcpriv; |
501 | ehci = hcd_to_ehci (hcd); | 501 | ehci = hcd_to_ehci (hcd); |
502 | next = buf; | 502 | next = buf; |
@@ -633,7 +633,7 @@ show_registers (struct class_device *class_dev, char *buf) | |||
633 | static char fmt [] = "%*s\n"; | 633 | static char fmt [] = "%*s\n"; |
634 | static char label [] = ""; | 634 | static char label [] = ""; |
635 | 635 | ||
636 | bus = to_usb_bus(class_dev); | 636 | bus = class_get_devdata(class_dev); |
637 | hcd = bus->hcpriv; | 637 | hcd = bus->hcpriv; |
638 | ehci = hcd_to_ehci (hcd); | 638 | ehci = hcd_to_ehci (hcd); |
639 | next = buf; | 639 | next = buf; |
@@ -735,7 +735,7 @@ static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL); | |||
735 | 735 | ||
736 | static inline void create_debug_files (struct ehci_hcd *ehci) | 736 | static inline void create_debug_files (struct ehci_hcd *ehci) |
737 | { | 737 | { |
738 | struct class_device *cldev = &ehci_to_hcd(ehci)->self.class_dev; | 738 | struct class_device *cldev = ehci_to_hcd(ehci)->self.class_dev; |
739 | 739 | ||
740 | class_device_create_file(cldev, &class_device_attr_async); | 740 | class_device_create_file(cldev, &class_device_attr_async); |
741 | class_device_create_file(cldev, &class_device_attr_periodic); | 741 | class_device_create_file(cldev, &class_device_attr_periodic); |
@@ -744,7 +744,7 @@ static inline void create_debug_files (struct ehci_hcd *ehci) | |||
744 | 744 | ||
745 | static inline void remove_debug_files (struct ehci_hcd *ehci) | 745 | static inline void remove_debug_files (struct ehci_hcd *ehci) |
746 | { | 746 | { |
747 | struct class_device *cldev = &ehci_to_hcd(ehci)->self.class_dev; | 747 | struct class_device *cldev = ehci_to_hcd(ehci)->self.class_dev; |
748 | 748 | ||
749 | class_device_remove_file(cldev, &class_device_attr_async); | 749 | class_device_remove_file(cldev, &class_device_attr_async); |
750 | class_device_remove_file(cldev, &class_device_attr_periodic); | 750 | class_device_remove_file(cldev, &class_device_attr_periodic); |
diff --git a/drivers/usb/host/ohci-dbg.c b/drivers/usb/host/ohci-dbg.c index 62f53a213808..c58408c95c3d 100644 --- a/drivers/usb/host/ohci-dbg.c +++ b/drivers/usb/host/ohci-dbg.c | |||
@@ -481,7 +481,7 @@ show_async (struct class_device *class_dev, char *buf) | |||
481 | size_t temp; | 481 | size_t temp; |
482 | unsigned long flags; | 482 | unsigned long flags; |
483 | 483 | ||
484 | bus = to_usb_bus(class_dev); | 484 | bus = class_get_devdata(class_dev); |
485 | hcd = bus->hcpriv; | 485 | hcd = bus->hcpriv; |
486 | ohci = hcd_to_ohci(hcd); | 486 | ohci = hcd_to_ohci(hcd); |
487 | 487 | ||
@@ -514,7 +514,7 @@ show_periodic (struct class_device *class_dev, char *buf) | |||
514 | return 0; | 514 | return 0; |
515 | seen_count = 0; | 515 | seen_count = 0; |
516 | 516 | ||
517 | bus = to_usb_bus(class_dev); | 517 | bus = class_get_devdata(class_dev); |
518 | hcd = bus->hcpriv; | 518 | hcd = bus->hcpriv; |
519 | ohci = hcd_to_ohci(hcd); | 519 | ohci = hcd_to_ohci(hcd); |
520 | next = buf; | 520 | next = buf; |
@@ -611,7 +611,7 @@ show_registers (struct class_device *class_dev, char *buf) | |||
611 | char *next; | 611 | char *next; |
612 | u32 rdata; | 612 | u32 rdata; |
613 | 613 | ||
614 | bus = to_usb_bus(class_dev); | 614 | bus = class_get_devdata(class_dev); |
615 | hcd = bus->hcpriv; | 615 | hcd = bus->hcpriv; |
616 | ohci = hcd_to_ohci(hcd); | 616 | ohci = hcd_to_ohci(hcd); |
617 | regs = ohci->regs; | 617 | regs = ohci->regs; |
@@ -684,7 +684,7 @@ static CLASS_DEVICE_ATTR (registers, S_IRUGO, show_registers, NULL); | |||
684 | 684 | ||
685 | static inline void create_debug_files (struct ohci_hcd *ohci) | 685 | static inline void create_debug_files (struct ohci_hcd *ohci) |
686 | { | 686 | { |
687 | struct class_device *cldev = &ohci_to_hcd(ohci)->self.class_dev; | 687 | struct class_device *cldev = ohci_to_hcd(ohci)->self.class_dev; |
688 | 688 | ||
689 | class_device_create_file(cldev, &class_device_attr_async); | 689 | class_device_create_file(cldev, &class_device_attr_async); |
690 | class_device_create_file(cldev, &class_device_attr_periodic); | 690 | class_device_create_file(cldev, &class_device_attr_periodic); |
@@ -694,7 +694,7 @@ static inline void create_debug_files (struct ohci_hcd *ohci) | |||
694 | 694 | ||
695 | static inline void remove_debug_files (struct ohci_hcd *ohci) | 695 | static inline void remove_debug_files (struct ohci_hcd *ohci) |
696 | { | 696 | { |
697 | struct class_device *cldev = &ohci_to_hcd(ohci)->self.class_dev; | 697 | struct class_device *cldev = ohci_to_hcd(ohci)->self.class_dev; |
698 | 698 | ||
699 | class_device_remove_file(cldev, &class_device_attr_async); | 699 | class_device_remove_file(cldev, &class_device_attr_async); |
700 | class_device_remove_file(cldev, &class_device_attr_periodic); | 700 | class_device_remove_file(cldev, &class_device_attr_periodic); |
diff --git a/drivers/usb/input/aiptek.c b/drivers/usb/input/aiptek.c index 94ce2a9ad50f..e991f7ed7330 100644 --- a/drivers/usb/input/aiptek.c +++ b/drivers/usb/input/aiptek.c | |||
@@ -1025,7 +1025,7 @@ static int aiptek_program_tablet(struct aiptek *aiptek) | |||
1025 | /*********************************************************************** | 1025 | /*********************************************************************** |
1026 | * support the 'size' file -- display support | 1026 | * support the 'size' file -- display support |
1027 | */ | 1027 | */ |
1028 | static ssize_t show_tabletSize(struct device *dev, char *buf) | 1028 | static ssize_t show_tabletSize(struct device *dev, struct device_attribute *attr, char *buf) |
1029 | { | 1029 | { |
1030 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1030 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1031 | 1031 | ||
@@ -1048,7 +1048,7 @@ static DEVICE_ATTR(size, S_IRUGO, show_tabletSize, NULL); | |||
1048 | /*********************************************************************** | 1048 | /*********************************************************************** |
1049 | * support routines for the 'product_id' file | 1049 | * support routines for the 'product_id' file |
1050 | */ | 1050 | */ |
1051 | static ssize_t show_tabletProductId(struct device *dev, char *buf) | 1051 | static ssize_t show_tabletProductId(struct device *dev, struct device_attribute *attr, char *buf) |
1052 | { | 1052 | { |
1053 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1053 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1054 | 1054 | ||
@@ -1064,7 +1064,7 @@ static DEVICE_ATTR(product_id, S_IRUGO, show_tabletProductId, NULL); | |||
1064 | /*********************************************************************** | 1064 | /*********************************************************************** |
1065 | * support routines for the 'vendor_id' file | 1065 | * support routines for the 'vendor_id' file |
1066 | */ | 1066 | */ |
1067 | static ssize_t show_tabletVendorId(struct device *dev, char *buf) | 1067 | static ssize_t show_tabletVendorId(struct device *dev, struct device_attribute *attr, char *buf) |
1068 | { | 1068 | { |
1069 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1069 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1070 | 1070 | ||
@@ -1079,7 +1079,7 @@ static DEVICE_ATTR(vendor_id, S_IRUGO, show_tabletVendorId, NULL); | |||
1079 | /*********************************************************************** | 1079 | /*********************************************************************** |
1080 | * support routines for the 'vendor' file | 1080 | * support routines for the 'vendor' file |
1081 | */ | 1081 | */ |
1082 | static ssize_t show_tabletManufacturer(struct device *dev, char *buf) | 1082 | static ssize_t show_tabletManufacturer(struct device *dev, struct device_attribute *attr, char *buf) |
1083 | { | 1083 | { |
1084 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1084 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1085 | int retval; | 1085 | int retval; |
@@ -1096,7 +1096,7 @@ static DEVICE_ATTR(vendor, S_IRUGO, show_tabletManufacturer, NULL); | |||
1096 | /*********************************************************************** | 1096 | /*********************************************************************** |
1097 | * support routines for the 'product' file | 1097 | * support routines for the 'product' file |
1098 | */ | 1098 | */ |
1099 | static ssize_t show_tabletProduct(struct device *dev, char *buf) | 1099 | static ssize_t show_tabletProduct(struct device *dev, struct device_attribute *attr, char *buf) |
1100 | { | 1100 | { |
1101 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1101 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1102 | int retval; | 1102 | int retval; |
@@ -1114,7 +1114,7 @@ static DEVICE_ATTR(product, S_IRUGO, show_tabletProduct, NULL); | |||
1114 | * support routines for the 'pointer_mode' file. Note that this file | 1114 | * support routines for the 'pointer_mode' file. Note that this file |
1115 | * both displays current setting and allows reprogramming. | 1115 | * both displays current setting and allows reprogramming. |
1116 | */ | 1116 | */ |
1117 | static ssize_t show_tabletPointerMode(struct device *dev, char *buf) | 1117 | static ssize_t show_tabletPointerMode(struct device *dev, struct device_attribute *attr, char *buf) |
1118 | { | 1118 | { |
1119 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1119 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1120 | char *s; | 1120 | char *s; |
@@ -1143,7 +1143,7 @@ static ssize_t show_tabletPointerMode(struct device *dev, char *buf) | |||
1143 | } | 1143 | } |
1144 | 1144 | ||
1145 | static ssize_t | 1145 | static ssize_t |
1146 | store_tabletPointerMode(struct device *dev, const char *buf, size_t count) | 1146 | store_tabletPointerMode(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1147 | { | 1147 | { |
1148 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1148 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1149 | if (aiptek == NULL) | 1149 | if (aiptek == NULL) |
@@ -1168,7 +1168,7 @@ static DEVICE_ATTR(pointer_mode, | |||
1168 | * support routines for the 'coordinate_mode' file. Note that this file | 1168 | * support routines for the 'coordinate_mode' file. Note that this file |
1169 | * both displays current setting and allows reprogramming. | 1169 | * both displays current setting and allows reprogramming. |
1170 | */ | 1170 | */ |
1171 | static ssize_t show_tabletCoordinateMode(struct device *dev, char *buf) | 1171 | static ssize_t show_tabletCoordinateMode(struct device *dev, struct device_attribute *attr, char *buf) |
1172 | { | 1172 | { |
1173 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1173 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1174 | char *s; | 1174 | char *s; |
@@ -1193,7 +1193,7 @@ static ssize_t show_tabletCoordinateMode(struct device *dev, char *buf) | |||
1193 | } | 1193 | } |
1194 | 1194 | ||
1195 | static ssize_t | 1195 | static ssize_t |
1196 | store_tabletCoordinateMode(struct device *dev, const char *buf, size_t count) | 1196 | store_tabletCoordinateMode(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1197 | { | 1197 | { |
1198 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1198 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1199 | if (aiptek == NULL) | 1199 | if (aiptek == NULL) |
@@ -1217,7 +1217,7 @@ static DEVICE_ATTR(coordinate_mode, | |||
1217 | * support routines for the 'tool_mode' file. Note that this file | 1217 | * support routines for the 'tool_mode' file. Note that this file |
1218 | * both displays current setting and allows reprogramming. | 1218 | * both displays current setting and allows reprogramming. |
1219 | */ | 1219 | */ |
1220 | static ssize_t show_tabletToolMode(struct device *dev, char *buf) | 1220 | static ssize_t show_tabletToolMode(struct device *dev, struct device_attribute *attr, char *buf) |
1221 | { | 1221 | { |
1222 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1222 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1223 | char *s; | 1223 | char *s; |
@@ -1262,7 +1262,7 @@ static ssize_t show_tabletToolMode(struct device *dev, char *buf) | |||
1262 | } | 1262 | } |
1263 | 1263 | ||
1264 | static ssize_t | 1264 | static ssize_t |
1265 | store_tabletToolMode(struct device *dev, const char *buf, size_t count) | 1265 | store_tabletToolMode(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1266 | { | 1266 | { |
1267 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1267 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1268 | if (aiptek == NULL) | 1268 | if (aiptek == NULL) |
@@ -1295,7 +1295,7 @@ static DEVICE_ATTR(tool_mode, | |||
1295 | * support routines for the 'xtilt' file. Note that this file | 1295 | * support routines for the 'xtilt' file. Note that this file |
1296 | * both displays current setting and allows reprogramming. | 1296 | * both displays current setting and allows reprogramming. |
1297 | */ | 1297 | */ |
1298 | static ssize_t show_tabletXtilt(struct device *dev, char *buf) | 1298 | static ssize_t show_tabletXtilt(struct device *dev, struct device_attribute *attr, char *buf) |
1299 | { | 1299 | { |
1300 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1300 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1301 | 1301 | ||
@@ -1311,7 +1311,7 @@ static ssize_t show_tabletXtilt(struct device *dev, char *buf) | |||
1311 | } | 1311 | } |
1312 | 1312 | ||
1313 | static ssize_t | 1313 | static ssize_t |
1314 | store_tabletXtilt(struct device *dev, const char *buf, size_t count) | 1314 | store_tabletXtilt(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1315 | { | 1315 | { |
1316 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1316 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1317 | int x; | 1317 | int x; |
@@ -1337,7 +1337,7 @@ static DEVICE_ATTR(xtilt, | |||
1337 | * support routines for the 'ytilt' file. Note that this file | 1337 | * support routines for the 'ytilt' file. Note that this file |
1338 | * both displays current setting and allows reprogramming. | 1338 | * both displays current setting and allows reprogramming. |
1339 | */ | 1339 | */ |
1340 | static ssize_t show_tabletYtilt(struct device *dev, char *buf) | 1340 | static ssize_t show_tabletYtilt(struct device *dev, struct device_attribute *attr, char *buf) |
1341 | { | 1341 | { |
1342 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1342 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1343 | 1343 | ||
@@ -1353,7 +1353,7 @@ static ssize_t show_tabletYtilt(struct device *dev, char *buf) | |||
1353 | } | 1353 | } |
1354 | 1354 | ||
1355 | static ssize_t | 1355 | static ssize_t |
1356 | store_tabletYtilt(struct device *dev, const char *buf, size_t count) | 1356 | store_tabletYtilt(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1357 | { | 1357 | { |
1358 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1358 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1359 | int y; | 1359 | int y; |
@@ -1379,7 +1379,7 @@ static DEVICE_ATTR(ytilt, | |||
1379 | * support routines for the 'jitter' file. Note that this file | 1379 | * support routines for the 'jitter' file. Note that this file |
1380 | * both displays current setting and allows reprogramming. | 1380 | * both displays current setting and allows reprogramming. |
1381 | */ | 1381 | */ |
1382 | static ssize_t show_tabletJitterDelay(struct device *dev, char *buf) | 1382 | static ssize_t show_tabletJitterDelay(struct device *dev, struct device_attribute *attr, char *buf) |
1383 | { | 1383 | { |
1384 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1384 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1385 | 1385 | ||
@@ -1390,7 +1390,7 @@ static ssize_t show_tabletJitterDelay(struct device *dev, char *buf) | |||
1390 | } | 1390 | } |
1391 | 1391 | ||
1392 | static ssize_t | 1392 | static ssize_t |
1393 | store_tabletJitterDelay(struct device *dev, const char *buf, size_t count) | 1393 | store_tabletJitterDelay(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1394 | { | 1394 | { |
1395 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1395 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1396 | 1396 | ||
@@ -1409,7 +1409,7 @@ static DEVICE_ATTR(jitter, | |||
1409 | * support routines for the 'delay' file. Note that this file | 1409 | * support routines for the 'delay' file. Note that this file |
1410 | * both displays current setting and allows reprogramming. | 1410 | * both displays current setting and allows reprogramming. |
1411 | */ | 1411 | */ |
1412 | static ssize_t show_tabletProgrammableDelay(struct device *dev, char *buf) | 1412 | static ssize_t show_tabletProgrammableDelay(struct device *dev, struct device_attribute *attr, char *buf) |
1413 | { | 1413 | { |
1414 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1414 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1415 | 1415 | ||
@@ -1421,7 +1421,7 @@ static ssize_t show_tabletProgrammableDelay(struct device *dev, char *buf) | |||
1421 | } | 1421 | } |
1422 | 1422 | ||
1423 | static ssize_t | 1423 | static ssize_t |
1424 | store_tabletProgrammableDelay(struct device *dev, const char *buf, size_t count) | 1424 | store_tabletProgrammableDelay(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1425 | { | 1425 | { |
1426 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1426 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1427 | 1427 | ||
@@ -1440,7 +1440,7 @@ static DEVICE_ATTR(delay, | |||
1440 | * support routines for the 'input_path' file. Note that this file | 1440 | * support routines for the 'input_path' file. Note that this file |
1441 | * only displays current setting. | 1441 | * only displays current setting. |
1442 | */ | 1442 | */ |
1443 | static ssize_t show_tabletInputDevice(struct device *dev, char *buf) | 1443 | static ssize_t show_tabletInputDevice(struct device *dev, struct device_attribute *attr, char *buf) |
1444 | { | 1444 | { |
1445 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1445 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1446 | 1446 | ||
@@ -1457,7 +1457,7 @@ static DEVICE_ATTR(input_path, S_IRUGO, show_tabletInputDevice, NULL); | |||
1457 | * support routines for the 'event_count' file. Note that this file | 1457 | * support routines for the 'event_count' file. Note that this file |
1458 | * only displays current setting. | 1458 | * only displays current setting. |
1459 | */ | 1459 | */ |
1460 | static ssize_t show_tabletEventsReceived(struct device *dev, char *buf) | 1460 | static ssize_t show_tabletEventsReceived(struct device *dev, struct device_attribute *attr, char *buf) |
1461 | { | 1461 | { |
1462 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1462 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1463 | 1463 | ||
@@ -1473,7 +1473,7 @@ static DEVICE_ATTR(event_count, S_IRUGO, show_tabletEventsReceived, NULL); | |||
1473 | * support routines for the 'diagnostic' file. Note that this file | 1473 | * support routines for the 'diagnostic' file. Note that this file |
1474 | * only displays current setting. | 1474 | * only displays current setting. |
1475 | */ | 1475 | */ |
1476 | static ssize_t show_tabletDiagnosticMessage(struct device *dev, char *buf) | 1476 | static ssize_t show_tabletDiagnosticMessage(struct device *dev, struct device_attribute *attr, char *buf) |
1477 | { | 1477 | { |
1478 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1478 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1479 | char *retMsg; | 1479 | char *retMsg; |
@@ -1515,7 +1515,7 @@ static DEVICE_ATTR(diagnostic, S_IRUGO, show_tabletDiagnosticMessage, NULL); | |||
1515 | * support routines for the 'stylus_upper' file. Note that this file | 1515 | * support routines for the 'stylus_upper' file. Note that this file |
1516 | * both displays current setting and allows for setting changing. | 1516 | * both displays current setting and allows for setting changing. |
1517 | */ | 1517 | */ |
1518 | static ssize_t show_tabletStylusUpper(struct device *dev, char *buf) | 1518 | static ssize_t show_tabletStylusUpper(struct device *dev, struct device_attribute *attr, char *buf) |
1519 | { | 1519 | { |
1520 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1520 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1521 | char *s; | 1521 | char *s; |
@@ -1540,7 +1540,7 @@ static ssize_t show_tabletStylusUpper(struct device *dev, char *buf) | |||
1540 | } | 1540 | } |
1541 | 1541 | ||
1542 | static ssize_t | 1542 | static ssize_t |
1543 | store_tabletStylusUpper(struct device *dev, const char *buf, size_t count) | 1543 | store_tabletStylusUpper(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1544 | { | 1544 | { |
1545 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1545 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1546 | 1546 | ||
@@ -1565,7 +1565,7 @@ static DEVICE_ATTR(stylus_upper, | |||
1565 | * support routines for the 'stylus_lower' file. Note that this file | 1565 | * support routines for the 'stylus_lower' file. Note that this file |
1566 | * both displays current setting and allows for setting changing. | 1566 | * both displays current setting and allows for setting changing. |
1567 | */ | 1567 | */ |
1568 | static ssize_t show_tabletStylusLower(struct device *dev, char *buf) | 1568 | static ssize_t show_tabletStylusLower(struct device *dev, struct device_attribute *attr, char *buf) |
1569 | { | 1569 | { |
1570 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1570 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1571 | char *s; | 1571 | char *s; |
@@ -1590,7 +1590,7 @@ static ssize_t show_tabletStylusLower(struct device *dev, char *buf) | |||
1590 | } | 1590 | } |
1591 | 1591 | ||
1592 | static ssize_t | 1592 | static ssize_t |
1593 | store_tabletStylusLower(struct device *dev, const char *buf, size_t count) | 1593 | store_tabletStylusLower(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1594 | { | 1594 | { |
1595 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1595 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1596 | 1596 | ||
@@ -1615,7 +1615,7 @@ static DEVICE_ATTR(stylus_lower, | |||
1615 | * support routines for the 'mouse_left' file. Note that this file | 1615 | * support routines for the 'mouse_left' file. Note that this file |
1616 | * both displays current setting and allows for setting changing. | 1616 | * both displays current setting and allows for setting changing. |
1617 | */ | 1617 | */ |
1618 | static ssize_t show_tabletMouseLeft(struct device *dev, char *buf) | 1618 | static ssize_t show_tabletMouseLeft(struct device *dev, struct device_attribute *attr, char *buf) |
1619 | { | 1619 | { |
1620 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1620 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1621 | char *s; | 1621 | char *s; |
@@ -1644,7 +1644,7 @@ static ssize_t show_tabletMouseLeft(struct device *dev, char *buf) | |||
1644 | } | 1644 | } |
1645 | 1645 | ||
1646 | static ssize_t | 1646 | static ssize_t |
1647 | store_tabletMouseLeft(struct device *dev, const char *buf, size_t count) | 1647 | store_tabletMouseLeft(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1648 | { | 1648 | { |
1649 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1649 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1650 | 1650 | ||
@@ -1669,7 +1669,7 @@ static DEVICE_ATTR(mouse_left, | |||
1669 | * support routines for the 'mouse_middle' file. Note that this file | 1669 | * support routines for the 'mouse_middle' file. Note that this file |
1670 | * both displays current setting and allows for setting changing. | 1670 | * both displays current setting and allows for setting changing. |
1671 | */ | 1671 | */ |
1672 | static ssize_t show_tabletMouseMiddle(struct device *dev, char *buf) | 1672 | static ssize_t show_tabletMouseMiddle(struct device *dev, struct device_attribute *attr, char *buf) |
1673 | { | 1673 | { |
1674 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1674 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1675 | char *s; | 1675 | char *s; |
@@ -1698,7 +1698,7 @@ static ssize_t show_tabletMouseMiddle(struct device *dev, char *buf) | |||
1698 | } | 1698 | } |
1699 | 1699 | ||
1700 | static ssize_t | 1700 | static ssize_t |
1701 | store_tabletMouseMiddle(struct device *dev, const char *buf, size_t count) | 1701 | store_tabletMouseMiddle(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1702 | { | 1702 | { |
1703 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1703 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1704 | 1704 | ||
@@ -1725,7 +1725,7 @@ static DEVICE_ATTR(mouse_middle, | |||
1725 | * support routines for the 'mouse_right' file. Note that this file | 1725 | * support routines for the 'mouse_right' file. Note that this file |
1726 | * both displays current setting and allows for setting changing. | 1726 | * both displays current setting and allows for setting changing. |
1727 | */ | 1727 | */ |
1728 | static ssize_t show_tabletMouseRight(struct device *dev, char *buf) | 1728 | static ssize_t show_tabletMouseRight(struct device *dev, struct device_attribute *attr, char *buf) |
1729 | { | 1729 | { |
1730 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1730 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1731 | char *s; | 1731 | char *s; |
@@ -1754,7 +1754,7 @@ static ssize_t show_tabletMouseRight(struct device *dev, char *buf) | |||
1754 | } | 1754 | } |
1755 | 1755 | ||
1756 | static ssize_t | 1756 | static ssize_t |
1757 | store_tabletMouseRight(struct device *dev, const char *buf, size_t count) | 1757 | store_tabletMouseRight(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1758 | { | 1758 | { |
1759 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1759 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1760 | 1760 | ||
@@ -1780,7 +1780,7 @@ static DEVICE_ATTR(mouse_right, | |||
1780 | * support routines for the 'wheel' file. Note that this file | 1780 | * support routines for the 'wheel' file. Note that this file |
1781 | * both displays current setting and allows for setting changing. | 1781 | * both displays current setting and allows for setting changing. |
1782 | */ | 1782 | */ |
1783 | static ssize_t show_tabletWheel(struct device *dev, char *buf) | 1783 | static ssize_t show_tabletWheel(struct device *dev, struct device_attribute *attr, char *buf) |
1784 | { | 1784 | { |
1785 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1785 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1786 | 1786 | ||
@@ -1796,7 +1796,7 @@ static ssize_t show_tabletWheel(struct device *dev, char *buf) | |||
1796 | } | 1796 | } |
1797 | 1797 | ||
1798 | static ssize_t | 1798 | static ssize_t |
1799 | store_tabletWheel(struct device *dev, const char *buf, size_t count) | 1799 | store_tabletWheel(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1800 | { | 1800 | { |
1801 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1801 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1802 | 1802 | ||
@@ -1814,7 +1814,7 @@ static DEVICE_ATTR(wheel, | |||
1814 | * support routines for the 'execute' file. Note that this file | 1814 | * support routines for the 'execute' file. Note that this file |
1815 | * both displays current setting and allows for setting changing. | 1815 | * both displays current setting and allows for setting changing. |
1816 | */ | 1816 | */ |
1817 | static ssize_t show_tabletExecute(struct device *dev, char *buf) | 1817 | static ssize_t show_tabletExecute(struct device *dev, struct device_attribute *attr, char *buf) |
1818 | { | 1818 | { |
1819 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1819 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1820 | 1820 | ||
@@ -1829,7 +1829,7 @@ static ssize_t show_tabletExecute(struct device *dev, char *buf) | |||
1829 | } | 1829 | } |
1830 | 1830 | ||
1831 | static ssize_t | 1831 | static ssize_t |
1832 | store_tabletExecute(struct device *dev, const char *buf, size_t count) | 1832 | store_tabletExecute(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
1833 | { | 1833 | { |
1834 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1834 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1835 | 1835 | ||
@@ -1855,7 +1855,7 @@ static DEVICE_ATTR(execute, | |||
1855 | * support routines for the 'odm_code' file. Note that this file | 1855 | * support routines for the 'odm_code' file. Note that this file |
1856 | * only displays current setting. | 1856 | * only displays current setting. |
1857 | */ | 1857 | */ |
1858 | static ssize_t show_tabletODMCode(struct device *dev, char *buf) | 1858 | static ssize_t show_tabletODMCode(struct device *dev, struct device_attribute *attr, char *buf) |
1859 | { | 1859 | { |
1860 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1860 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1861 | 1861 | ||
@@ -1871,7 +1871,7 @@ static DEVICE_ATTR(odm_code, S_IRUGO, show_tabletODMCode, NULL); | |||
1871 | * support routines for the 'model_code' file. Note that this file | 1871 | * support routines for the 'model_code' file. Note that this file |
1872 | * only displays current setting. | 1872 | * only displays current setting. |
1873 | */ | 1873 | */ |
1874 | static ssize_t show_tabletModelCode(struct device *dev, char *buf) | 1874 | static ssize_t show_tabletModelCode(struct device *dev, struct device_attribute *attr, char *buf) |
1875 | { | 1875 | { |
1876 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1876 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1877 | 1877 | ||
@@ -1887,7 +1887,7 @@ static DEVICE_ATTR(model_code, S_IRUGO, show_tabletModelCode, NULL); | |||
1887 | * support routines for the 'firmware_code' file. Note that this file | 1887 | * support routines for the 'firmware_code' file. Note that this file |
1888 | * only displays current setting. | 1888 | * only displays current setting. |
1889 | */ | 1889 | */ |
1890 | static ssize_t show_firmwareCode(struct device *dev, char *buf) | 1890 | static ssize_t show_firmwareCode(struct device *dev, struct device_attribute *attr, char *buf) |
1891 | { | 1891 | { |
1892 | struct aiptek *aiptek = dev_get_drvdata(dev); | 1892 | struct aiptek *aiptek = dev_get_drvdata(dev); |
1893 | 1893 | ||
diff --git a/drivers/usb/misc/cytherm.c b/drivers/usb/misc/cytherm.c index 626e2b05f719..b33044d56a1e 100644 --- a/drivers/usb/misc/cytherm.c +++ b/drivers/usb/misc/cytherm.c | |||
@@ -85,7 +85,7 @@ static int vendor_command(struct usb_device *dev, unsigned char request, | |||
85 | #define BRIGHTNESS 0x2c /* RAM location for brightness value */ | 85 | #define BRIGHTNESS 0x2c /* RAM location for brightness value */ |
86 | #define BRIGHTNESS_SEM 0x2b /* RAM location for brightness semaphore */ | 86 | #define BRIGHTNESS_SEM 0x2b /* RAM location for brightness semaphore */ |
87 | 87 | ||
88 | static ssize_t show_brightness(struct device *dev, char *buf) | 88 | static ssize_t show_brightness(struct device *dev, struct device_attribute *attr, char *buf) |
89 | { | 89 | { |
90 | struct usb_interface *intf = to_usb_interface(dev); | 90 | struct usb_interface *intf = to_usb_interface(dev); |
91 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); | 91 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); |
@@ -93,7 +93,7 @@ static ssize_t show_brightness(struct device *dev, char *buf) | |||
93 | return sprintf(buf, "%i", cytherm->brightness); | 93 | return sprintf(buf, "%i", cytherm->brightness); |
94 | } | 94 | } |
95 | 95 | ||
96 | static ssize_t set_brightness(struct device *dev, const char *buf, | 96 | static ssize_t set_brightness(struct device *dev, struct device_attribute *attr, const char *buf, |
97 | size_t count) | 97 | size_t count) |
98 | { | 98 | { |
99 | struct usb_interface *intf = to_usb_interface(dev); | 99 | struct usb_interface *intf = to_usb_interface(dev); |
@@ -138,7 +138,7 @@ static DEVICE_ATTR(brightness, S_IRUGO | S_IWUSR | S_IWGRP, | |||
138 | #define TEMP 0x33 /* RAM location for temperature */ | 138 | #define TEMP 0x33 /* RAM location for temperature */ |
139 | #define SIGN 0x34 /* RAM location for temperature sign */ | 139 | #define SIGN 0x34 /* RAM location for temperature sign */ |
140 | 140 | ||
141 | static ssize_t show_temp(struct device *dev, char *buf) | 141 | static ssize_t show_temp(struct device *dev, struct device_attribute *attr, char *buf) |
142 | { | 142 | { |
143 | 143 | ||
144 | struct usb_interface *intf = to_usb_interface(dev); | 144 | struct usb_interface *intf = to_usb_interface(dev); |
@@ -174,7 +174,7 @@ static ssize_t show_temp(struct device *dev, char *buf) | |||
174 | } | 174 | } |
175 | 175 | ||
176 | 176 | ||
177 | static ssize_t set_temp(struct device *dev, const char *buf, size_t count) | 177 | static ssize_t set_temp(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
178 | { | 178 | { |
179 | return count; | 179 | return count; |
180 | } | 180 | } |
@@ -184,7 +184,7 @@ static DEVICE_ATTR(temp, S_IRUGO, show_temp, set_temp); | |||
184 | 184 | ||
185 | #define BUTTON 0x7a | 185 | #define BUTTON 0x7a |
186 | 186 | ||
187 | static ssize_t show_button(struct device *dev, char *buf) | 187 | static ssize_t show_button(struct device *dev, struct device_attribute *attr, char *buf) |
188 | { | 188 | { |
189 | 189 | ||
190 | struct usb_interface *intf = to_usb_interface(dev); | 190 | struct usb_interface *intf = to_usb_interface(dev); |
@@ -215,7 +215,7 @@ static ssize_t show_button(struct device *dev, char *buf) | |||
215 | } | 215 | } |
216 | 216 | ||
217 | 217 | ||
218 | static ssize_t set_button(struct device *dev, const char *buf, size_t count) | 218 | static ssize_t set_button(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
219 | { | 219 | { |
220 | return count; | 220 | return count; |
221 | } | 221 | } |
@@ -223,7 +223,7 @@ static ssize_t set_button(struct device *dev, const char *buf, size_t count) | |||
223 | static DEVICE_ATTR(button, S_IRUGO, show_button, set_button); | 223 | static DEVICE_ATTR(button, S_IRUGO, show_button, set_button); |
224 | 224 | ||
225 | 225 | ||
226 | static ssize_t show_port0(struct device *dev, char *buf) | 226 | static ssize_t show_port0(struct device *dev, struct device_attribute *attr, char *buf) |
227 | { | 227 | { |
228 | struct usb_interface *intf = to_usb_interface(dev); | 228 | struct usb_interface *intf = to_usb_interface(dev); |
229 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); | 229 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); |
@@ -249,7 +249,7 @@ static ssize_t show_port0(struct device *dev, char *buf) | |||
249 | } | 249 | } |
250 | 250 | ||
251 | 251 | ||
252 | static ssize_t set_port0(struct device *dev, const char *buf, size_t count) | 252 | static ssize_t set_port0(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
253 | { | 253 | { |
254 | struct usb_interface *intf = to_usb_interface(dev); | 254 | struct usb_interface *intf = to_usb_interface(dev); |
255 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); | 255 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); |
@@ -283,7 +283,7 @@ static ssize_t set_port0(struct device *dev, const char *buf, size_t count) | |||
283 | 283 | ||
284 | static DEVICE_ATTR(port0, S_IRUGO | S_IWUSR | S_IWGRP, show_port0, set_port0); | 284 | static DEVICE_ATTR(port0, S_IRUGO | S_IWUSR | S_IWGRP, show_port0, set_port0); |
285 | 285 | ||
286 | static ssize_t show_port1(struct device *dev, char *buf) | 286 | static ssize_t show_port1(struct device *dev, struct device_attribute *attr, char *buf) |
287 | { | 287 | { |
288 | struct usb_interface *intf = to_usb_interface(dev); | 288 | struct usb_interface *intf = to_usb_interface(dev); |
289 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); | 289 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); |
@@ -309,7 +309,7 @@ static ssize_t show_port1(struct device *dev, char *buf) | |||
309 | } | 309 | } |
310 | 310 | ||
311 | 311 | ||
312 | static ssize_t set_port1(struct device *dev, const char *buf, size_t count) | 312 | static ssize_t set_port1(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
313 | { | 313 | { |
314 | struct usb_interface *intf = to_usb_interface(dev); | 314 | struct usb_interface *intf = to_usb_interface(dev); |
315 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); | 315 | struct usb_cytherm *cytherm = usb_get_intfdata(intf); |
diff --git a/drivers/usb/misc/phidgetkit.c b/drivers/usb/misc/phidgetkit.c index ddbf8e992368..067a81486921 100644 --- a/drivers/usb/misc/phidgetkit.c +++ b/drivers/usb/misc/phidgetkit.c | |||
@@ -173,7 +173,7 @@ exit: | |||
173 | } | 173 | } |
174 | 174 | ||
175 | #define set_lcd_line(number) \ | 175 | #define set_lcd_line(number) \ |
176 | static ssize_t lcd_line_##number(struct device *dev, const char *buf, size_t count) \ | 176 | static ssize_t lcd_line_##number(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) \ |
177 | { \ | 177 | { \ |
178 | struct usb_interface *intf = to_usb_interface(dev); \ | 178 | struct usb_interface *intf = to_usb_interface(dev); \ |
179 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ | 179 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ |
@@ -184,7 +184,7 @@ static DEVICE_ATTR(lcd_line_##number, S_IWUGO, NULL, lcd_line_##number); | |||
184 | set_lcd_line(1); | 184 | set_lcd_line(1); |
185 | set_lcd_line(2); | 185 | set_lcd_line(2); |
186 | 186 | ||
187 | static ssize_t set_backlight(struct device *dev, const char *buf, size_t count) | 187 | static ssize_t set_backlight(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
188 | { | 188 | { |
189 | struct usb_interface *intf = to_usb_interface(dev); | 189 | struct usb_interface *intf = to_usb_interface(dev); |
190 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); | 190 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); |
@@ -232,7 +232,7 @@ static void remove_lcd_files(struct phidget_interfacekit *kit) | |||
232 | } | 232 | } |
233 | } | 233 | } |
234 | 234 | ||
235 | static ssize_t enable_lcd_files(struct device *dev, const char *buf, size_t count) | 235 | static ssize_t enable_lcd_files(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) |
236 | { | 236 | { |
237 | struct usb_interface *intf = to_usb_interface(dev); | 237 | struct usb_interface *intf = to_usb_interface(dev); |
238 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); | 238 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); |
@@ -307,7 +307,7 @@ resubmit: | |||
307 | } | 307 | } |
308 | 308 | ||
309 | #define show_set_output(value) \ | 309 | #define show_set_output(value) \ |
310 | static ssize_t set_output##value(struct device *dev, const char *buf, \ | 310 | static ssize_t set_output##value(struct device *dev, struct device_attribute *attr, const char *buf, \ |
311 | size_t count) \ | 311 | size_t count) \ |
312 | { \ | 312 | { \ |
313 | struct usb_interface *intf = to_usb_interface(dev); \ | 313 | struct usb_interface *intf = to_usb_interface(dev); \ |
@@ -324,7 +324,7 @@ static ssize_t set_output##value(struct device *dev, const char *buf, \ | |||
324 | return retval ? retval : count; \ | 324 | return retval ? retval : count; \ |
325 | } \ | 325 | } \ |
326 | \ | 326 | \ |
327 | static ssize_t show_output##value(struct device *dev, char *buf) \ | 327 | static ssize_t show_output##value(struct device *dev, struct device_attribute *attr, char *buf) \ |
328 | { \ | 328 | { \ |
329 | struct usb_interface *intf = to_usb_interface(dev); \ | 329 | struct usb_interface *intf = to_usb_interface(dev); \ |
330 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ | 330 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ |
@@ -343,7 +343,7 @@ show_set_output(7); | |||
343 | show_set_output(8); /* should be MAX_INTERFACES - 1 */ | 343 | show_set_output(8); /* should be MAX_INTERFACES - 1 */ |
344 | 344 | ||
345 | #define show_input(value) \ | 345 | #define show_input(value) \ |
346 | static ssize_t show_input##value(struct device *dev, char *buf) \ | 346 | static ssize_t show_input##value(struct device *dev, struct device_attribute *attr, char *buf) \ |
347 | { \ | 347 | { \ |
348 | struct usb_interface *intf = to_usb_interface(dev); \ | 348 | struct usb_interface *intf = to_usb_interface(dev); \ |
349 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ | 349 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ |
@@ -362,7 +362,7 @@ show_input(7); | |||
362 | show_input(8); /* should be MAX_INTERFACES - 1 */ | 362 | show_input(8); /* should be MAX_INTERFACES - 1 */ |
363 | 363 | ||
364 | #define show_sensor(value) \ | 364 | #define show_sensor(value) \ |
365 | static ssize_t show_sensor##value(struct device *dev, char *buf) \ | 365 | static ssize_t show_sensor##value(struct device *dev, struct device_attribute *attr, char *buf) \ |
366 | { \ | 366 | { \ |
367 | struct usb_interface *intf = to_usb_interface(dev); \ | 367 | struct usb_interface *intf = to_usb_interface(dev); \ |
368 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ | 368 | struct phidget_interfacekit *kit = usb_get_intfdata(intf); \ |
diff --git a/drivers/usb/misc/phidgetservo.c b/drivers/usb/misc/phidgetservo.c index 4bd291502a3c..b84eda631ab5 100644 --- a/drivers/usb/misc/phidgetservo.c +++ b/drivers/usb/misc/phidgetservo.c | |||
@@ -207,7 +207,7 @@ change_position_v20(struct phidget_servo *servo, int servo_no, int degrees, | |||
207 | } | 207 | } |
208 | 208 | ||
209 | #define show_set(value) \ | 209 | #define show_set(value) \ |
210 | static ssize_t set_servo##value (struct device *dev, \ | 210 | static ssize_t set_servo##value (struct device *dev, struct device_attribute *attr, \ |
211 | const char *buf, size_t count) \ | 211 | const char *buf, size_t count) \ |
212 | { \ | 212 | { \ |
213 | int degrees, minutes, retval; \ | 213 | int degrees, minutes, retval; \ |
@@ -233,7 +233,7 @@ static ssize_t set_servo##value (struct device *dev, \ | |||
233 | return retval < 0 ? retval : count; \ | 233 | return retval < 0 ? retval : count; \ |
234 | } \ | 234 | } \ |
235 | \ | 235 | \ |
236 | static ssize_t show_servo##value (struct device *dev, char *buf) \ | 236 | static ssize_t show_servo##value (struct device *dev, struct device_attribute *attr, char *buf) \ |
237 | { \ | 237 | { \ |
238 | struct usb_interface *intf = to_usb_interface (dev); \ | 238 | struct usb_interface *intf = to_usb_interface (dev); \ |
239 | struct phidget_servo *servo = usb_get_intfdata (intf); \ | 239 | struct phidget_servo *servo = usb_get_intfdata (intf); \ |
diff --git a/drivers/usb/misc/usbled.c b/drivers/usb/misc/usbled.c index ee329d5e1c5e..f6ba4c788dbc 100644 --- a/drivers/usb/misc/usbled.c +++ b/drivers/usb/misc/usbled.c | |||
@@ -81,14 +81,14 @@ static void change_color(struct usb_led *led) | |||
81 | } | 81 | } |
82 | 82 | ||
83 | #define show_set(value) \ | 83 | #define show_set(value) \ |
84 | static ssize_t show_##value(struct device *dev, char *buf) \ | 84 | static ssize_t show_##value(struct device *dev, struct device_attribute *attr, char *buf) \ |
85 | { \ | 85 | { \ |
86 | struct usb_interface *intf = to_usb_interface(dev); \ | 86 | struct usb_interface *intf = to_usb_interface(dev); \ |
87 | struct usb_led *led = usb_get_intfdata(intf); \ | 87 | struct usb_led *led = usb_get_intfdata(intf); \ |
88 | \ | 88 | \ |
89 | return sprintf(buf, "%d\n", led->value); \ | 89 | return sprintf(buf, "%d\n", led->value); \ |
90 | } \ | 90 | } \ |
91 | static ssize_t set_##value(struct device *dev, const char *buf, size_t count) \ | 91 | static ssize_t set_##value(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) \ |
92 | { \ | 92 | { \ |
93 | struct usb_interface *intf = to_usb_interface(dev); \ | 93 | struct usb_interface *intf = to_usb_interface(dev); \ |
94 | struct usb_led *led = usb_get_intfdata(intf); \ | 94 | struct usb_led *led = usb_get_intfdata(intf); \ |
diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c index 3bfcc7b9f861..d882fa3ad19a 100644 --- a/drivers/usb/serial/ftdi_sio.c +++ b/drivers/usb/serial/ftdi_sio.c | |||
@@ -1218,7 +1218,7 @@ check_and_exit: | |||
1218 | * *************************************************************************** | 1218 | * *************************************************************************** |
1219 | */ | 1219 | */ |
1220 | 1220 | ||
1221 | static ssize_t show_latency_timer(struct device *dev, char *buf) | 1221 | static ssize_t show_latency_timer(struct device *dev, struct device_attribute *attr, char *buf) |
1222 | { | 1222 | { |
1223 | struct usb_serial_port *port = to_usb_serial_port(dev); | 1223 | struct usb_serial_port *port = to_usb_serial_port(dev); |
1224 | struct ftdi_private *priv = usb_get_serial_port_data(port); | 1224 | struct ftdi_private *priv = usb_get_serial_port_data(port); |
@@ -1245,7 +1245,7 @@ static ssize_t show_latency_timer(struct device *dev, char *buf) | |||
1245 | } | 1245 | } |
1246 | 1246 | ||
1247 | /* Write a new value of the latency timer, in units of milliseconds. */ | 1247 | /* Write a new value of the latency timer, in units of milliseconds. */ |
1248 | static ssize_t store_latency_timer(struct device *dev, const char *valbuf, | 1248 | static ssize_t store_latency_timer(struct device *dev, struct device_attribute *attr, const char *valbuf, |
1249 | size_t count) | 1249 | size_t count) |
1250 | { | 1250 | { |
1251 | struct usb_serial_port *port = to_usb_serial_port(dev); | 1251 | struct usb_serial_port *port = to_usb_serial_port(dev); |
@@ -1276,7 +1276,7 @@ static ssize_t store_latency_timer(struct device *dev, const char *valbuf, | |||
1276 | 1276 | ||
1277 | /* Write an event character directly to the FTDI register. The ASCII | 1277 | /* Write an event character directly to the FTDI register. The ASCII |
1278 | value is in the low 8 bits, with the enable bit in the 9th bit. */ | 1278 | value is in the low 8 bits, with the enable bit in the 9th bit. */ |
1279 | static ssize_t store_event_char(struct device *dev, const char *valbuf, | 1279 | static ssize_t store_event_char(struct device *dev, struct device_attribute *attr, const char *valbuf, |
1280 | size_t count) | 1280 | size_t count) |
1281 | { | 1281 | { |
1282 | struct usb_serial_port *port = to_usb_serial_port(dev); | 1282 | struct usb_serial_port *port = to_usb_serial_port(dev); |
diff --git a/drivers/usb/storage/scsiglue.c b/drivers/usb/storage/scsiglue.c index 1035b248eff4..e43eddc3d44b 100644 --- a/drivers/usb/storage/scsiglue.c +++ b/drivers/usb/storage/scsiglue.c | |||
@@ -398,7 +398,7 @@ US_DO_ALL_FLAGS | |||
398 | ***********************************************************************/ | 398 | ***********************************************************************/ |
399 | 399 | ||
400 | /* Output routine for the sysfs max_sectors file */ | 400 | /* Output routine for the sysfs max_sectors file */ |
401 | static ssize_t show_max_sectors(struct device *dev, char *buf) | 401 | static ssize_t show_max_sectors(struct device *dev, struct device_attribute *attr, char *buf) |
402 | { | 402 | { |
403 | struct scsi_device *sdev = to_scsi_device(dev); | 403 | struct scsi_device *sdev = to_scsi_device(dev); |
404 | 404 | ||
@@ -406,7 +406,7 @@ static ssize_t show_max_sectors(struct device *dev, char *buf) | |||
406 | } | 406 | } |
407 | 407 | ||
408 | /* Input routine for the sysfs max_sectors file */ | 408 | /* Input routine for the sysfs max_sectors file */ |
409 | static ssize_t store_max_sectors(struct device *dev, const char *buf, | 409 | static ssize_t store_max_sectors(struct device *dev, struct device_attribute *attr, const char *buf, |
410 | size_t count) | 410 | size_t count) |
411 | { | 411 | { |
412 | struct scsi_device *sdev = to_scsi_device(dev); | 412 | struct scsi_device *sdev = to_scsi_device(dev); |