Skip to content

Commit 2b2354d

Browse files
committed
Hub: Clear other port feature changes
1 parent 3c7b5dc commit 2b2354d

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

src/host/hub.c

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)