summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAidan MacDonald <amachronic@protonmail.com>2022-05-25 00:43:19 +0100
committerSolomon Peachy <pizza@shaftnet.org>2022-06-21 18:11:53 -0400
commit7e0492444c38f2ed350016be15b6a4d8ba489bcd (patch)
treef7fe53822d1ff95595c33b6c8964fd87dd17d6af
parent6cdd142d5c841eedb6a900cd50ee5f526f933eec (diff)
downloadrockbox-7e0492444c.tar.gz
rockbox-7e0492444c.zip
usb: remove "Ask" USB Mode (FS#13317)
USB ask mode is basically a footgun: it can't work on native targets and doesn't work reliably on hosted ones, and it continually produces a slow trickle of problems. FS#13317 gives a rundown of the issues. Removing the setting seems like the best solution for now, since a fix would be pretty involved. This partially reverts 60f581e8f5. The USB Mode setting is left in place so the option can be added back later in a non-buggy way. Change-Id: Ie01b28dd2ed95a31b509a7834d85bac8eb866098
-rw-r--r--apps/settings_list.c7
-rw-r--r--firmware/export/usb.h1
-rw-r--r--firmware/usb.c25
-rwxr-xr-xmanual/configure_rockbox/system_options.tex10
-rw-r--r--manual/rockbox_interface/main.tex15
5 files changed, 17 insertions, 41 deletions
diff --git a/apps/settings_list.c b/apps/settings_list.c
index e230a5a081..d6449d1c6f 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -2148,19 +2148,18 @@ const struct settings_list settings[] = {
LANG_USB_MODE,
USBMODE_DEFAULT,
"usb mode",
- "ask,mass storage,charge"
+ "mass storage,charge"
#if defined(DX50) || defined(DX90)
",adb"
#endif
,
#if defined(DX50) || defined(DX90)
ibasso_set_usb_mode,
- 4,
+ 3,
#else
usb_set_mode,
- 3,
+ 2,
#endif
- ID2P(LANG_ASK),
ID2P(LANG_USB_MODE_MASS_STORAGE),
ID2P(LANG_USB_MODE_CHARGE)
#if defined(DX50) || defined(DX90)
diff --git a/firmware/export/usb.h b/firmware/export/usb.h
index fe9f3bcfa1..c075fa83ec 100644
--- a/firmware/export/usb.h
+++ b/firmware/export/usb.h
@@ -134,7 +134,6 @@ enum
/* Supported usb modes. */
enum
{
- USB_MODE_ASK = 0,
USB_MODE_MASS_STORAGE,
USB_MODE_CHARGE,
USB_MODE_ADB
diff --git a/firmware/usb.c b/firmware/usb.c
index 4c122e8eea..c4d07c5533 100644
--- a/firmware/usb.c
+++ b/firmware/usb.c
@@ -491,37 +491,12 @@ static void NORETURN_ATTR usb_thread(void)
if (button_status() & ~USBPOWER_BTN_IGNORE)
new_usbmode = USB_MODE_MASS_STORAGE;
break;
-#ifndef BOOTLOADER
- case USB_MODE_ASK:
- new_usbmode = USB_MODE_ASK;
- break;
-#endif
default:
case USB_MODE_MASS_STORAGE:
if (button_status() & ~USBPOWER_BTN_IGNORE)
new_usbmode = USB_MODE_CHARGE;
break;
}
-
-#ifndef BOOTLOADER
- if (new_usbmode == USB_MODE_ASK)
- {
- push_current_activity(ACTIVITY_USBSCREEN);
- if (yesno_pop(ID2P(LANG_ENTER_USB_STORAGE_MODE_QUERY)))
- new_usbmode = USB_MODE_MASS_STORAGE;
- else
- new_usbmode = USB_MODE_CHARGE;
- pop_current_activity();
- /* Force full redraw */
-// queue_post(&button_queue, BUTTON_REDRAW, 0);
-// Alternative approach, as above is supposedly inadequate by design.
- FOR_NB_SCREENS(i)
- {
- struct screen *screen = &screens[i];
- screen->set_viewport(NULL);
- }
- }
-#endif
#endif
#ifndef USB_DETECT_BY_REQUEST
diff --git a/manual/configure_rockbox/system_options.tex b/manual/configure_rockbox/system_options.tex
index 5a95df27b1..52750f7486 100755
--- a/manual/configure_rockbox/system_options.tex
+++ b/manual/configure_rockbox/system_options.tex
@@ -870,8 +870,14 @@ therefore result in better runtime.
\opt{usb_power}{
\subsection{USB Mode}
This controls what happens with the \dap{}'s USB port is connected.
- \setting{Charge Only} and \setting{Mass Storage} will automatically enter
- that mode, and \setting{Ask} will prompt the user each time.
+ \setting{Mass Storage} allows you to transfer files, while
+ \setting{Charge Only} will only charge the battery (and allow you to keep
+ using the player). You can choose the opposite behavior by holding down any
+ button while plugging in the USB cable.
+ \nopt{fuzeplus}{
+ \note{Be aware that holding a button may still perform its normal function,
+ so it is recommended to use a button without harmful side effects, such as
+ \ActionStdUsbCharge{}.}
}
\opt{multidrive_usb}{
\subsection{USB Hide Internal Drive}
diff --git a/manual/rockbox_interface/main.tex b/manual/rockbox_interface/main.tex
index 20aa8c833e..82192829fd 100644
--- a/manual/rockbox_interface/main.tex
+++ b/manual/rockbox_interface/main.tex
@@ -848,16 +848,13 @@ properly.}
\opt{usb_power}{
\section{USB Charging}
- Whenever your \dap{} is connected to USB, it will automatically charge.
- However, depending on the \config{usb\_mode} setting, the \dap{} may also
- enter mass storage mode or prompt the user for what action to take.
- When the \dap{} is configured to enter mass storage mode or automatically
- charge, you may trigger the opposite behavior by holding down any button
- while plugging it in. Your \dap{} must already be in Rockbox for this to
- function.
+ Your \dap{} will automatically charge when connected to USB. By default
+ Rockbox will connect in mass storage mode to transfer files, but you can
+ prevent this by holding down any button while plugging in the USB cable,
+ or by changing the \setting{USB Mode} setting to \setting{Charge Only}.
\nopt{fuzeplus}{
- \note{Be aware that this button may still perform its normal function, so
- it is recommended to use a button without harmful side effects, such as
+ \note{Be aware that holding a button may still perform its normal function,
+ so it is recommended to use a button without harmful side effects, such as
\ActionStdUsbCharge{}.}
}
}