]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - drivers/usb/musb/musb_hcd.c
Merge branch 'agust@denx.de-next' of git://git.denx.de/u-boot-staging
[karo-tx-uboot.git] / drivers / usb / musb / musb_hcd.c
index 8b0c61d642662609057c1a87dbf98850e0ee0888..06be38d1cf96928b043f0b92fedbc8ec4d91bb9c 100644 (file)
@@ -824,7 +824,7 @@ static int musb_submit_rh_msg(struct usb_device *dev, unsigned long pipe,
 
        dev->act_len = len;
        dev->status = stat;
-       debug("dev act_len %d, status %d\n", dev->act_len, dev->status);
+       debug("dev act_len %d, status %lu\n", dev->act_len, dev->status);
 
        return stat;
 }
@@ -848,18 +848,20 @@ int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer,
                        int len, struct devrequest *setup)
 {
        int devnum = usb_pipedevice(pipe);
-       u16 csr;
        u8  devspeed;
 
 #ifdef MUSB_NO_MULTIPOINT
        /* Control message is for the HUB? */
-       if (devnum == rh_devnum)
-               return musb_submit_rh_msg(dev, pipe, buffer, len, setup);
+       if (devnum == rh_devnum) {
+               int stat = musb_submit_rh_msg(dev, pipe, buffer, len, setup);
+               if (stat)
+                       return stat;
+       }
 #endif
 
        /* select control endpoint */
        writeb(MUSB_CONTROL_EP, &musbr->index);
-       csr = readw(&musbr->txcsr);
+       readw(&musbr->txcsr);
 
 #ifndef MUSB_NO_MULTIPOINT
        /* target addr and (for multipoint) hub addr/port */
@@ -1090,7 +1092,7 @@ int submit_bulk_msg(struct usb_device *dev, unsigned long pipe,
 /*
  * This function initializes the usb controller module.
  */
-int usb_lowlevel_init(void)
+int usb_lowlevel_init(int index, void **controller)
 {
        u8  power;
        u32 timeout;
@@ -1111,7 +1113,7 @@ int usb_lowlevel_init(void)
         * should be a usb device connected.
         */
        timeout = musb_cfg.timeout;
-       while (timeout--)
+       while (--timeout)
                if (readb(&musbr->devctl) & MUSB_DEVCTL_HM)
                        break;
 
@@ -1142,7 +1144,7 @@ int usb_lowlevel_init(void)
 /*
  * This function stops the operation of the davinci usb module.
  */
-int usb_lowlevel_stop(void)
+int usb_lowlevel_stop(int index)
 {
        /* Reset the USB module */
        musb_platform_deinit();
@@ -1263,31 +1265,3 @@ int submit_int_msg(struct usb_device *dev, unsigned long pipe,
        dev->act_len = len;
        return 0;
 }
-
-
-#ifdef CONFIG_SYS_USB_EVENT_POLL
-/*
- * This function polls for USB keyboard data.
- */
-void usb_event_poll()
-{
-       struct stdio_dev *dev;
-       struct usb_device *usb_kbd_dev;
-       struct usb_interface *iface;
-       struct usb_endpoint_descriptor *ep;
-       int pipe;
-       int maxp;
-
-       /* Get the pointer to USB Keyboard device pointer */
-       dev = stdio_get_by_name("usbkbd");
-       usb_kbd_dev = (struct usb_device *)dev->priv;
-       iface = &usb_kbd_dev->config.if_desc[0];
-       ep = &iface->ep_desc[0];
-       pipe = usb_rcvintpipe(usb_kbd_dev, ep->bEndpointAddress);
-
-       /* Submit a interrupt transfer request */
-       maxp = usb_maxpacket(usb_kbd_dev, pipe);
-       usb_submit_int_msg(usb_kbd_dev, pipe, &new[0],
-                       maxp > 8 ? 8 : maxp, ep->bInterval);
-}
-#endif /* CONFIG_SYS_USB_EVENT_POLL */