Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions
xhci-dbg.c File Reference
#include "xhci.h"

Go to the source code of this file.

Macros

#define XHCI_INIT_VALUE   0x0
 

Functions

void xhci_dbg_regs (struct xhci_hcd *xhci)
 
void xhci_print_ir_set (struct xhci_hcd *xhci, int set_num)
 
void xhci_print_run_regs (struct xhci_hcd *xhci)
 
void xhci_print_registers (struct xhci_hcd *xhci)
 
void xhci_print_trb_offsets (struct xhci_hcd *xhci, union xhci_trb *trb)
 
void xhci_debug_trb (struct xhci_hcd *xhci, union xhci_trb *trb)
 
void xhci_debug_segment (struct xhci_hcd *xhci, struct xhci_segment *seg)
 
void xhci_dbg_ring_ptrs (struct xhci_hcd *xhci, struct xhci_ring *ring)
 
void xhci_debug_ring (struct xhci_hcd *xhci, struct xhci_ring *ring)
 
void xhci_dbg_ep_rings (struct xhci_hcd *xhci, unsigned int slot_id, unsigned int ep_index, struct xhci_virt_ep *ep)
 
void xhci_dbg_erst (struct xhci_hcd *xhci, struct xhci_erst *erst)
 
void xhci_dbg_cmd_ptrs (struct xhci_hcd *xhci)
 
charxhci_get_slot_state (struct xhci_hcd *xhci, struct xhci_container_ctx *ctx)
 
void xhci_dbg_ctx (struct xhci_hcd *xhci, struct xhci_container_ctx *ctx, unsigned int last_ep)
 

Macro Definition Documentation

#define XHCI_INIT_VALUE   0x0

Definition at line 25 of file xhci-dbg.c.

Function Documentation

void xhci_dbg_cmd_ptrs ( struct xhci_hcd xhci)

Definition at line 411 of file xhci-dbg.c.

void xhci_dbg_ctx ( struct xhci_hcd xhci,
struct xhci_container_ctx ctx,
unsigned int  last_ep 
)

Definition at line 540 of file xhci-dbg.c.

void xhci_dbg_ep_rings ( struct xhci_hcd xhci,
unsigned int  slot_id,
unsigned int  ep_index,
struct xhci_virt_ep ep 
)

Definition at line 369 of file xhci-dbg.c.

void xhci_dbg_erst ( struct xhci_hcd xhci,
struct xhci_erst erst 
)

Definition at line 393 of file xhci-dbg.c.

void xhci_dbg_regs ( struct xhci_hcd xhci)

Definition at line 29 of file xhci-dbg.c.

void xhci_dbg_ring_ptrs ( struct xhci_hcd xhci,
struct xhci_ring ring 
)

Definition at line 329 of file xhci-dbg.c.

void xhci_debug_ring ( struct xhci_hcd xhci,
struct xhci_ring ring 
)

Debugging for an xHCI ring, which is a queue broken into multiple segments.

Print out each segment in the ring. Check that the DMA address in each link segment actually matches the segment's stored DMA address. Check that the link end bit is only set at the end of the ring. Check that the dequeue and enqueue pointers point to real data in this ring (not some other ring).

Definition at line 354 of file xhci-dbg.c.

void xhci_debug_segment ( struct xhci_hcd xhci,
struct xhci_segment seg 
)

Debug a segment with an xHCI ring.

Returns
The Link TRB of the segment, or NULL if there is no Link TRB (which is a bug, since all segments must have a Link TRB).

Prints out all TRBs in the segment, even those after the Link TRB.

XXX: should we print out TRBs that the HC owns? As long as we don't write, that should be fine... We shouldn't expect that the memory pointed to by the TRB is valid at all. Do we care about ones the HC owns? Probably, for HC debugging.

Definition at line 312 of file xhci-dbg.c.

void xhci_debug_trb ( struct xhci_hcd xhci,
union xhci_trb trb 
)

Debug a transfer request block (TRB).

Definition at line 253 of file xhci-dbg.c.

char* xhci_get_slot_state ( struct xhci_hcd xhci,
struct xhci_container_ctx ctx 
)

Definition at line 435 of file xhci-dbg.c.

void xhci_print_ir_set ( struct xhci_hcd xhci,
int  set_num 
)

Definition at line 172 of file xhci-dbg.c.

void xhci_print_registers ( struct xhci_hcd xhci)

Definition at line 235 of file xhci-dbg.c.

void xhci_print_run_regs ( struct xhci_hcd xhci)

Definition at line 216 of file xhci-dbg.c.

void xhci_print_trb_offsets ( struct xhci_hcd xhci,
union xhci_trb trb 
)

Definition at line 242 of file xhci-dbg.c.