Category Archives: Uncategorized

How to send patches with git-send-email

The prerequisites for this tutorial is that you have already made some changes to your local kernel tree and that these changes have been committed. In this tutorial, are described the steps to follow in order to create and send … Continue reading

Posted in Uncategorized | 2 Comments

How to enable and tune Dynamic Debugging for xHCI

Dynamic debugging is a kernel debug mechanism that aims to allow linux users and developers to dynamically enable or suppress kernel debugging statements. The debugging statements which can be managed via the dynamic debug interface are those that have been … Continue reading

Posted in Uncategorized | Leave a comment

Use libusb to issue a clear halt to an endpoint

Currently, I work on fixing the xhci_endpoint_reset() function so that an endpoint will get reset properly when the usb device driver calls usb_reset_endpoint() through a call to usb_clear_halt(). In order to trigger the bug, I have to issue a clear … Continue reading

Posted in Uncategorized | Leave a comment

xHCI Interrupts

This post starts with a brief reference to how iterrupts are implemented on PCI platforms. There are three methods to implement interrupts on PCI platforms: 1) legacy interrupts The devices attached to PCI bus are equipped with an external interrupt … Continue reading

Posted in Uncategorized | Leave a comment

Issueing commands to xHC

To issue commands to the USB device or the xHC, the xhci driver uses two basic structures, the Command TRBs and the Command Ring. In effect, the Command Ring is a circular buffer in host memory where the Command TRBs … Continue reading

Posted in Uncategorized | Leave a comment

DMA mask setup for xHCI

The xHCI interface defines data structures that are used by the xhci-hcd driver and the xHC host controller to manage the usb devices. The buffers referenced by these data structures are allocated in host memory and the transfer operations between … Continue reading

Posted in Uncategorized | Leave a comment

Trace-cmd

Trace-cmd is a tool implemented by Steven Rostedt. Its purpose is to facilitate the users’ control over the kernel tracing mechanism and to add support for more elaborate parsing and display of the trace output through plugins. The trace-cmd tool … Continue reading

Posted in Uncategorized | Leave a comment