usb: Fix usb mode not initialized/restored on the DX50/DX90

* Devices with ADB now have HAVE_USB_ADB
 * DX50/DX90 no longer set USB_NONE
   * stub out necessary functions
 * usb_set_mode() and global_settings.usb_mode are now:
   * called for all devices with (HAVE_USB_ADB | HAVE_USB_POWER)
   * wrapped with consistent #ifdefs

Fixes regression in ce88de54b8

Change-Id: Ib0c16082fe237e8159cd42847355186ea5c74589
This commit is contained in:
Solomon Peachy 2026-07-03 07:40:46 -04:00
parent 412a78dd5f
commit f11c89aae2
10 changed files with 50 additions and 40 deletions

View file

@ -58,7 +58,7 @@
#include "onplay.h"
#include "misc.h"
#if defined(DX50) || defined(DX90) || (defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR))
#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER))
#define HAVE_USB_MODE
#endif

View file

@ -108,11 +108,6 @@ static long lasttime = 0;
#if defined(DX50) || defined(DX90)
#include "governor-ibasso.h"
#include "usb-ibasso.h"
#endif
#if (defined(HIBY_R3PROII) || defined(HIBY_R1))
#include "usb-hiby-gadget.h"
#endif
#ifdef LOGF_ENABLE
@ -1130,7 +1125,7 @@ void settings_apply(bool read_disk)
memcpy(&calibration_parameters, &global_settings.ts_calibration_data, sizeof(struct touchscreen_parameter));
#endif
#if defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR)
#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER))
usb_set_mode(global_settings.usb_mode);
#endif
#if defined(HAVE_GENERAL_PURPOSE_LED)

View file

@ -915,7 +915,7 @@ struct user_settings
#if defined(DX50) || defined(DX90)
int governor;
#endif
#if defined(DX50) || defined(DX90) || (defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR))
#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER))
int usb_mode;
#endif
#if defined(BUTTON_REC) || \

View file

@ -72,7 +72,6 @@
#if defined(DX50) || defined(DX90)
#include "governor-ibasso.h"
#include "usb-ibasso.h"
#endif
#define UNUSED {.RESERVED=NULL}
@ -2368,31 +2367,26 @@ const struct settings_list settings[] = {
"Powersave",
"Performance"),
#endif
#if defined(DX50) || defined(DX90) || (defined(HAVE_USB_POWER) && !defined(USB_NONE) && !defined(SIMULATOR))
#if !defined(SIMULATOR) && !defined(USB_NONE) && (defined(HAVE_USB_ADB) || defined(HAVE_USB_POWER))
CHOICE_SETTING(0,
usb_mode,
LANG_USB_MODE,
USBMODE_DEFAULT,
"usb mode",
"mass storage,charge"
#if defined(DX50) || defined(DX90) || defined(HIBY_R3PROII) || defined(HIBY_R1)
#if defined(HAVE_USB_ADB)
",adb"
#endif
,
#if defined(DX50) || defined(DX90)
ibasso_set_usb_mode,
3,
#else
usb_set_mode,
#if defined(HIBY_R3PROII) || defined(HIBY_R1)
#if defined(HAVE_USB_ADB)
3,
#else
2,
#endif
#endif
ID2P(LANG_USB_MODE_MASS_STORAGE),
ID2P(LANG_USB_MODE_CHARGE)
#if defined(DX50) || defined(DX90) || defined(HIBY_R3PROII) || defined(HIBY_R1)
#if defined(HAVE_USB_ADB)
,ID2P(LANG_USB_MODE_ADB)
#endif
),

View file

@ -83,6 +83,8 @@
#define BOOTDIR "/.rockbox"
/* USB */
#define HAVE_USB_ADB
#define HAVE_USB_POWER
#define USB_VID_STR "32BB"
#define USB_PID_STR "0101"

View file

@ -86,6 +86,8 @@
#define BOOTDIR "/.rockbox"
/* USB */
#define HAVE_USB_ADB
#define HAVE_USB_POWER
#define USB_VID_STR "32BB"
#define USB_PID_STR "0101"

View file

@ -35,8 +35,8 @@
#define MODEL_NAME "iBasso DX50"
#define USB_NONE
#define HAVE_USB_POWER
#define HAVE_USB_ADB
/* define this if you have a colour LCD */
#define HAVE_LCD_COLOR

View file

@ -35,8 +35,8 @@
#define MODEL_NAME "iBasso DX90"
#define USB_NONE
#define HAVE_USB_POWER
#define HAVE_USB_ADB
/* define this if you have a colour LCD */
#define HAVE_LCD_COLOR

View file

@ -87,7 +87,26 @@ void ibasso_set_usb_mode(int mode)
}
}
bool usb_powered_only(void)
void usb_enable(bool on)
{
return false;
(void)on; // XXX maybe implement?
}
int usb_detect(void)
{
return 0; // XXX figure this out?
}
void usb_init_device(void)
{
// XXX maybe something?
}
int disk_mount_all(void)
{
return 1; // XXX maybe do sometihng?
}
int disk_unmount_all(void)
{
return 1; // XXX maybe do sometihng?
}

View file

@ -53,6 +53,9 @@
#if defined(HIBY_R3PROII) || defined(HIBY_R1)
#include "usb-hiby-gadget.h"
#endif
#if defined(DX50) || defined(DX90)
#include "usb-ibasso.h"
#endif
#if defined(IPOD_ACCESSORY_PROTOCOL)
#include "iap.h"
@ -73,12 +76,24 @@
bool do_screendump_instead_of_usb = false;
#if !defined(SIMULATOR) && !defined(USB_NONE)
/* We assume that the USB cable is extracted */
static int usb_state = USB_EXTRACTED;
#if (CONFIG_STORAGE & STORAGE_MMC) && defined(USB_FULL_INIT) && !defined(HAVE_USBSTACK)
static int usb_mmc_countdown = 0;
#endif
#if defined(HAVE_USB_POWER) || defined(HAVE_USB_ADB)
static bool usb_power_only = false;
static int usb_mode = USBMODE_DEFAULT;
void usb_set_mode(int mode)
{
usb_mode = mode;
#if defined(DX50) || defined(DX90)
ibasso_set_usb_mode(mode);
#elif defined(HIBY_R3PROII) || defined(HIBY_R1)
hiby_set_usb_mode(mode);
#endif
}
#endif
#ifdef USB_FULL_INIT
/* Make sure there's enough stack space for screendump */
@ -106,11 +121,6 @@ static int usb_audio = 0;
static bool usb_host_present = false;
static int usb_num_acks_to_expect = 0;
static uint32_t usb_broadcast_seqnum = 0x80000000;
#ifdef HAVE_USB_POWER
static int usb_mode = USBMODE_DEFAULT;
static bool usb_power_only = false;
#endif
#if defined(USB_FIREWIRE_HANDLING)
static void try_reboot(void)
{
@ -149,18 +159,6 @@ static inline bool usb_do_screendump(void)
return false;
}
#ifdef HAVE_USB_POWER
void usb_set_mode(int mode)
{
usb_mode = mode;
#if defined(DX50) || defined(DX90)
ibasso_set_usb_mode(mode);
#elif defined(HIBY_R3PROII) || defined(HIBY_R1)
hiby_set_usb_mode(mode);
#endif
}
#endif
#ifdef USB_FIREWIRE_HANDLING
static inline bool usb_reboot_button(void)
{