Replace Fixed PCD with Feature PCD for useHalfHandshake to reduce code size.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8862 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
@@ -65,4 +65,6 @@
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits|8
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity|1
|
||||
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultStopBits|1
|
||||
|
||||
[FeaturePcd.common]
|
||||
gEfiIntelFrameworkModulePkgTokenSpaceGuid.PcdIsaBusSerialUseHalfHandshake|FALSE
|
||||
|
@@ -83,8 +83,7 @@ SERIAL_DEV gSerialDevTempate = {
|
||||
FALSE,
|
||||
FALSE,
|
||||
Uart16550A,
|
||||
NULL,
|
||||
FixedPcdGetBool (PcdIsaBusSerialUseHalfHandshake) //UseHalfHandshake
|
||||
NULL
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -807,7 +806,7 @@ IsaSerialReceiveTransmit (
|
||||
// if receive buffer is available.
|
||||
//
|
||||
if (SerialDevice->HardwareFlowControl &&
|
||||
!SerialDevice->UseHalfHandshake &&
|
||||
!FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)&&
|
||||
!ReceiveFifoFull
|
||||
) {
|
||||
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);
|
||||
@@ -844,7 +843,7 @@ IsaSerialReceiveTransmit (
|
||||
// tell the peer to stop sending data.
|
||||
//
|
||||
if (SerialDevice->HardwareFlowControl &&
|
||||
!SerialDevice->UseHalfHandshake &&
|
||||
!FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake) &&
|
||||
IsaSerialFifoFull (&SerialDevice->Receive)
|
||||
) {
|
||||
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);
|
||||
@@ -873,7 +872,7 @@ IsaSerialReceiveTransmit (
|
||||
//
|
||||
// For half handshake flow control assert RTS before sending.
|
||||
//
|
||||
if (SerialDevice->UseHalfHandshake) {
|
||||
if (FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)) {
|
||||
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);
|
||||
Mcr.Bits.Rts= 0;
|
||||
WRITE_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Mcr.Data);
|
||||
@@ -883,7 +882,7 @@ IsaSerialReceiveTransmit (
|
||||
//
|
||||
TimeOut = 0;
|
||||
Msr.Data = READ_MSR (SerialDevice->IsaIo, SerialDevice->BaseAddress);
|
||||
while (Msr.Bits.Dcd == 1 && (!Msr.Bits.Cts ^ SerialDevice->UseHalfHandshake)) {
|
||||
while (Msr.Bits.Dcd == 1 && (!Msr.Bits.Cts ^ FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake))) {
|
||||
gBS->Stall (TIMEOUT_STALL_INTERVAL);
|
||||
TimeOut++;
|
||||
if (TimeOut > 5) {
|
||||
@@ -893,7 +892,7 @@ IsaSerialReceiveTransmit (
|
||||
Msr.Data = READ_MSR (SerialDevice->IsaIo, SerialDevice->BaseAddress);
|
||||
}
|
||||
|
||||
if (Msr.Bits.Dcd== 0 || (Msr.Bits.Cts ^ SerialDevice->UseHalfHandshake)) {
|
||||
if (Msr.Bits.Dcd== 0 || (Msr.Bits.Cts ^ FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake))) {
|
||||
IsaSerialFifoRemove (&SerialDevice->Transmit, &Data);
|
||||
WRITE_THR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Data);
|
||||
}
|
||||
@@ -901,7 +900,7 @@ IsaSerialReceiveTransmit (
|
||||
//
|
||||
// For half handshake flow control, tell DCE we are done.
|
||||
//
|
||||
if (SerialDevice->UseHalfHandshake) {
|
||||
if (FeaturePcdGet(PcdIsaBusSerialUseHalfHandshake)) {
|
||||
Mcr.Data = READ_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress);
|
||||
Mcr.Bits.Rts = 1;
|
||||
WRITE_MCR (SerialDevice->IsaIo, SerialDevice->BaseAddress, Mcr.Data);
|
||||
|
@@ -109,7 +109,6 @@ typedef struct {
|
||||
BOOLEAN HardwareFlowControl;
|
||||
EFI_UART_TYPE Type;
|
||||
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
|
||||
BOOLEAN UseHalfHandshake;
|
||||
} SERIAL_DEV;
|
||||
|
||||
#define SERIAL_DEV_FROM_THIS(a) CR (a, SERIAL_DEV, SerialIo, SERIAL_DEV_SIGNATURE)
|
||||
|
Reference in New Issue
Block a user