summaryrefslogtreecommitdiff
path: root/supervisor
diff options
context:
space:
mode:
authorGadi Rotenberg <gadi@polynero.com>2020-02-09 13:25:16 +0200
committerBenny Meisels <benny.meisels@gmail.com>2020-02-12 09:57:58 +0200
commit07708f15185d96930621493c3e2886cc2e948622 (patch)
tree79c866d9d5e4f33b79df6df91c1804cbba58557f /supervisor
parentb93d6e861b80d34ff3b09f4f84a85a6bfd531f3d (diff)
Added fix to allow remount when usb enabled but msc is ejected
Diffstat (limited to 'supervisor')
-rw-r--r--supervisor/shared/usb/usb_msc_flash.c10
-rw-r--r--supervisor/usb.h1
2 files changed, 10 insertions, 1 deletions
diff --git a/supervisor/shared/usb/usb_msc_flash.c b/supervisor/shared/usb/usb_msc_flash.c
index 0376cfc1d..c0279f9e5 100644
--- a/supervisor/shared/usb/usb_msc_flash.c
+++ b/supervisor/shared/usb/usb_msc_flash.c
@@ -39,7 +39,7 @@
#define MSC_FLASH_BLOCK_SIZE 512
-static bool ejected[1];
+static bool ejected[1] = {true};
void usb_msc_mount(void) {
// Reset the ejection tracking every time we're plugged into USB. This allows for us to battery
@@ -53,6 +53,14 @@ void usb_msc_umount(void) {
}
+bool usb_msc_ejected(void) {
+ bool all_ejected = true;
+ for (uint8_t i = 0; i < sizeof(ejected); i++) {
+ all_ejected &= ejected[i];
+ }
+ return all_ejected;
+}
+
// The root FS is always at the end of the list.
static fs_user_mount_t* get_vfs(int lun) {
// TODO(tannewt): Return the mount which matches the lun where 0 is the end
diff --git a/supervisor/usb.h b/supervisor/usb.h
index 0cc361619..29280c725 100644
--- a/supervisor/usb.h
+++ b/supervisor/usb.h
@@ -44,5 +44,6 @@ void usb_init(void);
// Propagate plug/unplug events to the MSC logic.
void usb_msc_mount(void);
void usb_msc_umount(void);
+bool usb_msc_ejected(void);
#endif // MICROPY_INCLUDED_SUPERVISOR_USB_H