]> localhost Git - SCSI2SD-V6.git/commitdiff
Fix SD hotswap regression
authorMichael McMaster <michael@codesrc.com>
Tue, 15 Feb 2022 11:35:03 +0000 (21:35 +1000)
committerMichael McMaster <michael@codesrc.com>
Tue, 15 Feb 2022 11:35:03 +0000 (21:35 +1000)
src/firmware/bsp_driver_sd.c
src/firmware/sd.c

index 51f047181b3b7eced23b9c5a1d1e2899aac73ed3..b08ee418e2a35fd8189d275618c4e16f4855514b 100755 (executable)
@@ -56,6 +56,12 @@ uint8_t BSP_SD_Init(void)
     {
         return MSD_ERROR;
     }
+
+    // Reset defaults. High-speed mode can be incorrectly set if user removed then
+    // inserted a new SD card and we re-run initialisation.
+    hsd.Init.ClockBypass = SDIO_CLOCK_BYPASS_DISABLE;
+    hsd.Init.BusWide = SDIO_BUS_WIDE_1B;
+
     SD_state = HAL_SD_Init(&hsd);
 #ifdef BUS_4BITS
     if (SD_state == HAL_OK)
index d717fb254a3eee004a30fb356f751b23f7228713..33c6371f04a2296cc79322092e0f8c138a21f8b5 100755 (executable)
@@ -233,7 +233,7 @@ int sdInit()
             // power on\r
             if (!firstInit)\r
             {\r
-                for (int i = 0; cs && i < 50; ++i)\r
+                for (int i = 0; cs && (i < 50); ++i)\r
                 {\r
                     cs = HAL_GPIO_ReadPin(nSD_CD_GPIO_Port, nSD_CD_Pin) ? 0 : 1;\r
                     s2s_delay_ms(5);\r