usb: core: handle apple vendor usb request

rockbox-gerrit-noreply--- via rockbox-cvs <[email protected]> Sun, 3 May 2026 13:03:51 -0400
Newsgroups gmane.comp.systems.archos.rockbox.cvs
Message-ID <[email protected]>
commit 757e683506a45c20e824c581e6961b3ac7137faf
Author: mojyack <[email protected]>
Date:   Sun Nov 23 16:39:43 2025 +0900

    usb: core: handle apple vendor usb request
    
    Change-Id: Iab5135774353630e7bce4939f40ca35940e214f3

diff --git a/firmware/usbstack/usb_core.c b/firmware/usbstack/usb_core.c
index ba4bd82145..bd8e3eaa58 100644
--- a/firmware/usbstack/usb_core.c
+++ b/firmware/usbstack/usb_core.c
@@ -1039,6 +1039,11 @@ static void request_handler_device(struct usb_ctrlrequest* req, void* reqdata)
             response_data[1] = 0;
             usb_drv_control_response(USB_CONTROL_ACK, response_data, 2);
             break;
+        #ifdef USB_ENABLE_IAP
+        case USB_REQ_APPLE_SET_AVAIL_CURRENT:
+            usb_drv_control_response(USB_CONTROL_ACK, NULL, 0);
+            break;
+        #endif
         default:
             logf("bad req:desc %d:%d", req->bRequest, req->wValue);
             usb_drv_control_response(USB_CONTROL_STALL, NULL, 0);
diff --git a/firmware/usbstack/usb_iap.h b/firmware/usbstack/usb_iap.h
index 8825d56514..f807009830 100644
--- a/firmware/usbstack/usb_iap.h
+++ b/firmware/usbstack/usb_iap.h
@@ -21,6 +21,9 @@
 #include "usb_core.h"
 #include "usb_class_driver.h"
 
+/* [2] P.32 Table 2-8 USB Device Vendor Request to set available current from accessory (USB Device Mode only) */
+#define USB_REQ_APPLE_SET_AVAIL_CURRENT (0x40)
+
 extern struct usb_class_driver_ep_allocation usb_iap_ep_allocs[2];
 
 int  usb_iap_request_endpoints(struct usb_class_driver*);
-- 
rockbox-cvs mailing list
[email protected]
https://lists.haxx.se/mailman/listinfo/rockbox-cvs