summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/target/arm/sandisk/ata-c200_e200.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/firmware/target/arm/sandisk/ata-c200_e200.c b/firmware/target/arm/sandisk/ata-c200_e200.c
index 7a4328df80..150b08fd92 100644
--- a/firmware/target/arm/sandisk/ata-c200_e200.c
+++ b/firmware/target/arm/sandisk/ata-c200_e200.c
@@ -1045,13 +1045,22 @@ static void sd_thread(void)
1045 { 1045 {
1046#ifdef HAVE_HOTSWAP 1046#ifdef HAVE_HOTSWAP
1047 case SYS_HOTSWAP_INSERTED: 1047 case SYS_HOTSWAP_INSERTED:
1048 mutex_lock(&sd_mtx); /* Lock-out card activity */
1049 card_info[1].initialized = 0;
1050 sd_status[1].retry = 0;
1051 disk_unmount(1); /* Force remount */
1048 disk_mount(1); /* mount microSD card */ 1052 disk_mount(1); /* mount microSD card */
1049 queue_broadcast(SYS_FS_CHANGED, 0); 1053 queue_broadcast(SYS_FS_CHANGED, 0);
1054 mutex_unlock(&sd_mtx);
1050 break; 1055 break;
1051 1056
1052 case SYS_HOTSWAP_EXTRACTED: 1057 case SYS_HOTSWAP_EXTRACTED:
1058 mutex_lock(&sd_mtx); /* Lock-out card activity */
1059 card_info[1].initialized = 0;
1060 sd_status[1].retry = 0;
1053 disk_unmount(1); /* release "by force" */ 1061 disk_unmount(1); /* release "by force" */
1054 queue_broadcast(SYS_FS_CHANGED, 0); 1062 queue_broadcast(SYS_FS_CHANGED, 0);
1063 mutex_unlock(&sd_mtx);
1055 break; 1064 break;
1056#endif 1065#endif
1057 case SYS_TIMEOUT: 1066 case SYS_TIMEOUT: