]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c
check the usage of %d,%x,%ld,%lx and so on in debug print statement.
[mirror_edk2.git] / MdeModulePkg / Bus / Pci / UhciDxe / UhciSched.c
index e1b602e7e2fc34f0035b5b00eb0d5ed841ec2656..0ab2af4c4c2db8f90b4f6acebacc6944cb94a0fc 100644 (file)
@@ -1,6 +1,8 @@
 /** @file\r
 \r
-Copyright (c) 2007, Intel Corporation\r
+  The EHCI register operation routines.\r
+\r
+Copyright (c) 2007 - 2008, Intel Corporation\r
 All rights reserved. This program and the accompanying materials\r
 are licensed and made available under the terms and conditions of the BSD License\r
 which accompanies this distribution.  The full text of the license may be found at\r
@@ -9,30 +11,19 @@ http://opensource.org/licenses/bsd-license.php
 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
 \r
-Module Name:\r
-\r
-  UhciSched.c\r
-\r
-Abstract:\r
-\r
-  The EHCI register operation routines.\r
-\r
-Revision History\r
-\r
-\r
 **/\r
 \r
 #include "Uhci.h"\r
 \r
 \r
 /**\r
-  Create Frame List Structure\r
+  Create Frame List Structure.\r
 \r
-  @param  Uhc                    UHCI device\r
+  @param  Uhc                    UHCI device.\r
 \r
-  @retval EFI_OUT_OF_RESOURCES   Can't allocate memory resources\r
-  @retval EFI_UNSUPPORTED        Map memory fail\r
-  @retval EFI_SUCCESS            Success\r
+  @retval EFI_OUT_OF_RESOURCES   Can't allocate memory resources.\r
+  @retval EFI_UNSUPPORTED        Map memory fail.\r
+  @retval EFI_SUCCESS            Success.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -121,11 +112,7 @@ UhciInitFrameList (
   // in supporting the full speed bandwidth reclamation in the previous\r
   // mentioned form. Most new platforms don't suffer it.\r
   //\r
-#ifdef UHCI_NO_BW_RECLAMATION\r
-  Uhc->BulkQh->QhHw.HorizonLink     = QH_HLINK (NULL, TRUE);\r
-#else\r
   Uhc->BulkQh->QhHw.HorizonLink     = QH_HLINK (Uhc->BulkQh, FALSE);\r
-#endif\r
 \r
   Uhc->BulkQh->NextQh               = NULL;\r
 \r
@@ -159,11 +146,11 @@ ON_ERROR:
 \r
 \r
 /**\r
-  Destory FrameList buffer\r
+  Destory FrameList buffer.\r
 \r
-  @param  Uhc                    The UHCI device\r
+  @param  Uhc                    The UHCI device.\r
 \r
-  @return VOID\r
+  @return None.\r
 \r
 **/\r
 VOID\r
@@ -205,11 +192,11 @@ UhciDestoryFrameList (
 \r
 /**\r
   Convert the poll rate to the maxium 2^n that is smaller\r
-  than Interval\r
+  than Interval.\r
 \r
-  @param  Interval               The poll rate to convert\r
+  @param  Interval               The poll rate to convert.\r
 \r
-  @return The converted poll rate\r
+  @return The converted poll rate.\r
 \r
 **/\r
 UINTN\r
@@ -239,10 +226,10 @@ UhciConvertPollRate (
   Link a queue head (for asynchronous interrupt transfer) to\r
   the frame list.\r
 \r
-  @param  FrameBase              The base of the frame list\r
-  @param  Qh                     The queue head to link into\r
+  @param  FrameBase              The base of the frame list.\r
+  @param  Qh                     The queue head to link into.\r
 \r
-  @return None\r
+  @return None.\r
 \r
 **/\r
 VOID\r
@@ -344,10 +331,10 @@ UhciLinkQhToFrameList (
   the precedence node, and pointer there next to QhSw's\r
   next.\r
 \r
-  @param  FrameBase              The base address of the frame list\r
-  @param  Qh                     The queue head to unlink\r
+  @param  FrameBase              The base address of the frame list.\r
+  @param  Qh                     The queue head to unlink.\r
 \r
-  @return None\r
+  @return None.\r
 \r
 **/\r
 VOID\r
@@ -402,17 +389,16 @@ UhciUnlinkQhFromFrameList (
 \r
 \r
 /**\r
-  Check TDs Results\r
+  Check TDs Results.\r
 \r
-  @param  Uhc                    This UHCI device\r
-  @param  Td                     UHCI_TD_SW to check\r
-  @param  IsLow                  Is Low Speed Device\r
-  @param  QhResult               Return the result of this TD list\r
+  @param  Uhc                    This UHCI device.\r
+  @param  Td                     UHCI_TD_SW to check.\r
+  @param  IsLow                  Is Low Speed Device.\r
+  @param  QhResult               Return the result of this TD list.\r
 \r
   @return Whether the TD's result is finialized.\r
 \r
 **/\r
-STATIC\r
 BOOLEAN\r
 UhciCheckTdStatus (\r
   IN  USB_HC_DEV          *Uhc,\r
@@ -456,23 +442,23 @@ UhciCheckTdStatus (
     // upper layer won't distinguish these condtions. So, only\r
     // set these bits when TD is actually halted.\r
     //\r
-    if (State & USBTD_STALLED) {\r
-      if (State & USBTD_BABBLE) {\r
+    if ((State & USBTD_STALLED) != 0) {\r
+      if ((State & USBTD_BABBLE) != 0) {\r
         QhResult->Result |= EFI_USB_ERR_BABBLE;\r
 \r
       } else if (TdHw->ErrorCount != 0) {\r
         QhResult->Result |= EFI_USB_ERR_STALL;\r
       }\r
 \r
-      if (State & USBTD_CRC) {\r
+      if ((State & USBTD_CRC) != 0) {\r
         QhResult->Result |= EFI_USB_ERR_CRC;\r
       }\r
 \r
-      if (State & USBTD_BUFFERR) {\r
+      if ((State & USBTD_BUFFERR) != 0) {\r
         QhResult->Result |= EFI_USB_ERR_BUFFER;\r
       }\r
 \r
-      if (Td->TdHw.Status & USBTD_BITSTUFF) {\r
+      if ((Td->TdHw.Status & USBTD_BITSTUFF) != 0) {\r
         QhResult->Result |= EFI_USB_ERR_BITSTUFF;\r
       }\r
 \r
@@ -483,7 +469,7 @@ UhciCheckTdStatus (
       Finished = TRUE;\r
       goto ON_EXIT;\r
 \r
-    } else if (State & USBTD_ACTIVE) {\r
+    } else if ((State & USBTD_ACTIVE) != 0) {\r
       //\r
       // The TD is still active, no need to check further.\r
       //\r
@@ -515,7 +501,7 @@ UhciCheckTdStatus (
       // terminate the transfer\r
       //\r
       if (!IsLow && (TdHw->ShortPacket == 1) && (Len < Td->DataLen)) {\r
-        UHCI_DEBUG (("UhciCheckTdStatus: short packet read occured\n"));\r
+        DEBUG ((EFI_D_INFO, "UhciCheckTdStatus: short packet read occured\n"));\r
 \r
         Finished = TRUE;\r
         goto ON_EXIT;\r
@@ -544,18 +530,18 @@ ON_EXIT:
 }\r
 \r
 \r
-\r
 /**\r
-  Check the result of the transfer\r
+  Check the result of the transfer.\r
 \r
-  @param  Uhc                    The UHCI device\r
-  @param  Td                     The first TDs of the transfer\r
-  @param  TimeOut                TimeOut value in milliseconds\r
-  @param  IsLow                  Is Low Speed Device\r
-  @param  QhResult               The variable to return result\r
+  @param  Uhc                    The UHCI device.\r
+  @param  Qh                     The queue head of the transfer.\r
+  @param  Td                     The first TDs of the transfer.\r
+  @param  TimeOut                TimeOut value in milliseconds.\r
+  @param  IsLow                  Is Low Speed Device.\r
+  @param  QhResult               The variable to return result.\r
 \r
-  @retval EFI_SUCCESS            The transfer finished with success\r
-  @retval EFI_DEVICE_ERROR       Transfer failed\r
+  @retval EFI_SUCCESS            The transfer finished with success.\r
+  @retval EFI_DEVICE_ERROR       Transfer failed.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -575,7 +561,7 @@ UhciExecuteTransfer (
 \r
   Finished = FALSE;\r
   Status   = EFI_SUCCESS;\r
-  Delay    = (TimeOut * STALL_1_MS / UHC_SYN_POLL) + 1;\r
+  Delay    = (TimeOut * UHC_1_MILLISECOND / UHC_SYNC_POLL_INTERVAL) + 1;\r
 \r
   for (Index = 0; Index < Delay; Index++) {\r
     Finished = UhciCheckTdStatus (Uhc, Td, IsLow, QhResult);\r
@@ -587,20 +573,20 @@ UhciExecuteTransfer (
       break;\r
     }\r
 \r
-    gBS->Stall (UHC_SYN_POLL);\r
+    gBS->Stall (UHC_SYNC_POLL_INTERVAL);\r
   }\r
 \r
   if (!Finished) {\r
-    UHCI_ERROR (("UhciExecuteTransfer: execution not finished for %dms\n", TimeOut));\r
-    UHCI_DUMP_QH  ((Qh));\r
-    UHCI_DUMP_TDS ((Td));\r
+    DEBUG ((EFI_D_ERROR, "UhciExecuteTransfer: execution not finished for %dms\n", (UINT32)TimeOut));\r
+    UhciDumpQh (Qh);\r
+    UhciDumpTds (Td);\r
 \r
     Status = EFI_TIMEOUT;\r
 \r
   } else if (QhResult->Result != EFI_USB_NOERROR) {\r
-    UHCI_ERROR (("UhciExecuteTransfer: execution failed with result %x\n", QhResult->Result));\r
-    UHCI_DUMP_QH  ((Qh));\r
-    UHCI_DUMP_TDS ((Td));\r
+    DEBUG ((EFI_D_ERROR, "UhciExecuteTransfer: execution failed with result %x\n", QhResult->Result));\r
+    UhciDumpQh (Qh);\r
+    UhciDumpTds (Td);\r
 \r
     Status = EFI_DEVICE_ERROR;\r
   }\r
@@ -610,16 +596,15 @@ UhciExecuteTransfer (
 \r
 \r
 /**\r
-  Update Async Request, QH and TDs\r
+  Update Async Request, QH and TDs.\r
 \r
-  @param  AsyncReq               The UHCI asynchronous transfer to update\r
-  @param  Result                 Transfer reslut\r
-  @param  ErrTdPos               Error TD Position\r
+  @param  AsyncReq               The UHCI asynchronous transfer to update.\r
+  @param  Result                 Transfer reslut.\r
+  @param  NextToggle             The toggle of next data.\r
 \r
-  @return VOID\r
+  @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 UhciUpdateAsyncReq (\r
   IN UHCI_ASYNC_REQUEST  *AsyncReq,\r
@@ -657,23 +642,23 @@ UhciUpdateAsyncReq (
 \r
 \r
 /**\r
-  Create Async Request node, and Link to List\r
-\r
-  @param  Uhc                    The UHCI device\r
-  @param  Qh                     The queue head of the transfer\r
-  @param  FirstTd                First TD of the transfer\r
-  @param  DevAddr                Device Address\r
-  @param  EndPoint               EndPoint Address\r
-  @param  DataLen                Data length\r
-  @param  Interval               Polling Interval when inserted to frame list\r
-  @param  Mapping                Mapping value\r
-  @param  Data                   Data buffer, unmapped\r
-  @param  Callback               Callback after interrupt transfeer\r
-  @param  Context                Callback Context passed as function parameter\r
-  @param  IsLow                  Is Low Speed\r
-\r
-  @retval EFI_SUCCESS            An asynchronous transfer is created\r
-  @retval EFI_INVALID_PARAMETER  Paremeter is error\r
+  Create Async Request node, and Link to List.\r
+\r
+  @param  Uhc                    The UHCI device.\r
+  @param  Qh                     The queue head of the transfer.\r
+  @param  FirstTd                First TD of the transfer.\r
+  @param  DevAddr                Device Address.\r
+  @param  EndPoint               EndPoint Address.\r
+  @param  DataLen                Data length.\r
+  @param  Interval               Polling Interval when inserted to frame list.\r
+  @param  Mapping                Mapping value.\r
+  @param  Data                   Data buffer, unmapped.\r
+  @param  Callback               Callback after interrupt transfeer.\r
+  @param  Context                Callback Context passed as function parameter.\r
+  @param  IsLow                  Is Low Speed.\r
+\r
+  @retval EFI_SUCCESS            An asynchronous transfer is created.\r
+  @retval EFI_INVALID_PARAMETER  Paremeter is error.\r
   @retval EFI_OUT_OF_RESOURCES   Failed because of resource shortage.\r
 \r
 **/\r
@@ -708,7 +693,7 @@ UhciCreateAsyncReq (
   AsyncReq->DevAddr     = DevAddr;\r
   AsyncReq->EndPoint    = EndPoint;\r
   AsyncReq->DataLen     = DataLen;\r
-  AsyncReq->Interval    = Interval;\r
+  AsyncReq->Interval    = UhciConvertPollRate(Interval);\r
   AsyncReq->Mapping     = Mapping;\r
   AsyncReq->Data        = Data;\r
   AsyncReq->Callback    = Callback;\r
@@ -729,17 +714,15 @@ UhciCreateAsyncReq (
 }\r
 \r
 \r
-\r
 /**\r
-  Free an asynchronous request's resource such as memory\r
+  Free an asynchronous request's resource such as memory.\r
 \r
-  @param  Uhc                    The UHCI device\r
-  @param  AsyncReq               The asynchronous request to free\r
+  @param  Uhc                    The UHCI device.\r
+  @param  AsyncReq               The asynchronous request to free.\r
 \r
-  @return None\r
+  @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 UhciFreeAsyncReq (\r
   IN USB_HC_DEV           *Uhc,\r
@@ -770,15 +753,14 @@ UhciFreeAsyncReq (
   UHC's recycle list to wait for a while before release the memory.\r
   Until then, hardware won't hold point to the request.\r
 \r
-  @param  Uhc                    The UHCI device\r
-  @param  AsyncReq               The asynchronous request to free\r
+  @param  Uhc                    The UHCI device.\r
+  @param  AsyncReq               The asynchronous request to free.\r
   @param  FreeNow                If TRUE, free the resource immediately, otherwise\r
                                  add the request to recycle wait list.\r
 \r
-  @return None\r
+  @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 UhciUnlinkAsyncReq (\r
   IN USB_HC_DEV           *Uhc,\r
@@ -806,16 +788,16 @@ UhciUnlinkAsyncReq (
 \r
 \r
 /**\r
-  Delete Async Interrupt QH and TDs\r
+  Delete Async Interrupt QH and TDs.\r
 \r
-  @param  Uhc                    The UHCI device\r
-  @param  DevAddr                Device Address\r
-  @param  EndPoint               EndPoint Address\r
-  @param  Toggle                 The next data toggle to use\r
+  @param  Uhc                    The UHCI device.\r
+  @param  DevAddr                Device Address.\r
+  @param  EndPoint               EndPoint Address.\r
+  @param  Toggle                 The next data toggle to use.\r
 \r
-  @retval EFI_SUCCESS            The request is deleted\r
-  @retval EFI_INVALID_PARAMETER  Paremeter is error\r
-  @retval EFI_NOT_FOUND          The asynchronous isn't found\r
+  @retval EFI_SUCCESS            The request is deleted.\r
+  @retval EFI_INVALID_PARAMETER  Paremeter is error.\r
+  @retval EFI_NOT_FOUND          The asynchronous isn't found.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -890,12 +872,11 @@ UhciRemoveAsyncReq (
   existing for at least 50ms, far enough for the hardware\r
   to clear its cache.\r
 \r
-  @param  Uhc                    The UHCI device\r
+  @param  Uhc                    The UHCI device.\r
 \r
-  @return None\r
+  @return None.\r
 \r
 **/\r
-STATIC\r
 VOID\r
 UhciRecycleAsyncReq (\r
   IN USB_HC_DEV           *Uhc\r
@@ -921,9 +902,9 @@ UhciRecycleAsyncReq (
 /**\r
   Release all the asynchronous transfers on the lsit.\r
 \r
-  @param  Uhc                    The UHCI device\r
+  @param  Uhc                    The UHCI device.\r
 \r
-  @return VOID\r
+  @return None.\r
 \r
 **/\r
 VOID\r
@@ -956,12 +937,12 @@ UhciFreeAllAsyncReq (
 \r
 \r
 /**\r
-  Interrupt transfer periodic check handler\r
+  Interrupt transfer periodic check handler.\r
 \r
-  @param  Event                  The event of the time\r
-  @param  Context                Context of the event, pointer to USB_HC_DEV\r
+  @param  Event                  The event of the time.\r
+  @param  Context                Context of the event, pointer to USB_HC_DEV.\r
 \r
-  @return VOID\r
+  @return None.\r
 \r
 **/\r
 VOID\r