]> git.proxmox.com Git - mirror_edk2.git/blobdiff - PcAtChipsetPkg/Library/SerialIoLib/SerialPortLib.c
PcAtChipsetPkg/SerialIoLib: Remove negative value shift
[mirror_edk2.git] / PcAtChipsetPkg / Library / SerialIoLib / SerialPortLib.c
index 8656785347b281dc58039e3c8b999b0871592e8d..0a2e20c1d932c0e816621526b5de4443e9668575 100644 (file)
@@ -1,7 +1,7 @@
 /** @file\r
   UART Serial Port library functions\r
 \r
-  Copyright (c) 2006 - 2015, Intel Corporation. All rights reserved.<BR>\r
+  Copyright (c) 2006 - 2017, Intel Corporation. All rights reserved.<BR>\r
   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
@@ -60,7 +60,7 @@ UINT8   gBreakSet = 0;
   Initialize the serial device hardware.\r
   \r
   If no initialization is required, then return RETURN_SUCCESS.\r
-  If the serial device was successfuly initialized, then return RETURN_SUCCESS.\r
+  If the serial device was successfully initialized, then return RETURN_SUCCESS.\r
   If the serial device could not be initialized, then return RETURN_DEVICE_ERROR.\r
   \r
   @retval RETURN_SUCCESS        The serial device was initialized.\r
@@ -91,19 +91,19 @@ SerialPortInitialize (
   // Set communications format\r
   //\r
   OutputData = (UINT8) ((DLAB << 7) | (gBreakSet << 6) | (gParity << 3) | (gStop << 2) | Data);\r
-  IoWrite8 ((UINTN) (gUartBase + LCR_OFFSET), OutputData);\r
+  IoWrite8 (gUartBase + LCR_OFFSET, OutputData);\r
 \r
   //\r
   // Configure baud rate\r
   //\r
-  IoWrite8 ((UINTN) (gUartBase + BAUD_HIGH_OFFSET), (UINT8) (Divisor >> 8));\r
-  IoWrite8 ((UINTN) (gUartBase + BAUD_LOW_OFFSET), (UINT8) (Divisor & 0xff));\r
+  IoWrite8 (gUartBase + BAUD_HIGH_OFFSET, (UINT8) (Divisor >> 8));\r
+  IoWrite8 (gUartBase + BAUD_LOW_OFFSET, (UINT8) (Divisor & 0xff));\r
 \r
   //\r
   // Switch back to bank 0\r
   //\r
-  OutputData = (UINT8) ((~DLAB << 7) | (gBreakSet << 6) | (gParity << 3) | (gStop << 2) | Data);\r
-  IoWrite8 ((UINTN) (gUartBase + LCR_OFFSET), OutputData);\r
+  OutputData = (UINT8) ( (gBreakSet << 6) | (gParity << 3) | (gStop << 2) | Data);\r
+  IoWrite8 (gUartBase + LCR_OFFSET, OutputData);\r
 \r
   return RETURN_SUCCESS;\r
 }\r
@@ -417,14 +417,6 @@ SerialPortSetAttributes (
     return RETURN_INVALID_PARAMETER;\r
   }\r
 \r
-  if ((*Parity < NoParity) || (*Parity > SpaceParity)) {\r
-    return RETURN_INVALID_PARAMETER;\r
-  }\r
-\r
-  if ((*StopBits < OneStopBit) || (*StopBits > TwoStopBits)) {\r
-    return RETURN_INVALID_PARAMETER;\r
-  }\r
-\r
   //\r
   // Map 5..8 to 0..3\r
   //\r
@@ -452,7 +444,7 @@ SerialPortSetAttributes (
       break;\r
 \r
     default:\r
-      break;\r
+      return RETURN_INVALID_PARAMETER;\r
   }\r
 \r
   switch (*StopBits) {\r
@@ -466,7 +458,7 @@ SerialPortSetAttributes (
       break;\r
 \r
     default:\r
-      break;\r
+      return RETURN_INVALID_PARAMETER;\r
   }\r
 \r
   //\r
@@ -478,19 +470,19 @@ SerialPortSetAttributes (
   // Set communications format\r
   //\r
   OutputData = (UINT8) ((DLAB << 7) | (gBreakSet << 6) | (LcrParity << 3) | (LcrStop << 2) | LcrData);\r
-  IoWrite8 ((UINTN) (gUartBase + LCR_OFFSET), OutputData);\r
+  IoWrite8 (gUartBase + LCR_OFFSET, OutputData);\r
 \r
   //\r
   // Configure baud rate\r
   //\r
-  IoWrite8 ((UINTN) (gUartBase + BAUD_HIGH_OFFSET), (UINT8) (Divisor >> 8));\r
-  IoWrite8 ((UINTN) (gUartBase + BAUD_LOW_OFFSET), (UINT8) (Divisor & 0xff));\r
+  IoWrite8 (gUartBase + BAUD_HIGH_OFFSET, (UINT8) (Divisor >> 8));\r
+  IoWrite8 (gUartBase + BAUD_LOW_OFFSET, (UINT8) (Divisor & 0xff));\r
 \r
   //\r
   // Switch back to bank 0\r
   //\r
-  OutputData = (UINT8) ((~DLAB << 7) | (gBreakSet << 6) | (LcrParity << 3) | (LcrStop << 2) | LcrData);\r
-  IoWrite8 ((UINTN) (gUartBase + LCR_OFFSET), OutputData);\r
+  OutputData = (UINT8) ((gBreakSet << 6) | (LcrParity << 3) | (LcrStop << 2) | LcrData);\r
+  IoWrite8 (gUartBase + LCR_OFFSET, OutputData);\r
 \r
   return RETURN_SUCCESS;\r
 }\r