diff options
| author | Scott Shawcroft <scott@tannewt.org> | 2020-02-24 15:40:52 -0800 |
|---|---|---|
| committer | Scott Shawcroft <scott@tannewt.org> | 2020-02-24 15:40:52 -0800 |
| commit | 876c646d097b79fdf45b94f5d4b1024585fd5cc3 (patch) | |
| tree | 699c4f24b66c0c5e55cfc9c013fdb3005fef6632 | |
| parent | 90c67673ad440936823cbb7d5e67d717e7b1f640 (diff) | |
Fix Mac crash when waking up with an ejected CIRCUITPY
We now correctly set the reason for the unit not being ready and
always start the unit.
Fixes #2567
| -rw-r--r-- | supervisor/shared/usb/usb_msc_flash.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/supervisor/shared/usb/usb_msc_flash.c b/supervisor/shared/usb/usb_msc_flash.c index c0279f9e5..7532b6aea 100644 --- a/supervisor/shared/usb/usb_msc_flash.c +++ b/supervisor/shared/usb/usb_msc_flash.c @@ -208,6 +208,8 @@ bool tud_msc_test_unit_ready_cb(uint8_t lun) { return false; } if (ejected[lun]) { + // Set 0x3a for media not present. + tud_msc_set_sense(lun, SCSI_SENSE_NOT_READY, 0x3A, 0x00); return false; } @@ -243,10 +245,8 @@ bool tud_msc_start_stop_cb(uint8_t lun, uint8_t power_condition, bool start, boo if (disk_ioctl(current_mount, CTRL_SYNC, NULL) != RES_OK) { return false; } - } else { - // Start the unit, but only if not ejected. - return !ejected[lun]; } + // Always start the unit, even if ejected. Whether media is present is a separate check. } return true; |
