Author: wmb Date: 2009-07-31 20:45:34 +0200 (Fri, 31 Jul 2009) New Revision: 1263
Modified: dev/mmc/sdhci/sdhci.fth dev/mmc/sdhci/sdmmc.fth Log: SDHCI/SDMMC driver - reordered closing sequence so deferred writes get flushed before turning things off, thus avoiding command timeouts on close.
Modified: dev/mmc/sdhci/sdhci.fth =================================================================== --- dev/mmc/sdhci/sdhci.fth 2009-07-31 18:44:18 UTC (rev 1262) +++ dev/mmc/sdhci/sdhci.fth 2009-07-31 18:45:34 UTC (rev 1263) @@ -756,8 +756,12 @@ ;
: detach-card ( -- ) + intstat-on + wait-write-done + intstat-off card-clock-off card-power-off + unmap-regs ;
: attach-sdio-card ( -- okay? ) @@ -841,11 +845,8 @@
: close ( -- ) open-count 1 = if - intstat-on - wait-write-done scratch-buf d# 64 " dma-free" $call-parent then - unmap-regs open-count 1- 0 max to open-count ;
Modified: dev/mmc/sdhci/sdmmc.fth =================================================================== --- dev/mmc/sdhci/sdmmc.fth 2009-07-31 18:44:18 UTC (rev 1262) +++ dev/mmc/sdhci/sdmmc.fth 2009-07-31 18:45:34 UTC (rev 1263) @@ -57,9 +57,10 @@ ;
: close ( -- ) - " detach-card" $call-parent label-package close-package deblocker close-package + \ Close packages first in case of delayed write flush + " detach-card" $call-parent ;
: block-size ( -- n ) h# 200 ;