X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FModules%2FStorage%2FATA%2Fio.c;h=0ed5e3746d602563982f5d7d092c01e111669ff8;hb=bd5e8623e509a443d7d6e1b959b79f85b0c285b7;hp=b8a15d016424e768ec6fe6d1fdc0a9071d750ec8;hpb=51ab5f489bc356940c95cc936fd0508e8f07ea97;p=tpg%2Facess2.git diff --git a/KernelLand/Modules/Storage/ATA/io.c b/KernelLand/Modules/Storage/ATA/io.c index b8a15d01..0ed5e374 100644 --- a/KernelLand/Modules/Storage/ATA/io.c +++ b/KernelLand/Modules/Storage/ATA/io.c @@ -148,16 +148,16 @@ int ATA_SetupIO(void) IRQ_AddHandler( gATA_IRQPri, ATA_IRQHandlerPri, NULL ); IRQ_AddHandler( gATA_IRQSec, ATA_IRQHandlerSec, NULL ); - gATA_PRDTs[0].PBufAddr = MM_GetPhysAddr( (tVAddr)&gATA_Buffers[0] ); - gATA_PRDTs[1].PBufAddr = MM_GetPhysAddr( (tVAddr)&gATA_Buffers[1] ); + gATA_PRDTs[0].PBufAddr = MM_GetPhysAddr( &gATA_Buffers[0] ); + gATA_PRDTs[1].PBufAddr = MM_GetPhysAddr( &gATA_Buffers[1] ); LOG("gATA_PRDTs = {PBufAddr: 0x%x, PBufAddr: 0x%x}", gATA_PRDTs[0].PBufAddr, gATA_PRDTs[1].PBufAddr); - gaATA_PRDT_PAddrs[0] = MM_GetPhysAddr( (tVAddr)&gATA_PRDTs[0] ); + gaATA_PRDT_PAddrs[0] = MM_GetPhysAddr( &gATA_PRDTs[0] ); LOG("gaATA_PRDT_PAddrs[0] = 0x%x", gaATA_PRDT_PAddrs[0]); ATA_int_BusMasterWriteDWord(4, gaATA_PRDT_PAddrs[0]); - gaATA_PRDT_PAddrs[1] = MM_GetPhysAddr( (tVAddr)&gATA_PRDTs[1] ); + gaATA_PRDT_PAddrs[1] = MM_GetPhysAddr( &gATA_PRDTs[1] ); LOG("gaATA_PRDT_PAddrs[1] = 0x%x", gaATA_PRDT_PAddrs[1]); ATA_int_BusMasterWriteDWord(12, gaATA_PRDT_PAddrs[1]); @@ -371,6 +371,10 @@ int ATA_ReadDMA(Uint8 Disk, Uint64 Address, Uint Count, void *Buffer) { HALT(); } + + if( now() >= timeoutTime ) { + Log_Notice("ATA", "Timeout of %i ms exceeded", ATA_TIMEOUT); + } // Complete Transfer ATA_int_BusMasterWriteByte( cont * 8, 8 ); // Read and stop