USB - Cleaning a little
authorJohn Hodge <[email protected]>
Wed, 8 Feb 2012 06:21:22 +0000 (14:21 +0800)
committerJohn Hodge <[email protected]>
Wed, 8 Feb 2012 06:21:22 +0000 (14:21 +0800)
KernelLand/Modules/USB/Core/include/usb_core.h
KernelLand/Modules/USB/Core/usb.c
KernelLand/Modules/USB/Core/usb_lowlevel.c
KernelLand/Modules/USB/Core/usb_poll.c

index 43af16f..d0f449f 100644 (file)
@@ -51,6 +51,8 @@ struct sUSBDriver
        } Endpoints[];
 };
 
+extern void    USB_RegisterDriver(tUSBDriver *Driver);
+
 extern void    *USB_GetDeviceDataPtr(tUSBInterface *Dev);
 extern void    USB_SetDeviceDataPtr(tUSBInterface *Dev, void *Ptr);
 
index b319580..405a508 100644 (file)
@@ -24,6 +24,12 @@ tUSBHub      *USB_RegisterHost(tUSBHostDef *HostDef, void *ControllerPtr, int nPorts)
 tUSBDriver     *gpUSB_InterfaceDrivers = &gUSBHub_Driver;
 
 // === CODE ===
+void USB_RegisterDriver(tUSBDriver *Driver)
+{
+       Driver->Next = gpUSB_InterfaceDrivers;
+       gpUSB_InterfaceDrivers = Driver;
+}
+
 tUSBHub *USB_RegisterHost(tUSBHostDef *HostDef, void *ControllerPtr, int nPorts)
 {
        tUSBHost        *host;
index 0e53bad..d8e1485 100644 (file)
@@ -10,6 +10,7 @@
 #include "usb.h"
 #include "usb_proto.h"
 #include "usb_lowlevel.h"
+#include <timers.h>
 
 // === PROTOTYPES ===
 void   *USB_int_Request(tUSBHost *Host, int Addr, int EndPt, int Type, int Req, int Val, int Indx, int Len, void *Data);
@@ -112,7 +113,7 @@ int USB_int_ReadDescriptor(tUSBDevice *Dev, int Endpoint, int Type, int Index, i
                );
 
        while( Dev->Host->HostDef->IsOpComplete(Dev->Host->Ptr, final) == 0 )
-               Time_Delay(1);
+               Threads_Yield();
 
        return 0;
 }
index b6927fe..84703f8 100644 (file)
@@ -8,6 +8,7 @@
 #define DEBUG  1
 #include <usb_core.h>
 #include "usb.h"
+#include <timers.h>
 
 #define POLL_ATOM      25      // 25ms atom
 #define POLL_MAX       256     // Max period that can be nominated

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