hcd-uhci.c (27af7e002c1bb3fead55459a9c9404eef1a4f8df) hcd-uhci.c (521120b9023ea6cde18d6641b19937ba4b495192)
1/*
2 * USB UHCI controller emulation
3 *
4 * Copyright (c) 2005 Fabrice Bellard
5 *
6 * Copyright (c) 2008 Max Krasnyansky
7 * Magor rewrite of the UHCI data structures parser and frame processor
8 * Support for fully async operation and multiple outstanding transactions

--- 1198 unchanged lines hidden (view full) ---

1207 }
1208 }
1209 s->bh = qemu_bh_new_guarded(uhci_bh, s, &dev->mem_reentrancy_guard);
1210 s->frame_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, uhci_frame_timer, s);
1211 s->num_ports_vmstate = UHCI_PORTS;
1212 QTAILQ_INIT(&s->queues);
1213
1214 memory_region_init_io(&s->mem, OBJECT(s), &uhci_ioport_ops, s,
1/*
2 * USB UHCI controller emulation
3 *
4 * Copyright (c) 2005 Fabrice Bellard
5 *
6 * Copyright (c) 2008 Max Krasnyansky
7 * Magor rewrite of the UHCI data structures parser and frame processor
8 * Support for fully async operation and multiple outstanding transactions

--- 1198 unchanged lines hidden (view full) ---

1207 }
1208 }
1209 s->bh = qemu_bh_new_guarded(uhci_bh, s, &dev->mem_reentrancy_guard);
1210 s->frame_timer = timer_new_ns(QEMU_CLOCK_VIRTUAL, uhci_frame_timer, s);
1211 s->num_ports_vmstate = UHCI_PORTS;
1212 QTAILQ_INIT(&s->queues);
1213
1214 memory_region_init_io(&s->mem, OBJECT(s), &uhci_ioport_ops, s,
1215 "uhci", 0x20);
1215 "uhci", 0x100);
1216}
1217
1218void usb_uhci_exit(UHCIState *s)
1219{
1220 trace_usb_uhci_exit();
1221
1222 if (s->frame_timer) {
1223 timer_free(s->frame_timer);

--- 13 unchanged lines hidden ---
1216}
1217
1218void usb_uhci_exit(UHCIState *s)
1219{
1220 trace_usb_uhci_exit();
1221
1222 if (s->frame_timer) {
1223 timer_free(s->frame_timer);

--- 13 unchanged lines hidden ---