[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rockbox-cvs
Subject:    FS13257:  Fix inconsistent defaults in the USB mode selection
From:       rockbox-gerrit-noreply--- via rockbox-cvs <rockbox-cvs () cool ! haxx ! se>
Date:       2020-11-16 17:11:42
Message-ID: 202011161711.0AGHBgjD4136533 () stuffed ! shaftnet ! org
[Download RAW message or body]

commit 9c68c69cf029b22587f4a7225261a45e5391a242
Author: Solomon Peachy <pizza@shaftnet.org>
Date:   Mon Nov 16 11:32:12 2020 -0500

    FS13257:  Fix inconsistent defaults in the USB mode selection
    
    Change-Id: I44894d13f070313ad326ce68018556573e35aad9

diff --git a/apps/settings.c b/apps/settings.c
index b72808b510..59cb480c95 100644
--- a/apps/settings.c
+++ b/apps/settings.c
@@ -1025,6 +1025,10 @@ void settings_apply(bool read_disk)
     usb_charging_enable(global_settings.usb_charging);
 #endif
 
+#ifdef HAVE_USB_POWER
+    usb_set_mode(global_settings.usb_mode);
+#endif
+
 #ifdef HAVE_TOUCHSCREEN
     touchscreen_set_mode(global_settings.touch_mode);
     memcpy(&calibration_parameters, &global_settings.ts_calibration_data, \
                sizeof(struct touchscreen_parameter));
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 17720b5145..71085906ce 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -2161,7 +2161,7 @@ const struct settings_list settings[] = {
     CHOICE_SETTING(0,
                    usb_mode,
                    LANG_USB_MODE,
-                   USB_MODE_MASS_STORAGE,
+                   USBMODE_DEFAULT,
                    "usb mode",
                    "ask,mass storage,charge"
 #if defined(DX50) || defined(DX90)
diff --git a/firmware/export/usb.h b/firmware/export/usb.h
index edc37bd5b6..2bcd95ef81 100644
--- a/firmware/export/usb.h
+++ b/firmware/export/usb.h
@@ -145,6 +145,13 @@ enum
 #if !defined(USBPOWER_BTN_IGNORE)
 #define USBPOWER_BTN_IGNORE 0
 #endif
+
+#if defined(BOOTLOADER)
+#define USBMODE_DEFAULT USB_MODE_MASS_STORAGE
+#else
+#define USBMODE_DEFAULT USB_MODE_MASS_STORAGE
+#endif
+
 #endif
 
 #ifdef HAVE_USBSTACK
diff --git a/firmware/usb.c b/firmware/usb.c
index aca2683d58..8c6eae9b3f 100644
--- a/firmware/usb.c
+++ b/firmware/usb.c
@@ -95,8 +95,8 @@ static bool usb_host_present = false;
 static int usb_num_acks_to_expect = 0;
 static long usb_last_broadcast_tick = 0;
 #ifdef HAVE_USB_POWER
-static int usb_mode = USB_MODE_ASK;
-static int new_usbmode = USB_MODE_ASK;
+static int usb_mode = USBMODE_DEFAULT;
+static int new_usbmode = USBMODE_DEFAULT;
 #endif
 
 static int usb_release_exclusive_storage(void);
@@ -476,6 +476,7 @@ static void NORETURN_ATTR usb_thread(void)
 
             /* Power (charging-only) button */
 #ifdef HAVE_USB_POWER
+            new_usbmode = usb_mode;
             switch (usb_mode) {
             case USB_MODE_CHARGE:
             case USB_MODE_ADB:
@@ -491,7 +492,7 @@ static void NORETURN_ATTR usb_thread(void)
             case USB_MODE_MASS_STORAGE:
                 if (button_status() & ~USBPOWER_BTN_IGNORE)
                     new_usbmode = USB_MODE_CHARGE;
-                    break;
+                break;
 	    }
 
 #ifndef BOOTLOADER
_______________________________________________
rockbox-cvs mailing list
rockbox-cvs@cool.haxx.se
https://cool.haxx.se/cgi-bin/mailman/listinfo/rockbox-cvs


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic