https://git.reactos.org/?p=reactos.git;a=commitdiff;h=e48d6136ec9984305a444f62968431fa5b2afe1d

commit e48d6136ec9984305a444f62968431fa5b2afe1d
Author:     Vadim Galyant <v...@rambler.ru>
AuthorDate: Mon Nov 27 18:30:58 2017 +0900
Commit:     Amine Khaldi <amine.kha...@reactos.org>
CommitDate: Sun Jan 21 19:35:38 2018 +0100

    [USBPORT] Add USBPORT_UpdateAllocatedBwTt().
---
 drivers/usb/usbport/usb2.c    | 34 ++++++++++++++++++++++++++++++++++
 drivers/usb/usbport/usbport.h |  5 +++++
 2 files changed, 39 insertions(+)

diff --git a/drivers/usb/usbport/usb2.c b/drivers/usb/usbport/usb2.c
index 1c4cd042de..2e511b5d9a 100644
--- a/drivers/usb/usbport/usb2.c
+++ b/drivers/usb/usbport/usb2.c
@@ -31,6 +31,40 @@ USB2_InitTtEndpoint(IN PUSB2_TT_ENDPOINT TtEndpoint,
     TtEndpoint->Tt = Tt;
 }
 
+VOID
+NTAPI
+USBPORT_UpdateAllocatedBwTt(IN PUSB2_TT_EXTENSION TtExtension)
+{
+    ULONG BusBandwidth;
+    ULONG NewBusBandwidth;
+    ULONG MaxBusBandwidth = 0;
+    ULONG MinBusBandwidth;
+    ULONG ix;
+
+    DPRINT("USBPORT_UpdateAllocatedBwTt: TtExtension - %p\n", TtExtension);
+
+    BusBandwidth = TtExtension->BusBandwidth;
+    MinBusBandwidth = BusBandwidth;
+
+    for (ix = 0; ix < USB2_FRAMES; ix++)
+    {
+        NewBusBandwidth = BusBandwidth - TtExtension->Bandwidth[ix];
+
+        if (NewBusBandwidth > MaxBusBandwidth)
+            MaxBusBandwidth = NewBusBandwidth;
+
+        if (NewBusBandwidth < MinBusBandwidth)
+            MinBusBandwidth = NewBusBandwidth;
+    }
+
+    TtExtension->MaxBandwidth = MaxBusBandwidth;
+
+    if (MinBusBandwidth == BusBandwidth)
+        TtExtension->MinBandwidth = 0;
+    else
+        TtExtension->MinBandwidth = MinBusBandwidth;
+}
+
 BOOLEAN
 NTAPI
 USBPORT_AllocateBandwidthUSB2(IN PDEVICE_OBJECT FdoDevice,
diff --git a/drivers/usb/usbport/usbport.h b/drivers/usb/usbport/usbport.h
index 026b297f17..85636b24bf 100644
--- a/drivers/usb/usbport/usbport.h
+++ b/drivers/usb/usbport/usbport.h
@@ -1296,6 +1296,11 @@ USBPORT_FreeBandwidthUSB2(
   IN PDEVICE_OBJECT FdoDevice,
   IN PUSBPORT_ENDPOINT Endpoint);
 
+VOID
+NTAPI
+USBPORT_UpdateAllocatedBwTt(
+  IN PUSB2_TT_EXTENSION TtExtension);
+
 VOID
 NTAPI
 USB2_InitTT(

Reply via email to