aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/core/buffer.c11
-rw-r--r--drivers/usb/core/config.c14
-rw-r--r--drivers/usb/core/driver.c30
-rw-r--r--drivers/usb/core/sysfs.c20
-rw-r--r--drivers/usb/core/urb.c22
-rw-r--r--drivers/usb/core/usb.c51
6 files changed, 74 insertions, 74 deletions
diff --git a/drivers/usb/core/buffer.c b/drivers/usb/core/buffer.c
index acd9f00a0b76..cadb2dc1d28a 100644
--- a/drivers/usb/core/buffer.c
+++ b/drivers/usb/core/buffer.c
@@ -57,8 +57,9 @@ int hcd_buffer_create(struct usb_hcd *hcd)
57 !(hcd->driver->flags & HCD_LOCAL_MEM)) 57 !(hcd->driver->flags & HCD_LOCAL_MEM))
58 return 0; 58 return 0;
59 59
60 for (i = 0; i < HCD_BUFFER_POOLS; i++) { 60 for (i = 0; i < HCD_BUFFER_POOLS; i++) {
61 if (!(size = pool_max [i])) 61 size = pool_max[i];
62 if (!size)
62 continue; 63 continue;
63 snprintf(name, sizeof name, "buffer-%d", size); 64 snprintf(name, sizeof name, "buffer-%d", size);
64 hcd->pool[i] = dma_pool_create(name, hcd->self.controller, 65 hcd->pool[i] = dma_pool_create(name, hcd->self.controller,
@@ -81,10 +82,10 @@ int hcd_buffer_create(struct usb_hcd *hcd)
81 */ 82 */
82void hcd_buffer_destroy(struct usb_hcd *hcd) 83void hcd_buffer_destroy(struct usb_hcd *hcd)
83{ 84{
84 int i; 85 int i;
85 86
86 for (i = 0; i < HCD_BUFFER_POOLS; i++) { 87 for (i = 0; i < HCD_BUFFER_POOLS; i++) {
87 struct dma_pool *pool = hcd->pool[i]; 88 struct dma_pool *pool = hcd->pool[i];
88 if (pool) { 89 if (pool) {
89 dma_pool_destroy(pool); 90 dma_pool_destroy(pool);
90 hcd->pool[i] = NULL; 91 hcd->pool[i] = NULL;
diff --git a/drivers/usb/core/config.c b/drivers/usb/core/config.c
index 1a8edcee7f30..a92122a216bc 100644
--- a/drivers/usb/core/config.c
+++ b/drivers/usb/core/config.c
@@ -238,7 +238,7 @@ static int usb_parse_interface(struct device *ddev, int cfgno,
238 238
239 /* Allocate space for the right(?) number of endpoints */ 239 /* Allocate space for the right(?) number of endpoints */
240 num_ep = num_ep_orig = alt->desc.bNumEndpoints; 240 num_ep = num_ep_orig = alt->desc.bNumEndpoints;
241 alt->desc.bNumEndpoints = 0; // Use as a counter 241 alt->desc.bNumEndpoints = 0; /* Use as a counter */
242 if (num_ep > USB_MAXENDPOINTS) { 242 if (num_ep > USB_MAXENDPOINTS) {
243 dev_warn(ddev, "too many endpoints for config %d interface %d " 243 dev_warn(ddev, "too many endpoints for config %d interface %d "
244 "altsetting %d: %d, using maximum allowed: %d\n", 244 "altsetting %d: %d, using maximum allowed: %d\n",
@@ -246,7 +246,8 @@ static int usb_parse_interface(struct device *ddev, int cfgno,
246 num_ep = USB_MAXENDPOINTS; 246 num_ep = USB_MAXENDPOINTS;
247 } 247 }
248 248
249 if (num_ep > 0) { /* Can't allocate 0 bytes */ 249 if (num_ep > 0) {
250 /* Can't allocate 0 bytes */
250 len = sizeof(struct usb_host_endpoint) * num_ep; 251 len = sizeof(struct usb_host_endpoint) * num_ep;
251 alt->endpoint = kzalloc(len, GFP_KERNEL); 252 alt->endpoint = kzalloc(len, GFP_KERNEL);
252 if (!alt->endpoint) 253 if (!alt->endpoint)
@@ -475,8 +476,9 @@ static int usb_parse_configuration(struct device *ddev, int cfgidx,
475 return 0; 476 return 0;
476} 477}
477 478
478// hub-only!! ... and only exported for reset/reinit path. 479/* hub-only!! ... and only exported for reset/reinit path.
479// otherwise used internally on disconnect/destroy path 480 * otherwise used internally on disconnect/destroy path
481 */
480void usb_destroy_configuration(struct usb_device *dev) 482void usb_destroy_configuration(struct usb_device *dev)
481{ 483{
482 int c, i; 484 int c, i;
@@ -498,7 +500,7 @@ void usb_destroy_configuration(struct usb_device *dev)
498 kfree(cf->string); 500 kfree(cf->string);
499 for (i = 0; i < cf->desc.bNumInterfaces; i++) { 501 for (i = 0; i < cf->desc.bNumInterfaces; i++) {
500 if (cf->intf_cache[i]) 502 if (cf->intf_cache[i])
501 kref_put(&cf->intf_cache[i]->ref, 503 kref_put(&cf->intf_cache[i]->ref,
502 usb_release_interface_cache); 504 usb_release_interface_cache);
503 } 505 }
504 } 506 }
@@ -525,7 +527,7 @@ int usb_get_configuration(struct usb_device *dev)
525 unsigned int cfgno, length; 527 unsigned int cfgno, length;
526 unsigned char *buffer; 528 unsigned char *buffer;
527 unsigned char *bigbuffer; 529 unsigned char *bigbuffer;
528 struct usb_config_descriptor *desc; 530 struct usb_config_descriptor *desc;
529 531
530 cfgno = 0; 532 cfgno = 0;
531 if (dev->authorized == 0) /* Not really an error */ 533 if (dev->authorized == 0) /* Not really an error */
diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
index 7e7f2c42494c..801b6f142fa7 100644
--- a/drivers/usb/core/driver.c
+++ b/drivers/usb/core/driver.c
@@ -202,10 +202,10 @@ static int usb_probe_interface(struct device *dev)
202 intf = to_usb_interface(dev); 202 intf = to_usb_interface(dev);
203 udev = interface_to_usbdev(intf); 203 udev = interface_to_usbdev(intf);
204 204
205 if (udev->authorized == 0) { 205 if (udev->authorized == 0) {
206 dev_err(&intf->dev, "Device is not authorized for usage\n"); 206 dev_err(&intf->dev, "Device is not authorized for usage\n");
207 return -ENODEV; 207 return -ENODEV;
208 } 208 }
209 209
210 id = usb_match_id(intf, driver->id_table); 210 id = usb_match_id(intf, driver->id_table);
211 if (!id) 211 if (!id)
@@ -299,7 +299,7 @@ static int usb_unbind_interface(struct device *dev)
299 * lock. 299 * lock.
300 */ 300 */
301int usb_driver_claim_interface(struct usb_driver *driver, 301int usb_driver_claim_interface(struct usb_driver *driver,
302 struct usb_interface *iface, void* priv) 302 struct usb_interface *iface, void *priv)
303{ 303{
304 struct device *dev = &iface->dev; 304 struct device *dev = &iface->dev;
305 struct usb_device *udev = interface_to_usbdev(iface); 305 struct usb_device *udev = interface_to_usbdev(iface);
@@ -398,7 +398,7 @@ int usb_match_device(struct usb_device *dev, const struct usb_device_id *id)
398 return 0; 398 return 0;
399 399
400 if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_SUBCLASS) && 400 if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_SUBCLASS) &&
401 (id->bDeviceSubClass!= dev->descriptor.bDeviceSubClass)) 401 (id->bDeviceSubClass != dev->descriptor.bDeviceSubClass))
402 return 0; 402 return 0;
403 403
404 if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) && 404 if ((id->match_flags & USB_DEVICE_ID_MATCH_DEV_PROTOCOL) &&
@@ -586,7 +586,7 @@ static int usb_uevent(struct device *dev, struct kobj_uevent_env *env)
586 struct usb_device *usb_dev; 586 struct usb_device *usb_dev;
587 587
588 /* driver is often null here; dev_dbg() would oops */ 588 /* driver is often null here; dev_dbg() would oops */
589 pr_debug ("usb %s: uevent\n", dev->bus_id); 589 pr_debug("usb %s: uevent\n", dev->bus_id);
590 590
591 if (is_usb_device(dev)) 591 if (is_usb_device(dev))
592 usb_dev = to_usb_device(dev); 592 usb_dev = to_usb_device(dev);
@@ -596,11 +596,11 @@ static int usb_uevent(struct device *dev, struct kobj_uevent_env *env)
596 } 596 }
597 597
598 if (usb_dev->devnum < 0) { 598 if (usb_dev->devnum < 0) {
599 pr_debug ("usb %s: already deleted?\n", dev->bus_id); 599 pr_debug("usb %s: already deleted?\n", dev->bus_id);
600 return -ENODEV; 600 return -ENODEV;
601 } 601 }
602 if (!usb_dev->bus) { 602 if (!usb_dev->bus) {
603 pr_debug ("usb %s: bus removed?\n", dev->bus_id); 603 pr_debug("usb %s: bus removed?\n", dev->bus_id);
604 return -ENODEV; 604 return -ENODEV;
605 } 605 }
606 606
@@ -854,8 +854,10 @@ static int usb_suspend_interface(struct usb_interface *intf, pm_message_t msg)
854 dev_err(&intf->dev, "%s error %d\n", 854 dev_err(&intf->dev, "%s error %d\n",
855 "suspend", status); 855 "suspend", status);
856 } else { 856 } else {
857 // FIXME else if there's no suspend method, disconnect... 857 /*
858 // Not possible if auto_pm is set... 858 * FIXME else if there's no suspend method, disconnect...
859 * Not possible if auto_pm is set...
860 */
859 dev_warn(&intf->dev, "no suspend for driver %s?\n", 861 dev_warn(&intf->dev, "no suspend for driver %s?\n",
860 driver->name); 862 driver->name);
861 mark_quiesced(intf); 863 mark_quiesced(intf);
@@ -894,7 +896,7 @@ static int usb_resume_interface(struct usb_interface *intf, int reset_resume)
894 dev_err(&intf->dev, "%s error %d\n", 896 dev_err(&intf->dev, "%s error %d\n",
895 "reset_resume", status); 897 "reset_resume", status);
896 } else { 898 } else {
897 // status = -EOPNOTSUPP; 899 /* status = -EOPNOTSUPP; */
898 dev_warn(&intf->dev, "no %s for driver %s?\n", 900 dev_warn(&intf->dev, "no %s for driver %s?\n",
899 "reset_resume", driver->name); 901 "reset_resume", driver->name);
900 } 902 }
@@ -905,7 +907,7 @@ static int usb_resume_interface(struct usb_interface *intf, int reset_resume)
905 dev_err(&intf->dev, "%s error %d\n", 907 dev_err(&intf->dev, "%s error %d\n",
906 "resume", status); 908 "resume", status);
907 } else { 909 } else {
908 // status = -EOPNOTSUPP; 910 /* status = -EOPNOTSUPP; */
909 dev_warn(&intf->dev, "no %s for driver %s?\n", 911 dev_warn(&intf->dev, "no %s for driver %s?\n",
910 "resume", driver->name); 912 "resume", driver->name);
911 } 913 }
@@ -1175,7 +1177,7 @@ static int usb_resume_both(struct usb_device *udev)
1175 * so if a root hub's controller is suspended 1177 * so if a root hub's controller is suspended
1176 * then we're stuck. */ 1178 * then we're stuck. */
1177 status = usb_resume_device(udev); 1179 status = usb_resume_device(udev);
1178 } 1180 }
1179 } else { 1181 } else {
1180 1182
1181 /* Needed for setting udev->dev.power.power_state.event, 1183 /* Needed for setting udev->dev.power.power_state.event,
diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
index 021b1d37462c..a37ccbd1e007 100644
--- a/drivers/usb/core/sysfs.c
+++ b/drivers/usb/core/sysfs.c
@@ -72,7 +72,7 @@ set_bConfigurationValue(struct device *dev, struct device_attribute *attr,
72 return (value < 0) ? value : count; 72 return (value < 0) ? value : count;
73} 73}
74 74
75static DEVICE_ATTR(bConfigurationValue, S_IRUGO | S_IWUSR, 75static DEVICE_ATTR(bConfigurationValue, S_IRUGO | S_IWUSR,
76 show_bConfigurationValue, set_bConfigurationValue); 76 show_bConfigurationValue, set_bConfigurationValue);
77 77
78/* String fields */ 78/* String fields */
@@ -650,21 +650,21 @@ void usb_remove_sysfs_dev_files(struct usb_device *udev)
650/* Interface Accociation Descriptor fields */ 650/* Interface Accociation Descriptor fields */
651#define usb_intf_assoc_attr(field, format_string) \ 651#define usb_intf_assoc_attr(field, format_string) \
652static ssize_t \ 652static ssize_t \
653show_iad_##field (struct device *dev, struct device_attribute *attr, \ 653show_iad_##field(struct device *dev, struct device_attribute *attr, \
654 char *buf) \ 654 char *buf) \
655{ \ 655{ \
656 struct usb_interface *intf = to_usb_interface (dev); \ 656 struct usb_interface *intf = to_usb_interface(dev); \
657 \ 657 \
658 return sprintf (buf, format_string, \ 658 return sprintf(buf, format_string, \
659 intf->intf_assoc->field); \ 659 intf->intf_assoc->field); \
660} \ 660} \
661static DEVICE_ATTR(iad_##field, S_IRUGO, show_iad_##field, NULL); 661static DEVICE_ATTR(iad_##field, S_IRUGO, show_iad_##field, NULL);
662 662
663usb_intf_assoc_attr (bFirstInterface, "%02x\n") 663usb_intf_assoc_attr(bFirstInterface, "%02x\n")
664usb_intf_assoc_attr (bInterfaceCount, "%02d\n") 664usb_intf_assoc_attr(bInterfaceCount, "%02d\n")
665usb_intf_assoc_attr (bFunctionClass, "%02x\n") 665usb_intf_assoc_attr(bFunctionClass, "%02x\n")
666usb_intf_assoc_attr (bFunctionSubClass, "%02x\n") 666usb_intf_assoc_attr(bFunctionSubClass, "%02x\n")
667usb_intf_assoc_attr (bFunctionProtocol, "%02x\n") 667usb_intf_assoc_attr(bFunctionProtocol, "%02x\n")
668 668
669/* Interface fields */ 669/* Interface fields */
670#define usb_intf_attr(field, format_string) \ 670#define usb_intf_attr(field, format_string) \
diff --git a/drivers/usb/core/urb.c b/drivers/usb/core/urb.c
index 0b54dc174e2c..9d7e63292c01 100644
--- a/drivers/usb/core/urb.c
+++ b/drivers/usb/core/urb.c
@@ -103,7 +103,7 @@ EXPORT_SYMBOL_GPL(usb_free_urb);
103 * 103 *
104 * A pointer to the urb with the incremented reference counter is returned. 104 * A pointer to the urb with the incremented reference counter is returned.
105 */ 105 */
106struct urb * usb_get_urb(struct urb *urb) 106struct urb *usb_get_urb(struct urb *urb)
107{ 107{
108 if (urb) 108 if (urb)
109 kref_get(&urb->kref); 109 kref_get(&urb->kref);
@@ -176,7 +176,7 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb);
176 * describing that request to the USB subsystem. Request completion will 176 * describing that request to the USB subsystem. Request completion will
177 * be indicated later, asynchronously, by calling the completion handler. 177 * be indicated later, asynchronously, by calling the completion handler.
178 * The three types of completion are success, error, and unlink 178 * The three types of completion are success, error, and unlink
179 * (a software-induced fault, also called "request cancellation"). 179 * (a software-induced fault, also called "request cancellation").
180 * 180 *
181 * URBs may be submitted in interrupt context. 181 * URBs may be submitted in interrupt context.
182 * 182 *
@@ -259,7 +259,7 @@ EXPORT_SYMBOL_GPL(usb_unanchor_urb);
259 * semaphores), or 259 * semaphores), or
260 * (c) current->state != TASK_RUNNING, this is the case only after 260 * (c) current->state != TASK_RUNNING, this is the case only after
261 * you've changed it. 261 * you've changed it.
262 * 262 *
263 * GFP_NOIO is used in the block io path and error handling of storage 263 * GFP_NOIO is used in the block io path and error handling of storage
264 * devices. 264 * devices.
265 * 265 *
@@ -288,7 +288,8 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
288 288
289 if (!urb || urb->hcpriv || !urb->complete) 289 if (!urb || urb->hcpriv || !urb->complete)
290 return -EINVAL; 290 return -EINVAL;
291 if (!(dev = urb->dev) || dev->state < USB_STATE_DEFAULT) 291 dev = urb->dev;
292 if ((!dev) || (dev->state < USB_STATE_DEFAULT))
292 return -ENODEV; 293 return -ENODEV;
293 294
294 /* For now, get the endpoint from the pipe. Eventually drivers 295 /* For now, get the endpoint from the pipe. Eventually drivers
@@ -351,11 +352,11 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
351 max *= mult; 352 max *= mult;
352 } 353 }
353 354
354 if (urb->number_of_packets <= 0) 355 if (urb->number_of_packets <= 0)
355 return -EINVAL; 356 return -EINVAL;
356 for (n = 0; n < urb->number_of_packets; n++) { 357 for (n = 0; n < urb->number_of_packets; n++) {
357 len = urb->iso_frame_desc[n].length; 358 len = urb->iso_frame_desc[n].length;
358 if (len < 0 || len > max) 359 if (len < 0 || len > max)
359 return -EMSGSIZE; 360 return -EMSGSIZE;
360 urb->iso_frame_desc[n].status = -EXDEV; 361 urb->iso_frame_desc[n].status = -EXDEV;
361 urb->iso_frame_desc[n].actual_length = 0; 362 urb->iso_frame_desc[n].actual_length = 0;
@@ -420,7 +421,7 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
420 /* too big? */ 421 /* too big? */
421 switch (dev->speed) { 422 switch (dev->speed) {
422 case USB_SPEED_HIGH: /* units are microframes */ 423 case USB_SPEED_HIGH: /* units are microframes */
423 // NOTE usb handles 2^15 424 /* NOTE usb handles 2^15 */
424 if (urb->interval > (1024 * 8)) 425 if (urb->interval > (1024 * 8))
425 urb->interval = 1024 * 8; 426 urb->interval = 1024 * 8;
426 max = 1024 * 8; 427 max = 1024 * 8;
@@ -430,12 +431,12 @@ int usb_submit_urb(struct urb *urb, gfp_t mem_flags)
430 if (xfertype == USB_ENDPOINT_XFER_INT) { 431 if (xfertype == USB_ENDPOINT_XFER_INT) {
431 if (urb->interval > 255) 432 if (urb->interval > 255)
432 return -EINVAL; 433 return -EINVAL;
433 // NOTE ohci only handles up to 32 434 /* NOTE ohci only handles up to 32 */
434 max = 128; 435 max = 128;
435 } else { 436 } else {
436 if (urb->interval > 1024) 437 if (urb->interval > 1024)
437 urb->interval = 1024; 438 urb->interval = 1024;
438 // NOTE usb and ohci handle up to 2^15 439 /* NOTE usb and ohci handle up to 2^15 */
439 max = 1024; 440 max = 1024;
440 } 441 }
441 break; 442 break;
@@ -574,7 +575,8 @@ void usb_kill_anchored_urbs(struct usb_anchor *anchor)
574 575
575 spin_lock_irq(&anchor->lock); 576 spin_lock_irq(&anchor->lock);
576 while (!list_empty(&anchor->urb_list)) { 577 while (!list_empty(&anchor->urb_list)) {
577 victim = list_entry(anchor->urb_list.prev, struct urb, anchor_list); 578 victim = list_entry(anchor->urb_list.prev, struct urb,
579 anchor_list);
578 /* we must make sure the URB isn't freed before we kill it*/ 580 /* we must make sure the URB isn't freed before we kill it*/
579 usb_get_urb(victim); 581 usb_get_urb(victim);
580 spin_unlock_irq(&anchor->lock); 582 spin_unlock_irq(&anchor->lock);
diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
index 8c6319afa757..4e984060c984 100644
--- a/drivers/usb/core/usb.c
+++ b/drivers/usb/core/usb.c
@@ -116,8 +116,9 @@ EXPORT_SYMBOL_GPL(usb_ifnum_to_if);
116 * Don't call this function unless you are bound to the intf interface 116 * Don't call this function unless you are bound to the intf interface
117 * or you have locked the device! 117 * or you have locked the device!
118 */ 118 */
119struct usb_host_interface *usb_altnum_to_altsetting(const struct usb_interface *intf, 119struct usb_host_interface *usb_altnum_to_altsetting(
120 unsigned int altnum) 120 const struct usb_interface *intf,
121 unsigned int altnum)
121{ 122{
122 int i; 123 int i;
123 124
@@ -134,7 +135,7 @@ struct find_interface_arg {
134 struct usb_interface *interface; 135 struct usb_interface *interface;
135}; 136};
136 137
137static int __find_interface(struct device * dev, void * data) 138static int __find_interface(struct device *dev, void *data)
138{ 139{
139 struct find_interface_arg *arg = data; 140 struct find_interface_arg *arg = data;
140 struct usb_interface *intf; 141 struct usb_interface *intf;
@@ -156,7 +157,7 @@ static int __find_interface(struct device * dev, void * data)
156 * @drv: the driver whose current configuration is considered 157 * @drv: the driver whose current configuration is considered
157 * @minor: the minor number of the desired device 158 * @minor: the minor number of the desired device
158 * 159 *
159 * This walks the driver device list and returns a pointer to the interface 160 * This walks the driver device list and returns a pointer to the interface
160 * with the matching minor. Note, this only works for devices that share the 161 * with the matching minor. Note, this only works for devices that share the
161 * USB major number. 162 * USB major number.
162 */ 163 */
@@ -272,8 +273,8 @@ static unsigned usb_bus_is_wusb(struct usb_bus *bus)
272 * 273 *
273 * This call may not be used in a non-sleeping context. 274 * This call may not be used in a non-sleeping context.
274 */ 275 */
275struct usb_device * 276struct usb_device *usb_alloc_dev(struct usb_device *parent,
276usb_alloc_dev(struct usb_device *parent, struct usb_bus *bus, unsigned port1) 277 struct usb_bus *bus, unsigned port1)
277{ 278{
278 struct usb_device *dev; 279 struct usb_device *dev;
279 struct usb_hcd *usb_hcd = container_of(bus, struct usb_hcd, self); 280 struct usb_hcd *usb_hcd = container_of(bus, struct usb_hcd, self);
@@ -469,11 +470,11 @@ int usb_lock_device_for_reset(struct usb_device *udev,
469 return -EHOSTUNREACH; 470 return -EHOSTUNREACH;
470 if (iface) { 471 if (iface) {
471 switch (iface->condition) { 472 switch (iface->condition) {
472 case USB_INTERFACE_BINDING: 473 case USB_INTERFACE_BINDING:
473 return 0; 474 return 0;
474 case USB_INTERFACE_BOUND: 475 case USB_INTERFACE_BOUND:
475 break; 476 break;
476 default: 477 default:
477 return -EINTR; 478 return -EINTR;
478 } 479 }
479 } 480 }
@@ -548,10 +549,10 @@ struct usb_device *usb_find_device(u16 vendor_id, u16 product_id)
548 struct list_head *buslist; 549 struct list_head *buslist;
549 struct usb_bus *bus; 550 struct usb_bus *bus;
550 struct usb_device *dev = NULL; 551 struct usb_device *dev = NULL;
551 552
552 mutex_lock(&usb_bus_list_lock); 553 mutex_lock(&usb_bus_list_lock);
553 for (buslist = usb_bus_list.next; 554 for (buslist = usb_bus_list.next;
554 buslist != &usb_bus_list; 555 buslist != &usb_bus_list;
555 buslist = buslist->next) { 556 buslist = buslist->next) {
556 bus = container_of(buslist, struct usb_bus, bus_list); 557 bus = container_of(buslist, struct usb_bus, bus_list);
557 if (!bus->root_hub) 558 if (!bus->root_hub)
@@ -593,7 +594,7 @@ EXPORT_SYMBOL_GPL(usb_get_current_frame_number);
593 */ 594 */
594 595
595int __usb_get_extra_descriptor(char *buffer, unsigned size, 596int __usb_get_extra_descriptor(char *buffer, unsigned size,
596 unsigned char type, void **ptr) 597 unsigned char type, void **ptr)
597{ 598{
598 struct usb_descriptor_header *header; 599 struct usb_descriptor_header *header;
599 600
@@ -604,7 +605,7 @@ int __usb_get_extra_descriptor(char *buffer, unsigned size,
604 printk(KERN_ERR 605 printk(KERN_ERR
605 "%s: bogus descriptor, type %d length %d\n", 606 "%s: bogus descriptor, type %d length %d\n",
606 usbcore_name, 607 usbcore_name,
607 header->bDescriptorType, 608 header->bDescriptorType,
608 header->bLength); 609 header->bLength);
609 return -1; 610 return -1;
610 } 611 }
@@ -643,12 +644,8 @@ EXPORT_SYMBOL_GPL(__usb_get_extra_descriptor);
643 * 644 *
644 * When the buffer is no longer used, free it with usb_buffer_free(). 645 * When the buffer is no longer used, free it with usb_buffer_free().
645 */ 646 */
646void *usb_buffer_alloc( 647void *usb_buffer_alloc(struct usb_device *dev, size_t size, gfp_t mem_flags,
647 struct usb_device *dev, 648 dma_addr_t *dma)
648 size_t size,
649 gfp_t mem_flags,
650 dma_addr_t *dma
651)
652{ 649{
653 if (!dev || !dev->bus) 650 if (!dev || !dev->bus)
654 return NULL; 651 return NULL;
@@ -667,12 +664,8 @@ EXPORT_SYMBOL_GPL(usb_buffer_alloc);
667 * been allocated using usb_buffer_alloc(), and the parameters must match 664 * been allocated using usb_buffer_alloc(), and the parameters must match
668 * those provided in that allocation request. 665 * those provided in that allocation request.
669 */ 666 */
670void usb_buffer_free( 667void usb_buffer_free(struct usb_device *dev, size_t size, void *addr,
671 struct usb_device *dev, 668 dma_addr_t dma)
672 size_t size,
673 void *addr,
674 dma_addr_t dma
675)
676{ 669{
677 if (!dev || !dev->bus) 670 if (!dev || !dev->bus)
678 return; 671 return;
@@ -720,8 +713,8 @@ struct urb *usb_buffer_map(struct urb *urb)
720 urb->setup_packet, 713 urb->setup_packet,
721 sizeof(struct usb_ctrlrequest), 714 sizeof(struct usb_ctrlrequest),
722 DMA_TO_DEVICE); 715 DMA_TO_DEVICE);
723 // FIXME generic api broken like pci, can't report errors 716 /* FIXME generic api broken like pci, can't report errors */
724 // if (urb->transfer_dma == DMA_ADDR_INVALID) return 0; 717 /* if (urb->transfer_dma == DMA_ADDR_INVALID) return 0; */
725 } else 718 } else
726 urb->transfer_dma = ~0; 719 urb->transfer_dma = ~0;
727 urb->transfer_flags |= (URB_NO_TRANSFER_DMA_MAP 720 urb->transfer_flags |= (URB_NO_TRANSFER_DMA_MAP
@@ -843,7 +836,7 @@ int usb_buffer_map_sg(const struct usb_device *dev, int is_in,
843 || !controller->dma_mask) 836 || !controller->dma_mask)
844 return -1; 837 return -1;
845 838
846 // FIXME generic api broken like pci, can't report errors 839 /* FIXME generic api broken like pci, can't report errors */
847 return dma_map_sg(controller, sg, nents, 840 return dma_map_sg(controller, sg, nents,
848 is_in ? DMA_FROM_DEVICE : DMA_TO_DEVICE); 841 is_in ? DMA_FROM_DEVICE : DMA_TO_DEVICE);
849} 842}
@@ -937,7 +930,7 @@ static int __init usb_init(void)
937 if (retval) 930 if (retval)
938 goto out; 931 goto out;
939 retval = bus_register(&usb_bus_type); 932 retval = bus_register(&usb_bus_type);
940 if (retval) 933 if (retval)
941 goto bus_register_failed; 934 goto bus_register_failed;
942 retval = usb_host_init(); 935 retval = usb_host_init();
943 if (retval) 936 if (retval)