Save setup_count on bus reset.
This commit is contained in:
		| @@ -495,10 +495,13 @@ bool tud_deinit(uint8_t rhport) { | |||||||
| } | } | ||||||
|  |  | ||||||
| static void configuration_reset(uint8_t rhport) { | static void configuration_reset(uint8_t rhport) { | ||||||
|  |   // Save setup_count for restore | ||||||
|  |   uint8_t setup_count =  _usbd_dev.setup_count; | ||||||
|   // Clear mounted status first to ensure tud_ready() return false before driver clean up. |   // Clear mounted status first to ensure tud_ready() return false before driver clean up. | ||||||
|   tu_varclr(&_usbd_dev); |   tu_varclr(&_usbd_dev); | ||||||
|   memset(_usbd_dev.itf2drv, DRVID_INVALID, sizeof(_usbd_dev.itf2drv)); // invalid mapping |   memset(_usbd_dev.itf2drv, DRVID_INVALID, sizeof(_usbd_dev.itf2drv)); // invalid mapping | ||||||
|   memset(_usbd_dev.ep2drv, DRVID_INVALID, sizeof(_usbd_dev.ep2drv)); // invalid mapping |   memset(_usbd_dev.ep2drv, DRVID_INVALID, sizeof(_usbd_dev.ep2drv)); // invalid mapping | ||||||
|  |   _usbd_dev.setup_count = setup_count; | ||||||
|  |  | ||||||
|   for (uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++) { |   for (uint8_t i = 0; i < TOTAL_DRIVER_COUNT; i++) { | ||||||
|     usbd_class_driver_t const* driver = get_driver(i); |     usbd_class_driver_t const* driver = get_driver(i); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 HiFiPhile
					HiFiPhile