xhci: trace: irq + events
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
		
							parent
							
								
									fc0ddaca33
								
							
						
					
					
						commit
						7acd279f83
					
				@ -422,7 +422,6 @@ typedef struct XHCIEvRingSeg {
 | 
				
			|||||||
    uint32_t rsvd;
 | 
					    uint32_t rsvd;
 | 
				
			||||||
} XHCIEvRingSeg;
 | 
					} XHCIEvRingSeg;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef DEBUG_XHCI
 | 
					 | 
				
			||||||
static const char *TRBType_names[] = {
 | 
					static const char *TRBType_names[] = {
 | 
				
			||||||
    [TRB_RESERVED]                     = "TRB_RESERVED",
 | 
					    [TRB_RESERVED]                     = "TRB_RESERVED",
 | 
				
			||||||
    [TR_NORMAL]                        = "TR_NORMAL",
 | 
					    [TR_NORMAL]                        = "TR_NORMAL",
 | 
				
			||||||
@ -474,7 +473,6 @@ static const char *trb_name(XHCITRB *trb)
 | 
				
			|||||||
    return lookup_name(TRB_TYPE(*trb), TRBType_names,
 | 
					    return lookup_name(TRB_TYPE(*trb), TRBType_names,
 | 
				
			||||||
                       ARRAY_SIZE(TRBType_names));
 | 
					                       ARRAY_SIZE(TRBType_names));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid,
 | 
					static void xhci_kick_ep(XHCIState *xhci, unsigned int slotid,
 | 
				
			||||||
                         unsigned int epid);
 | 
					                         unsigned int epid);
 | 
				
			||||||
@ -506,14 +504,13 @@ static void xhci_irq_update(XHCIState *xhci)
 | 
				
			|||||||
        level = 1;
 | 
					        level = 1;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DPRINTF("xhci_irq_update(): %d\n", level);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (xhci->msi && msi_enabled(&xhci->pci_dev)) {
 | 
					    if (xhci->msi && msi_enabled(&xhci->pci_dev)) {
 | 
				
			||||||
        if (level) {
 | 
					        if (level) {
 | 
				
			||||||
            DPRINTF("xhci_irq_update(): MSI signal\n");
 | 
					            trace_usb_xhci_irq_msi(0);
 | 
				
			||||||
            msi_notify(&xhci->pci_dev, 0);
 | 
					            msi_notify(&xhci->pci_dev, 0);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    } else {
 | 
					    } else {
 | 
				
			||||||
 | 
					        trace_usb_xhci_irq_intx(level);
 | 
				
			||||||
        qemu_set_irq(xhci->irq, level);
 | 
					        qemu_set_irq(xhci->irq, level);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -543,9 +540,8 @@ static void xhci_write_event(XHCIState *xhci, XHCIEvent *event)
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    ev_trb.control = cpu_to_le32(ev_trb.control);
 | 
					    ev_trb.control = cpu_to_le32(ev_trb.control);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    DPRINTF("xhci_write_event(): [%d] %016"PRIx64" %08x %08x %s\n",
 | 
					    trace_usb_xhci_queue_event(xhci->er_ep_idx, trb_name(&ev_trb),
 | 
				
			||||||
            xhci->er_ep_idx, ev_trb.parameter, ev_trb.status, ev_trb.control,
 | 
					                               ev_trb.parameter, ev_trb.status, ev_trb.control);
 | 
				
			||||||
            trb_name(&ev_trb));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    addr = xhci->er_start + TRB_SIZE*xhci->er_ep_idx;
 | 
					    addr = xhci->er_start + TRB_SIZE*xhci->er_ep_idx;
 | 
				
			||||||
    pci_dma_write(&xhci->pci_dev, addr, &ev_trb, TRB_SIZE);
 | 
					    pci_dma_write(&xhci->pci_dev, addr, &ev_trb, TRB_SIZE);
 | 
				
			||||||
 | 
				
			|||||||
@ -302,6 +302,9 @@ usb_xhci_oper_write(uint32_t off, uint32_t val) "off 0x%04x, val 0x%08x"
 | 
				
			|||||||
usb_xhci_port_write(uint32_t port, uint32_t off, uint32_t val) "port %d, off 0x%04x, val 0x%08x"
 | 
					usb_xhci_port_write(uint32_t port, uint32_t off, uint32_t val) "port %d, off 0x%04x, val 0x%08x"
 | 
				
			||||||
usb_xhci_runtime_write(uint32_t off, uint32_t val) "off 0x%04x, val 0x%08x"
 | 
					usb_xhci_runtime_write(uint32_t off, uint32_t val) "off 0x%04x, val 0x%08x"
 | 
				
			||||||
usb_xhci_doorbell_write(uint32_t off, uint32_t val) "off 0x%04x, val 0x%08x"
 | 
					usb_xhci_doorbell_write(uint32_t off, uint32_t val) "off 0x%04x, val 0x%08x"
 | 
				
			||||||
 | 
					usb_xhci_irq_intx(uint32_t level) "level %d"
 | 
				
			||||||
 | 
					usb_xhci_irq_msi(uint32_t nr) "nr %d"
 | 
				
			||||||
 | 
					usb_xhci_queue_event(uint32_t idx, const char *name, uint64_t param, uint32_t status, uint32_t control) "idx %d, %s, p %016" PRIx64 ", s %08x, c 0x%08x"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# hw/usb/desc.c
 | 
					# hw/usb/desc.c
 | 
				
			||||||
usb_desc_device(int addr, int len, int ret) "dev %d query device, len %d, ret %d"
 | 
					usb_desc_device(int addr, int len, int ret) "dev %d query device, len %d, ret %d"
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user