]> git.sur5r.net Git - u-boot/blobdiff - common/usb_kbd.c
powerpc/85xx: improve definition of BR_PHYS_ADDR macro
[u-boot] / common / usb_kbd.c
index 2472d25d4a9bc33b3f9e21724000eaaf0549c71e..19f01db1caa299f8217b778b12772fd789fc013f 100644 (file)
@@ -323,7 +323,23 @@ static int usb_kbd_irq(struct usb_device *dev)
 static inline void usb_kbd_poll_for_event(struct usb_device *dev)
 {
 #if    defined(CONFIG_SYS_USB_EVENT_POLL)
-       usb_event_poll();
+       struct usb_interface *iface;
+       struct usb_endpoint_descriptor *ep;
+       struct usb_kbd_pdata *data;
+       int pipe;
+       int maxp;
+
+       /* Get the pointer to USB Keyboard device pointer */
+       data = dev->privptr;
+       iface = &dev->config.if_desc[0];
+       ep = &iface->ep_desc[0];
+       pipe = usb_rcvintpipe(dev, ep->bEndpointAddress);
+
+       /* Submit a interrupt transfer request */
+       maxp = usb_maxpacket(dev, pipe);
+       usb_submit_int_msg(dev, pipe, &data->new[0],
+                       maxp > 8 ? 8 : maxp, ep->bInterval);
+
        usb_kbd_irq_worker(dev);
 #elif  defined(CONFIG_SYS_USB_EVENT_POLL_VIA_CONTROL_EP)
        struct usb_interface *iface;
@@ -487,6 +503,11 @@ int drv_usb_kbd_init(void)
                if (error)
                        return error;
 
+#ifdef CONFIG_CONSOLE_MUX
+               error = iomux_doenv(stdin, stdinname);
+               if (error)
+                       return error;
+#else
                /* Check if this is the standard input device. */
                if (strcmp(stdinname, DEVNAME))
                        return 1;
@@ -498,6 +519,7 @@ int drv_usb_kbd_init(void)
                error = console_assign(stdin, DEVNAME);
                if (error)
                        return error;
+#endif
 
                return 1;
        }