Modules - Little debugging fixes (and planning VESA fb cache)
authorJohn Hodge <[email protected]>
Wed, 16 May 2012 03:03:58 +0000 (11:03 +0800)
committerJohn Hodge <[email protected]>
Wed, 16 May 2012 03:03:58 +0000 (11:03 +0800)
KernelLand/Modules/Display/VESA/main.c
KernelLand/Modules/USB/Core/usb_devinit.c

index 3f2f1c9..71cd72b 100644 (file)
@@ -67,11 +67,19 @@ tTimer      *gpVesaCursorTimer;
  int   gbVesa_CursorVisible = 0;\r
 // --- 2D Video Stream Handlers ---\r
 tDrvUtil_Video_BufInfo gVesa_BufInfo;\r
+// --- Settings ---\r
+// int gbVesa_DisableFBCache;  // Disables the main-memory framebuffer cache\r
 \r
 // === CODE ===\r
 int Vesa_Install(char **Arguments)\r
 {\r
         int    rv;\r
+\r
+//     for( int i = 0; Arguments[i]; i ++ )\r
+//     {\r
+//             if( strcmp(Aguments[i], "nocache") == 0 )\r
+//                     gbVesa_DisableFBCache = 1;\r
+//     }\r
        \r
        gpVesa_BiosState = VM8086_Init();\r
        \r
index 7b1b724..fb44bb0 100644 (file)
@@ -115,6 +115,7 @@ void USB_DeviceConnected(tUSBHub *Hub, int Port)
                size_t  total_length;
        
                USB_int_ReadDescriptor(dev, 0, 2, i, sizeof(desc), &desc);
+               // TODO: Check return length? (Do we get a length?)
                #if DUMP_DESCRIPTORS
                LOG("Configuration Descriptor %i = {", i);
                LOG(" .Length = %i", desc.Length);
@@ -133,6 +134,11 @@ void USB_DeviceConnected(tUSBHub *Hub, int Port)
                }
                #endif
 
+               if( desc.NumInterfaces == 0 ) {
+                       Log_Notice("USB", "Device does not have any interfaces");
+                       continue ;
+               }
+
                // TODO: Split here and allow some method of selection
 
                // Allocate device now that we have the configuration
@@ -179,13 +185,11 @@ void USB_DeviceConnected(tUSBHub *Hub, int Port)
                        LOG(" .InterfaceClass = 0x%x", iface->InterfaceClass);
                        LOG(" .InterfaceSubClass = 0x%x", iface->InterfaceSubClass);
                        LOG(" .InterfaceProcol = 0x%x", iface->InterfaceProtocol);
-                       # if DEBUG      
                        if( iface->InterfaceStr ) {
                                char    *tmp = USB_int_GetDeviceString(dev, 0, iface->InterfaceStr);
                                LOG(" .InterfaceStr = %i '%s'", iface->InterfaceStr, tmp);
                                free(tmp);
                        }
-                       # endif
                        LOG("}");
                        #endif
 
@@ -246,11 +250,11 @@ void USB_DeviceConnected(tUSBHub *Hub, int Port)
                                        );
                        }
                        else {
+                               LOG("Driver '%s' in use", dev_if->Driver->Name);
                                dev_if->Driver->Connected(
                                        dev_if,
                                        full_buf + iface_base_ofs, ptr_ofs - iface_base_ofs
                                        );
-                       //      dev_if->Driver->Connected( dev_if );
                        }
                }
                

UCC git Repository :: git.ucc.asn.au