• Lu Baolu's avatar
    usb: xhci: Add debugfs interface for xHCI driver · 02b6fdc2
    Lu Baolu authored
    This adds debugfs consumer for xHCI driver. The debugfs entries
    read all host registers, device/endpoint contexts, command ring,
    event ring and various endpoint rings. With these entries, users
    can check the registers and memory spaces used by a host during
    run time, or save all the information with a simple 'cp -r' for
    post-mortem programs.
    
    The file hierarchy looks like this.
    
    [root of debugfs]
    |__usb
    |____[e,u,o]hci                 <---------[root for other HCIs]
    |____xhci                       <---------------[root for xHCI]
    |______0000:00:14.0             <--------------[xHCI host name]
    |________reg-cap                <--------[capability registers]
    |________reg-op                 <-------[operational registers]
    |________reg-runtime            <-----------[runtime registers]
    |________reg-ext-#cap_name      <----[extended capability regs]
    |________command-ring           <-------[root for command ring]
    |__________cycle                <------------------[ring cycle]
    |__________dequeue              <--------[ring dequeue pointer]
    |__________enqueue              <--------[ring enqueue pointer]
    |__________trbs                 <-------------------[ring trbs]
    |________event-ring             <---------[root for event ring]
    |__________cycle                <------------------[ring cycle]
    |__________dequeue              <--------[ring dequeue pointer]
    |__________enqueue              <--------[ring enqueue pointer]
    |__________trbs                 <-------------------[ring trbs]
    |________devices                <------------[root for devices]
    |__________#slot_id             <-----------[root for a device]
    |____________name               <-----------------[device name]
    |____________slot-context       <----------------[slot context]
    |____________ep-context         <-----------[endpoint contexts]
    |____________ep#ep_index        <--------[root for an endpoint]
    |______________cycle            <------------------[ring cycle]
    |______________dequeue          <--------[ring dequeue pointer]
    |______________enqueue          <--------[ring enqueue pointer]
    |______________trbs             <-------------------[ring trbs]
    Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: default avatarMathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    02b6fdc2
xhci-mem.c 74.8 KB