Status = EFI_SUCCESS;
} else if (*TransferResult == EFI_USB_ERR_STALL) {
RecoveryStatus = XhcRecoverHaltedEndpoint(Xhc, Urb);
- ASSERT_EFI_ERROR (RecoveryStatus);
+ if (EFI_ERROR (RecoveryStatus)) {
+ DEBUG ((EFI_D_ERROR, "XhcControlTransfer: XhcRecoverHaltedEndpoint failed\n"));
+ }
Status = EFI_DEVICE_ERROR;
goto FREE_URB;
} else {
} else {
Status = XhcEvaluateContext64 (Xhc, SlotId, MaxPacket0);
}
- ASSERT_EFI_ERROR (Status);
} else if (DescriptorType == USB_DESC_TYPE_CONFIG) {
ASSERT (Data != NULL);
if (*DataLength == ((UINT16 *)Data)[1]) {
} else {
Status = XhcConfigHubContext64 (Xhc, SlotId, HubDesc->NumPorts, TTT, MTT);
}
- ASSERT_EFI_ERROR (Status);
}
} else if ((Request->Request == USB_REQ_SET_CONFIG) &&
(Request->RequestType == USB_REQUEST_TYPE (EfiUsbNoData, USB_REQ_TYPE_STANDARD, USB_TARGET_DEVICE))) {
} else {
Status = XhcSetConfigCmd64 (Xhc, SlotId, DeviceSpeed, Xhc->UsbDevContext[SlotId].ConfDesc[Index]);
}
- ASSERT_EFI_ERROR (Status);
break;
}
}
Status = EFI_SUCCESS;
} else if (*TransferResult == EFI_USB_ERR_STALL) {
RecoveryStatus = XhcRecoverHaltedEndpoint(Xhc, Urb);
- ASSERT_EFI_ERROR (RecoveryStatus);
+ if (EFI_ERROR (RecoveryStatus)) {
+ DEBUG ((EFI_D_ERROR, "XhcBulkTransfer: XhcRecoverHaltedEndpoint failed\n"));
+ }
Status = EFI_DEVICE_ERROR;
}
Status = EFI_SUCCESS;
} else if (*TransferResult == EFI_USB_ERR_STALL) {
RecoveryStatus = XhcRecoverHaltedEndpoint(Xhc, Urb);
- ASSERT_EFI_ERROR (RecoveryStatus);
+ if (EFI_ERROR (RecoveryStatus)) {
+ DEBUG ((EFI_D_ERROR, "XhcSyncInterruptTransfer: XhcRecoverHaltedEndpoint failed\n"));
+ }
Status = EFI_DEVICE_ERROR;
}
\r
Status = XhcCreateTransferTrb (Xhc, Urb);\r
ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcCreateUrb: XhcCreateTransferTrb Failed, Status = %r\n", Status));\r
+ FreePool (Urb);\r
+ Urb = NULL;\r
+ }\r
\r
return Urb;\r
}\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
+ if (EFI_ERROR(Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcRecoverHaltedEndpoint: Reset Endpoint Failed, Status = %r\n", Status));\r
+ goto Done;\r
+ }\r
\r
//\r
// 2)Set dequeue pointer\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
+ if (EFI_ERROR(Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcRecoverHaltedEndpoint: Set Dequeue Pointer Failed, Status = %r\n", Status));\r
+ goto Done;\r
+ }\r
\r
//\r
// 3)Ring the doorbell to transit from stop to active\r
//\r
XhcRingDoorBell (Xhc, SlotId, Dci);\r
\r
+Done:\r
return Status;\r
}\r
\r
} else {\r
Status = XhcInitializeDeviceSlot64 (Xhc, ParentRouteChart, Port, RouteChart, Speed);\r
}\r
- ASSERT_EFI_ERROR (Status);\r
}\r
} else if ((PortState->PortStatus & USB_PORT_STAT_CONNECTION) == 0) {\r
//\r
} else {\r
Status = XhcDisableSlotCmd64 (Xhc, SlotId);\r
}\r
- ASSERT_EFI_ERROR (Status);\r
}\r
}\r
return Status;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcInitializeDeviceSlot: Enable Slot Failed, Status = %r\n", Status));\r
+ return Status;\r
+ }\r
ASSERT (EvtTrb->SlotId <= Xhc->MaxSlotsEn);\r
DEBUG ((EFI_D_INFO, "Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId));\r
SlotId = (UINT8)EvtTrb->SlotId;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
-\r
- DeviceAddress = (UINT8) ((DEVICE_CONTEXT *) OutputContext)->Slot.DeviceAddress;\r
- DEBUG ((EFI_D_INFO, " Address %d assigned successfully\n", DeviceAddress));\r
-\r
- Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress;\r
+ if (!EFI_ERROR (Status)) {\r
+ DeviceAddress = (UINT8) ((DEVICE_CONTEXT *) OutputContext)->Slot.DeviceAddress;\r
+ DEBUG ((EFI_D_INFO, " Address %d assigned successfully\n", DeviceAddress));\r
+ Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress;\r
+ }\r
\r
return Status;\r
}\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT_EFI_ERROR (Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcInitializeDeviceSlot64: Enable Slot Failed, Status = %r\n", Status));\r
+ return Status;\r
+ }\r
ASSERT (EvtTrb->SlotId <= Xhc->MaxSlotsEn);\r
DEBUG ((EFI_D_INFO, "Enable Slot Successfully, The Slot ID = 0x%x\n", EvtTrb->SlotId));\r
SlotId = (UINT8)EvtTrb->SlotId;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
-\r
- DeviceAddress = (UINT8) ((DEVICE_CONTEXT_64 *) OutputContext)->Slot.DeviceAddress;\r
- DEBUG ((EFI_D_INFO, " Address %d assigned successfully\n", DeviceAddress));\r
-\r
- Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress;\r
-\r
+ if (!EFI_ERROR (Status)) {\r
+ DeviceAddress = (UINT8) ((DEVICE_CONTEXT_64 *) OutputContext)->Slot.DeviceAddress;\r
+ DEBUG ((EFI_D_INFO, " Address %d assigned successfully\n", DeviceAddress));\r
+ Xhc->UsbDevContext[SlotId].XhciDevAddr = DeviceAddress;\r
+ }\r
return Status;\r
}\r
\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT_EFI_ERROR(Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status));\r
+ return Status;\r
+ }\r
//\r
// Free the slot's device context entry\r
//\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT_EFI_ERROR(Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcDisableSlotCmd: Disable Slot Command Failed, Status = %r\n", Status));\r
+ return Status;\r
+ }\r
//\r
// Free the slot's device context entry\r
//\r
)\r
{\r
EFI_STATUS Status;\r
-\r
USB_INTERFACE_DESCRIPTOR *IfDesc;\r
USB_ENDPOINT_DESCRIPTOR *EpDesc;\r
UINT8 Index;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT_EFI_ERROR(Status);\r
-\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcSetConfigCmd: Config Endpoint Failed, Status = %r\n", Status));\r
+ }\r
return Status;\r
}\r
\r
)\r
{\r
EFI_STATUS Status;\r
-\r
USB_INTERFACE_DESCRIPTOR *IfDesc;\r
USB_ENDPOINT_DESCRIPTOR *EpDesc;\r
UINT8 Index;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT_EFI_ERROR(Status);\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcSetConfigCmd64: Config Endpoint Failed, Status = %r\n", Status));\r
+ }\r
\r
return Status;\r
}\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
-\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcEvaluateContext: Evaluate Context Failed, Status = %r\n", Status));\r
+ }\r
return Status;\r
}\r
\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
-\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcEvaluateContext64: Evaluate Context Failed, Status = %r\n", Status));\r
+ }\r
return Status;\r
}\r
\r
)\r
{\r
EFI_STATUS Status;\r
-\r
EVT_TRB_COMMAND_COMPLETION *EvtTrb;\r
INPUT_CONTEXT *InputContext;\r
DEVICE_CONTEXT *OutputContext;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
-\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcConfigHubContext: Config Endpoint Failed, Status = %r\n", Status));\r
+ }\r
return Status;\r
}\r
\r
)\r
{\r
EFI_STATUS Status;\r
-\r
EVT_TRB_COMMAND_COMPLETION *EvtTrb;\r
INPUT_CONTEXT_64 *InputContext;\r
DEVICE_CONTEXT_64 *OutputContext;\r
XHC_GENERIC_TIMEOUT,\r
(TRB_TEMPLATE **) (UINTN) &EvtTrb\r
);\r
- ASSERT (!EFI_ERROR(Status));\r
-\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((EFI_D_ERROR, "XhcConfigHubContext64: Config Endpoint Failed, Status = %r\n", Status));\r
+ }\r
return Status;\r
}\r
\r