diff options
author | Zhang Wei <wei.zhang@freescale.com> | 2007-06-06 10:08:13 +0200 |
---|---|---|
committer | Markus Klotzbuecher <mk@pollux.denx.de> | 2007-06-06 10:08:13 +0200 |
commit | fdcfaa1b02268b2899e374b35adf936c911a47eb (patch) | |
tree | 7d0f9122da78789b93f1c2758c6e5e8c14867c76 | |
parent | 9a1d00fa47c1e05e3fdb60b33213af4e18d4c18e (diff) | |
download | u-boot-imx-fdcfaa1b02268b2899e374b35adf936c911a47eb.zip u-boot-imx-fdcfaa1b02268b2899e374b35adf936c911a47eb.tar.gz u-boot-imx-fdcfaa1b02268b2899e374b35adf936c911a47eb.tar.bz2 |
USB event poll support
This patch adds USB event poll support, which could be used in usbkbd
and other usb devices driver when the asynchronous interrupt
processing is supported.
Signed-off-by: Zhang Wei <wei.zhang@freescale.com
-rw-r--r-- | README | 3 | ||||
-rw-r--r-- | common/usb_kbd.c | 6 | ||||
-rw-r--r-- | include/usb.h | 1 |
3 files changed, 9 insertions, 1 deletions
@@ -901,6 +901,9 @@ The following options need to be configured: CONFIG_USB_CONFIG for differential drivers: 0x00001000 for single ended drivers: 0x00005000 + CFG_USB_EVENT_POLL + May be defined to allow interrupt polling + instead of using asynchronous interrupts - USB Device: Define the below if you wish to use the USB console. diff --git a/common/usb_kbd.c b/common/usb_kbd.c index 56c2166..aec558a 100644 --- a/common/usb_kbd.c +++ b/common/usb_kbd.c @@ -129,7 +129,11 @@ static int usb_kbd_testc(void) static int usb_kbd_getc(void) { char c; - while(usb_in_pointer==usb_out_pointer); + while(usb_in_pointer==usb_out_pointer) { +#ifdef CFG_USB_EVENT_POLL + usb_event_poll(); +#endif + } if((usb_out_pointer+1)==USB_KBD_BUFFER_LEN) usb_out_pointer=0; else diff --git a/include/usb.h b/include/usb.h index 504ccc4..4e1539f 100644 --- a/include/usb.h +++ b/include/usb.h @@ -180,6 +180,7 @@ int submit_control_msg(struct usb_device *dev, unsigned long pipe, void *buffer, int transfer_len,struct devrequest *setup); int submit_int_msg(struct usb_device *dev, unsigned long pipe, void *buffer, int transfer_len, int interval); +void usb_event_poll(void); /* Defines */ #define USB_UHCI_VEND_ID 0x8086 |