提交 971a5a40 编写于 作者: G Gerd Hoffmann

usb-uhci: process uhci_handle_td return code via switch.

Restruct the uhci_handle_td return code processing to make the
control flow more clear and the code more readable.
Signed-off-by: NGerd Hoffmann <kraxel@redhat.com>
上级 f8af1e88
......@@ -1029,23 +1029,29 @@ static void uhci_process_frame(UHCIState *s)
pci_dma_write(&s->dev, (link & ~0xf) + 4, &val, sizeof(val));
}
if (ret < 0) {
/* interrupted frame */
break;
}
if (ret == 2 || ret == 1) {
DPRINTF("uhci: TD 0x%x %s. link 0x%x ctrl 0x%x token 0x%x qh 0x%x\n",
link, ret == 2 ? "pend" : "skip",
td.link, td.ctrl, td.token, curr_qh);
switch (ret) {
case -1: /* interrupted frame */
goto out;
case 1: /* goto next queue */
DPRINTF("uhci: TD 0x%x skip. "
"link 0x%x ctrl 0x%x token 0x%x qh 0x%x\n",
link, td.link, td.ctrl, td.token, curr_qh);
link = curr_qh ? qh.link : td.link;
continue;
}
/* completed TD */
case 2: /* got USB_RET_ASYNC */
DPRINTF("uhci: TD 0x%x async. "
"link 0x%x ctrl 0x%x token 0x%x qh 0x%x\n",
link, td.link, td.ctrl, td.token, curr_qh);
fprintf(stderr, "async td: link %x%s\n",
td.link, is_valid(td.link) ? " valid" : "");
link = curr_qh ? qh.link : td.link;
continue;
DPRINTF("uhci: TD 0x%x done. link 0x%x ctrl 0x%x token 0x%x qh 0x%x\n",
case 0: /* completed TD */
DPRINTF("uhci: TD 0x%x done. "
"link 0x%x ctrl 0x%x token 0x%x qh 0x%x\n",
link, td.link, td.ctrl, td.token, curr_qh);
link = td.link;
......@@ -1068,10 +1074,16 @@ static void uhci_process_frame(UHCIState *s)
link = qh.link;
}
}
break;
default:
assert(!"unknown return code");
}
/* go to the next entry */
}
out:
s->pending_int_mask |= int_mask;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册