[USBPORT] Check Period instead Factor.
[reactos.git] / drivers / usb / usbport / endpoint.c
index 23bccb1..2e9881b 100644 (file)
@@ -96,25 +96,23 @@ USBPORT_AllocateBandwidth(IN PDEVICE_OBJECT FdoDevice,
 
     TotalBusBandwidth = FdoExtension->TotalBusBandwidth;
     EndpointBandwidth = EndpointProperties->UsbBandwidth;
+
     Period = EndpointProperties->Period;
+    ASSERT(Period != 0);
     Factor = USB2_FRAMES / Period;
-    ASSERT(Factor);
 
     for (Offset = 0; Offset < Period; Offset++)
     {
         MinBandwidth = TotalBusBandwidth;
         Bandwidth = &FdoExtension->Bandwidth[Offset * Factor];
 
-        for (ix = 0; *Bandwidth >= EndpointBandwidth; ix++)
+        for (ix = 1; *Bandwidth >= EndpointBandwidth; ix++)
         {
-            if (MinBandwidth > *Bandwidth)
-            {
-                MinBandwidth = *Bandwidth;
-            }
+            MinBandwidth = min(MinBandwidth, *Bandwidth); 
 
             Bandwidth++;
 
-            if (Factor <= (ix + 1))
+            if (Factor <= ix)
             {
                 if (MinBandwidth > MaxBandwidth)
                 {
@@ -154,11 +152,11 @@ USBPORT_AllocateBandwidth(IN PDEVICE_OBJECT FdoDevice,
                 }
             }
 
-            DPRINT("USBPORT_AllocateBandwidth: FIXME AllocedInterrupt_XXms\n");
+            DPRINT("USBPORT_AllocateBandwidth: FIXME AllocatedInterrupt_XXms\n");
         }
         else
         {
-            DPRINT("USBPORT_AllocateBandwidth: FIXME AllocedIso\n");
+            DPRINT("USBPORT_AllocateBandwidth: FIXME AllocatedIso\n");
         }
     }
 
@@ -200,9 +198,9 @@ USBPORT_FreeBandwidth(IN PDEVICE_OBJECT FdoDevice,
 
     Offset = Endpoint->EndpointProperties.ScheduleOffset;
     EndpointBandwidth = Endpoint->EndpointProperties.UsbBandwidth;
-    Period = Endpoint->EndpointProperties.Period;
 
-    ASSERT(USB2_FRAMES / Period);
+    Period = Endpoint->EndpointProperties.Period;
+    ASSERT(Period != 0);
 
     for (Factor = USB2_FRAMES / Period; Factor; Factor--)
     {
@@ -222,11 +220,11 @@ USBPORT_FreeBandwidth(IN PDEVICE_OBJECT FdoDevice,
 
         ASSERT(Period != 0);
 
-        DPRINT("USBPORT_AllocateBandwidth: FIXME AllocedInterrupt_XXms\n");
+        DPRINT("USBPORT_AllocateBandwidth: FIXME AllocatedInterrupt_XXms\n");
     }
     else
     {
-        DPRINT("USBPORT_AllocateBandwidth: FIXME AllocedIso\n");
+        DPRINT("USBPORT_AllocateBandwidth: FIXME AllocatedIso\n");
     }
 
     DPRINT1("USBPORT_FreeBandwidth: FIXME USBPORT_UpdateAllocatedBw\n");
@@ -504,7 +502,7 @@ USBPORT_DeleteEndpoint(IN PDEVICE_OBJECT FdoDevice,
     BOOLEAN Result;
     KIRQL OldIrql;
 
-    DPRINT("USBPORT_DeleteEndpoint: Endpoint - %p\n", Endpoint);
+    DPRINT1("USBPORT_DeleteEndpoint: Endpoint - %p\n", Endpoint);
 
     FdoExtension = FdoDevice->DeviceExtension;
 
@@ -602,7 +600,7 @@ USBPORT_ClosePipe(IN PUSBPORT_DEVICE_HANDLE DeviceHandle,
     BOOLEAN IsReady;
     KIRQL OldIrql;
 
-    DPRINT("USBPORT_ClosePipe \n");
+    DPRINT1("USBPORT_ClosePipe \n");
 
     FdoExtension = FdoDevice->DeviceExtension;
 
@@ -679,6 +677,7 @@ USBPORT_ClosePipe(IN PUSBPORT_DEVICE_HANDLE DeviceHandle,
         KeAcquireSpinLock(&FdoExtension->TtSpinLock, &OldIrql);
 
         TtExtension = Endpoint->TtExtension;
+        DPRINT1("USBPORT_ClosePipe: TtExtension - %p\n", TtExtension);
 
         if (TtExtension)
         {
@@ -698,7 +697,8 @@ USBPORT_ClosePipe(IN PUSBPORT_DEVICE_HANDLE DeviceHandle,
                         FdoExtension->Bandwidth[ix] += TtExtension->MaxBandwidth;
                     }
 
-                    ExFreePool(TtExtension);
+                    DPRINT1("USBPORT_ClosePipe: ExFreePoolWithTag TtExtension - %p\n", TtExtension);
+                    ExFreePoolWithTag(TtExtension, USB_PORT_TAG);
                 }
             }
         }
@@ -785,7 +785,7 @@ USBPORT_OpenPipe(IN PDEVICE_OBJECT FdoDevice,
     USHORT AdditionalTransaction;
     BOOLEAN IsAllocatedBandwidth;
 
-    DPRINT("USBPORT_OpenPipe: DeviceHandle - %p, FdoDevice - %p, PipeHandle - %p\n",
+    DPRINT1("USBPORT_OpenPipe: DeviceHandle - %p, FdoDevice - %p, PipeHandle - %p\n",
            DeviceHandle,
            FdoDevice,
            PipeHandle);
@@ -1172,7 +1172,7 @@ USBPORT_ReopenPipe(IN PDEVICE_OBJECT FdoDevice,
     KIRQL MiniportOldIrql;
     NTSTATUS Status;
 
-    DPRINT("USBPORT_ReopenPipe ... \n");
+    DPRINT1("USBPORT_ReopenPipe ... \n");
 
     FdoExtension = FdoDevice->DeviceExtension;
     Packet = &FdoExtension->MiniPortInterface->Packet;