From 9560d0813f0872a1b8dfb337922b0ab5cc4cb811 Mon Sep 17 00:00:00 2001 From: Rocky04 Date: Wed, 2 Aug 2023 15:25:08 +0200 Subject: Set unmounted on configuration reset --- src/device/usbd.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/device/usbd.c b/src/device/usbd.c index 9429cf664..b4ca63c9c 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -965,7 +965,14 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num) } // invoke callback - if (tud_mount_cb) tud_mount_cb(); + if (cfg_num) + { + if (tud_mount_cb) tud_mount_cb(); + } + else + { + if (tud_umount_cb) tud_umount_cb(); + } return true; } -- cgit v1.3.1 From c959e65edde0b07b80c3e12f177afd938abbdcd6 Mon Sep 17 00:00:00 2001 From: Rocky04 Date: Mon, 7 Aug 2023 21:16:41 +0200 Subject: Fixing wrong callback placement --- src/device/usbd.c | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'src') diff --git a/src/device/usbd.c b/src/device/usbd.c index b4ca63c9c..2daf91d77 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -711,7 +711,16 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const } // switch to new configuration if not zero - if ( cfg_num ) TU_ASSERT( process_set_config(rhport, cfg_num) ); + if ( cfg_num ) + { + TU_ASSERT( process_set_config(rhport, cfg_num) ); + + if ( tud_mount_cb ) tud_mount_cb(); + } + else + { + if ( tud_umount_cb ) tud_umount_cb(); + } } _usbd_dev.cfg_num = cfg_num; @@ -964,16 +973,6 @@ static bool process_set_config(uint8_t rhport, uint8_t cfg_num) TU_ASSERT(drv_id < TOTAL_DRIVER_COUNT); } - // invoke callback - if (cfg_num) - { - if (tud_mount_cb) tud_mount_cb(); - } - else - { - if (tud_umount_cb) tud_umount_cb(); - } - return true; } -- cgit v1.3.1 From 9602c06f8d52212b55b02533e188e91b7192c080 Mon Sep 17 00:00:00 2001 From: Rocky04 Date: Mon, 7 Aug 2023 21:25:50 +0200 Subject: Correcting comments --- src/device/usbd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/device/usbd.c b/src/device/usbd.c index 2daf91d77..156b92ce1 100644 --- a/src/device/usbd.c +++ b/src/device/usbd.c @@ -710,9 +710,10 @@ static bool process_control_request(uint8_t rhport, tusb_control_request_t const _usbd_dev.speed = speed; // restore speed } - // switch to new configuration if not zero + // Handle the new configuration and execute the corresponding callback if ( cfg_num ) { + // switch to new configuration if not zero TU_ASSERT( process_set_config(rhport, cfg_num) ); if ( tud_mount_cb ) tud_mount_cb(); -- cgit v1.3.1