summaryrefslogtreecommitdiff
path: root/src/device
diff options
context:
space:
mode:
authorZixun LI <[email protected]>2026-07-05 16:14:01 +0200
committerGitHub <[email protected]>2026-07-05 16:14:01 +0200
commit3579ea1888936bfe46b5a5635727707168b62223 (patch)
treebc43090539d6484ae061e4afe7923e87c429ad6a /src/device
parentbe2218e3d842935d3fd41de8be9e12f55ef0190f (diff)
parent073657a04e727203d0363dfb0be195b4b9bcb451 (diff)
Merge pull request #3753 from Old-Ding/codex/usbd-driver-count-warning
Fix usbd empty builtin driver warning
Diffstat (limited to 'src/device')
-rw-r--r--src/device/usbd.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/src/device/usbd.c b/src/device/usbd.c
index 70141a5bb..7a6e13f8d 100644
--- a/src/device/usbd.c
+++ b/src/device/usbd.c
@@ -361,13 +361,12 @@ static const usbd_class_driver_t _usbd_driver[] = {
#endif
};
-enum { BUILTIN_DRIVER_COUNT = TU_ARRAY_SIZE(_usbd_driver) };
-
// Additional class drivers implemented by application
-static const usbd_class_driver_t *_app_driver = NULL;
-static uint8_t _app_driver_count = 0;
+static const usbd_class_driver_t *_app_driver = NULL;
+static const uint8_t _builtin_driver_count = TU_ARRAY_SIZE(_usbd_driver);
+static uint8_t _app_driver_count = 0;
-#define TOTAL_DRIVER_COUNT ((uint8_t) (_app_driver_count + BUILTIN_DRIVER_COUNT))
+#define TOTAL_DRIVER_COUNT ((uint8_t) (_app_driver_count + _builtin_driver_count))
// virtually joins built-in and application drivers together.
// Application is positioned first to allow overwriting built-in ones.
@@ -378,7 +377,7 @@ TU_ATTR_ALWAYS_INLINE static inline usbd_class_driver_t const * get_driver(uint8
driver = &_app_driver[drvid];
} else{
drvid -= _app_driver_count;
- if (drvid < BUILTIN_DRIVER_COUNT) {
+ if (_builtin_driver_count > 0 && drvid < _builtin_driver_count) {
driver = &_usbd_driver[drvid];
}
}
@@ -563,7 +562,7 @@ bool tud_rhport_init(uint8_t rhport, const tusb_rhport_init_t* rh_init) {
// Get application driver if available
_app_driver = usbd_app_driver_get_cb(&_app_driver_count);
- TU_ASSERT(_app_driver_count + BUILTIN_DRIVER_COUNT <= UINT8_MAX);
+ TU_ASSERT(_app_driver_count + _builtin_driver_count <= UINT8_MAX);
// Init class drivers
for (uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++) {