From: Michael McMaster Date: Tue, 15 Feb 2022 11:35:03 +0000 (+1000) Subject: Fix SD hotswap regression X-Git-Tag: v6.4.14~3 X-Git-Url: http://git.codesrc.com/gitweb.cgi?a=commitdiff_plain;h=a43ac717f550a166d27ca4cf21c941e43a8fc8e0;p=SCSI2SD-V6.git Fix SD hotswap regression --- diff --git a/src/firmware/bsp_driver_sd.c b/src/firmware/bsp_driver_sd.c index 51f04718..b08ee418 100755 --- a/src/firmware/bsp_driver_sd.c +++ b/src/firmware/bsp_driver_sd.c @@ -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) diff --git a/src/firmware/sd.c b/src/firmware/sd.c index d717fb25..33c6371f 100755 --- a/src/firmware/sd.c +++ b/src/firmware/sd.c @@ -233,7 +233,7 @@ int sdInit() // power on if (!firstInit) { - for (int i = 0; cs && i < 50; ++i) + for (int i = 0; cs && (i < 50); ++i) { cs = HAL_GPIO_ReadPin(nSD_CD_GPIO_Port, nSD_CD_Pin) ? 0 : 1; s2s_delay_ms(5);