]> err.no Git - linux-2.6/blobdiff - drivers/usb/core/message.c
Merge branch 'master' into for-next
[linux-2.6] / drivers / usb / core / message.c
index 5b23f6b017d7de56d9d3f53bc6a1cd01a68161e9..fe47d145255ae95f248dbe6825c9abc7836e1bb8 100644 (file)
@@ -312,7 +312,7 @@ static void sg_complete(struct urb *urb)
                                    retval != -EBUSY)
                                        dev_err(&io->dev->dev,
                                                "%s, unlink --> %d\n",
-                                               __FUNCTION__, retval);
+                                               __func__, retval);
                        } else if (urb == io->urbs [i])
                                found = 1;
                }
@@ -394,7 +394,9 @@ int usb_sg_init(struct usb_sg_request *io, struct usb_device *dev,
        if (!io->urbs)
                goto nomem;
 
-       urb_flags = URB_NO_TRANSFER_DMA_MAP | URB_NO_INTERRUPT;
+       urb_flags = URB_NO_INTERRUPT;
+       if (dma)
+               urb_flags |= URB_NO_TRANSFER_DMA_MAP;
        if (usb_pipein(pipe))
                urb_flags |= URB_SHORT_NOT_OK;
 
@@ -550,7 +552,7 @@ void usb_sg_wait(struct usb_sg_request *io)
                        io->urbs[i]->dev = NULL;
                        io->urbs[i]->status = retval;
                        dev_dbg(&io->dev->dev, "%s, submit --> %d\n",
-                               __FUNCTION__, retval);
+                               __func__, retval);
                        usb_sg_cancel(io);
                }
                spin_lock_irq(&io->lock);
@@ -600,7 +602,7 @@ void usb_sg_cancel(struct usb_sg_request *io)
                        retval = usb_unlink_urb(io->urbs [i]);
                        if (retval != -EINPROGRESS && retval != -EBUSY)
                                dev_warn(&io->dev->dev, "%s, unlink --> %d\n",
-                                       __FUNCTION__, retval);
+                                       __func__, retval);
                }
                spin_lock(&io->lock);
        }
@@ -1068,7 +1070,7 @@ void usb_disable_device(struct usb_device *dev, int skip_ep0)
 {
        int i;
 
-       dev_dbg(&dev->dev, "%s nuking %s URBs\n", __FUNCTION__,
+       dev_dbg(&dev->dev, "%s nuking %s URBs\n", __func__,
                skip_ep0 ? "non-ep0" : "all");
        for (i = skip_ep0; i < 16; ++i) {
                usb_disable_endpoint(dev, i);
@@ -1605,6 +1607,7 @@ free_interfaces:
                intf->dev.driver = NULL;
                intf->dev.bus = &usb_bus_type;
                intf->dev.type = &usb_if_device_type;
+               intf->dev.groups = usb_interface_groups;
                intf->dev.dma_mask = dev->dev.dma_mask;
                device_initialize(&intf->dev);
                mark_quiesced(intf);