--- M:\work\UniATA\BusMaster\driver\id_ata.cpp Sun Feb 08 11:08:37 2015 +++ M:\work\UniATA\etc\v45e\driver\id_ata.cpp Mon Oct 20 18:19:54 2014 @@ -1,6 +1,6 @@ /*++ -Copyright (c) 2002-2015 Alexandr A. Telyatnikov (Alter) +Copyright (c) 2002-2014 Alexandr A. Telyatnikov (Alter) Module Name: id_ata.cpp @@ -1594,20 +1594,7 @@ if (atapiDev || !(LunExt->DeviceFlags & DFLAGS_DWORDIO_ENABLED) /*!deviceExtension->DWordIO*/) { KdPrint2((PRINT_PREFIX " use 16bit IO\n")); -#if DBG - if(atapiDev) { - j = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); - KdPrint3((PRINT_PREFIX "IssueIdentify: iReason %x\n", j)); - - j = - AtapiReadPort1(chan, IDX_ATAPI_IO1_i_ByteCountLow); - j |= - (USHORT)AtapiReadPort1(chan, IDX_ATAPI_IO1_i_ByteCountHigh) << 8; - KdPrint3((PRINT_PREFIX "IssueIdentify: wCount %x\n", j)); - - } -#endif //DBG // ATI/SII chipsets with memory-mapped IO hangs when // I call ReadBuffer(), probably due to PCI burst/prefetch enabled // Unfortunately, I don't know yet how to workaround it except @@ -5396,17 +5383,6 @@ // Fail this request. status = SRB_STATUS_ERROR; - if(!wordCount && atapiDev && (srb->Cdb[0] != SCSIOP_REQUEST_SENSE)) { - // some devices feel bad after incorrect commands and may need reset - KdPrint2((PRINT_PREFIX - "AtapiInterrupt: Try ATAPI reset\n")); - AtapiDisableInterrupts(deviceExtension, lChannel); - AtapiSoftReset(chan, DeviceNumber); - AtapiEnableInterrupts(deviceExtension, lChannel); - status = SRB_STATUS_BUS_RESET; - AtaReq->ReqState = REQ_STATE_TRANSFER_COMPLETE; - //goto IntrPrepareResetController; - } goto CompleteRequest; } // Advance data buffer pointer and bytes left. @@ -7579,11 +7555,6 @@ AtaReq->ReqState = REQ_STATE_ATAPI_EXPECTING_DATA_INTR; GetBaseStatus(chan, statusByte); - -#if DBG - statusByte = (AtapiReadPort1(chan, IDX_ATAPI_IO1_i_InterruptReason) & ATAPI_IR_Mask); - KdPrint3((PRINT_PREFIX "AtapiSendCommand: iReason %x\n", statusByte)); -#endif //DBG if(g_opt_AtapiSendDisableIntr) { AtapiEnableInterrupts(deviceExtension, lChannel);