Re: [U-Boot] [PATCH] USB: move keyboard polling from EHCI driver into kbd driver

2011-12-17 Thread Remy Bohmer
Hi,

2011/12/16 Allen Martin amar...@nvidia.com:
 This removes dependency on global variable new from EHCI driver with
 CONFIG_SYS_USB_EVENT_POLL turned on and gets USB keyboard working with
 EHCI driver again.

 Signed-off-by: Allen Martin amar...@nvidia.com
 ---
  common/usb_kbd.c            |   18 +-
  drivers/usb/host/ehci-hcd.c |   30 --
  2 files changed, 17 insertions(+), 31 deletions(-)

 diff --git a/common/usb_kbd.c b/common/usb_kbd.c
 index 75107c9..e94bb7e 100644
 --- a/common/usb_kbd.c
 +++ b/common/usb_kbd.c
 @@ -313,7 +313,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;
 diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
 index db10316..94a5eed 100644
 --- a/drivers/usb/host/ehci-hcd.c
 +++ b/drivers/usb/host/ehci-hcd.c
 @@ -26,10 +26,6 @@
  #include asm/io.h
  #include malloc.h
  #include watchdog.h
 -#ifdef CONFIG_USB_KEYBOARD
 -#include stdio_dev.h
 -extern unsigned char new[];
 -#endif

  #include ehci.h

 @@ -946,29 +942,3 @@ submit_int_msg(struct usb_device *dev, unsigned long 
 pipe, void *buffer,
        return ehci_submit_async(dev, pipe, buffer, length, NULL);
  }

 -#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 */

The usb_event_poll() is implemented in more drivers. This is not only
limited to the EHCI driver.
Please update the other drivers as well.

drivers/usb/musb/musb_hcd.c:1274:void usb_event_poll()
drivers/usb/host/r8a66597-hcd.c:911:void usb_event_poll(void)
drivers/usb/host/ohci-hcd.c:1775:void usb_event_poll(void)
include/usb.h:152:void usb_event_poll(void);

Kind regards,

Remy
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] USB: move keyboard polling from EHCI driver into kbd driver

2011-12-16 Thread Allen Martin
This removes dependency on global variable new from EHCI driver with
CONFIG_SYS_USB_EVENT_POLL turned on and gets USB keyboard working with
EHCI driver again.

Signed-off-by: Allen Martin amar...@nvidia.com
---
 common/usb_kbd.c|   18 +-
 drivers/usb/host/ehci-hcd.c |   30 --
 2 files changed, 17 insertions(+), 31 deletions(-)

diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 75107c9..e94bb7e 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -313,7 +313,23 @@ static int usb_kbd_irq(struct usb_device *dev)
 static inline void usb_kbd_poll_for_event(struct usb_device *dev)
 {
 #ifdefined(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;
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index db10316..94a5eed 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -26,10 +26,6 @@
 #include asm/io.h
 #include malloc.h
 #include watchdog.h
-#ifdef CONFIG_USB_KEYBOARD
-#include stdio_dev.h
-extern unsigned char new[];
-#endif
 
 #include ehci.h
 
@@ -946,29 +942,3 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, 
void *buffer,
return ehci_submit_async(dev, pipe, buffer, length, NULL);
 }
 
-#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 */
-- 
1.7.5.4

___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [PATCH] USB: move keyboard polling from EHCI driver into kbd driver

2011-12-15 Thread amartin
From: Allen Martin amar...@nvidia.com

This removes dependency on global variable new from EHCI driver with
CONFIG_SYS_USB_EVENT_POLL turned on and gets USB keyboard working with
EHCI driver again.

Signed-off-by: Allen Martin amar...@nvidia.com
---
 common/usb_kbd.c|   18 +-
 drivers/usb/host/ehci-hcd.c |   30 --
 2 files changed, 17 insertions(+), 31 deletions(-)

diff --git a/common/usb_kbd.c b/common/usb_kbd.c
index 75107c9..e94bb7e 100644
--- a/common/usb_kbd.c
+++ b/common/usb_kbd.c
@@ -313,7 +313,23 @@ static int usb_kbd_irq(struct usb_device *dev)
 static inline void usb_kbd_poll_for_event(struct usb_device *dev)
 {
 #ifdefined(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;
diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
index db10316..94a5eed 100644
--- a/drivers/usb/host/ehci-hcd.c
+++ b/drivers/usb/host/ehci-hcd.c
@@ -26,10 +26,6 @@
 #include asm/io.h
 #include malloc.h
 #include watchdog.h
-#ifdef CONFIG_USB_KEYBOARD
-#include stdio_dev.h
-extern unsigned char new[];
-#endif
 
 #include ehci.h
 
@@ -946,29 +942,3 @@ submit_int_msg(struct usb_device *dev, unsigned long pipe, 
void *buffer,
return ehci_submit_async(dev, pipe, buffer, length, NULL);
 }
 
-#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 */
-- 
1.7.5.4


---
This email message is for the sole use of the intended recipient(s) and may 
contain
confidential information.  Any unauthorized review, use, disclosure or 
distribution
is prohibited.  If you are not the intended recipient, please contact the 
sender by
reply email and destroy all copies of the original message.
---
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot