MdeModulePkg: Apply uncrustify changes

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3737

Apply uncrustify changes to .c/.h files in the MdeModulePkg package

Cc: Andrew Fish <afish@apple.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
This commit is contained in:
Michael Kubacki
2021-12-05 14:54:02 -08:00
committed by mergify[bot]
parent 7c7184e201
commit 1436aea4d5
994 changed files with 107608 additions and 101311 deletions

View File

@@ -20,27 +20,31 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
**/
UART_DEVICE_PATH *
SkipControllerDevicePathNode (
EFI_DEVICE_PATH_PROTOCOL *DevicePath,
BOOLEAN *ContainsControllerNode,
UINT32 *ControllerNumber
EFI_DEVICE_PATH_PROTOCOL *DevicePath,
BOOLEAN *ContainsControllerNode,
UINT32 *ControllerNumber
)
{
if ((DevicePathType (DevicePath) == HARDWARE_DEVICE_PATH) &&
(DevicePathSubType (DevicePath) == HW_CONTROLLER_DP)
) {
)
{
if (ContainsControllerNode != NULL) {
*ContainsControllerNode = TRUE;
}
if (ControllerNumber != NULL) {
*ControllerNumber = ((CONTROLLER_DEVICE_PATH *) DevicePath)->ControllerNumber;
*ControllerNumber = ((CONTROLLER_DEVICE_PATH *)DevicePath)->ControllerNumber;
}
DevicePath = NextDevicePathNode (DevicePath);
} else {
if (ContainsControllerNode != NULL) {
*ContainsControllerNode = FALSE;
}
}
return (UART_DEVICE_PATH *) DevicePath;
return (UART_DEVICE_PATH *)DevicePath;
}
/**
@@ -65,26 +69,27 @@ SkipControllerDevicePathNode (
**/
BOOLEAN
VerifyUartParameters (
IN UINT32 ClockRate,
IN UINT64 BaudRate,
IN UINT8 DataBits,
IN EFI_PARITY_TYPE Parity,
IN EFI_STOP_BITS_TYPE StopBits,
OUT UINT64 *Divisor,
OUT UINT64 *ActualBaudRate
IN UINT32 ClockRate,
IN UINT64 BaudRate,
IN UINT8 DataBits,
IN EFI_PARITY_TYPE Parity,
IN EFI_STOP_BITS_TYPE StopBits,
OUT UINT64 *Divisor,
OUT UINT64 *ActualBaudRate
)
{
UINT64 Remainder;
UINT32 ComputedBaudRate;
UINT64 ComputedDivisor;
UINT64 Percent;
UINT64 Remainder;
UINT32 ComputedBaudRate;
UINT64 ComputedDivisor;
UINT64 Percent;
if ((DataBits < 5) || (DataBits > 8) ||
(Parity < NoParity) || (Parity > SpaceParity) ||
(StopBits < OneStopBit) || (StopBits > TwoStopBits) ||
((DataBits == 5) && (StopBits == TwoStopBits)) ||
((DataBits >= 6) && (DataBits <= 8) && (StopBits == OneFiveStopBits))
) {
)
{
return FALSE;
}
@@ -108,6 +113,7 @@ VerifyUartParameters (
if (Remainder >= LShiftU64 (BaudRate, 3)) {
ComputedDivisor++;
}
//
// If the computed divisor is larger than the maximum value that can be programmed
// into the UART, then the requested baud rate can not be supported.
@@ -128,13 +134,13 @@ VerifyUartParameters (
// Actual baud rate that the serial port will be programmed for
// should be with in 4% of requested one.
//
ComputedBaudRate = ClockRate / ((UINT16) ComputedDivisor << 4);
ComputedBaudRate = ClockRate / ((UINT16)ComputedDivisor << 4);
if (ComputedBaudRate == 0) {
return FALSE;
}
Percent = DivU64x32 (MultU64x32 (BaudRate, 100), ComputedBaudRate);
DEBUG ((DEBUG_INFO, "ClockRate = %d\n", ClockRate));
DEBUG ((DEBUG_INFO, "ClockRate = %d\n", ClockRate));
DEBUG ((DEBUG_INFO, "Divisor = %ld\n", ComputedDivisor));
DEBUG ((DEBUG_INFO, "BaudRate/Actual (%ld/%d) = %d%%\n", BaudRate, ComputedBaudRate, Percent));
@@ -147,18 +153,23 @@ VerifyUartParameters (
if (ActualBaudRate != NULL) {
*ActualBaudRate = BaudRate;
}
if (Divisor != NULL) {
*Divisor = ComputedDivisor;
}
return TRUE;
}
if (ComputedBaudRate < BaudRate) {
if (ActualBaudRate != NULL) {
*ActualBaudRate = ComputedBaudRate;
}
if (Divisor != NULL) {
*Divisor = ComputedDivisor;
}
return TRUE;
}
@@ -170,22 +181,25 @@ VerifyUartParameters (
if (ComputedDivisor == MAX_UINT16) {
return FALSE;
}
ComputedDivisor++;
ComputedBaudRate = ClockRate / ((UINT16) ComputedDivisor << 4);
ComputedBaudRate = ClockRate / ((UINT16)ComputedDivisor << 4);
if (ComputedBaudRate == 0) {
return FALSE;
}
DEBUG ((DEBUG_INFO, "ClockRate = %d\n", ClockRate));
DEBUG ((DEBUG_INFO, "ClockRate = %d\n", ClockRate));
DEBUG ((DEBUG_INFO, "Divisor = %ld\n", ComputedDivisor));
DEBUG ((DEBUG_INFO, "BaudRate/Actual (%ld/%d) = %d%%\n", BaudRate, ComputedBaudRate, Percent));
if (ActualBaudRate != NULL) {
*ActualBaudRate = ComputedBaudRate;
}
if (Divisor != NULL) {
*Divisor = ComputedDivisor;
}
return TRUE;
}
@@ -198,10 +212,10 @@ VerifyUartParameters (
**/
BOOLEAN
SerialFifoFull (
IN SERIAL_DEV_FIFO *Fifo
IN SERIAL_DEV_FIFO *Fifo
)
{
return (BOOLEAN) (((Fifo->Tail + 1) % SERIAL_MAX_FIFO_SIZE) == Fifo->Head);
return (BOOLEAN)(((Fifo->Tail + 1) % SERIAL_MAX_FIFO_SIZE) == Fifo->Head);
}
/**
@@ -213,11 +227,11 @@ SerialFifoFull (
**/
BOOLEAN
SerialFifoEmpty (
IN SERIAL_DEV_FIFO *Fifo
IN SERIAL_DEV_FIFO *Fifo
)
{
return (BOOLEAN) (Fifo->Head == Fifo->Tail);
return (BOOLEAN)(Fifo->Head == Fifo->Tail);
}
/**
@@ -231,8 +245,8 @@ SerialFifoEmpty (
**/
EFI_STATUS
SerialFifoAdd (
IN OUT SERIAL_DEV_FIFO *Fifo,
IN UINT8 Data
IN OUT SERIAL_DEV_FIFO *Fifo,
IN UINT8 Data
)
{
//
@@ -241,11 +255,12 @@ SerialFifoAdd (
if (SerialFifoFull (Fifo)) {
return EFI_OUT_OF_RESOURCES;
}
//
// FIFO is not full can add data
//
Fifo->Data[Fifo->Tail] = Data;
Fifo->Tail = (Fifo->Tail + 1) % SERIAL_MAX_FIFO_SIZE;
Fifo->Tail = (Fifo->Tail + 1) % SERIAL_MAX_FIFO_SIZE;
return EFI_SUCCESS;
}
@@ -261,8 +276,8 @@ SerialFifoAdd (
**/
EFI_STATUS
SerialFifoRemove (
IN OUT SERIAL_DEV_FIFO *Fifo,
OUT UINT8 *Data
IN OUT SERIAL_DEV_FIFO *Fifo,
OUT UINT8 *Data
)
{
//
@@ -271,10 +286,11 @@ SerialFifoRemove (
if (SerialFifoEmpty (Fifo)) {
return EFI_OUT_OF_RESOURCES;
}
//
// FIFO is not empty, can remove data
//
*Data = Fifo->Data[Fifo->Head];
*Data = Fifo->Data[Fifo->Head];
Fifo->Head = (Fifo->Head + 1) % SERIAL_MAX_FIFO_SIZE;
return EFI_SUCCESS;
}
@@ -291,16 +307,16 @@ SerialFifoRemove (
**/
EFI_STATUS
SerialReceiveTransmit (
IN SERIAL_DEV *SerialDevice
IN SERIAL_DEV *SerialDevice
)
{
SERIAL_PORT_LSR Lsr;
UINT8 Data;
BOOLEAN ReceiveFifoFull;
SERIAL_PORT_MSR Msr;
SERIAL_PORT_MCR Mcr;
UINTN TimeOut;
SERIAL_PORT_LSR Lsr;
UINT8 Data;
BOOLEAN ReceiveFifoFull;
SERIAL_PORT_MSR Msr;
SERIAL_PORT_MCR Mcr;
UINTN TimeOut;
Data = 0;
@@ -326,13 +342,15 @@ SerialReceiveTransmit (
// if receive buffer is available.
//
if (SerialDevice->HardwareFlowControl &&
!FeaturePcdGet(PcdSerialUseHalfHandshake)&&
!FeaturePcdGet (PcdSerialUseHalfHandshake) &&
!ReceiveFifoFull
) {
)
{
Mcr.Data = READ_MCR (SerialDevice);
Mcr.Bits.Rts = 1;
WRITE_MCR (SerialDevice, Mcr.Data);
}
do {
Lsr.Data = READ_LSR (SerialDevice);
@@ -342,13 +360,13 @@ SerialReceiveTransmit (
if ((Lsr.Bits.Dr == 1) && !ReceiveFifoFull) {
ReceiveFifoFull = SerialFifoFull (&SerialDevice->Receive);
if (!ReceiveFifoFull) {
if (Lsr.Bits.FIFOe == 1 || Lsr.Bits.Oe == 1 || Lsr.Bits.Pe == 1 || Lsr.Bits.Fe == 1 || Lsr.Bits.Bi == 1) {
if ((Lsr.Bits.FIFOe == 1) || (Lsr.Bits.Oe == 1) || (Lsr.Bits.Pe == 1) || (Lsr.Bits.Fe == 1) || (Lsr.Bits.Bi == 1)) {
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
EFI_ERROR_CODE,
EFI_P_EC_INPUT_ERROR | EFI_PERIPHERAL_SERIAL_PORT,
SerialDevice->DevicePath
);
if (Lsr.Bits.FIFOe == 1 || Lsr.Bits.Pe == 1|| Lsr.Bits.Fe == 1 || Lsr.Bits.Bi == 1) {
if ((Lsr.Bits.FIFOe == 1) || (Lsr.Bits.Pe == 1) || (Lsr.Bits.Fe == 1) || (Lsr.Bits.Bi == 1)) {
Data = READ_RBR (SerialDevice);
continue;
}
@@ -363,15 +381,15 @@ SerialReceiveTransmit (
// tell the peer to stop sending data.
//
if (SerialDevice->HardwareFlowControl &&
!FeaturePcdGet(PcdSerialUseHalfHandshake) &&
!FeaturePcdGet (PcdSerialUseHalfHandshake) &&
SerialFifoFull (&SerialDevice->Receive)
) {
)
{
Mcr.Data = READ_MCR (SerialDevice);
Mcr.Bits.Rts = 0;
WRITE_MCR (SerialDevice, Mcr.Data);
}
continue;
} else {
REPORT_STATUS_CODE_WITH_DEVICE_PATH (
@@ -381,10 +399,11 @@ SerialReceiveTransmit (
);
}
}
//
// Do the write
//
if (Lsr.Bits.Thre == 1 && !SerialFifoEmpty (&SerialDevice->Transmit)) {
if ((Lsr.Bits.Thre == 1) && !SerialFifoEmpty (&SerialDevice->Transmit)) {
//
// Make sure the transmit data will not be missed
//
@@ -392,17 +411,18 @@ SerialReceiveTransmit (
//
// For half handshake flow control assert RTS before sending.
//
if (FeaturePcdGet(PcdSerialUseHalfHandshake)) {
if (FeaturePcdGet (PcdSerialUseHalfHandshake)) {
Mcr.Data = READ_MCR (SerialDevice);
Mcr.Bits.Rts= 0;
Mcr.Bits.Rts = 0;
WRITE_MCR (SerialDevice, Mcr.Data);
}
//
// Wait for CTS
//
TimeOut = 0;
Msr.Data = READ_MSR (SerialDevice);
while ((Msr.Bits.Dcd == 1) && ((Msr.Bits.Cts == 0) ^ FeaturePcdGet(PcdSerialUseHalfHandshake))) {
TimeOut = 0;
Msr.Data = READ_MSR (SerialDevice);
while ((Msr.Bits.Dcd == 1) && ((Msr.Bits.Cts == 0) ^ FeaturePcdGet (PcdSerialUseHalfHandshake))) {
gBS->Stall (TIMEOUT_STALL_INTERVAL);
TimeOut++;
if (TimeOut > 5) {
@@ -412,7 +432,7 @@ SerialReceiveTransmit (
Msr.Data = READ_MSR (SerialDevice);
}
if ((Msr.Bits.Dcd == 0) || ((Msr.Bits.Cts == 1) ^ FeaturePcdGet(PcdSerialUseHalfHandshake))) {
if ((Msr.Bits.Dcd == 0) || ((Msr.Bits.Cts == 1) ^ FeaturePcdGet (PcdSerialUseHalfHandshake))) {
SerialFifoRemove (&SerialDevice->Transmit, &Data);
WRITE_THR (SerialDevice, Data);
}
@@ -420,8 +440,8 @@ SerialReceiveTransmit (
//
// For half handshake flow control, tell DCE we are done.
//
if (FeaturePcdGet(PcdSerialUseHalfHandshake)) {
Mcr.Data = READ_MCR (SerialDevice);
if (FeaturePcdGet (PcdSerialUseHalfHandshake)) {
Mcr.Data = READ_MCR (SerialDevice);
Mcr.Bits.Rts = 1;
WRITE_MCR (SerialDevice, Mcr.Data);
}
@@ -484,12 +504,13 @@ SerialFlushTransmitFifo (
// in the rest of this function that may send additional characters to this
// UART device invalidating the flush operation.
//
Elapsed = 0;
Elapsed = 0;
Lsr.Data = READ_LSR (SerialDevice);
while (Lsr.Bits.Temt == 0 || Lsr.Bits.Thre == 0) {
if (Elapsed >= Timeout) {
return EFI_TIMEOUT;
}
gBS->Stall (TIMEOUT_STALL_INTERVAL);
Elapsed += TIMEOUT_STALL_INTERVAL;
Lsr.Data = READ_LSR (SerialDevice);
@@ -501,6 +522,7 @@ SerialFlushTransmitFifo (
//
// Interface Functions
//
/**
Reset serial device.
@@ -516,14 +538,14 @@ SerialReset (
IN EFI_SERIAL_IO_PROTOCOL *This
)
{
EFI_STATUS Status;
SERIAL_DEV *SerialDevice;
SERIAL_PORT_LCR Lcr;
SERIAL_PORT_IER Ier;
SERIAL_PORT_MCR Mcr;
SERIAL_PORT_FCR Fcr;
EFI_TPL Tpl;
UINT32 Control;
EFI_STATUS Status;
SERIAL_DEV *SerialDevice;
SERIAL_PORT_LCR Lcr;
SERIAL_PORT_IER Ier;
SERIAL_PORT_MCR Mcr;
SERIAL_PORT_FCR Fcr;
EFI_TPL Tpl;
UINT32 Control;
SerialDevice = SERIAL_DEV_FROM_THIS (This);
@@ -557,17 +579,17 @@ SerialReset (
//
// Turn off all interrupts
//
Ier.Data = READ_IER (SerialDevice);
Ier.Bits.Ravie = 0;
Ier.Bits.Theie = 0;
Ier.Bits.Rie = 0;
Ier.Bits.Mie = 0;
Ier.Data = READ_IER (SerialDevice);
Ier.Bits.Ravie = 0;
Ier.Bits.Theie = 0;
Ier.Bits.Rie = 0;
Ier.Bits.Mie = 0;
WRITE_IER (SerialDevice, Ier.Data);
//
// Reset the FIFO
//
Fcr.Data = 0;
Fcr.Data = 0;
Fcr.Bits.TrFIFOE = 0;
WRITE_FCR (SerialDevice, Fcr.Data);
@@ -588,12 +610,13 @@ SerialReset (
//
// Enable FIFO
//
Fcr.Bits.TrFIFOE = 1;
Fcr.Bits.TrFIFOE = 1;
if (SerialDevice->ReceiveFifoDepth > 16) {
Fcr.Bits.TrFIFO64 = 1;
}
Fcr.Bits.ResetRF = 1;
Fcr.Bits.ResetTF = 1;
Fcr.Bits.ResetRF = 1;
Fcr.Bits.ResetTF = 1;
WRITE_FCR (SerialDevice, Fcr.Data);
//
@@ -604,15 +627,16 @@ SerialReset (
This->Mode->BaudRate,
This->Mode->ReceiveFifoDepth,
This->Mode->Timeout,
(EFI_PARITY_TYPE) This->Mode->Parity,
(UINT8) This->Mode->DataBits,
(EFI_STOP_BITS_TYPE) This->Mode->StopBits
(EFI_PARITY_TYPE)This->Mode->Parity,
(UINT8)This->Mode->DataBits,
(EFI_STOP_BITS_TYPE)This->Mode->StopBits
);
if (EFI_ERROR (Status)) {
gBS->RestoreTPL (Tpl);
return EFI_DEVICE_ERROR;
}
//
// Go set the current control bits
//
@@ -620,9 +644,11 @@ SerialReset (
if (SerialDevice->HardwareFlowControl) {
Control |= EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE;
}
if (SerialDevice->SoftwareLoopbackEnable) {
Control |= EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE;
}
Status = This->SetControl (
This,
Control
@@ -636,7 +662,7 @@ SerialReset (
//
// Reset the software FIFO
//
SerialDevice->Receive.Head = SerialDevice->Receive.Tail = 0;
SerialDevice->Receive.Head = SerialDevice->Receive.Tail = 0;
SerialDevice->Transmit.Head = SerialDevice->Transmit.Tail = 0;
gBS->RestoreTPL (Tpl);
@@ -675,12 +701,12 @@ SerialSetAttributes (
IN EFI_STOP_BITS_TYPE StopBits
)
{
EFI_STATUS Status;
SERIAL_DEV *SerialDevice;
UINT64 Divisor;
SERIAL_PORT_LCR Lcr;
UART_DEVICE_PATH *Uart;
EFI_TPL Tpl;
EFI_STATUS Status;
SERIAL_DEV *SerialDevice;
UINT64 Divisor;
SERIAL_PORT_LCR Lcr;
UART_DEVICE_PATH *Uart;
EFI_TPL Tpl;
SerialDevice = SERIAL_DEV_FROM_THIS (This);
@@ -700,7 +726,7 @@ SerialSetAttributes (
}
if (Parity == DefaultParity) {
Parity = (EFI_PARITY_TYPE) PcdGet8 (PcdUartDefaultParity);
Parity = (EFI_PARITY_TYPE)PcdGet8 (PcdUartDefaultParity);
}
if (DataBits == 0) {
@@ -708,7 +734,7 @@ SerialSetAttributes (
}
if (StopBits == DefaultStopBits) {
StopBits = (EFI_STOP_BITS_TYPE) PcdGet8 (PcdUartDefaultStopBits);
StopBits = (EFI_STOP_BITS_TYPE)PcdGet8 (PcdUartDefaultStopBits);
}
if (!VerifyUartParameters (SerialDevice->ClockRate, BaudRate, DataBits, Parity, StopBits, &Divisor, &BaudRate)) {
@@ -744,8 +770,8 @@ SerialSetAttributes (
//
// Write the divisor to the serial port
//
WRITE_DLL (SerialDevice, (UINT8) Divisor);
WRITE_DLM (SerialDevice, (UINT8) ((UINT16) Divisor >> 8));
WRITE_DLL (SerialDevice, (UINT8)Divisor);
WRITE_DLM (SerialDevice, (UINT8)((UINT16)Divisor >> 8));
//
// Put serial port back in normal mode and set remaining attributes.
@@ -753,98 +779,100 @@ SerialSetAttributes (
Lcr.Bits.DLab = 0;
switch (Parity) {
case NoParity:
Lcr.Bits.ParEn = 0;
Lcr.Bits.EvenPar = 0;
Lcr.Bits.SticPar = 0;
break;
case NoParity:
Lcr.Bits.ParEn = 0;
Lcr.Bits.EvenPar = 0;
Lcr.Bits.SticPar = 0;
break;
case EvenParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 1;
Lcr.Bits.SticPar = 0;
break;
case EvenParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 1;
Lcr.Bits.SticPar = 0;
break;
case OddParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 0;
Lcr.Bits.SticPar = 0;
break;
case OddParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 0;
Lcr.Bits.SticPar = 0;
break;
case SpaceParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 1;
Lcr.Bits.SticPar = 1;
break;
case SpaceParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 1;
Lcr.Bits.SticPar = 1;
break;
case MarkParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 0;
Lcr.Bits.SticPar = 1;
break;
case MarkParity:
Lcr.Bits.ParEn = 1;
Lcr.Bits.EvenPar = 0;
Lcr.Bits.SticPar = 1;
break;
default:
break;
default:
break;
}
switch (StopBits) {
case OneStopBit:
Lcr.Bits.StopB = 0;
break;
case OneStopBit:
Lcr.Bits.StopB = 0;
break;
case OneFiveStopBits:
case TwoStopBits:
Lcr.Bits.StopB = 1;
break;
case OneFiveStopBits:
case TwoStopBits:
Lcr.Bits.StopB = 1;
break;
default:
break;
default:
break;
}
//
// DataBits
//
Lcr.Bits.SerialDB = (UINT8) ((DataBits - 5) & 0x03);
Lcr.Bits.SerialDB = (UINT8)((DataBits - 5) & 0x03);
WRITE_LCR (SerialDevice, Lcr.Data);
//
// Set the Serial I/O mode
//
This->Mode->BaudRate = BaudRate;
This->Mode->ReceiveFifoDepth = ReceiveFifoDepth;
This->Mode->Timeout = Timeout;
This->Mode->Parity = Parity;
This->Mode->DataBits = DataBits;
This->Mode->StopBits = StopBits;
This->Mode->BaudRate = BaudRate;
This->Mode->ReceiveFifoDepth = ReceiveFifoDepth;
This->Mode->Timeout = Timeout;
This->Mode->Parity = Parity;
This->Mode->DataBits = DataBits;
This->Mode->StopBits = StopBits;
//
// See if Device Path Node has actually changed
//
if (SerialDevice->UartDevicePath.BaudRate == BaudRate &&
SerialDevice->UartDevicePath.DataBits == DataBits &&
SerialDevice->UartDevicePath.Parity == Parity &&
SerialDevice->UartDevicePath.StopBits == StopBits
) {
if ((SerialDevice->UartDevicePath.BaudRate == BaudRate) &&
(SerialDevice->UartDevicePath.DataBits == DataBits) &&
(SerialDevice->UartDevicePath.Parity == Parity) &&
(SerialDevice->UartDevicePath.StopBits == StopBits)
)
{
gBS->RestoreTPL (Tpl);
return EFI_SUCCESS;
}
//
// Update the device path
//
SerialDevice->UartDevicePath.BaudRate = BaudRate;
SerialDevice->UartDevicePath.DataBits = DataBits;
SerialDevice->UartDevicePath.Parity = (UINT8) Parity;
SerialDevice->UartDevicePath.StopBits = (UINT8) StopBits;
SerialDevice->UartDevicePath.Parity = (UINT8)Parity;
SerialDevice->UartDevicePath.StopBits = (UINT8)StopBits;
Status = EFI_SUCCESS;
if (SerialDevice->Handle != NULL) {
//
// Skip the optional Controller device path node
//
Uart = SkipControllerDevicePathNode (
(EFI_DEVICE_PATH_PROTOCOL *) (
(UINT8 *) SerialDevice->DevicePath + GetDevicePathSize (SerialDevice->ParentDevicePath) - END_DEVICE_PATH_LENGTH
),
(EFI_DEVICE_PATH_PROTOCOL *)(
(UINT8 *)SerialDevice->DevicePath + GetDevicePathSize (SerialDevice->ParentDevicePath) - END_DEVICE_PATH_LENGTH
),
NULL,
NULL
);
@@ -879,11 +907,11 @@ SerialSetControl (
IN UINT32 Control
)
{
SERIAL_DEV *SerialDevice;
SERIAL_PORT_MCR Mcr;
EFI_TPL Tpl;
UART_FLOW_CONTROL_DEVICE_PATH *FlowControl;
EFI_STATUS Status;
SERIAL_DEV *SerialDevice;
SERIAL_PORT_MCR Mcr;
EFI_TPL Tpl;
UART_FLOW_CONTROL_DEVICE_PATH *FlowControl;
EFI_STATUS Status;
//
// The control bits that can be set are :
@@ -900,7 +928,8 @@ SerialSetControl (
//
if ((Control & (~(EFI_SERIAL_REQUEST_TO_SEND | EFI_SERIAL_DATA_TERMINAL_READY |
EFI_SERIAL_HARDWARE_LOOPBACK_ENABLE | EFI_SERIAL_SOFTWARE_LOOPBACK_ENABLE |
EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE))) != 0) {
EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE))) != 0)
{
return EFI_UNSUPPORTED;
}
@@ -915,12 +944,12 @@ SerialSetControl (
//
SerialFlushTransmitFifo (SerialDevice);
Mcr.Data = READ_MCR (SerialDevice);
Mcr.Bits.DtrC = 0;
Mcr.Bits.Rts = 0;
Mcr.Bits.Lme = 0;
Mcr.Data = READ_MCR (SerialDevice);
Mcr.Bits.DtrC = 0;
Mcr.Bits.Rts = 0;
Mcr.Bits.Lme = 0;
SerialDevice->SoftwareLoopbackEnable = FALSE;
SerialDevice->HardwareFlowControl = FALSE;
SerialDevice->HardwareFlowControl = FALSE;
if ((Control & EFI_SERIAL_DATA_TERMINAL_READY) == EFI_SERIAL_DATA_TERMINAL_READY) {
Mcr.Bits.DtrC = 1;
@@ -946,14 +975,15 @@ SerialSetControl (
Status = EFI_SUCCESS;
if (SerialDevice->Handle != NULL) {
FlowControl = (UART_FLOW_CONTROL_DEVICE_PATH *) (
(UINTN) SerialDevice->DevicePath
+ GetDevicePathSize (SerialDevice->ParentDevicePath)
- END_DEVICE_PATH_LENGTH
+ sizeof (UART_DEVICE_PATH)
);
FlowControl = (UART_FLOW_CONTROL_DEVICE_PATH *)(
(UINTN)SerialDevice->DevicePath
+ GetDevicePathSize (SerialDevice->ParentDevicePath)
- END_DEVICE_PATH_LENGTH
+ sizeof (UART_DEVICE_PATH)
);
if (IsUartFlowControlDevicePathNode (FlowControl) &&
((BOOLEAN) (ReadUnaligned32 (&FlowControl->FlowControlMap) == UART_FLOW_CONTROL_HARDWARE) != SerialDevice->HardwareFlowControl)) {
((BOOLEAN)(ReadUnaligned32 (&FlowControl->FlowControlMap) == UART_FLOW_CONTROL_HARDWARE) != SerialDevice->HardwareFlowControl))
{
//
// Flow Control setting is changed, need to reinstall device path protocol
//
@@ -988,16 +1018,16 @@ SerialGetControl (
OUT UINT32 *Control
)
{
SERIAL_DEV *SerialDevice;
SERIAL_PORT_MSR Msr;
SERIAL_PORT_MCR Mcr;
EFI_TPL Tpl;
SERIAL_DEV *SerialDevice;
SERIAL_PORT_MSR Msr;
SERIAL_PORT_MCR Mcr;
EFI_TPL Tpl;
Tpl = gBS->RaiseTPL (TPL_NOTIFY);
Tpl = gBS->RaiseTPL (TPL_NOTIFY);
SerialDevice = SERIAL_DEV_FROM_THIS (This);
SerialDevice = SERIAL_DEV_FROM_THIS (This);
*Control = 0;
*Control = 0;
//
// Read the Modem Status Register
@@ -1019,6 +1049,7 @@ SerialGetControl (
if (Msr.Bits.Dcd == 1) {
*Control |= EFI_SERIAL_CARRIER_DETECT;
}
//
// Read the Modem Control Register
//
@@ -1039,6 +1070,7 @@ SerialGetControl (
if (SerialDevice->HardwareFlowControl) {
*Control |= EFI_SERIAL_HARDWARE_FLOW_CONTROL_ENABLE;
}
//
// Update FIFO status
//
@@ -1097,9 +1129,9 @@ SerialWrite (
UINTN Timeout;
UINTN BitsPerCharacter;
SerialDevice = SERIAL_DEV_FROM_THIS (This);
Elapsed = 0;
ActualWrite = 0;
SerialDevice = SERIAL_DEV_FROM_THIS (This);
Elapsed = 0;
ActualWrite = 0;
if (*BufferSize == 0) {
return EFI_SUCCESS;
@@ -1115,9 +1147,9 @@ SerialWrite (
return EFI_DEVICE_ERROR;
}
Tpl = gBS->RaiseTPL (TPL_NOTIFY);
Tpl = gBS->RaiseTPL (TPL_NOTIFY);
CharBuffer = (UINT8 *) Buffer;
CharBuffer = (UINT8 *)Buffer;
//
// Compute the number of bits in a single character. This is a start bit,
@@ -1143,10 +1175,10 @@ SerialWrite (
Timeout = MAX (
This->Mode->Timeout,
(UINTN)DivU64x64Remainder (
BitsPerCharacter * (SerialDevice->TransmitFifoDepth + 1) * 1000000,
This->Mode->BaudRate,
NULL
)
BitsPerCharacter * (SerialDevice->TransmitFifoDepth + 1) * 1000000,
This->Mode->BaudRate,
NULL
)
);
for (Index = 0; Index < *BufferSize; Index++) {
@@ -1208,8 +1240,8 @@ SerialRead (
EFI_STATUS Status;
EFI_TPL Tpl;
SerialDevice = SERIAL_DEV_FROM_THIS (This);
Elapsed = 0;
SerialDevice = SERIAL_DEV_FROM_THIS (This);
Elapsed = 0;
if (*BufferSize == 0) {
return EFI_SUCCESS;
@@ -1219,9 +1251,9 @@ SerialRead (
return EFI_DEVICE_ERROR;
}
Tpl = gBS->RaiseTPL (TPL_NOTIFY);
Tpl = gBS->RaiseTPL (TPL_NOTIFY);
Status = SerialReceiveTransmit (SerialDevice);
Status = SerialReceiveTransmit (SerialDevice);
if (EFI_ERROR (Status)) {
*BufferSize = 0;
@@ -1237,7 +1269,7 @@ SerialRead (
return EFI_DEVICE_ERROR;
}
CharBuffer = (UINT8 *) Buffer;
CharBuffer = (UINT8 *)Buffer;
for (Index = 0; Index < *BufferSize; Index++) {
while (SerialFifoRemove (&SerialDevice->Receive, &(CharBuffer[Index])) != EFI_SUCCESS) {
//
@@ -1261,6 +1293,7 @@ SerialRead (
return EFI_DEVICE_ERROR;
}
}
//
// Successful read so reset timeout
//
@@ -1283,12 +1316,12 @@ SerialRead (
**/
BOOLEAN
SerialPresent (
IN SERIAL_DEV *SerialDevice
IN SERIAL_DEV *SerialDevice
)
{
UINT8 Temp;
BOOLEAN Status;
UINT8 Temp;
BOOLEAN Status;
Status = TRUE;
@@ -1307,6 +1340,7 @@ SerialPresent (
if (READ_SCR (SerialDevice) != 0x55) {
Status = FALSE;
}
//
// Restore SCR
//
@@ -1325,23 +1359,36 @@ SerialPresent (
**/
UINT8
SerialReadRegister (
IN SERIAL_DEV *SerialDev,
IN UINT32 Offset
IN SERIAL_DEV *SerialDev,
IN UINT32 Offset
)
{
UINT8 Data;
EFI_STATUS Status;
UINT8 Data;
EFI_STATUS Status;
if (SerialDev->PciDeviceInfo == NULL) {
return IoRead8 ((UINTN) SerialDev->BaseAddress + Offset * SerialDev->RegisterStride);
return IoRead8 ((UINTN)SerialDev->BaseAddress + Offset * SerialDev->RegisterStride);
} else {
if (SerialDev->MmioAccess) {
Status = SerialDev->PciDeviceInfo->PciIo->Mem.Read (SerialDev->PciDeviceInfo->PciIo, EfiPciIoWidthUint8, EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride, 1, &Data);
Status = SerialDev->PciDeviceInfo->PciIo->Mem.Read (
SerialDev->PciDeviceInfo->PciIo,
EfiPciIoWidthUint8,
EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride,
1,
&Data
);
} else {
Status = SerialDev->PciDeviceInfo->PciIo->Io.Read (SerialDev->PciDeviceInfo->PciIo, EfiPciIoWidthUint8, EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride, 1, &Data);
Status = SerialDev->PciDeviceInfo->PciIo->Io.Read (
SerialDev->PciDeviceInfo->PciIo,
EfiPciIoWidthUint8,
EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride,
1,
&Data
);
}
ASSERT_EFI_ERROR (Status);
return Data;
}
@@ -1356,23 +1403,36 @@ SerialReadRegister (
**/
VOID
SerialWriteRegister (
IN SERIAL_DEV *SerialDev,
IN UINT32 Offset,
IN UINT8 Data
IN SERIAL_DEV *SerialDev,
IN UINT32 Offset,
IN UINT8 Data
)
{
EFI_STATUS Status;
EFI_STATUS Status;
if (SerialDev->PciDeviceInfo == NULL) {
IoWrite8 ((UINTN) SerialDev->BaseAddress + Offset * SerialDev->RegisterStride, Data);
IoWrite8 ((UINTN)SerialDev->BaseAddress + Offset * SerialDev->RegisterStride, Data);
} else {
if (SerialDev->MmioAccess) {
Status = SerialDev->PciDeviceInfo->PciIo->Mem.Write (SerialDev->PciDeviceInfo->PciIo, EfiPciIoWidthUint8, EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride, 1, &Data);
Status = SerialDev->PciDeviceInfo->PciIo->Mem.Write (
SerialDev->PciDeviceInfo->PciIo,
EfiPciIoWidthUint8,
EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride,
1,
&Data
);
} else {
Status = SerialDev->PciDeviceInfo->PciIo->Io.Write (SerialDev->PciDeviceInfo->PciIo, EfiPciIoWidthUint8, EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride, 1, &Data);
Status = SerialDev->PciDeviceInfo->PciIo->Io.Write (
SerialDev->PciDeviceInfo->PciIo,
EfiPciIoWidthUint8,
EFI_PCI_IO_PASS_THROUGH_BAR,
SerialDev->BaseAddress + Offset * SerialDev->RegisterStride,
1,
&Data
);
}
ASSERT_EFI_ERROR (Status);
}
}