X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Modules%2FStorage%2FATA%2Fmain.c;h=2bb151da2d752f98fe63d4df7f407fb75131ced9;hb=156885e938b60fee9d061d989ae7711c9aeea493;hp=1ba124b59426147b30d83152964be388aa3eef53;hpb=a0f4dde15a97a206bf88109fecde52576b373109;p=tpg%2Facess2.git diff --git a/Modules/Storage/ATA/main.c b/Modules/Storage/ATA/main.c index 1ba124b5..2bb151da 100644 --- a/Modules/Storage/ATA/main.c +++ b/Modules/Storage/ATA/main.c @@ -112,16 +112,16 @@ int ATA_Install() int ret; ret = ATA_SetupIO(); - if(ret != 1) return ret; + if(ret) return ret; ATA_SetupPartitions(); ATA_SetupVFS(); if( DevFS_AddDevice( &gATA_DriverInfo ) == 0 ) - return MODULE_INIT_FAILURE; + return MODULE_ERR_MISC; - return MODULE_INIT_SUCCESS; + return MODULE_ERR_OK; } /** @@ -141,9 +141,11 @@ int ATA_SetupIO() gATA_BusMasterBase = PCI_GetBAR4( ent ); if( gATA_BusMasterBase == 0 ) { Warning("It seems that there is no Bus Master Controller on this machine. Get one"); - LEAVE('i', MODULE_INIT_FAILURE); - return MODULE_INIT_FAILURE; + LEAVE('i', MODULE_ERR_NOTNEEDED); + return MODULE_ERR_NOTNEEDED; } + + // Map memory if( !(gATA_BusMasterBase & 1) ) { if( gATA_BusMasterBase < 0x100000 ) @@ -157,6 +159,7 @@ int ATA_SetupIO() LOG("gATA_BusMasterBase = 0x%x", gATA_BusMasterBase & ~1); } + // Register IRQs and get Buffers IRQ_AddHandler( gATA_IRQPri, ATA_IRQHandlerPri ); IRQ_AddHandler( gATA_IRQSec, ATA_IRQHandlerSec ); @@ -172,11 +175,13 @@ int ATA_SetupIO() LOG("addr = 0x%x", addr); ATA_int_BusMasterWriteDWord(12, addr); + // Enable controllers outb(IDE_PRI_BASE+1, 1); outb(IDE_SEC_BASE+1, 1); - LEAVE('i', MODULE_INIT_SUCCESS); - return MODULE_INIT_SUCCESS; + // return + LEAVE('i', MODULE_ERR_OK); + return MODULE_ERR_OK; } /**