hcd-ohci.c (69f153667fce723ee546d2f047d66d0cfa67c3cc) | hcd-ohci.c (6e821e5084fb1169d653c835b3819acf94e8b52c) |
---|---|
1/* 2 * QEMU USB OHCI Emulation 3 * Copyright (c) 2004 Gianni Tedesco 4 * Copyright (c) 2006 CodeSourcery 5 * Copyright (c) 2006 Openedhand Ltd. 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public --- 1019 unchanged lines hidden (view full) --- 1028 trace_usb_ohci_td_pkt_hdr(addr, (int64_t)pktlen, (int64_t)len, str, 1029 flag_r, td.cbp, td.be); 1030 ohci_td_pkt("OUT", ohci->usb_buf, pktlen); 1031 1032 if (completion) { 1033 ohci->async_td = 0; 1034 ohci->async_complete = false; 1035 } else { | 1/* 2 * QEMU USB OHCI Emulation 3 * Copyright (c) 2004 Gianni Tedesco 4 * Copyright (c) 2006 CodeSourcery 5 * Copyright (c) 2006 Openedhand Ltd. 6 * 7 * This library is free software; you can redistribute it and/or 8 * modify it under the terms of the GNU Lesser General Public --- 1019 unchanged lines hidden (view full) --- 1028 trace_usb_ohci_td_pkt_hdr(addr, (int64_t)pktlen, (int64_t)len, str, 1029 flag_r, td.cbp, td.be); 1030 ohci_td_pkt("OUT", ohci->usb_buf, pktlen); 1031 1032 if (completion) { 1033 ohci->async_td = 0; 1034 ohci->async_complete = false; 1035 } else { |
1036 dev = ohci_find_device(ohci, OHCI_BM(ed->flags, ED_FA)); 1037 if (dev == NULL) { 1038 trace_usb_ohci_td_dev_error(); 1039 return 1; 1040 } 1041 ep = usb_ep_get(dev, pid, OHCI_BM(ed->flags, ED_EN)); |
|
1036 if (ohci->async_td) { 1037 /* ??? The hardware should allow one active packet per 1038 endpoint. We only allow one active packet per controller. 1039 This should be sufficient as long as devices respond in a 1040 timely manner. 1041 */ | 1042 if (ohci->async_td) { 1043 /* ??? The hardware should allow one active packet per 1044 endpoint. We only allow one active packet per controller. 1045 This should be sufficient as long as devices respond in a 1046 timely manner. 1047 */ |
1042 trace_usb_ohci_td_too_many_pending(); | 1048 trace_usb_ohci_td_too_many_pending(ep->nr); |
1043 return 1; 1044 } | 1049 return 1; 1050 } |
1045 dev = ohci_find_device(ohci, OHCI_BM(ed->flags, ED_FA)); 1046 if (dev == NULL) { 1047 trace_usb_ohci_td_dev_error(); 1048 return 1; 1049 } 1050 ep = usb_ep_get(dev, pid, OHCI_BM(ed->flags, ED_EN)); | |
1051 usb_packet_setup(&ohci->usb_packet, pid, ep, 0, addr, !flag_r, 1052 OHCI_BM(td.flags, TD_DI) == 0); 1053 usb_packet_addbuf(&ohci->usb_packet, ohci->usb_buf, pktlen); 1054 usb_handle_packet(dev, &ohci->usb_packet); 1055 trace_usb_ohci_td_packet_status(ohci->usb_packet.status); 1056 1057 if (ohci->usb_packet.status == USB_RET_ASYNC) { 1058 usb_device_flush_ep_queue(dev, ep); --- 976 unchanged lines hidden --- | 1051 usb_packet_setup(&ohci->usb_packet, pid, ep, 0, addr, !flag_r, 1052 OHCI_BM(td.flags, TD_DI) == 0); 1053 usb_packet_addbuf(&ohci->usb_packet, ohci->usb_buf, pktlen); 1054 usb_handle_packet(dev, &ohci->usb_packet); 1055 trace_usb_ohci_td_packet_status(ohci->usb_packet.status); 1056 1057 if (ohci->usb_packet.status == USB_RET_ASYNC) { 1058 usb_device_flush_ep_queue(dev, ep); --- 976 unchanged lines hidden --- |