فهرست منبع

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
Zhang Wei 18 سال پیش
والد
کامیت
fdcfaa1b02
3فایلهای تغییر یافته به همراه9 افزوده شده و 1 حذف شده
  1. 3 0
      README
  2. 5 1
      common/usb_kbd.c
  3. 1 0
      include/usb.h

+ 3 - 0
README

@@ -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.

+ 5 - 1
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

+ 1 - 0
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