From 56fb218f86b435d5407e24facd65d23065c60534 Mon Sep 17 00:00:00 2001 From: NicJA Date: Tue, 12 Mar 2013 02:12:50 +0000 Subject: [PATCH] select the clocks once the card has been probed for its scr and selected. dont shift the clockmanager's reported "max" clock speed. git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@46902 fb15a70f-31f2-0310-bbcc-cdcc74a49acc --- rom/devs/sdcard/sdcard_init.c | 37 ++++++++++++++++++++----------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/rom/devs/sdcard/sdcard_init.c b/rom/devs/sdcard/sdcard_init.c index d34ee81636..f1ab46528f 100644 --- a/rom/devs/sdcard/sdcard_init.c +++ b/rom/devs/sdcard/sdcard_init.c @@ -58,25 +58,10 @@ BOOL FNAME_SDC(StartUnit)(struct sdcard_Unit *sdcUnit) if (sdcUnit->sdcu_Flags & AF_Card_MMC) { -/* if (sdcUnit->sdcu_Flags & AF_Card_HighSpeed) - { - if (sdcUnit->sdcu_Flags & AB_Card_HighSpeed52) - FNAME_SDCBUS(SetClock)(52000000, sdcUnit->sdcu_Bus); - else - FNAME_SDCBUS(SetClock)(26000000, sdcUnit->sdcu_Bus); - } - else - FNAME_SDCBUS(SetClock)(20000000, sdcUnit->sdcu_Bus);*/ - FNAME_SDCBUS(MMCChangeFrequency)(sdcUnit); } else { -/* if (sdcUnit->sdcu_Flags & AF_Card_HighSpeed) - FNAME_SDCBUS(SetClock)(50000000, sdcUnit->sdcu_Bus); - else - FNAME_SDCBUS(SetClock)(25000000, sdcUnit->sdcu_Bus);*/ - FNAME_SDCBUS(SDSCChangeFrequency)(sdcUnit); } @@ -106,7 +91,25 @@ BOOL FNAME_SDC(StartUnit)(struct sdcard_Unit *sdcUnit) } } - + if (sdcUnit->sdcu_Flags & AF_Card_MMC) + { + if (sdcUnit->sdcu_Flags & AF_Card_HighSpeed) + { + if (sdcUnit->sdcu_Flags & AB_Card_HighSpeed52) + FNAME_SDCBUS(SetClock)(52000000, sdcUnit->sdcu_Bus); + else + FNAME_SDCBUS(SetClock)(26000000, sdcUnit->sdcu_Bus); + } + else + FNAME_SDCBUS(SetClock)(20000000, sdcUnit->sdcu_Bus); + } + else + { + if (sdcUnit->sdcu_Flags & AF_Card_HighSpeed) + FNAME_SDCBUS(SetClock)(50000000, sdcUnit->sdcu_Bus); + else + FNAME_SDCBUS(SetClock)(25000000, sdcUnit->sdcu_Bus); + } } return TRUE; } @@ -533,7 +536,7 @@ static int FNAME_SDC(Init)(struct SDCardBase *SDCardBase) LIBBASE->sdcard_Bus->sdcb_IOBase = (APTR)ARASAN_BASE; LIBBASE->sdcard_Bus->sdcb_SectorShift = 9; - LIBBASE->sdcard_Bus->sdcb_ClockMax = VCMBoxMessage[6] >> 1; + LIBBASE->sdcard_Bus->sdcb_ClockMax = VCMBoxMessage[6]; D(bug("[SDCard--] %s: Reseting SDHCI...\n", __PRETTY_FUNCTION__)); -- 2.11.4.GIT