]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/usb/gadget/amd5536udc.c
USB: usb dev_set_name() instead of dev->bus_id
[linux-2.6-omap-h63xx.git] / drivers / usb / gadget / amd5536udc.c
index b663f23f2642ab5a157039e98c1f92b678927ee1..1500e1b3c30289af26bdc9400c59845129aaa9d1 100644 (file)
@@ -328,6 +328,7 @@ udc_ep_enable(struct usb_ep *usbep, const struct usb_endpoint_descriptor *desc)
        u32                     tmp;
        unsigned long           iflags;
        u8 udc_csr_epix;
+       unsigned                maxpacket;
 
        if (!usbep
                        || usbep->name == ep0_string
@@ -354,9 +355,10 @@ udc_ep_enable(struct usb_ep *usbep, const struct usb_endpoint_descriptor *desc)
        writel(tmp, &dev->ep[ep->num].regs->ctl);
 
        /* set max packet size */
+       maxpacket = le16_to_cpu(desc->wMaxPacketSize);
        tmp = readl(&dev->ep[ep->num].regs->bufout_maxpkt);
-       tmp = AMD_ADDBITS(tmp, desc->wMaxPacketSize, UDC_EP_MAX_PKT_SIZE);
-       ep->ep.maxpacket = desc->wMaxPacketSize;
+       tmp = AMD_ADDBITS(tmp, maxpacket, UDC_EP_MAX_PKT_SIZE);
+       ep->ep.maxpacket = maxpacket;
        writel(tmp, &dev->ep[ep->num].regs->bufout_maxpkt);
 
        /* IN ep */
@@ -370,8 +372,8 @@ udc_ep_enable(struct usb_ep *usbep, const struct usb_endpoint_descriptor *desc)
                /* double buffering: fifo size = 2 x max packet size */
                tmp = AMD_ADDBITS(
                                tmp,
-                               desc->wMaxPacketSize * UDC_EPIN_BUFF_SIZE_MULT
-                                               / UDC_DWORD_BYTES,
+                               maxpacket * UDC_EPIN_BUFF_SIZE_MULT
+                                         / UDC_DWORD_BYTES,
                                UDC_EPIN_BUFF_SIZE);
                writel(tmp, &dev->ep[ep->num].regs->bufin_framenum);
 
@@ -390,7 +392,7 @@ udc_ep_enable(struct usb_ep *usbep, const struct usb_endpoint_descriptor *desc)
 
                /* set max packet size UDC CSR  */
                tmp = readl(&dev->csr->ne[ep->num - UDC_CSR_EP_OUT_IX_OFS]);
-               tmp = AMD_ADDBITS(tmp, desc->wMaxPacketSize,
+               tmp = AMD_ADDBITS(tmp, maxpacket,
                                        UDC_CSR_NE_MAX_PKT);
                writel(tmp, &dev->csr->ne[ep->num - UDC_CSR_EP_OUT_IX_OFS]);
 
@@ -407,7 +409,7 @@ udc_ep_enable(struct usb_ep *usbep, const struct usb_endpoint_descriptor *desc)
        /* set ep values */
        tmp = readl(&dev->csr->ne[udc_csr_epix]);
        /* max packet */
-       tmp = AMD_ADDBITS(tmp, desc->wMaxPacketSize, UDC_CSR_NE_MAX_PKT);
+       tmp = AMD_ADDBITS(tmp, maxpacket, UDC_CSR_NE_MAX_PKT);
        /* ep number */
        tmp = AMD_ADDBITS(tmp, desc->bEndpointAddress, UDC_CSR_NE_NUM);
        /* ep direction */
@@ -2832,7 +2834,7 @@ __acquires(dev->lock)
                /* make usb request for gadget driver */
                memset(&setup_data, 0 , sizeof(union udc_setup_data));
                setup_data.request.bRequest = USB_REQ_SET_CONFIGURATION;
-               setup_data.request.wValue = dev->cur_config;
+               setup_data.request.wValue = cpu_to_le16(dev->cur_config);
 
                /* programm the NE registers */
                for (i = 0; i < UDC_EP_NUM; i++) {
@@ -2881,8 +2883,8 @@ __acquires(dev->lock)
                memset(&setup_data, 0 , sizeof(union udc_setup_data));
                setup_data.request.bRequest = USB_REQ_SET_INTERFACE;
                setup_data.request.bRequestType = USB_RECIP_INTERFACE;
-               setup_data.request.wValue = dev->cur_alt;
-               setup_data.request.wIndex = dev->cur_intf;
+               setup_data.request.wValue = cpu_to_le16(dev->cur_alt);
+               setup_data.request.wIndex = cpu_to_le16(dev->cur_intf);
 
                DBG(dev, "SET_INTERFACE interrupt: alt=%d intf=%d\n",
                                dev->cur_alt, dev->cur_intf);
@@ -3248,6 +3250,8 @@ static int udc_pci_probe(
 
        /* pci setup */
        if (pci_enable_device(pdev) < 0) {
+               kfree(dev);
+               dev = NULL;
                retval = -ENODEV;
                goto finished;
        }
@@ -3259,6 +3263,8 @@ static int udc_pci_probe(
 
        if (!request_mem_region(resource, len, name)) {
                dev_dbg(&pdev->dev, "pci device used already\n");
+               kfree(dev);
+               dev = NULL;
                retval = -EBUSY;
                goto finished;
        }
@@ -3267,18 +3273,24 @@ static int udc_pci_probe(
        dev->virt_addr = ioremap_nocache(resource, len);
        if (dev->virt_addr == NULL) {
                dev_dbg(&pdev->dev, "start address cannot be mapped\n");
+               kfree(dev);
+               dev = NULL;
                retval = -EFAULT;
                goto finished;
        }
 
        if (!pdev->irq) {
                dev_err(&dev->pdev->dev, "irq not set\n");
+               kfree(dev);
+               dev = NULL;
                retval = -ENODEV;
                goto finished;
        }
 
        if (request_irq(pdev->irq, udc_irq, IRQF_SHARED, name, dev) != 0) {
                dev_dbg(&dev->pdev->dev, "request_irq(%d) fail\n", pdev->irq);
+               kfree(dev);
+               dev = NULL;
                retval = -EBUSY;
                goto finished;
        }
@@ -3330,7 +3342,7 @@ static int udc_probe(struct udc *dev)
        spin_lock_init(&dev->lock);
        dev->gadget.ops = &udc_ops;
 
-       strcpy(dev->gadget.dev.bus_id, "gadget");
+       dev_set_name(&dev->gadget.dev, "gadget");
        dev->gadget.dev.release = gadget_release;
        dev->gadget.name = name;
        dev->gadget.name = name;