diff options
Diffstat (limited to 'firmware/usbstack/usb_core.c')
-rw-r--r-- | firmware/usbstack/usb_core.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c index 60a88e9490..218b297455 100644 --- a/firmware/usbstack/usb_core.c +++ b/firmware/usbstack/usb_core.c | |||
@@ -286,7 +286,8 @@ static bool initialized = false; | |||
286 | static enum { DEFAULT, ADDRESS, CONFIGURED } usb_state; | 286 | static enum { DEFAULT, ADDRESS, CONFIGURED } usb_state; |
287 | 287 | ||
288 | static bool usb_core_storage_enabled = false; | 288 | static bool usb_core_storage_enabled = false; |
289 | static bool usb_core_serial_enabled = false; | 289 | /* Next one is non-static, to enable setting it from the debug menu */ |
290 | bool usb_core_serial_enabled = false; | ||
290 | static bool usb_core_charging_enabled = false; | 291 | static bool usb_core_charging_enabled = false; |
291 | #if defined(USB_BENCHMARK) | 292 | #if defined(USB_BENCHMARK) |
292 | static bool usb_core_benchmark_enabled = false; | 293 | static bool usb_core_benchmark_enabled = false; |
@@ -405,6 +406,11 @@ void usb_core_init(void) | |||
405 | 406 | ||
406 | void usb_core_exit(void) | 407 | void usb_core_exit(void) |
407 | { | 408 | { |
409 | #ifdef USB_SERIAL | ||
410 | if(usb_core_serial_enabled) | ||
411 | usb_serial_exit(); | ||
412 | #endif | ||
413 | |||
408 | if (initialized) { | 414 | if (initialized) { |
409 | usb_drv_exit(); | 415 | usb_drv_exit(); |
410 | } | 416 | } |
@@ -444,15 +450,21 @@ void usb_core_handle_transfer_completion(struct usb_transfer_completion_event_da | |||
444 | void usb_core_enable_protocol(int driver,bool enabled) | 450 | void usb_core_enable_protocol(int driver,bool enabled) |
445 | { | 451 | { |
446 | switch(driver) { | 452 | switch(driver) { |
453 | #ifdef USB_STORAGE | ||
447 | case USB_DRIVER_MASS_STORAGE: | 454 | case USB_DRIVER_MASS_STORAGE: |
448 | usb_core_storage_enabled = enabled; | 455 | usb_core_storage_enabled = enabled; |
449 | break; | 456 | break; |
457 | #endif | ||
458 | #ifdef USB_SERIAL | ||
450 | case USB_DRIVER_SERIAL: | 459 | case USB_DRIVER_SERIAL: |
451 | usb_core_serial_enabled = enabled; | 460 | usb_core_serial_enabled = enabled; |
452 | break; | 461 | break; |
462 | #endif | ||
463 | #ifdef USB_CHARGING_ONLY | ||
453 | case USB_DRIVER_CHARGING_ONLY: | 464 | case USB_DRIVER_CHARGING_ONLY: |
454 | usb_core_charging_enabled = enabled; | 465 | usb_core_charging_enabled = enabled; |
455 | break; | 466 | break; |
467 | #endif | ||
456 | } | 468 | } |
457 | } | 469 | } |
458 | 470 | ||