summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--firmware/export/kernel.h2
-rw-r--r--firmware/usbstack/usb_storage.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/firmware/export/kernel.h b/firmware/export/kernel.h
index 8b55a57daa..b8f2b906fd 100644
--- a/firmware/export/kernel.h
+++ b/firmware/export/kernel.h
@@ -66,6 +66,8 @@
66#define SYS_USB_DISCONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 2) 66#define SYS_USB_DISCONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 2)
67#define SYS_USB_DISCONNECTED_ACK MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 3) 67#define SYS_USB_DISCONNECTED_ACK MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 3)
68#define SYS_USB_LUN_LOCKED MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 4) 68#define SYS_USB_LUN_LOCKED MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 4)
69#define SYS_USB_READ_DATA MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 5)
70#define SYS_USB_WRITE_DATA MAKE_SYS_EVENT(SYS_EVENT_CLS_USB, 6)
69#define SYS_POWEROFF MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 0) 71#define SYS_POWEROFF MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 0)
70#define SYS_CHARGER_CONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 1) 72#define SYS_CHARGER_CONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 1)
71#define SYS_CHARGER_DISCONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 2) 73#define SYS_CHARGER_DISCONNECTED MAKE_SYS_EVENT(SYS_EVENT_CLS_POWER, 2)
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c
index ed9efd67c3..5f28638224 100644
--- a/firmware/usbstack/usb_storage.c
+++ b/firmware/usbstack/usb_storage.c
@@ -966,6 +966,7 @@ static void handle_scsi(struct command_block_wrapper* cbw)
966 cbw->command_block[8]); 966 cbw->command_block[8]);
967 967
968 //logf("scsi read %d %d", cur_cmd.sector, cur_cmd.count); 968 //logf("scsi read %d %d", cur_cmd.sector, cur_cmd.count);
969 queue_broadcast(SYS_USB_READ_DATA, (lun<<16)+cur_cmd.count);
969 970
970 if((cur_cmd.sector + cur_cmd.count) > block_count) { 971 if((cur_cmd.sector + cur_cmd.count) > block_count) {
971 send_csw(UMS_STATUS_FAIL); 972 send_csw(UMS_STATUS_FAIL);
@@ -1015,6 +1016,8 @@ static void handle_scsi(struct command_block_wrapper* cbw)
1015 cur_cmd.count = block_size_mult * 1016 cur_cmd.count = block_size_mult *
1016 (cbw->command_block[7] << 8 | 1017 (cbw->command_block[7] << 8 |
1017 cbw->command_block[8]); 1018 cbw->command_block[8]);
1019
1020 queue_broadcast(SYS_USB_WRITE_DATA, (lun<<16)+cur_cmd.count);
1018 /* expect data */ 1021 /* expect data */
1019 if((cur_cmd.sector + cur_cmd.count) > block_count) { 1022 if((cur_cmd.sector + cur_cmd.count) > block_count) {
1020 send_csw(UMS_STATUS_FAIL); 1023 send_csw(UMS_STATUS_FAIL);