@@ -408,7 +408,24 @@ static void hub_port_get_status_complete (tuh_xfer_t* xfer)
408408 hub_port_clear_feature (daddr , port_num , HUB_FEATURE_PORT_CONNECTION_CHANGE , connection_clear_conn_change_complete , 0 );
409409 }else
410410 {
411- // Other changes are: Enable, Suspend, Over Current, Reset, L1 state
411+ // Clear other port status change interrupts. TODO Not currently handled - just cleared.
412+ if (p_hub -> port_status .change .port_enable )
413+ {
414+ hub_port_clear_feature (daddr , port_num , HUB_FEATURE_PORT_ENABLE_CHANGE , hub_clear_feature_complete_stub , 0 );
415+ }
416+ else if (p_hub -> port_status .change .suspend )
417+ {
418+ hub_port_clear_feature (daddr , port_num , HUB_FEATURE_PORT_SUSPEND_CHANGE , hub_clear_feature_complete_stub , 0 );
419+ }
420+ else if (p_hub -> port_status .change .over_current )
421+ {
422+ hub_port_clear_feature (daddr , port_num , HUB_FEATURE_PORT_OVER_CURRENT_CHANGE , hub_clear_feature_complete_stub , 0 );
423+ }
424+ else if (p_hub -> port_status .change .reset )
425+ {
426+ hub_port_clear_feature (daddr , port_num , HUB_FEATURE_PORT_RESET_CHANGE , hub_clear_feature_complete_stub , 0 );
427+ }
428+ // Other changes are: L1 state
412429 // TODO clear change
413430
414431 // prepare for next hub status
0 commit comments