mirror of https://gitee.com/openkylin/qemu.git
usb-ehci: Remove dead nakcnt code
This patch removes 2 bits of dead nakcnt code: 1) usb_ehci_execute calls ehci_qh_do_overlay which does: nakcnt = reload; and then has a block of code which is conditional on: if (reload && !nakcnt) { which ofcourse is never true now as nakcnt == reload. 2) ehci_state_fetchqh does: nakcnt = reload; but before nakcnt is ever used ehci_state_fetchqh is always followed by a ehci_qh_do_overlay call which also does: nakcnt = reload; So doing this from ehci_state_fetchqh is redundant. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
dd54cfe0bc
commit
aa73fcdcc1
|
@ -1615,7 +1615,6 @@ static EHCIQueue *ehci_state_fetchqh(EHCIState *ehci, int async)
|
|||
{
|
||||
uint32_t entry;
|
||||
EHCIQueue *q;
|
||||
int reload;
|
||||
|
||||
entry = ehci_get_fetch_addr(ehci, async);
|
||||
q = ehci_find_queue_by_qh(ehci, entry, async);
|
||||
|
@ -1673,11 +1672,6 @@ static EHCIQueue *ehci_state_fetchqh(EHCIState *ehci, int async)
|
|||
}
|
||||
#endif
|
||||
|
||||
reload = get_field(q->qh.epchar, QH_EPCHAR_RL);
|
||||
if (reload) {
|
||||
set_field(&q->qh.altnext_qtd, reload, QH_ALTNEXT_NAKCNT);
|
||||
}
|
||||
|
||||
if (q->qh.token & QTD_TOKEN_HALT) {
|
||||
ehci_set_state(ehci, async, EST_HORIZONTALQH);
|
||||
|
||||
|
@ -1837,25 +1831,11 @@ static void ehci_flush_qh(EHCIQueue *q)
|
|||
static int ehci_state_execute(EHCIQueue *q, int async)
|
||||
{
|
||||
int again = 0;
|
||||
int reload, nakcnt;
|
||||
int smask;
|
||||
|
||||
if (ehci_qh_do_overlay(q) != 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
smask = get_field(q->qh.epcap, QH_EPCAP_SMASK);
|
||||
|
||||
if (!smask) {
|
||||
reload = get_field(q->qh.epchar, QH_EPCHAR_RL);
|
||||
nakcnt = get_field(q->qh.altnext_qtd, QH_ALTNEXT_NAKCNT);
|
||||
if (reload && !nakcnt) {
|
||||
ehci_set_state(q->ehci, async, EST_HORIZONTALQH);
|
||||
again = 1;
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
|
||||
// TODO verify enough time remains in the uframe as in 4.4.1.1
|
||||
// TODO write back ptr to async list when done or out of time
|
||||
// TODO Windows does not seem to ever set the MULT field
|
||||
|
|
Loading…
Reference in New Issue