Trb->Packet->TransactionStatus = EFI_TIMEOUT;\r
TrbEvent = Trb->Event;\r
SdMmcFreeTrb (Trb);\r
- DEBUG ((EFI_D_VERBOSE, "ProcessAsyncTaskList(): Signal Event %p EFI_TIMEOUT\n", TrbEvent));\r
+ DEBUG ((DEBUG_VERBOSE, "ProcessAsyncTaskList(): Signal Event %p EFI_TIMEOUT\n", TrbEvent));\r
gBS->SignalEvent (TrbEvent);\r
return;\r
}\r
Trb->Packet->TransactionStatus = Status;\r
TrbEvent = Trb->Event;\r
SdMmcFreeTrb (Trb);\r
- DEBUG ((EFI_D_VERBOSE, "ProcessAsyncTaskList(): Signal Event %p with %r\n", TrbEvent, Status));\r
+ DEBUG ((DEBUG_VERBOSE, "ProcessAsyncTaskList(): Signal Event %p with %r\n", TrbEvent, Status));\r
gBS->SignalEvent (TrbEvent);\r
}\r
return;\r
if ((Private->Slot[Slot].Enable) && (Private->Slot[Slot].SlotType == RemovableSlot)) {\r
Status = SdMmcHcCardDetect (Private->PciIo, Slot, &MediaPresent);\r
if ((Status == EFI_MEDIA_CHANGED) && !MediaPresent) {\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcEnumerateDevice: device disconnected at slot %d of pci %p\n", Slot, Private->PciIo));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcEnumerateDevice: device disconnected at slot %d of pci %p\n", Slot, Private->PciIo));\r
Private->Slot[Slot].MediaPresent = FALSE;\r
Private->Slot[Slot].Initialized = FALSE;\r
//\r
);\r
}\r
if ((Status == EFI_MEDIA_CHANGED) && MediaPresent) {\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcEnumerateDevice: device connected at slot %d of pci %p\n", Slot, Private->PciIo));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcEnumerateDevice: device connected at slot %d of pci %p\n", Slot, Private->PciIo));\r
//\r
// Reset the specified slot of the SD/MMC Pci Host Controller\r
//\r
CARD_TYPE_DETECT_ROUTINE *Routine;\r
UINT32 RoutineNum;\r
BOOLEAN MediaPresent;\r
+ BOOLEAN Support64BitDma;\r
\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcDriverBindingStart: Start\n"));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcDriverBindingStart: Start\n"));\r
\r
//\r
// Open PCI I/O Protocol and save pointer to open protocol\r
goto Done;\r
}\r
\r
+ Support64BitDma = TRUE;\r
for (Slot = FirstBar; Slot < (FirstBar + SlotNum); Slot++) {\r
Private->Slot[Slot].Enable = TRUE;\r
\r
}\r
DumpCapabilityReg (Slot, &Private->Capability[Slot]);\r
\r
+ Support64BitDma &= Private->Capability[Slot].SysBus64;\r
+\r
Status = SdMmcHcGetMaxCurrent (PciIo, Slot, &Private->MaxCurrent[Slot]);\r
if (EFI_ERROR (Status)) {\r
continue;\r
\r
Private->Slot[Slot].SlotType = Private->Capability[Slot].SlotType;\r
if ((Private->Slot[Slot].SlotType != RemovableSlot) && (Private->Slot[Slot].SlotType != EmbeddedSlot)) {\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcDxe doesn't support the slot type [%d]!!!\n", Private->Slot[Slot].SlotType));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcDxe doesn't support the slot type [%d]!!!\n", Private->Slot[Slot].SlotType));\r
continue;\r
}\r
\r
if (EFI_ERROR (Status) && (Status != EFI_MEDIA_CHANGED)) {\r
continue;\r
} else if (!MediaPresent) {\r
- DEBUG ((EFI_D_ERROR, "SdMmcHcCardDetect: No device attached in Slot[%d]!!!\n", Slot));\r
+ DEBUG ((DEBUG_INFO, "SdMmcHcCardDetect: No device attached in Slot[%d]!!!\n", Slot));\r
continue;\r
}\r
\r
}\r
}\r
\r
+ //\r
+ // Enable 64-bit DMA support in the PCI layer if this controller\r
+ // supports it.\r
+ //\r
+ if (Support64BitDma) {\r
+ Status = PciIo->Attributes (\r
+ PciIo,\r
+ EfiPciIoAttributeOperationEnable,\r
+ EFI_PCI_IO_ATTRIBUTE_DUAL_ADDRESS_CYCLE,\r
+ NULL\r
+ );\r
+ if (EFI_ERROR (Status)) {\r
+ DEBUG ((DEBUG_WARN, "SdMmcPciHcDriverBindingStart: failed to enable 64-bit DMA (%r)\n", Status));\r
+ }\r
+ }\r
+\r
//\r
// Start the asynchronous I/O monitor\r
//\r
NULL\r
);\r
\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcDriverBindingStart: %r End on %x\n", Status, Controller));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcDriverBindingStart: %r End on %x\n", Status, Controller));\r
\r
Done:\r
if (EFI_ERROR (Status)) {\r
LIST_ENTRY *NextLink;\r
SD_MMC_HC_TRB *Trb;\r
\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcDriverBindingStop: Start\n"));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcDriverBindingStop: Start\n"));\r
\r
Status = gBS->OpenProtocol (\r
Controller,\r
\r
FreePool (Private);\r
\r
- DEBUG ((EFI_D_INFO, "SdMmcPciHcDriverBindingStop: End with %r\n", Status));\r
+ DEBUG ((DEBUG_INFO, "SdMmcPciHcDriverBindingStop: End with %r\n", Status));\r
\r
return Status;\r
}\r
}\r
\r
Done:\r
- if ((Trb != NULL) && (Trb->AdmaDesc != NULL)) {\r
- FreePages (Trb->AdmaDesc, Trb->AdmaPages);\r
- }\r
-\r
- if (Trb != NULL) {\r
- FreePool (Trb);\r
- }\r
+ SdMmcFreeTrb (Trb);\r
\r
return Status;\r
}\r