Skip to content

Commit

Permalink
Everything else MSCHANGEs.
Browse files Browse the repository at this point in the history
  • Loading branch information
Bret Barkelew authored and kenlautner committed Dec 16, 2023
1 parent b04b400 commit 7a38833
Show file tree
Hide file tree
Showing 49 changed files with 964 additions and 199 deletions.
2 changes: 1 addition & 1 deletion MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.c
Original file line number Diff line number Diff line change
Expand Up @@ -2628,7 +2628,7 @@ PciEnumeratorLight (
**/
EFI_STATUS
PciGetBusRange (
IN EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR **Descriptors,
IN OUT EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR **Descriptors, // MS_CHANGE added OUT macro
OUT UINT16 *MinBus,
OUT UINT16 *MaxBus,
OUT UINT16 *BusRange
Expand Down
2 changes: 1 addition & 1 deletion MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumeratorSupport.h
Original file line number Diff line number Diff line change
Expand Up @@ -409,7 +409,7 @@ PciEnumeratorLight (
**/
EFI_STATUS
PciGetBusRange (
IN EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR **Descriptors,
IN OUT EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR **Descriptors, // MS_CHANGE added OUT macro
OUT UINT16 *MinBus,
OUT UINT16 *MaxBus,
OUT UINT16 *BusRange
Expand Down
10 changes: 8 additions & 2 deletions MdeModulePkg/Bus/Pci/PciBusDxe/PciLib.c
Original file line number Diff line number Diff line change
Expand Up @@ -1100,6 +1100,7 @@ PciScanBus (
EFI_HPC_STATE State;
UINT64 PciAddress;
EFI_HPC_PADDING_ATTRIBUTES Attributes;
VOID *DescriptorsBuffer = NULL; // MS_CHANGE
EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *Descriptors;
EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *NextDescriptors;
UINT16 BusRange;
Expand Down Expand Up @@ -1257,14 +1258,15 @@ PciScanBus (
PciDevice->DevicePath,
PciAddress,
&State,
(VOID **)&Descriptors,
&DescriptorsBuffer, // MS_CHANGE
&Attributes
);

if (EFI_ERROR (Status)) {
return Status;
}

Descriptors = (EFI_ACPI_ADDRESS_SPACE_DESCRIPTOR *)DescriptorsBuffer; // MS_CHANGE
BusRange = 0;
NextDescriptors = Descriptors;
Status = PciGetBusRange (
Expand All @@ -1274,7 +1276,11 @@ PciScanBus (
&BusRange
);

FreePool (Descriptors);
// MS_CHANGE [BEGIN]
FreePool (DescriptorsBuffer);
DescriptorsBuffer = NULL;
Descriptors = NULL;
// MS_CHANGE [END]

if (!EFI_ERROR (Status)) {
BusPadding = TRUE;
Expand Down
17 changes: 14 additions & 3 deletions MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c
Original file line number Diff line number Diff line change
Expand Up @@ -1173,6 +1173,8 @@ XhcCheckUrbResult (
continue;
}

CheckedUrb->Ring->RingDequeue = TRBPtr; // MS_CHANGE_274185

switch (EvtTrb->Completecode) {
case TRB_COMPLETION_STALL_ERROR:
CheckedUrb->Result |= EFI_USB_ERR_STALL;
Expand Down Expand Up @@ -1210,9 +1212,11 @@ XhcCheckUrbResult (

case TRB_COMPLETION_SHORT_PACKET:
case TRB_COMPLETION_SUCCESS:
if (EvtTrb->Completecode == TRB_COMPLETION_SHORT_PACKET) {
DEBUG ((DEBUG_VERBOSE, "XhcCheckUrbResult: short packet happens!\n"));
}
// MS_CHANGE_161866
// if (EvtTrb->Completecode == TRB_COMPLETION_SHORT_PACKET) {
// DEBUG ((DEBUG_VERBOSE, "XhcCheckUrbResult: short packet happens!\n"));
// }
// END

TRBType = (UINT8)(TRBPtr->Type);
if ((TRBType == TRB_TYPE_DATA_STAGE) ||
Expand Down Expand Up @@ -2003,6 +2007,7 @@ XhcSyncTrsRing (

if (TrsTrb != TrsRing->RingEnqueue) {
TrsRing->RingEnqueue = TrsTrb;
ASSERT (TrsTrb != TrsRing->RingDequeue); // MS_CHANGE_274185
}

//
Expand Down Expand Up @@ -3555,6 +3560,12 @@ XhcSetTrDequeuePointer (
if (EFI_ERROR (Status)) {
DEBUG ((DEBUG_ERROR, "XhcSetTrDequeuePointer: Set TR Dequeue Pointer Failed, Status = %r\n", Status));
}
// MS_CHANGE_274185
else {
Urb->Ring->RingDequeue = Urb->Ring->RingEnqueue;
}

// END

return Status;
}
Expand Down
125 changes: 117 additions & 8 deletions MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,14 @@ UsbIoControlTransfer (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
DEBUG ((EFI_D_ERROR, "UsbIoControlTransfer No media\n"));
goto ON_EXIT;
}

// END

RequestedDataLength = DataLength;
Status = UsbHcControlTransfer (
Expand Down Expand Up @@ -264,7 +272,14 @@ UsbIoBulkTransfer (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
DEBUG ((EFI_D_ERROR, "UsbIoBulkTransfer No media\n"));
goto ON_EXIT;
}

// END
EpDesc = UsbGetEndpointDesc (UsbIf, Endpoint);

if ((EpDesc == NULL) || (USB_ENDPOINT_TYPE (&EpDesc->Desc) != USB_ENDPOINT_BULK)) {
Expand Down Expand Up @@ -357,7 +372,14 @@ UsbIoSyncInterruptTransfer (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
DEBUG ((EFI_D_ERROR, "UsbIoSyncInterruptTransfer No media\n"));
goto ON_EXIT;
}

// END
EpDesc = UsbGetEndpointDesc (UsbIf, Endpoint);

if ((EpDesc == NULL) || (USB_ENDPOINT_TYPE (&EpDesc->Desc) != USB_ENDPOINT_INTERRUPT)) {
Expand Down Expand Up @@ -433,7 +455,14 @@ UsbIoAsyncInterruptTransfer (
OldTpl = gBS->RaiseTPL (USB_BUS_TPL);
UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if ((Dev->Connected == FALSE) && (IsNewTransfer == TRUE)) {
Status = EFI_DEVICE_ERROR;
DEBUG ((EFI_D_ERROR, "UsbIoAsyncInterruptTransfer No media\n"));
goto ON_EXIT;
}

// END
EpDesc = UsbGetEndpointDesc (UsbIf, Endpoint);

if ((EpDesc == NULL) || (USB_ENDPOINT_TYPE (&EpDesc->Desc) != USB_ENDPOINT_INTERRUPT)) {
Expand Down Expand Up @@ -537,6 +566,7 @@ UsbIoGetDeviceDescriptor (
USB_DEVICE *Dev;
USB_INTERFACE *UsbIf;
EFI_TPL OldTpl;
EFI_STATUS Status; // // MS_CHANGE_166714

if (Descriptor == NULL) {
return EFI_INVALID_PARAMETER;
Expand All @@ -546,11 +576,21 @@ UsbIoGetDeviceDescriptor (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
Status = EFI_SUCCESS;

if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}

// END

CopyMem (Descriptor, &Dev->DevDesc->Desc, sizeof (EFI_USB_DEVICE_DESCRIPTOR));

ON_EXIT: // MS_CHANGE_166714
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
return Status; // MS_CHANGE_166714
}

/**
Expand Down Expand Up @@ -585,7 +625,13 @@ UsbIoGetActiveConfigDescriptor (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}

// END
if (Dev->ActiveConfig == NULL) {
Status = EFI_NOT_FOUND;
goto ON_EXIT;
Expand Down Expand Up @@ -615,8 +661,10 @@ UsbIoGetInterfaceDescriptor (
OUT EFI_USB_INTERFACE_DESCRIPTOR *Descriptor
)
{
USB_DEVICE *Dev; // MS_CHANGE_166714
USB_INTERFACE *UsbIf;
EFI_TPL OldTpl;
EFI_STATUS Status; // MS_CHANGE_166714

if (Descriptor == NULL) {
return EFI_INVALID_PARAMETER;
Expand All @@ -625,10 +673,22 @@ UsbIoGetInterfaceDescriptor (
OldTpl = gBS->RaiseTPL (USB_BUS_TPL);

UsbIf = USB_INTERFACE_FROM_USBIO (This);
// MS_CHANGE_166714
Dev = UsbIf->Device;
Status = EFI_SUCCESS;

if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}

// END

CopyMem (Descriptor, &(UsbIf->IfSetting->Desc), sizeof (EFI_USB_INTERFACE_DESCRIPTOR));

ON_EXIT: // MS_CHANGE_166714
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
return Status; // MS_CHANGE_166714
}

/**
Expand All @@ -651,21 +711,37 @@ UsbIoGetEndpointDescriptor (
OUT EFI_USB_ENDPOINT_DESCRIPTOR *Descriptor
)
{
USB_DEVICE *Dev; // MS_CHANGE_166714
USB_INTERFACE *UsbIf;
EFI_TPL OldTpl;
EFI_STATUS Status; // MS_CHANGE_166714

OldTpl = gBS->RaiseTPL (USB_BUS_TPL);

UsbIf = USB_INTERFACE_FROM_USBIO (This);
// MS_CHANGE_166714
Dev = UsbIf->Device;
Status = EFI_SUCCESS;

if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}

// END

if ((Descriptor == NULL) || (Index > 15)) {
gBS->RestoreTPL (OldTpl);
return EFI_INVALID_PARAMETER;
// MS_CHANGE_166714
Status = EFI_INVALID_PARAMETER;
goto ON_EXIT;
// END
}

if (Index >= UsbIf->IfSetting->Desc.NumEndpoints) {
gBS->RestoreTPL (OldTpl);
return EFI_NOT_FOUND;
// MS_CHANGE_166714
Status = EFI_NOT_FOUND;
goto ON_EXIT;
// END
}

CopyMem (
Expand All @@ -674,8 +750,9 @@ UsbIoGetEndpointDescriptor (
sizeof (EFI_USB_ENDPOINT_DESCRIPTOR)
);

ON_EXIT: // MS_CHANGE_166714
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
return Status; // MS_CHANGE_166714
}

/**
Expand All @@ -699,17 +776,28 @@ UsbIoGetSupportedLanguages (
USB_DEVICE *Dev;
USB_INTERFACE *UsbIf;
EFI_TPL OldTpl;
EFI_STATUS Status; // MS_CHANGE_166714

OldTpl = gBS->RaiseTPL (USB_BUS_TPL);

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
Status = EFI_SUCCESS;

if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}

// END

*LangIDTable = Dev->LangId;
*TableSize = (UINT16)(Dev->TotalLangId * sizeof (UINT16));

ON_EXIT: // MS_CHANGE_166714
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
return Status; // MS_CHANGE_166714
}

/**
Expand Down Expand Up @@ -749,6 +837,13 @@ UsbIoGetStringDescriptor (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
goto ON_EXIT;
}

// END

//
// Check whether language ID is supported
Expand Down Expand Up @@ -826,7 +921,14 @@ UsbIoPortReset (

UsbIf = USB_INTERFACE_FROM_USBIO (This);
Dev = UsbIf->Device;
// MS_CHANGE_166714
if (Dev->Connected == FALSE) {
Status = EFI_DEVICE_ERROR;
DEBUG ((EFI_D_ERROR, "UsbIoPortReset No media\n"));
goto ON_EXIT;
}

// END
if (UsbIf->IsHub) {
Status = EFI_INVALID_PARAMETER;
goto ON_EXIT;
Expand Down Expand Up @@ -877,6 +979,13 @@ UsbIoPortReset (

DEBUG ((DEBUG_INFO, "UsbIoPortReset: device is now ADDRESSED at %d\n", Dev->Address));

// MS_CHANGE_291137
//
// Endpoint descriptor state needs to be updated following a reset.
//
UsbUpdateDescriptors (Dev);
// END

//
// Reset the current active configure, after this device
// is in CONFIGURED state.
Expand Down
2 changes: 2 additions & 0 deletions MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBus.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ struct _USB_DEVICE {
USB_INTERFACE *ParentIf;
UINT8 ParentPort; // Start at 0
UINT8 Tier;
BOOLEAN Connected; // MS_CHANGE_166714
BOOLEAN DisconnectFail;
};

Expand Down Expand Up @@ -228,6 +229,7 @@ struct _USB_INTERFACE {
// connected to EHCI.
//
UINT8 MaxSpeed;
volatile UINT8 PollCount; // MS_CHANGE_168923
};

//
Expand Down
Loading

0 comments on commit 7a38833

Please sign in to comment.