On 09/13/2013 06:49 AM, Pratyush Anand wrote:
On Tue, Sep 10, 2013 at 02:03:15AM +0800, Xenia Ragiadakou wrote:
Function xhci_readl() is used to read 32bit xHC registers residing in MMIO
address space. It takes as first argument a pointer to the xhci_hcd although
it does not use it because internally it simply calls readl. This creates
an illusion that xhci_readl() is an xhci specific function that has to be
called in a context where a pointer to xhci_hcd is available.
This patch replaces calls to xhci_readl() with calls to readl() in xhci-dbg.c.
This is done so that xhci_readl() can be removed completely and code can
become more straight-forward.
Its fine that this replacement would simplify it. But, I have
experienced that sometime such way of reading/writing a peripheral
registers is quite helpful. I was able to find several issues in dwc3
gadget isoc handling quickly because of the availability of dwc3_readl
dwc3_writel.
With such peripheral specific exerciser one can log all register
read/write in sequential order with timestamp with a little effort,
which can further help in debugging critical issues. Sometime, they
might be even helpful in diagnosis of hardware issues. Same sequence
can be extracted and provided to hardware engineer for analysing the
behaviour of device in simulation.
Regards
Pratyush
Signed-off-by: Xenia Ragiadakou <burzalodowa@xxxxxxxxx>
Hi Pratyush,
The truth is that I did not think of that. What tool do you use to trace
read/write operations for a specific peripheral? I think that you can
trace them using mmiotrace and then filter the output (so that the
address lie within the mmio address space of the particular device you
are interested in).
Mmiotrace reports whether it is read/write, the address, the width in
bytes, the value etc, so you can apply filters to tune your search.
In that case there is no need for a wrapper function around
readl()/writel(), but maybe you have another tool in mind so the wrapper
function will suit better, don't know.
best regards,
ksenia
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html