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

@@ -11,17 +11,17 @@
//
// Driver name table
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mSdDxeDriverNameTable[] = {
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mSdDxeDriverNameTable[] = {
{ "eng;en", L"Edkii Sd Memory Card Device Driver" },
{ NULL , NULL }
{ NULL, NULL }
};
//
// Controller name table
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mSdDxeControllerNameTable[] = {
GLOBAL_REMOVE_IF_UNREFERENCED EFI_UNICODE_STRING_TABLE mSdDxeControllerNameTable[] = {
{ "eng;en", L"Edkii Sd Host Controller" },
{ NULL , NULL }
{ NULL, NULL }
};
//
@@ -36,9 +36,9 @@ GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME_PROTOCOL gSdDxeComponentName =
//
// EFI Component Name 2 Protocol
//
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gSdDxeComponentName2 = {
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME) SdDxeComponentNameGetDriverName,
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME) SdDxeComponentNameGetControllerName,
GLOBAL_REMOVE_IF_UNREFERENCED EFI_COMPONENT_NAME2_PROTOCOL gSdDxeComponentName2 = {
(EFI_COMPONENT_NAME2_GET_DRIVER_NAME)SdDxeComponentNameGetDriverName,
(EFI_COMPONENT_NAME2_GET_CONTROLLER_NAME)SdDxeComponentNameGetControllerName,
"en"
};
@@ -96,7 +96,6 @@ SdDxeComponentNameGetDriverName (
DriverName,
(BOOLEAN)(This == &gSdDxeComponentName)
);
}
/**
@@ -170,11 +169,11 @@ SdDxeComponentNameGetDriverName (
EFI_STATUS
EFIAPI
SdDxeComponentNameGetControllerName (
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
IN CHAR8 *Language,
OUT CHAR16 **ControllerName
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
IN CHAR8 *Language,
OUT CHAR16 **ControllerName
)
{
EFI_STATUS Status;
@@ -204,13 +203,14 @@ SdDxeComponentNameGetControllerName (
if (EFI_ERROR (Status)) {
return Status;
}
//
// Get the child context
//
Status = gBS->OpenProtocol (
ChildHandle,
&gEfiBlockIoProtocolGuid,
(VOID **) &BlockIo,
(VOID **)&BlockIo,
gSdDxeDriverBinding.DriverBindingHandle,
ChildHandle,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -219,7 +219,7 @@ SdDxeComponentNameGetControllerName (
return EFI_UNSUPPORTED;
}
Device = SD_DEVICE_DATA_FROM_BLKIO (BlockIo);
Device = SD_DEVICE_DATA_FROM_BLKIO (BlockIo);
ControllerNameTable = Device->ControllerNameTable;
}
@@ -231,4 +231,3 @@ SdDxeComponentNameGetControllerName (
(BOOLEAN)(This == &gSdDxeComponentName)
);
}

View File

@@ -19,20 +19,24 @@
VOID
EFIAPI
AsyncIoCallback (
IN EFI_EVENT Event,
IN VOID *Context
IN EFI_EVENT Event,
IN VOID *Context
)
{
SD_REQUEST *Request;
SD_REQUEST *Request;
gBS->CloseEvent (Event);
Request = (SD_REQUEST *) Context;
Request = (SD_REQUEST *)Context;
DEBUG_CODE_BEGIN ();
DEBUG ((DEBUG_INFO, "Sd Async Request: CmdIndex[%d] Arg[%08x] %r\n",
Request->SdMmcCmdBlk.CommandIndex, Request->SdMmcCmdBlk.CommandArgument,
Request->Packet.TransactionStatus));
DEBUG ((
DEBUG_INFO,
"Sd Async Request: CmdIndex[%d] Arg[%08x] %r\n",
Request->SdMmcCmdBlk.CommandIndex,
Request->SdMmcCmdBlk.CommandArgument,
Request->Packet.TransactionStatus
));
DEBUG_CODE_END ();
if (EFI_ERROR (Request->Packet.TransactionStatus)) {
@@ -61,8 +65,8 @@ AsyncIoCallback (
**/
EFI_STATUS
SdSetRca (
IN SD_DEVICE *Device,
OUT UINT16 *Rca
IN SD_DEVICE *Device,
OUT UINT16 *Rca
)
{
EFI_STATUS Status;
@@ -106,8 +110,8 @@ SdSetRca (
**/
EFI_STATUS
SdSelect (
IN SD_DEVICE *Device,
IN UINT16 Rca
IN SD_DEVICE *Device,
IN UINT16 Rca
)
{
EFI_STATUS Status;
@@ -130,6 +134,7 @@ SdSelect (
if (Rca != 0) {
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR1b;
}
SdMmcCmdBlk.CommandArgument = (UINT32)Rca << 16;
Status = PassThru->PassThru (PassThru, Device->Slot, &Packet, NULL);
@@ -151,9 +156,9 @@ SdSelect (
**/
EFI_STATUS
SdSendStatus (
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT UINT32 *DevStatus
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT UINT32 *DevStatus
)
{
EFI_STATUS Status;
@@ -171,15 +176,16 @@ SdSendStatus (
Packet.SdMmcStatusBlk = &SdMmcStatusBlk;
Packet.Timeout = SD_GENERIC_TIMEOUT;
SdMmcCmdBlk.CommandIndex = SD_SEND_STATUS;
SdMmcCmdBlk.CommandType = SdMmcCommandTypeAc;
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR1;
SdMmcCmdBlk.CommandIndex = SD_SEND_STATUS;
SdMmcCmdBlk.CommandType = SdMmcCommandTypeAc;
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR1;
SdMmcCmdBlk.CommandArgument = (UINT32)Rca << 16;
Status = PassThru->PassThru (PassThru, Device->Slot, &Packet, NULL);
if (!EFI_ERROR (Status)) {
CopyMem (DevStatus, &SdMmcStatusBlk.Resp0, sizeof (UINT32));
}
return Status;
}
@@ -197,9 +203,9 @@ SdSendStatus (
**/
EFI_STATUS
SdGetCsd (
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CSD *Csd
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CSD *Csd
)
{
EFI_STATUS Status;
@@ -219,9 +225,9 @@ SdGetCsd (
Packet.SdMmcStatusBlk = &SdMmcStatusBlk;
Packet.Timeout = SD_GENERIC_TIMEOUT;
SdMmcCmdBlk.CommandIndex = SD_SEND_CSD;
SdMmcCmdBlk.CommandType = SdMmcCommandTypeAc;
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR2;
SdMmcCmdBlk.CommandIndex = SD_SEND_CSD;
SdMmcCmdBlk.CommandType = SdMmcCommandTypeAc;
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR2;
SdMmcCmdBlk.CommandArgument = (UINT32)Rca << 16;
Status = PassThru->PassThru (PassThru, Device->Slot, &Packet, NULL);
@@ -230,7 +236,7 @@ SdGetCsd (
//
// For details, refer to SD Host Controller Simplified Spec 3.0 Table 2-12.
//
CopyMem (((UINT8*)Csd) + 1, &SdMmcStatusBlk.Resp0, sizeof (SD_CSD) - 1);
CopyMem (((UINT8 *)Csd) + 1, &SdMmcStatusBlk.Resp0, sizeof (SD_CSD) - 1);
}
return Status;
@@ -250,9 +256,9 @@ SdGetCsd (
**/
EFI_STATUS
SdGetCid (
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CID *Cid
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CID *Cid
)
{
EFI_STATUS Status;
@@ -272,9 +278,9 @@ SdGetCid (
Packet.SdMmcStatusBlk = &SdMmcStatusBlk;
Packet.Timeout = SD_GENERIC_TIMEOUT;
SdMmcCmdBlk.CommandIndex = SD_SEND_CID;
SdMmcCmdBlk.CommandType = SdMmcCommandTypeAc;
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR2;
SdMmcCmdBlk.CommandIndex = SD_SEND_CID;
SdMmcCmdBlk.CommandType = SdMmcCommandTypeAc;
SdMmcCmdBlk.ResponseType = SdMmcResponseTypeR2;
SdMmcCmdBlk.CommandArgument = (UINT32)Rca << 16;
Status = PassThru->PassThru (PassThru, Device->Slot, &Packet, NULL);
@@ -283,7 +289,7 @@ SdGetCid (
//
// For details, refer to SD Host Controller Simplified Spec 3.0 Table 2-12.
//
CopyMem (((UINT8*)Cid) + 1, &SdMmcStatusBlk.Resp0, sizeof (SD_CID) - 1);
CopyMem (((UINT8 *)Cid) + 1, &SdMmcStatusBlk.Resp0, sizeof (SD_CID) - 1);
}
return Status;
@@ -310,19 +316,19 @@ SdGetCid (
**/
EFI_STATUS
SdRwSingleBlock (
IN SD_DEVICE *Device,
IN EFI_LBA Lba,
IN VOID *Buffer,
IN UINTN BufferSize,
IN BOOLEAN IsRead,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
IN SD_DEVICE *Device,
IN EFI_LBA Lba,
IN VOID *Buffer,
IN UINTN BufferSize,
IN BOOLEAN IsRead,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
)
{
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *RwSingleBlkReq;
EFI_TPL OldTpl;
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *RwSingleBlkReq;
EFI_TPL OldTpl;
RwSingleBlkReq = NULL;
PassThru = Device->Private->PassThru;
@@ -334,7 +340,7 @@ SdRwSingleBlock (
}
RwSingleBlkReq->Signature = SD_REQUEST_SIGNATURE;
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
InsertTailList (&Device->Queue, &RwSingleBlkReq->Link);
gBS->RestoreTPL (OldTpl);
RwSingleBlkReq->Packet.SdMmcCmdBlk = &RwSingleBlkReq->SdMmcCmdBlk;
@@ -403,6 +409,7 @@ Error:
if (RwSingleBlkReq->Event != NULL) {
gBS->CloseEvent (RwSingleBlkReq->Event);
}
FreePool (RwSingleBlkReq);
}
} else {
@@ -441,19 +448,19 @@ Error:
**/
EFI_STATUS
SdRwMultiBlocks (
IN SD_DEVICE *Device,
IN EFI_LBA Lba,
IN VOID *Buffer,
IN UINTN BufferSize,
IN BOOLEAN IsRead,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
IN SD_DEVICE *Device,
IN EFI_LBA Lba,
IN VOID *Buffer,
IN UINTN BufferSize,
IN BOOLEAN IsRead,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
)
{
EFI_STATUS Status;
SD_REQUEST *RwMultiBlkReq;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_TPL OldTpl;
EFI_STATUS Status;
SD_REQUEST *RwMultiBlkReq;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_TPL OldTpl;
RwMultiBlkReq = NULL;
@@ -466,7 +473,7 @@ SdRwMultiBlocks (
}
RwMultiBlkReq->Signature = SD_REQUEST_SIGNATURE;
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
InsertTailList (&Device->Queue, &RwMultiBlkReq->Link);
gBS->RestoreTPL (OldTpl);
RwMultiBlkReq->Packet.SdMmcCmdBlk = &RwMultiBlkReq->SdMmcCmdBlk;
@@ -535,6 +542,7 @@ Error:
if (RwMultiBlkReq->Event != NULL) {
gBS->CloseEvent (RwMultiBlkReq->Event);
}
FreePool (RwMultiBlkReq);
}
} else {
@@ -577,23 +585,23 @@ Error:
**/
EFI_STATUS
SdReadWrite (
IN SD_DEVICE *Device,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT VOID *Buffer,
IN UINTN BufferSize,
IN BOOLEAN IsRead,
IN OUT EFI_BLOCK_IO2_TOKEN *Token
IN SD_DEVICE *Device,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT VOID *Buffer,
IN UINTN BufferSize,
IN BOOLEAN IsRead,
IN OUT EFI_BLOCK_IO2_TOKEN *Token
)
{
EFI_STATUS Status;
EFI_BLOCK_IO_MEDIA *Media;
UINTN BlockSize;
UINTN BlockNum;
UINTN IoAlign;
UINTN Remaining;
UINT32 MaxBlock;
BOOLEAN LastRw;
EFI_STATUS Status;
EFI_BLOCK_IO_MEDIA *Media;
UINTN BlockSize;
UINTN BlockNum;
UINTN IoAlign;
UINTN Remaining;
UINT32 MaxBlock;
BOOLEAN LastRw;
Status = EFI_SUCCESS;
Media = &Device->BlockMedia;
@@ -619,6 +627,7 @@ SdReadWrite (
Token->TransactionStatus = EFI_SUCCESS;
gBS->SignalEvent (Token->Event);
}
return EFI_SUCCESS;
}
@@ -627,13 +636,13 @@ SdReadWrite (
return EFI_BAD_BUFFER_SIZE;
}
BlockNum = BufferSize / BlockSize;
BlockNum = BufferSize / BlockSize;
if ((Lba + BlockNum - 1) > Media->LastBlock) {
return EFI_INVALID_PARAMETER;
}
IoAlign = Media->IoAlign;
if (IoAlign > 0 && (((UINTN) Buffer & (IoAlign - 1)) != 0)) {
if ((IoAlign > 0) && (((UINTN)Buffer & (IoAlign - 1)) != 0)) {
return EFI_INVALID_PARAMETER;
}
@@ -661,14 +670,22 @@ SdReadWrite (
} else {
Status = SdRwMultiBlocks (Device, Lba, Buffer, BufferSize, IsRead, Token, LastRw);
}
if (EFI_ERROR (Status)) {
return Status;
}
DEBUG ((DEBUG_BLKIO, "Sd%a(): Lba 0x%x BlkNo 0x%x Event %p with %r\n",
IsRead ? "Read" : "Write", Lba, BlockNum,
(Token != NULL) ? Token->Event : NULL, Status));
Lba += BlockNum;
Buffer = (UINT8*)Buffer + BufferSize;
DEBUG ((
DEBUG_BLKIO,
"Sd%a(): Lba 0x%x BlkNo 0x%x Event %p with %r\n",
IsRead ? "Read" : "Write",
Lba,
BlockNum,
(Token != NULL) ? Token->Event : NULL,
Status
));
Lba += BlockNum;
Buffer = (UINT8 *)Buffer + BufferSize;
Remaining -= BlockNum;
}
@@ -689,13 +706,13 @@ SdReadWrite (
EFI_STATUS
EFIAPI
SdReset (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
IN EFI_BLOCK_IO_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
Device = SD_DEVICE_DATA_FROM_BLKIO (This);
@@ -734,11 +751,11 @@ SdReadBlocks (
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
OUT VOID *Buffer
OUT VOID *Buffer
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_STATUS Status;
SD_DEVICE *Device;
Device = SD_DEVICE_DATA_FROM_BLKIO (This);
@@ -769,15 +786,15 @@ SdReadBlocks (
EFI_STATUS
EFIAPI
SdWriteBlocks (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
IN VOID *Buffer
IN EFI_BLOCK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
IN VOID *Buffer
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_STATUS Status;
SD_DEVICE *Device;
Device = SD_DEVICE_DATA_FROM_BLKIO (This);
@@ -798,7 +815,7 @@ SdWriteBlocks (
EFI_STATUS
EFIAPI
SdFlushBlocks (
IN EFI_BLOCK_IO_PROTOCOL *This
IN EFI_BLOCK_IO_PROTOCOL *This
)
{
//
@@ -825,18 +842,19 @@ SdResetEx (
IN BOOLEAN ExtendedVerification
)
{
SD_DEVICE *Device;
LIST_ENTRY *Link;
LIST_ENTRY *NextLink;
SD_REQUEST *Request;
EFI_TPL OldTpl;
SD_DEVICE *Device;
LIST_ENTRY *Link;
LIST_ENTRY *NextLink;
SD_REQUEST *Request;
EFI_TPL OldTpl;
Device = SD_DEVICE_DATA_FROM_BLKIO2 (This);
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
for (Link = GetFirstNode (&Device->Queue);
!IsNull (&Device->Queue, Link);
Link = NextLink) {
Link = NextLink)
{
NextLink = GetNextNode (&Device->Queue, Link);
RemoveEntryList (Link);
@@ -851,6 +869,7 @@ SdResetEx (
FreePool (Request);
}
gBS->RestoreTPL (OldTpl);
return EFI_SUCCESS;
@@ -885,16 +904,16 @@ SdResetEx (
EFI_STATUS
EFIAPI
SdReadBlocksEx (
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
OUT VOID *Buffer
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
OUT VOID *Buffer
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_STATUS Status;
SD_DEVICE *Device;
Device = SD_DEVICE_DATA_FROM_BLKIO2 (This);
@@ -927,16 +946,16 @@ SdReadBlocksEx (
EFI_STATUS
EFIAPI
SdWriteBlocksEx (
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
IN VOID *Buffer
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
IN VOID *Buffer
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_STATUS Status;
SD_DEVICE *Device;
Device = SD_DEVICE_DATA_FROM_BLKIO2 (This);
@@ -965,7 +984,7 @@ SdFlushBlocksEx (
//
// Signal event and return directly.
//
if (Token != NULL && Token->Event != NULL) {
if ((Token != NULL) && (Token->Event != NULL)) {
Token->TransactionStatus = EFI_SUCCESS;
gBS->SignalEvent (Token->Event);
}
@@ -989,16 +1008,16 @@ SdFlushBlocksEx (
**/
EFI_STATUS
SdEraseBlockStart (
IN SD_DEVICE *Device,
IN EFI_LBA StartLba,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
IN SD_DEVICE *Device,
IN EFI_LBA StartLba,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
)
{
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *EraseBlockStart;
EFI_TPL OldTpl;
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *EraseBlockStart;
EFI_TPL OldTpl;
EraseBlockStart = NULL;
PassThru = Device->Private->PassThru;
@@ -1010,7 +1029,7 @@ SdEraseBlockStart (
}
EraseBlockStart->Signature = SD_REQUEST_SIGNATURE;
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
InsertTailList (&Device->Queue, &EraseBlockStart->Link);
gBS->RestoreTPL (OldTpl);
EraseBlockStart->Packet.SdMmcCmdBlk = &EraseBlockStart->SdMmcCmdBlk;
@@ -1060,6 +1079,7 @@ Error:
if (EraseBlockStart->Event != NULL) {
gBS->CloseEvent (EraseBlockStart->Event);
}
FreePool (EraseBlockStart);
}
} else {
@@ -1093,16 +1113,16 @@ Error:
**/
EFI_STATUS
SdEraseBlockEnd (
IN SD_DEVICE *Device,
IN EFI_LBA EndLba,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
IN SD_DEVICE *Device,
IN EFI_LBA EndLba,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
)
{
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *EraseBlockEnd;
EFI_TPL OldTpl;
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *EraseBlockEnd;
EFI_TPL OldTpl;
EraseBlockEnd = NULL;
PassThru = Device->Private->PassThru;
@@ -1114,7 +1134,7 @@ SdEraseBlockEnd (
}
EraseBlockEnd->Signature = SD_REQUEST_SIGNATURE;
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
InsertTailList (&Device->Queue, &EraseBlockEnd->Link);
gBS->RestoreTPL (OldTpl);
EraseBlockEnd->Packet.SdMmcCmdBlk = &EraseBlockEnd->SdMmcCmdBlk;
@@ -1164,6 +1184,7 @@ Error:
if (EraseBlockEnd->Event != NULL) {
gBS->CloseEvent (EraseBlockEnd->Event);
}
FreePool (EraseBlockEnd);
}
} else {
@@ -1196,15 +1217,15 @@ Error:
**/
EFI_STATUS
SdEraseBlock (
IN SD_DEVICE *Device,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
IN SD_DEVICE *Device,
IN EFI_BLOCK_IO2_TOKEN *Token,
IN BOOLEAN IsEnd
)
{
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *EraseBlock;
EFI_TPL OldTpl;
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
SD_REQUEST *EraseBlock;
EFI_TPL OldTpl;
EraseBlock = NULL;
PassThru = Device->Private->PassThru;
@@ -1216,7 +1237,7 @@ SdEraseBlock (
}
EraseBlock->Signature = SD_REQUEST_SIGNATURE;
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
InsertTailList (&Device->Queue, &EraseBlock->Link);
gBS->RestoreTPL (OldTpl);
EraseBlock->Packet.SdMmcCmdBlk = &EraseBlock->SdMmcCmdBlk;
@@ -1260,6 +1281,7 @@ Error:
if (EraseBlock->Event != NULL) {
gBS->CloseEvent (EraseBlock->Event);
}
FreePool (EraseBlock);
}
} else {
@@ -1307,19 +1329,19 @@ Error:
EFI_STATUS
EFIAPI
SdEraseBlocks (
IN EFI_ERASE_BLOCK_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_ERASE_BLOCK_TOKEN *Token,
IN UINTN Size
IN EFI_ERASE_BLOCK_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_ERASE_BLOCK_TOKEN *Token,
IN UINTN Size
)
{
EFI_STATUS Status;
EFI_BLOCK_IO_MEDIA *Media;
UINTN BlockSize;
UINTN BlockNum;
EFI_LBA LastLba;
SD_DEVICE *Device;
EFI_STATUS Status;
EFI_BLOCK_IO_MEDIA *Media;
UINTN BlockSize;
UINTN BlockNum;
EFI_LBA LastLba;
SD_DEVICE *Device;
Status = EFI_SUCCESS;
Device = SD_DEVICE_DATA_FROM_ERASEBLK (This);
@@ -1341,7 +1363,7 @@ SdEraseBlocks (
return EFI_INVALID_PARAMETER;
}
BlockNum = Size / BlockSize;
BlockNum = Size / BlockSize;
if ((Lba + BlockNum - 1) > Media->LastBlock) {
return EFI_INVALID_PARAMETER;
}
@@ -1352,17 +1374,17 @@ SdEraseBlocks (
LastLba = Lba + BlockNum - 1;
Status = SdEraseBlockStart (Device, Lba, (EFI_BLOCK_IO2_TOKEN*)Token, FALSE);
Status = SdEraseBlockStart (Device, Lba, (EFI_BLOCK_IO2_TOKEN *)Token, FALSE);
if (EFI_ERROR (Status)) {
return Status;
}
Status = SdEraseBlockEnd (Device, LastLba, (EFI_BLOCK_IO2_TOKEN*)Token, FALSE);
Status = SdEraseBlockEnd (Device, LastLba, (EFI_BLOCK_IO2_TOKEN *)Token, FALSE);
if (EFI_ERROR (Status)) {
return Status;
}
Status = SdEraseBlock (Device, (EFI_BLOCK_IO2_TOKEN*)Token, TRUE);
Status = SdEraseBlock (Device, (EFI_BLOCK_IO2_TOKEN *)Token, TRUE);
if (EFI_ERROR (Status)) {
return Status;
}

View File

@@ -26,8 +26,8 @@
EFI_STATUS
EFIAPI
SdReset (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
IN EFI_BLOCK_IO_PROTOCOL *This,
IN BOOLEAN ExtendedVerification
);
/**
@@ -56,7 +56,7 @@ SdReadBlocks (
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
OUT VOID *Buffer
OUT VOID *Buffer
);
/**
@@ -82,11 +82,11 @@ SdReadBlocks (
EFI_STATUS
EFIAPI
SdWriteBlocks (
IN EFI_BLOCK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
IN VOID *Buffer
IN EFI_BLOCK_IO_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN UINTN BufferSize,
IN VOID *Buffer
);
/**
@@ -102,7 +102,7 @@ SdWriteBlocks (
EFI_STATUS
EFIAPI
SdFlushBlocks (
IN EFI_BLOCK_IO_PROTOCOL *This
IN EFI_BLOCK_IO_PROTOCOL *This
);
/**
@@ -152,12 +152,12 @@ SdResetEx (
EFI_STATUS
EFIAPI
SdReadBlocksEx (
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
OUT VOID *Buffer
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
OUT VOID *Buffer
);
/**
@@ -185,12 +185,12 @@ SdReadBlocksEx (
EFI_STATUS
EFIAPI
SdWriteBlocksEx (
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
IN VOID *Buffer
IN EFI_BLOCK_IO2_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_BLOCK_IO2_TOKEN *Token,
IN UINTN BufferSize,
IN VOID *Buffer
);
/**
@@ -241,12 +241,11 @@ SdFlushBlocksEx (
EFI_STATUS
EFIAPI
SdEraseBlocks (
IN EFI_ERASE_BLOCK_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_ERASE_BLOCK_TOKEN *Token,
IN UINTN Size
IN EFI_ERASE_BLOCK_PROTOCOL *This,
IN UINT32 MediaId,
IN EFI_LBA Lba,
IN OUT EFI_ERASE_BLOCK_TOKEN *Token,
IN UINTN Size
);
#endif

View File

@@ -32,8 +32,8 @@ SdDiskInfoInquiry (
IN OUT UINT32 *InquiryDataSize
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_STATUS Status;
SD_DEVICE *Device;
Device = SD_DEVICE_DATA_FROM_DISKINFO (This);

View File

@@ -14,7 +14,7 @@
//
// SdDxe Driver Binding Protocol Instance
//
EFI_DRIVER_BINDING_PROTOCOL gSdDxeDriverBinding = {
EFI_DRIVER_BINDING_PROTOCOL gSdDxeDriverBinding = {
SdDxeDriverBindingSupported,
SdDxeDriverBindingStart,
SdDxeDriverBindingStop,
@@ -26,7 +26,7 @@ EFI_DRIVER_BINDING_PROTOCOL gSdDxeDriverBinding = {
//
// Template for SD_DEVICE data structure.
//
SD_DEVICE mSdDeviceTemplate = {
SD_DEVICE mSdDeviceTemplate = {
SD_DEVICE_SIGNATURE, // Signature
NULL, // Handle
NULL, // DevicePath
@@ -99,41 +99,42 @@ DumpCsd (
IN SD_CSD *Csd
)
{
SD_CSD2 *Csd2;
SD_CSD2 *Csd2;
DEBUG((DEBUG_INFO, "== Dump Sd Csd Register==\n"));
DEBUG((DEBUG_INFO, " CSD structure 0x%x\n", Csd->CsdStructure));
DEBUG((DEBUG_INFO, " Data read access-time 1 0x%x\n", Csd->Taac));
DEBUG((DEBUG_INFO, " Data read access-time 2 0x%x\n", Csd->Nsac));
DEBUG((DEBUG_INFO, " Max. bus clock frequency 0x%x\n", Csd->TranSpeed));
DEBUG((DEBUG_INFO, " Device command classes 0x%x\n", Csd->Ccc));
DEBUG((DEBUG_INFO, " Max. read data block length 0x%x\n", Csd->ReadBlLen));
DEBUG((DEBUG_INFO, " Partial blocks for read allowed 0x%x\n", Csd->ReadBlPartial));
DEBUG((DEBUG_INFO, " Write block misalignment 0x%x\n", Csd->WriteBlkMisalign));
DEBUG((DEBUG_INFO, " Read block misalignment 0x%x\n", Csd->ReadBlkMisalign));
DEBUG((DEBUG_INFO, " DSR implemented 0x%x\n", Csd->DsrImp));
DEBUG ((DEBUG_INFO, "== Dump Sd Csd Register==\n"));
DEBUG ((DEBUG_INFO, " CSD structure 0x%x\n", Csd->CsdStructure));
DEBUG ((DEBUG_INFO, " Data read access-time 1 0x%x\n", Csd->Taac));
DEBUG ((DEBUG_INFO, " Data read access-time 2 0x%x\n", Csd->Nsac));
DEBUG ((DEBUG_INFO, " Max. bus clock frequency 0x%x\n", Csd->TranSpeed));
DEBUG ((DEBUG_INFO, " Device command classes 0x%x\n", Csd->Ccc));
DEBUG ((DEBUG_INFO, " Max. read data block length 0x%x\n", Csd->ReadBlLen));
DEBUG ((DEBUG_INFO, " Partial blocks for read allowed 0x%x\n", Csd->ReadBlPartial));
DEBUG ((DEBUG_INFO, " Write block misalignment 0x%x\n", Csd->WriteBlkMisalign));
DEBUG ((DEBUG_INFO, " Read block misalignment 0x%x\n", Csd->ReadBlkMisalign));
DEBUG ((DEBUG_INFO, " DSR implemented 0x%x\n", Csd->DsrImp));
if (Csd->CsdStructure == 0) {
DEBUG((DEBUG_INFO, " Device size 0x%x\n", Csd->CSizeLow | (Csd->CSizeHigh << 2)));
DEBUG((DEBUG_INFO, " Max. read current @ VDD min 0x%x\n", Csd->VddRCurrMin));
DEBUG((DEBUG_INFO, " Max. read current @ VDD max 0x%x\n", Csd->VddRCurrMax));
DEBUG((DEBUG_INFO, " Max. write current @ VDD min 0x%x\n", Csd->VddWCurrMin));
DEBUG((DEBUG_INFO, " Max. write current @ VDD max 0x%x\n", Csd->VddWCurrMax));
DEBUG ((DEBUG_INFO, " Device size 0x%x\n", Csd->CSizeLow | (Csd->CSizeHigh << 2)));
DEBUG ((DEBUG_INFO, " Max. read current @ VDD min 0x%x\n", Csd->VddRCurrMin));
DEBUG ((DEBUG_INFO, " Max. read current @ VDD max 0x%x\n", Csd->VddRCurrMax));
DEBUG ((DEBUG_INFO, " Max. write current @ VDD min 0x%x\n", Csd->VddWCurrMin));
DEBUG ((DEBUG_INFO, " Max. write current @ VDD max 0x%x\n", Csd->VddWCurrMax));
} else {
Csd2 = (SD_CSD2*)(VOID*)Csd;
DEBUG((DEBUG_INFO, " Device size 0x%x\n", Csd2->CSizeLow | (Csd->CSizeHigh << 16)));
Csd2 = (SD_CSD2 *)(VOID *)Csd;
DEBUG ((DEBUG_INFO, " Device size 0x%x\n", Csd2->CSizeLow | (Csd->CSizeHigh << 16)));
}
DEBUG((DEBUG_INFO, " Erase sector size 0x%x\n", Csd->SectorSize));
DEBUG((DEBUG_INFO, " Erase single block enable 0x%x\n", Csd->EraseBlkEn));
DEBUG((DEBUG_INFO, " Write protect group size 0x%x\n", Csd->WpGrpSize));
DEBUG((DEBUG_INFO, " Write protect group enable 0x%x\n", Csd->WpGrpEnable));
DEBUG((DEBUG_INFO, " Write speed factor 0x%x\n", Csd->R2WFactor));
DEBUG((DEBUG_INFO, " Max. write data block length 0x%x\n", Csd->WriteBlLen));
DEBUG((DEBUG_INFO, " Partial blocks for write allowed 0x%x\n", Csd->WriteBlPartial));
DEBUG((DEBUG_INFO, " File format group 0x%x\n", Csd->FileFormatGrp));
DEBUG((DEBUG_INFO, " Copy flag (OTP) 0x%x\n", Csd->Copy));
DEBUG((DEBUG_INFO, " Permanent write protection 0x%x\n", Csd->PermWriteProtect));
DEBUG((DEBUG_INFO, " Temporary write protection 0x%x\n", Csd->TmpWriteProtect));
DEBUG((DEBUG_INFO, " File format 0x%x\n", Csd->FileFormat));
DEBUG ((DEBUG_INFO, " Erase sector size 0x%x\n", Csd->SectorSize));
DEBUG ((DEBUG_INFO, " Erase single block enable 0x%x\n", Csd->EraseBlkEn));
DEBUG ((DEBUG_INFO, " Write protect group size 0x%x\n", Csd->WpGrpSize));
DEBUG ((DEBUG_INFO, " Write protect group enable 0x%x\n", Csd->WpGrpEnable));
DEBUG ((DEBUG_INFO, " Write speed factor 0x%x\n", Csd->R2WFactor));
DEBUG ((DEBUG_INFO, " Max. write data block length 0x%x\n", Csd->WriteBlLen));
DEBUG ((DEBUG_INFO, " Partial blocks for write allowed 0x%x\n", Csd->WriteBlPartial));
DEBUG ((DEBUG_INFO, " File format group 0x%x\n", Csd->FileFormatGrp));
DEBUG ((DEBUG_INFO, " Copy flag (OTP) 0x%x\n", Csd->Copy));
DEBUG ((DEBUG_INFO, " Permanent write protection 0x%x\n", Csd->PermWriteProtect));
DEBUG ((DEBUG_INFO, " Temporary write protection 0x%x\n", Csd->TmpWriteProtect));
DEBUG ((DEBUG_INFO, " File format 0x%x\n", Csd->FileFormat));
return EFI_SUCCESS;
}
@@ -149,8 +150,8 @@ DumpCsd (
**/
EFI_STATUS
GetSdModelName (
IN OUT SD_DEVICE *Device,
IN SD_CID *Cid
IN OUT SD_DEVICE *Device,
IN SD_CID *Cid
)
{
CHAR8 String[SD_MODEL_NAME_MAX_LEN];
@@ -178,19 +179,19 @@ GetSdModelName (
**/
EFI_STATUS
DiscoverUserArea (
IN SD_DEVICE *Device
IN SD_DEVICE *Device
)
{
EFI_STATUS Status;
SD_CSD *Csd;
SD_CSD2 *Csd2;
SD_CID *Cid;
UINT64 Capacity;
UINT32 DevStatus;
UINT16 Rca;
UINT32 CSize;
UINT32 CSizeMul;
UINT32 ReadBlLen;
EFI_STATUS Status;
SD_CSD *Csd;
SD_CSD2 *Csd2;
SD_CID *Cid;
UINT64 Capacity;
UINT32 DevStatus;
UINT16 Rca;
UINT32 CSize;
UINT32 CSizeMul;
UINT32 ReadBlLen;
//
// Deselect the device to force it enter stby mode.
@@ -210,6 +211,7 @@ DiscoverUserArea (
if (EFI_ERROR (Status)) {
return Status;
}
DumpCsd (Csd);
Cid = &Device->Cid;
@@ -217,6 +219,7 @@ DiscoverUserArea (
if (EFI_ERROR (Status)) {
return Status;
}
GetSdModelName (Device, Cid);
Status = SdSelect (Device, Rca);
@@ -232,15 +235,15 @@ DiscoverUserArea (
if (Csd->CsdStructure == 0) {
Device->SectorAddressing = FALSE;
CSize = (Csd->CSizeHigh << 2 | Csd->CSizeLow) + 1;
CSizeMul = (1 << (Csd->CSizeMul + 2));
ReadBlLen = (1 << (Csd->ReadBlLen));
Capacity = MultU64x32 (MultU64x32 ((UINT64)CSize, CSizeMul), ReadBlLen);
CSize = (Csd->CSizeHigh << 2 | Csd->CSizeLow) + 1;
CSizeMul = (1 << (Csd->CSizeMul + 2));
ReadBlLen = (1 << (Csd->ReadBlLen));
Capacity = MultU64x32 (MultU64x32 ((UINT64)CSize, CSizeMul), ReadBlLen);
} else {
Device->SectorAddressing = TRUE;
Csd2 = (SD_CSD2*)(VOID*)Csd;
CSize = (Csd2->CSizeHigh << 16 | Csd2->CSizeLow) + 1;
Capacity = MultU64x32 ((UINT64)CSize, SIZE_512KB);
Csd2 = (SD_CSD2 *)(VOID *)Csd;
CSize = (Csd2->CSizeHigh << 16 | Csd2->CSizeLow) + 1;
Capacity = MultU64x32 ((UINT64)CSize, SIZE_512KB);
}
Device->BlockIo.Media = &Device->BlockMedia;
@@ -279,23 +282,23 @@ DiscoverUserArea (
EFI_STATUS
EFIAPI
DiscoverSdDevice (
IN SD_DRIVER_PRIVATE_DATA *Private,
IN UINT8 Slot
IN SD_DRIVER_PRIVATE_DATA *Private,
IN UINT8 Slot
)
{
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;
EFI_HANDLE DeviceHandle;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_STATUS Status;
SD_DEVICE *Device;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
EFI_DEVICE_PATH_PROTOCOL *NewDevicePath;
EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath;
EFI_HANDLE DeviceHandle;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
Device = NULL;
DevicePath = NULL;
NewDevicePath = NULL;
RemainingDevicePath = NULL;
PassThru = Private->PassThru;
PassThru = Private->PassThru;
//
// Build Device Path
@@ -305,7 +308,7 @@ DiscoverSdDevice (
Slot,
&DevicePath
);
if (EFI_ERROR(Status)) {
if (EFI_ERROR (Status)) {
return Status;
}
@@ -324,10 +327,10 @@ DiscoverSdDevice (
goto Error;
}
DeviceHandle = NULL;
DeviceHandle = NULL;
RemainingDevicePath = NewDevicePath;
Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &DeviceHandle);
if (!EFI_ERROR (Status) && (DeviceHandle != NULL) && IsDevicePathEnd(RemainingDevicePath)) {
Status = gBS->LocateDevicePath (&gEfiDevicePathProtocolGuid, &RemainingDevicePath, &DeviceHandle);
if (!EFI_ERROR (Status) && (DeviceHandle != NULL) && IsDevicePathEnd (RemainingDevicePath)) {
//
// The device has been started, directly return to fast boot.
//
@@ -353,7 +356,7 @@ DiscoverSdDevice (
// Expose user area in the Sd memory card to upper layer.
//
Status = DiscoverUserArea (Device);
if (EFI_ERROR(Status)) {
if (EFI_ERROR (Status)) {
goto Error;
}
@@ -392,7 +395,7 @@ DiscoverSdDevice (
gBS->OpenProtocol (
Private->Controller,
&gEfiSdMmcPassThruProtocolGuid,
(VOID **) &(Private->PassThru),
(VOID **)&(Private->PassThru),
Private->DriverBindingHandle,
Device->Handle,
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
@@ -458,15 +461,15 @@ Error:
EFI_STATUS
EFIAPI
SdDxeDriverBindingSupported (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
UINT8 Slot;
EFI_STATUS Status;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
UINT8 Slot;
//
// Test EFI_SD_MMC_PASS_THRU_PROTOCOL on the controller handle.
@@ -474,7 +477,7 @@ SdDxeDriverBindingSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiSdMmcPassThruProtocolGuid,
(VOID**) &PassThru,
(VOID **)&PassThru,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
@@ -523,7 +526,7 @@ SdDxeDriverBindingSupported (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
(VOID **) &ParentDevicePath,
(VOID **)&ParentDevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -569,27 +572,27 @@ SdDxeDriverBindingSupported (
EFI_STATUS
EFIAPI
SdDxeDriverBindingStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
)
{
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
SD_DRIVER_PRIVATE_DATA *Private;
UINT8 Slot;
EFI_STATUS Status;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
SD_DRIVER_PRIVATE_DATA *Private;
UINT8 Slot;
Private = NULL;
PassThru = NULL;
Status = gBS->OpenProtocol (
Controller,
&gEfiSdMmcPassThruProtocolGuid,
(VOID **) &PassThru,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
Status = gBS->OpenProtocol (
Controller,
&gEfiSdMmcPassThruProtocolGuid,
(VOID **)&PassThru,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_BY_DRIVER
);
if ((EFI_ERROR (Status)) && (Status != EFI_ALREADY_STARTED)) {
return Status;
}
@@ -607,7 +610,7 @@ SdDxeDriverBindingStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiDevicePathProtocolGuid,
(VOID **) &ParentDevicePath,
(VOID **)&ParentDevicePath,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -631,7 +634,7 @@ SdDxeDriverBindingStart (
Status = gBS->OpenProtocol (
Controller,
&gEfiCallerIdGuid,
(VOID **) &Private,
(VOID **)&Private,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -676,14 +679,15 @@ Error:
if (Private != NULL) {
gBS->UninstallMultipleProtocolInterfaces (
Controller,
&gEfiCallerIdGuid,
Private,
NULL
);
Controller,
&gEfiCallerIdGuid,
Private,
NULL
);
FreePool (Private);
}
}
return Status;
}
@@ -716,30 +720,30 @@ Error:
EFI_STATUS
EFIAPI
SdDxeDriverBindingStop (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
)
{
EFI_STATUS Status;
BOOLEAN AllChildrenStopped;
UINTN Index;
SD_DRIVER_PRIVATE_DATA *Private;
SD_DEVICE *Device;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
EFI_BLOCK_IO_PROTOCOL *BlockIo;
LIST_ENTRY *Link;
LIST_ENTRY *NextLink;
SD_REQUEST *Request;
EFI_TPL OldTpl;
EFI_STATUS Status;
BOOLEAN AllChildrenStopped;
UINTN Index;
SD_DRIVER_PRIVATE_DATA *Private;
SD_DEVICE *Device;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_BLOCK_IO2_PROTOCOL *BlockIo2;
EFI_BLOCK_IO_PROTOCOL *BlockIo;
LIST_ENTRY *Link;
LIST_ENTRY *NextLink;
SD_REQUEST *Request;
EFI_TPL OldTpl;
if (NumberOfChildren == 0) {
Status = gBS->OpenProtocol (
Controller,
&gEfiCallerIdGuid,
(VOID **) &Private,
(VOID **)&Private,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -749,16 +753,16 @@ SdDxeDriverBindingStop (
}
gBS->UninstallProtocolInterface (
Controller,
&gEfiCallerIdGuid,
Private
);
Controller,
&gEfiCallerIdGuid,
Private
);
gBS->CloseProtocol (
Controller,
&gEfiSdMmcPassThruProtocolGuid,
This->DriverBindingHandle,
Controller
);
Controller,
&gEfiSdMmcPassThruProtocolGuid,
This->DriverBindingHandle,
Controller
);
FreePool (Private);
@@ -770,19 +774,19 @@ SdDxeDriverBindingStop (
for (Index = 0; Index < NumberOfChildren; Index++) {
BlockIo = NULL;
BlockIo2 = NULL;
Status = gBS->OpenProtocol (
ChildHandleBuffer[Index],
&gEfiBlockIoProtocolGuid,
(VOID **) &BlockIo,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
Status = gBS->OpenProtocol (
ChildHandleBuffer[Index],
&gEfiBlockIoProtocolGuid,
(VOID **)&BlockIo,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
);
if (EFI_ERROR (Status)) {
Status = gBS->OpenProtocol (
ChildHandleBuffer[Index],
&gEfiBlockIo2ProtocolGuid,
(VOID **) &BlockIo2,
(VOID **)&BlockIo2,
This->DriverBindingHandle,
Controller,
EFI_OPEN_PROTOCOL_GET_PROTOCOL
@@ -806,7 +810,8 @@ SdDxeDriverBindingStop (
OldTpl = gBS->RaiseTPL (TPL_NOTIFY);
for (Link = GetFirstNode (&Device->Queue);
!IsNull (&Device->Queue, Link);
Link = NextLink) {
Link = NextLink)
{
NextLink = GetNextNode (&Device->Queue, Link);
RemoveEntryList (Link);
@@ -821,6 +826,7 @@ SdDxeDriverBindingStop (
FreePool (Request);
}
gBS->RestoreTPL (OldTpl);
//
@@ -849,14 +855,14 @@ SdDxeDriverBindingStop (
);
if (EFI_ERROR (Status)) {
AllChildrenStopped = FALSE;
gBS->OpenProtocol (
Controller,
&gEfiSdMmcPassThruProtocolGuid,
(VOID **)&PassThru,
This->DriverBindingHandle,
ChildHandleBuffer[Index],
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
);
gBS->OpenProtocol (
Controller,
&gEfiSdMmcPassThruProtocolGuid,
(VOID **)&PassThru,
This->DriverBindingHandle,
ChildHandleBuffer[Index],
EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
);
} else {
FreePool (Device->DevicePath);
FreeUnicodeStringTable (Device->ControllerNameTable);
@@ -884,11 +890,11 @@ SdDxeDriverBindingStop (
EFI_STATUS
EFIAPI
InitializeSdDxe (
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
IN EFI_HANDLE ImageHandle,
IN EFI_SYSTEM_TABLE *SystemTable
)
{
EFI_STATUS Status;
EFI_STATUS Status;
//
// Install driver model protocol(s).

View File

@@ -39,11 +39,11 @@
//
// Global Variables
//
extern EFI_DRIVER_BINDING_PROTOCOL gSdDxeDriverBinding;
extern EFI_COMPONENT_NAME_PROTOCOL gSdDxeComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gSdDxeComponentName2;
extern EFI_DRIVER_BINDING_PROTOCOL gSdDxeDriverBinding;
extern EFI_COMPONENT_NAME_PROTOCOL gSdDxeComponentName;
extern EFI_COMPONENT_NAME2_PROTOCOL gSdDxeComponentName2;
#define SD_DEVICE_SIGNATURE SIGNATURE_32 ('S', 'D', 't', 'f')
#define SD_DEVICE_SIGNATURE SIGNATURE_32 ('S', 'D', 't', 'f')
#define SD_DEVICE_DATA_FROM_BLKIO(a) \
CR(a, SD_DEVICE, BlockIo, SD_DEVICE_SIGNATURE)
@@ -60,11 +60,11 @@ extern EFI_COMPONENT_NAME2_PROTOCOL gSdDxeComponentName2;
//
// Take 2.5 seconds as generic time out value, 1 microsecond as unit.
//
#define SD_GENERIC_TIMEOUT 2500 * 1000
#define SD_GENERIC_TIMEOUT 2500 * 1000
#define SD_REQUEST_SIGNATURE SIGNATURE_32 ('S', 'D', 'R', 'E')
#define SD_REQUEST_SIGNATURE SIGNATURE_32 ('S', 'D', 'R', 'E')
#define SD_MODEL_NAME_MAX_LEN 32
#define SD_MODEL_NAME_MAX_LEN 32
typedef struct _SD_DEVICE SD_DEVICE;
typedef struct _SD_DRIVER_PRIVATE_DATA SD_DRIVER_PRIVATE_DATA;
@@ -73,40 +73,40 @@ typedef struct _SD_DRIVER_PRIVATE_DATA SD_DRIVER_PRIVATE_DATA;
// Asynchronous I/O request.
//
typedef struct {
UINT32 Signature;
LIST_ENTRY Link;
UINT32 Signature;
LIST_ENTRY Link;
EFI_SD_MMC_COMMAND_BLOCK SdMmcCmdBlk;
EFI_SD_MMC_STATUS_BLOCK SdMmcStatusBlk;
EFI_SD_MMC_PASS_THRU_COMMAND_PACKET Packet;
EFI_SD_MMC_COMMAND_BLOCK SdMmcCmdBlk;
EFI_SD_MMC_STATUS_BLOCK SdMmcStatusBlk;
EFI_SD_MMC_PASS_THRU_COMMAND_PACKET Packet;
BOOLEAN IsEnd;
BOOLEAN IsEnd;
EFI_BLOCK_IO2_TOKEN *Token;
EFI_BLOCK_IO2_TOKEN *Token;
EFI_EVENT Event;
EFI_EVENT Event;
} SD_REQUEST;
#define SD_REQUEST_FROM_LINK(a) \
CR(a, SD_REQUEST, Link, SD_REQUEST_SIGNATURE)
struct _SD_DEVICE {
UINT32 Signature;
EFI_HANDLE Handle;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
UINT8 Slot;
BOOLEAN SectorAddressing;
EFI_BLOCK_IO_PROTOCOL BlockIo;
EFI_BLOCK_IO2_PROTOCOL BlockIo2;
EFI_BLOCK_IO_MEDIA BlockMedia;
EFI_ERASE_BLOCK_PROTOCOL EraseBlock;
EFI_DISK_INFO_PROTOCOL DiskInfo;
UINT32 Signature;
EFI_HANDLE Handle;
EFI_DEVICE_PATH_PROTOCOL *DevicePath;
UINT8 Slot;
BOOLEAN SectorAddressing;
EFI_BLOCK_IO_PROTOCOL BlockIo;
EFI_BLOCK_IO2_PROTOCOL BlockIo2;
EFI_BLOCK_IO_MEDIA BlockMedia;
EFI_ERASE_BLOCK_PROTOCOL EraseBlock;
EFI_DISK_INFO_PROTOCOL DiskInfo;
LIST_ENTRY Queue;
LIST_ENTRY Queue;
SD_CSD Csd;
SD_CID Cid;
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
SD_CSD Csd;
SD_CID Cid;
EFI_UNICODE_STRING_TABLE *ControllerNameTable;
//
// The model name consists of three fields in CID register
// 1) OEM/Application ID (2 bytes)
@@ -114,19 +114,19 @@ struct _SD_DEVICE {
// 3) Product Serial Number (4 bytes)
// The delimiters of these fields are whitespace.
//
CHAR16 ModelName[SD_MODEL_NAME_MAX_LEN];
SD_DRIVER_PRIVATE_DATA *Private;
} ;
CHAR16 ModelName[SD_MODEL_NAME_MAX_LEN];
SD_DRIVER_PRIVATE_DATA *Private;
};
//
// SD DXE driver private data structure
//
struct _SD_DRIVER_PRIVATE_DATA {
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_HANDLE Controller;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
EFI_HANDLE DriverBindingHandle;
} ;
EFI_SD_MMC_PASS_THRU_PROTOCOL *PassThru;
EFI_HANDLE Controller;
EFI_DEVICE_PATH_PROTOCOL *ParentDevicePath;
EFI_HANDLE DriverBindingHandle;
};
/**
Tests to see if this driver supports a given controller. If a child device is provided,
@@ -173,9 +173,9 @@ struct _SD_DRIVER_PRIVATE_DATA {
EFI_STATUS
EFIAPI
SdDxeDriverBindingSupported (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -216,9 +216,9 @@ SdDxeDriverBindingSupported (
EFI_STATUS
EFIAPI
SdDxeDriverBindingStart (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN EFI_DEVICE_PATH_PROTOCOL *RemainingDevicePath
);
/**
@@ -250,10 +250,10 @@ SdDxeDriverBindingStart (
EFI_STATUS
EFIAPI
SdDxeDriverBindingStop (
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
IN EFI_DRIVER_BINDING_PROTOCOL *This,
IN EFI_HANDLE Controller,
IN UINTN NumberOfChildren,
IN EFI_HANDLE *ChildHandleBuffer
);
/**
@@ -374,11 +374,11 @@ SdDxeComponentNameGetDriverName (
EFI_STATUS
EFIAPI
SdDxeComponentNameGetControllerName (
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
IN CHAR8 *Language,
OUT CHAR16 **ControllerName
IN EFI_COMPONENT_NAME_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
IN CHAR8 *Language,
OUT CHAR16 **ControllerName
);
/**
@@ -394,8 +394,8 @@ SdDxeComponentNameGetControllerName (
**/
EFI_STATUS
SdSetRca (
IN SD_DEVICE *Device,
OUT UINT16 *Rca
IN SD_DEVICE *Device,
OUT UINT16 *Rca
);
/**
@@ -411,8 +411,8 @@ SdSetRca (
**/
EFI_STATUS
SdSelect (
IN SD_DEVICE *Device,
IN UINT16 Rca
IN SD_DEVICE *Device,
IN UINT16 Rca
);
/**
@@ -428,9 +428,9 @@ SdSelect (
**/
EFI_STATUS
SdSendStatus (
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT UINT32 *DevStatus
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT UINT32 *DevStatus
);
/**
@@ -447,9 +447,9 @@ SdSendStatus (
**/
EFI_STATUS
SdGetCsd (
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CSD *Csd
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CSD *Csd
);
/**
@@ -466,10 +466,9 @@ SdGetCsd (
**/
EFI_STATUS
SdGetCid (
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CID *Cid
IN SD_DEVICE *Device,
IN UINT16 Rca,
OUT SD_CID *Cid
);
#endif