From c48fd62a582f389773350904b7652f4310ea5b9d Mon Sep 17 00:00:00 2001 From: Dominic Clifton Date: Thu, 15 Apr 2021 02:56:37 +0200 Subject: [PATCH] Fix infinite loop in SD card initialisation failure when CONFIG_IN_SDCARD is used. Caused by there being no default for the SDCard config resulting in an empty sdcard vtable. --- src/main/pg/sdcard.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/main/pg/sdcard.c b/src/main/pg/sdcard.c index 61660abf6..6ecc8e826 100644 --- a/src/main/pg/sdcard.c +++ b/src/main/pg/sdcard.c @@ -45,7 +45,17 @@ void pgResetFn_sdcardConfig(sdcardConfig_t *config) // On generic targets, SPI has precedence over SDIO; SDIO must be post-flash configured. config->useDma = false; config->device = SPI_DEV_TO_CFG(SPIINVALID); + +#ifdef CONFIG_IN_SDCARD + // CONFIG_ID_SDDCARD requires a default mode. +#if defined(USE_SDCARD_SDIO) + config->mode = SDCARD_MODE_SDIO; +#elif defined(USE_SDCARD_SPI) + config->mode = SDCARD_MODE_SPI; +#endif +#else config->mode = SDCARD_MODE_NONE; +#endif #ifdef USE_SDCARD_SPI // These settings do not work for Unified Targets