From: bellard Date: Mon, 24 Apr 2006 21:38:50 +0000 (+0000) Subject: HCHALTED status bit handling (Lonnie Mendez) X-Git-Tag: TizenStudio_2.0_p2.3~14368 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=52328140e2892c0f7033f6857f1a96da1680bf79;p=sdk%2Femulator%2Fqemu.git HCHALTED status bit handling (Lonnie Mendez) git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1850 c046a42c-6fe2-441c-8c8c-71466251a162 --- diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c index f902d46..10b3fa6 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -174,6 +174,9 @@ static void uhci_ioport_writew(void *opaque, uint32_t addr, uint32_t val) if ((val & UHCI_CMD_RS) && !(s->cmd & UHCI_CMD_RS)) { /* start frame processing */ qemu_mod_timer(s->frame_timer, qemu_get_clock(vm_clock)); + s->status &= ~UHCI_STS_HCHALTED; + } else if (!(val & UHCI_CMD_RS) && !(s->cmd & UHCI_CMD_RS)) { + s->status |= UHCI_STS_HCHALTED; } if (val & UHCI_CMD_GRESET) { UHCIPort *port; @@ -528,6 +531,8 @@ static void uhci_frame_timer(void *opaque) if (!(s->cmd & UHCI_CMD_RS)) { qemu_del_timer(s->frame_timer); + /* set hchalted bit in status - UHCI11D 2.1.2 */ + s->status |= UHCI_STS_HCHALTED; return; } frame_addr = s->fl_base_addr + ((s->frnum & 0x3ff) << 2);