File tree Expand file tree Collapse file tree 1 file changed +8
-2
lines changed
Expand file tree Collapse file tree 1 file changed +8
-2
lines changed Original file line number Diff line number Diff line change @@ -110,7 +110,9 @@ static_assert(sizeof(usb_fstn_t) == 0x08, "usb_fstn_t does not have a size of 0x
110110
111111typedef struct usb_traversal_state {
112112 union {
113+ usb_itd_t itd ;
113114 usb_qh_t qh ;
115+ usb_sitd_t sitd ;
114116 usb_fstn_t fstn ;
115117 };
116118 bool dirty : 1 ;
@@ -621,7 +623,9 @@ static void usb_schedule_traverse(usb_qlink_t *link) {
621623 }
622624 switch (link -> type ) {
623625 case QTYPE_ITD :
624- return usb_host_sys_err ();
626+ mem_dma_read (& state .itd , link -> ptr << 5 , sizeof (state .itd ));
627+ * link = state .itd .next ;
628+ break ;
625629 case QTYPE_QH :
626630 if (state .fake_recl_head == (link -> ptr & 0x3FFF )) {
627631 static bool warned = false;
@@ -665,7 +669,9 @@ static void usb_schedule_traverse(usb_qlink_t *link) {
665669 * link = state .qh .horiz ;
666670 break ;
667671 case QTYPE_SITD :
668- return usb_host_sys_err ();
672+ mem_dma_read (& state .sitd , link -> ptr << 5 , sizeof (state .sitd ));
673+ * link = state .sitd .next ;
674+ break ;
669675 case QTYPE_FSTN :
670676 mem_dma_read (& state .fstn , link -> ptr << 5 , sizeof (state .fstn ));
671677 * link = state .fstn .normal ;
You can’t perform that action at this time.
0 commit comments