Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[pandora-kernel.git] / drivers / usb / gadget / fsl_udc_core.c
index de24a42..d786ba3 100644 (file)
@@ -559,7 +559,7 @@ static int fsl_ep_enable(struct usb_ep *_ep,
        if (!udc->driver || (udc->gadget.speed == USB_SPEED_UNKNOWN))
                return -ESHUTDOWN;
 
-       max = le16_to_cpu(desc->wMaxPacketSize);
+       max = usb_endpoint_maxp(desc);
 
        /* Disable automatic zlp generation.  Driver is responsible to indicate
         * explicitly through req->req.zero.  This is needed to enable multi-td
@@ -1715,34 +1715,31 @@ static void dtd_complete_irq(struct fsl_udc *udc)
        }
 }
 
+static inline enum usb_device_speed portscx_device_speed(u32 reg)
+{
+       switch (reg & PORTSCX_PORT_SPEED_MASK) {
+       case PORTSCX_PORT_SPEED_HIGH:
+               return USB_SPEED_HIGH;
+       case PORTSCX_PORT_SPEED_FULL:
+               return USB_SPEED_FULL;
+       case PORTSCX_PORT_SPEED_LOW:
+               return USB_SPEED_LOW;
+       default:
+               return USB_SPEED_UNKNOWN;
+       }
+}
+
 /* Process a port change interrupt */
 static void port_change_irq(struct fsl_udc *udc)
 {
-       u32 speed;
-
        if (udc->bus_reset)
                udc->bus_reset = 0;
 
        /* Bus resetting is finished */
-       if (!(fsl_readl(&dr_regs->portsc1) & PORTSCX_PORT_RESET)) {
+       if (!(fsl_readl(&dr_regs->portsc1) & PORTSCX_PORT_RESET))
                /* Get the speed */
-               speed = (fsl_readl(&dr_regs->portsc1)
-                               & PORTSCX_PORT_SPEED_MASK);
-               switch (speed) {
-               case PORTSCX_PORT_SPEED_HIGH:
-                       udc->gadget.speed = USB_SPEED_HIGH;
-                       break;
-               case PORTSCX_PORT_SPEED_FULL:
-                       udc->gadget.speed = USB_SPEED_FULL;
-                       break;
-               case PORTSCX_PORT_SPEED_LOW:
-                       udc->gadget.speed = USB_SPEED_LOW;
-                       break;
-               default:
-                       udc->gadget.speed = USB_SPEED_UNKNOWN;
-                       break;
-               }
-       }
+               udc->gadget.speed =
+                       portscx_device_speed(fsl_readl(&dr_regs->portsc1));
 
        /* Update USB state */
        if (!udc->resume_state)
@@ -2167,20 +2164,8 @@ static int fsl_proc_read(char *page, char **start, off_t off, int count,
                        default:
                                s = "None"; break;
                        }
-                       s;} ), ( {
-                       char *s;
-                       switch (tmp_reg & PORTSCX_PORT_SPEED_UNDEF) {
-                       case PORTSCX_PORT_SPEED_FULL:
-                               s = "Full Speed"; break;
-                       case PORTSCX_PORT_SPEED_LOW:
-                               s = "Low Speed"; break;
-                       case PORTSCX_PORT_SPEED_HIGH:
-                               s = "High Speed"; break;
-                       default:
-                               s = "Undefined"; break;
-                       }
-                       s;
-               } ),
+                       s;} ),
+               usb_speed_string(portscx_device_speed(tmp_reg)),
                (tmp_reg & PORTSCX_PHY_LOW_POWER_SPD) ?
                "Normal PHY mode" : "Low power mode",
                (tmp_reg & PORTSCX_PORT_RESET) ? "In Reset" :