Преглед изворни кода

pass all the current tests

hathach пре 13 година
родитељ
комит
a7e8a2ba9a
3 измењених фајлова са 6 додато и 3 уклоњено
  1. 1 2
      tests/test/host/hid/test_hid_host.c
  2. 1 0
      tests/test/host/test_usbh.c
  3. 4 1
      tinyusb/host/usbh.c

+ 1 - 2
tests/test/host/hid/test_hid_host.c

@@ -88,11 +88,10 @@ void test_hidh_open_ok(void)
 
 
 void test_hidh_close(void)
 void test_hidh_close(void)
 {
 {
-  hidh_keyboard_init_Ignore();
   hidh_keyboard_close_Expect(dev_addr);
   hidh_keyboard_close_Expect(dev_addr);
 
 
   //------------- Code Under TEST -------------//
   //------------- Code Under TEST -------------//
-//  hidh_close(dev_addr);
+  hidh_close(dev_addr);
 }
 }
 
 
 void test_hihd_isr(void)
 void test_hihd_isr(void)

+ 1 - 0
tests/test/host/test_usbh.c

@@ -181,6 +181,7 @@ void test_usbh_device_unplugged_isr(void)
   usbh_devices[dev_addr].core_id = 0;
   usbh_devices[dev_addr].core_id = 0;
   usbh_devices[dev_addr].hub_addr = 0;
   usbh_devices[dev_addr].hub_addr = 0;
   usbh_devices[dev_addr].hub_port = 0;
   usbh_devices[dev_addr].hub_port = 0;
+  usbh_devices[dev_addr].flag_supported_class = TUSB_CLASS_FLAG_HID;
 
 
   class_close_expect();
   class_close_expect();
   hcd_pipe_control_close_ExpectAndReturn(dev_addr, TUSB_ERROR_NONE);
   hcd_pipe_control_close_ExpectAndReturn(dev_addr, TUSB_ERROR_NONE);

+ 4 - 1
tinyusb/host/usbh.c

@@ -232,8 +232,11 @@ void usbh_device_unplugged_isr(uint8_t hostid)
     // if device unplugged is not a hub TODO handle hub unplugged
     // if device unplugged is not a hub TODO handle hub unplugged
     for (uint8_t class_code = 1; class_code < TUSB_CLASS_MAX_CONSEC_NUMBER; class_code++)
     for (uint8_t class_code = 1; class_code < TUSB_CLASS_MAX_CONSEC_NUMBER; class_code++)
     {
     {
-      if (usbh_class_drivers[class_code].close)
+      if ((usbh_devices[dev_addr].flag_supported_class & BIT_(class_code)) &&
+          usbh_class_drivers[class_code].close)
+      {
         usbh_class_drivers[class_code].close(dev_addr);
         usbh_class_drivers[class_code].close(dev_addr);
+        }
     }
     }
   }
   }