liblitesdcard/[spi]sdcard: avoid redundant (re-)initialization
authorGabriel Somlo <gsomlo@gmail.com>
Wed, 17 Jun 2020 21:21:33 +0000 (17:21 -0400)
committerGabriel Somlo <gsomlo@gmail.com>
Wed, 17 Jun 2020 21:21:33 +0000 (17:21 -0400)
litex/soc/software/liblitesdcard/sdcard.c
litex/soc/software/liblitesdcard/spisdcard.c

index f3108f8ace62cd3b28bc0218234f09fec7f76b81..abf8e7dbd74ac03ef4736a3363d46d2990747c23 100644 (file)
@@ -728,7 +728,8 @@ DSTATUS disk_status(uint8_t drv) {
 
 DSTATUS disk_initialize(uint8_t drv) {
        if (drv) return STA_NOINIT;
-       sdcardstatus = sdcard_init() ? 0 : STA_NOINIT;
+       if (sdcardstatus)
+               sdcardstatus = sdcard_init() ? 0 : STA_NOINIT;
        return sdcardstatus;
 }
 
index 510c34fe7a8f2ba128bdff88543d0e4899c9d412..7131d083069d564017af934c7ef445d6367076c2 100644 (file)
@@ -277,8 +277,10 @@ DSTATUS disk_status(uint8_t drv) {
 
 DSTATUS disk_initialize(uint8_t drv) {
     if (drv) return STA_NOINIT;
-    spisdcardstatus = spisdcard_init() ? 0 : STA_NOINIT;
-    spisdcard_deselect();
+    if (spisdcardstatus) {
+        spisdcardstatus = spisdcard_init() ? 0 : STA_NOINIT;
+        spisdcard_deselect();
+    }
     return spisdcardstatus;
 }