X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FUSB%2FCore%2Fusb_poll.c;h=b6927fed2bb31afda01f28afcf932347cef552aa;hb=1267ed57f39ebc3e6cdd9ec8835a881a2bcde32c;hp=11afc13030363f90582d5c8a405d7ba94e94b634;hpb=8aad7ffe6c2e7e5dbb06a5baf59ca43ce1c12317;p=tpg%2Facess2.git diff --git a/Modules/USB/Core/usb_poll.c b/Modules/USB/Core/usb_poll.c index 11afc130..b6927fed 100644 --- a/Modules/USB/Core/usb_poll.c +++ b/Modules/USB/Core/usb_poll.c @@ -13,6 +13,9 @@ #define POLL_MAX 256 // Max period that can be nominated #define POLL_SLOTS ((int)(POLL_MAX/POLL_ATOM)) +// === IMPORTS === +extern tUSBHost *gUSB_Hosts; + // === PROTOTYPES === void USB_StartPollingEndpoint(tUSBInterface *Iface, int Endpoint); @@ -43,7 +46,6 @@ void USB_StartPollingEndpoint(tUSBInterface *Iface, int Endpoint) { int idx = giUSB_PollPosition + 1; if(idx >= POLL_SLOTS) idx -= POLL_SLOTS; - LOG("idx = %i", idx); endpt->Next = gUSB_PollQueues[idx]; gUSB_PollQueues[idx] = endpt; } @@ -59,6 +61,17 @@ int USB_PollThread(void *unused) { tUSBEndpoint *ep, *prev; + if(giUSB_PollPosition == 0) + { + // Check hosts + for( tUSBHost *host = gUSB_Hosts; host; host = host->Next ) + { + host->HostDef->CheckPorts(host->Ptr); + } + } + +// Log_Debug("USBPoll", "giUSB_PollPosition = %i", giUSB_PollPosition); + // A little evil for neater code prev = (void*)( (tVAddr)&gUSB_PollQueues[giUSB_PollPosition] - offsetof(tUSBEndpoint, Next) ); @@ -67,7 +80,7 @@ int USB_PollThread(void *unused) for( ep = gUSB_PollQueues[giUSB_PollPosition]; ep; prev = ep, ep = ep->Next ) { int period_in_atoms = ep->PollingAtoms; - LOG("%i: ep = %p", giUSB_PollPosition, ep); +// LOG("%i: ep = %p", giUSB_PollPosition, ep); // Check for invalid entries if(period_in_atoms < 0 || period_in_atoms > POLL_ATOM)