summaryrefslogtreecommitdiffstats
path: root/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
diff options
context:
space:
mode:
Diffstat (limited to 'MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c')
-rw-r--r--MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c117
1 files changed, 18 insertions, 99 deletions
diff --git a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
index b9d16140b8..5f362d1e15 100644
--- a/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
+++ b/MdeModulePkg/Bus/Ata/AtaAtapiPassThru/IdeMode.c
@@ -1,7 +1,7 @@
/** @file
Header file for AHCI mode of ATA host controller.
- Copyright (c) 2010 - 2013, Intel Corporation. All rights reserved.<BR>
+ Copyright (c) 2010 - 2014, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -1942,56 +1942,6 @@ AtaPacketReadWrite (
}
/**
- Sumbit ATAPI request sense command.
-
- @param[in] PciIo Pointer to the EFI_PCI_IO_PROTOCOL instance
- @param[in] IdeRegisters Pointer to EFI_IDE_REGISTERS which is used to
- store the IDE i/o port registers' base addresses
- @param[in] Channel The channel number of device.
- @param[in] Device The device number of device.
- @param[in] SenseData A pointer to store sense data.
- @param[in] SenseDataLength The sense data length.
- @param[in] Timeout The timeout value to execute this cmd, uses 100ns as a unit.
-
- @retval EFI_SUCCESS Send out the ATAPI packet command successfully.
- @retval EFI_DEVICE_ERROR The device failed to send data.
-
-**/
-EFI_STATUS
-EFIAPI
-AtaPacketRequestSense (
- IN EFI_PCI_IO_PROTOCOL *PciIo,
- IN EFI_IDE_REGISTERS *IdeRegisters,
- IN UINT8 Channel,
- IN UINT8 Device,
- IN VOID *SenseData,
- IN UINT8 SenseDataLength,
- IN UINT64 Timeout
- )
-{
- EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET Packet;
- UINT8 Cdb[12];
- EFI_STATUS Status;
-
- ZeroMem (&Packet, sizeof (EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET));
- ZeroMem (Cdb, 12);
-
- Cdb[0] = ATA_CMD_REQUEST_SENSE;
- Cdb[4] = SenseDataLength;
-
- Packet.Timeout = Timeout;
- Packet.Cdb = Cdb;
- Packet.CdbLength = 12;
- Packet.DataDirection = EFI_EXT_SCSI_DATA_DIRECTION_READ;
- Packet.InDataBuffer = SenseData;
- Packet.InTransferLength = SenseDataLength;
-
- Status = AtaPacketCommandExecute (PciIo, IdeRegisters, Channel, Device, &Packet);
-
- return Status;
-}
-
-/**
This function is used to send out ATAPI commands conforms to the Packet Command
with PIO Data In Protocol.
@@ -2017,7 +1967,6 @@ AtaPacketCommandExecute (
IN EFI_EXT_SCSI_PASS_THRU_SCSI_REQUEST_PACKET *Packet
)
{
- EFI_STATUS PacketCommandStatus;
EFI_ATA_COMMAND_BLOCK AtaCommandBlock;
EFI_STATUS Status;
UINT8 Count;
@@ -2083,56 +2032,26 @@ AtaPacketCommandExecute (
// Read/Write the data of ATAPI Command
//
if (Packet->DataDirection == EFI_EXT_SCSI_DATA_DIRECTION_READ) {
- PacketCommandStatus = AtaPacketReadWrite (
- PciIo,
- IdeRegisters,
- Packet->InDataBuffer,
- Packet->InTransferLength,
- TRUE,
- Packet->Timeout
- );
+ Status = AtaPacketReadWrite (
+ PciIo,
+ IdeRegisters,
+ Packet->InDataBuffer,
+ Packet->InTransferLength,
+ TRUE,
+ Packet->Timeout
+ );
} else {
- PacketCommandStatus = AtaPacketReadWrite (
- PciIo,
- IdeRegisters,
- Packet->OutDataBuffer,
- Packet->OutTransferLength,
- FALSE,
- Packet->Timeout
- );
- }
-
- if (!EFI_ERROR (PacketCommandStatus)) {
- return PacketCommandStatus;
+ Status = AtaPacketReadWrite (
+ PciIo,
+ IdeRegisters,
+ Packet->OutDataBuffer,
+ Packet->OutTransferLength,
+ FALSE,
+ Packet->Timeout
+ );
}
- //
- // Return SenseData if PacketCommandStatus matches
- // the following return codes.
- //
- if ((PacketCommandStatus == EFI_BAD_BUFFER_SIZE) ||
- (PacketCommandStatus == EFI_DEVICE_ERROR) ||
- (PacketCommandStatus == EFI_TIMEOUT)) {
-
- //
- // avoid submit request sense command continuously.
- //
- if ((Packet->SenseData == NULL) || (((UINT8 *)Packet->Cdb)[0] == ATA_CMD_REQUEST_SENSE)) {
- return PacketCommandStatus;
- }
-
- AtaPacketRequestSense (
- PciIo,
- IdeRegisters,
- Channel,
- Device,
- Packet->SenseData,
- Packet->SenseDataLength,
- Packet->Timeout
- );
- }
-
- return PacketCommandStatus;
+ return Status;
}