various changes demo0
authorBernhard Urban <lewurm@gmx.net>
Wed, 23 Sep 2009 16:47:10 +0000 (18:47 +0200)
committerBernhard Urban <lewurm@gmx.net>
Wed, 23 Sep 2009 16:47:10 +0000 (18:47 +0200)
main.c
usb/core/core.c
usb/core/usb.c
usb/drivers/class/hid.c
usb/drivers/class/hid.h

diff --git a/main.c b/main.c
index 430db727015172e65c3a6d1eaaa9c321c47b79b9..a058cfe93d7efd138d2fa467af90e84bdb0372c0 100644 (file)
--- a/main.c
+++ b/main.c
@@ -123,11 +123,17 @@ int main(void)
        usb_init(OHCI0_REG_BASE);
 
        /* internal ohci */
-       //usb_init(OHCI1_REG_BASE);
+       usb_init(OHCI1_REG_BASE);
 
        /* load HID keyboard driver */
        usb_hidkb_init();
 
+       /* wait for usb keyboard plugged in */
+       if(!usb_hidkb_inuse()) {
+               print_str("plug in an usb keyboard", 23);
+       }
+       while(!usb_hidkb_inuse());
+
        /* you are welcome to make this nice :) */
        char str[7];
        u16 i, j, y=20, x=20;
index 889fba452ba63d9148c88a5c4f427ba13d0d85d2..0b38e77d6c34ec6136a360041ba6d087ceee49f7 100644 (file)
@@ -123,34 +123,23 @@ struct usb_device *usb_add_device(u8 lowspeed, u32 reg)
 
 #define WTF
 #ifdef WTF
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lollllool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lololoololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lollllool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lololoololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lollllool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lololoololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lollllool PADDING WTF :O lolololololo \n");
-       printf("lolololool PADDING WTF :O lolololololo \n");
-       printf("lololololool PADDING WTF :O lolololololo \n");
-       printf("lollllool PADDING WTF :O lolololololo \n");
+       volatile u8 wzf = 11;
+       if(0 == wzf) {
+               printf("WTF WTF WTF WTF padding??? WTFWTF WTF\n");
+               printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n");
+               printf("WTF TF WTF WTF padding??? WTF WTF WTF\n");
+               printf("WTF WTF TF WTF padding??? WTF WTWTF\n");
+               printf("TF WTF WTF WTF padding??? WTF WTF WTF\n");
+               printf("WTF WTF WTF WT padding??? WTF WF WTF\n");
+               printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n");
+               printf("WTF WTF WTF WTF padding??? WT WTF WTF\n");
+               printf("WTF WTF WTF WTF pdding??? WTF WTF WTF\n");
+               printf("WTF WTF WTF WTF paddin??? WTF WTF WTF\n");
+               printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n");
+               printf("WTF WTF WTF WTF padding?? WT WTF WTF\n");
+               printf("WTF WTF WTF WTF padding??? WTF WTF WTF\n");
+               printf("WTF WTF WTF WTF padding??? WTFWTF WTF\n");
+       }
 #endif
        u8 address = usb_next_address();
        ret = usb_set_address(dev, address);
index 8b766b0d2a87df1e55ec0241c74342328852ca63..76c3e8516ff632ce1bca281a99ddbed6a81afe23 100644 (file)
@@ -303,7 +303,6 @@ s8 usb_set_address(struct usb_device *dev, u8 address)
 {
        cleargbuf();
        usb_control_msg(dev, 0x00, SET_ADDRESS, address, 0, 0, gbuf, 0);
-       hexdump((void*) gbuf, 8);
        wait_ms(210);
        return 0;
 }
index 60d3a4db118b0283b134ced18ccd086b98aa8c84..fe5a17c2fecfa5e8600a452b1cb2ac8eeb2cae3b 100644 (file)
@@ -36,6 +36,9 @@ void usb_hidkb_probe()
        
        while(iterator != NULL) {
                dev = (struct usb_device*)iterator->data;
+               if(dev == NULL) {
+                       continue;
+               }
 
                if(dev->conf->intf->bInterfaceClass == HID_CLASSCODE &&
                                dev->conf->intf->bInterfaceSubClass == 1 && /* keyboard support boot protocol? */
@@ -51,6 +54,11 @@ void usb_hidkb_check()
 {
 }
 
+u8 usb_hidkb_inuse()
+{
+       return hidkb.data ? 1 : 0;
+}
+
 struct kbrep *usb_hidkb_getChars() {
        struct usb_device *dev = (struct usb_device*) hidkb.data;
        struct kbrep *ret = (struct kbrep*) malloc(sizeof(struct kbrep));
index e8e88d9834abb1955c12721fadba4537674b7c1e..347a0db69d899662843d8e72abb68456ade737d2 100644 (file)
@@ -31,6 +31,7 @@ struct kbrep {
 void usb_hidkb_probe();
 void usb_hidkb_check();
 void usb_hidkb_init();
+u8 usb_hidkb_inuse();
 
 struct kbrep *usb_hidkb_getChars();