* [PATCH V2 0/2] debugfs: a tool to print 32-bit registers
@ 2011-11-18 0:20 Alessandro Rubini
2011-11-18 13:36 ` Felipe Balbi
` (3 more replies)
0 siblings, 4 replies; 11+ messages in thread
From: Alessandro Rubini @ 2011-11-18 0:20 UTC (permalink / raw)
To: gregkh, linux-kernel; +Cc: anaghi, balbi, broonie
This is V2 of what I posted a few days ago. I also updates
the file in Documentation. I Cc:d people who gave feedback.
Patch 2 uses the new tool for an existing file I didn't initially
notice (I had a victim file, but it's seriously failing compilation).
Code removal there is almost zero because Felipe Balbi already did
stuff in the way I do.
Mark Brown suggested to look at drivers/base/regmap, and actually this
may be duplicating what is already being worked on in a more general
way. My code base is earlier than regmap so I didn't notice.
Unfortunately I have no resources left to study regmap as it
deserves.
Mark, if you say this is not useful at this point, I'm fine with it; I
may return with some regbase-aware code when time permits if it's not
already there.
/alessandro
Alessandro Rubini (2):
debugfs: add tools to printk 32-bit registers
usb: dwc3: use debugfs_print_regs32()
Documentation/filesystems/debugfs.txt | 32 +++++++++++-
drivers/usb/dwc3/debugfs.c | 15 +----
fs/debugfs/file.c | 90 +++++++++++++++++++++++++++++++++
include/linux/debugfs.h | 26 +++++++++
4 files changed, 150 insertions(+), 13 deletions(-)
^ permalink raw reply [flat|nested] 11+ messages in thread* Re: [PATCH V2 0/2] debugfs: a tool to print 32-bit registers 2011-11-18 0:20 [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Alessandro Rubini @ 2011-11-18 13:36 ` Felipe Balbi 2011-11-18 13:55 ` Alessandro Rubini 2011-11-18 13:50 ` [PATCH V2 1/2] debugfs: add tools to printk " Alessandro Rubini ` (2 subsequent siblings) 3 siblings, 1 reply; 11+ messages in thread From: Felipe Balbi @ 2011-11-18 13:36 UTC (permalink / raw) To: Alessandro Rubini; +Cc: gregkh, linux-kernel, anaghi, balbi, broonie [-- Attachment #1: Type: text/plain, Size: 1011 bytes --] On Fri, Nov 18, 2011 at 01:20:49AM +0100, Alessandro Rubini wrote: > This is V2 of what I posted a few days ago. I also updates > the file in Documentation. I Cc:d people who gave feedback. > > Patch 2 uses the new tool for an existing file I didn't initially > notice (I had a victim file, but it's seriously failing compilation). > Code removal there is almost zero because Felipe Balbi already did > stuff in the way I do. > > Mark Brown suggested to look at drivers/base/regmap, and actually this > may be duplicating what is already being worked on in a more general > way. My code base is earlier than regmap so I didn't notice. > Unfortunately I have no resources left to study regmap as it > deserves. > > Mark, if you say this is not useful at this point, I'm fine with it; I > may return with some regbase-aware code when time permits if it's not > already there. -ENOPATCH ?? I didn't receive any replies to this mail with the patch. Is my mailer screwed up ? -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH V2 0/2] debugfs: a tool to print 32-bit registers 2011-11-18 13:36 ` Felipe Balbi @ 2011-11-18 13:55 ` Alessandro Rubini 0 siblings, 0 replies; 11+ messages in thread From: Alessandro Rubini @ 2011-11-18 13:55 UTC (permalink / raw) To: balbi; +Cc: gregkh, linux-kernel, giancarlo.asnaghi, broonie > -ENOPATCH ?? I didn't receive any replies to this mail with the patch. You are right. Thanks and apologies. I mistyped Giancarlo Asnaghi's alias in all three, and the sending was interrupted. I resent now. thanks /alessandro ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH V2 1/2] debugfs: add tools to printk 32-bit registers 2011-11-18 0:20 [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Alessandro Rubini 2011-11-18 13:36 ` Felipe Balbi @ 2011-11-18 13:50 ` Alessandro Rubini 2011-11-18 13:51 ` [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() Alessandro Rubini 2011-11-22 13:04 ` [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Mark Brown 3 siblings, 0 replies; 11+ messages in thread From: Alessandro Rubini @ 2011-11-18 13:50 UTC (permalink / raw) To: gregkh, linux-kernel; +Cc: anaghi, balbi, broonie Some debugfs file I deal with are mostly blocks of registers, i.e. lines of the form "<name> = 0x<value>". Some files are only registers, some include registers blocks among other material. This patch introduces data structures and functions to deal with both cases. I expect more users of this over time. Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Acked-by: Giancarlo Asnaghi <giancarlo.asnaghi@st.com> --- Documentation/filesystems/debugfs.txt | 32 +++++++++++- fs/debugfs/file.c | 90 +++++++++++++++++++++++++++++++++ include/linux/debugfs.h | 26 +++++++++ 3 files changed, 147 insertions(+), 1 deletions(-) diff --git a/Documentation/filesystems/debugfs.txt b/Documentation/filesystems/debugfs.txt index 742cc06..f04066a 100644 --- a/Documentation/filesystems/debugfs.txt +++ b/Documentation/filesystems/debugfs.txt @@ -97,7 +97,8 @@ A read on the resulting file will yield either Y (for non-zero values) or N, followed by a newline. If written to, it will accept either upper- or lower-case values, or 1 or 0. Any other input will be silently ignored. -Finally, a block of arbitrary binary data can be exported with: +Another option is exporting a block of arbitrary binary data, with +this structure and function: struct debugfs_blob_wrapper { void *data; @@ -115,6 +116,35 @@ can be used to export binary information, but there does not appear to be any code which does so in the mainline. Note that all files created with debugfs_create_blob() are read-only. +If you want to dump a block of registers (something that happens quite +often during development, even if little such code reaches mainline. +Debugfs offers two functions: one to make a registers-only file, and +another to insert a register block in the middle of another sequential +file. + + struct debugfs_reg32 { + char *name; + unsigned long offset; + }; + + struct debugfs_regset32 { + struct debugfs_reg32 *regs; + int nregs; + void __iomem *base; + }; + + struct dentry *debugfs_create_regset32(const char *name, mode_t mode, + struct dentry *parent, + struct debugfs_regset32 *regset); + + int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, + int nregs, void __iomem *base, char *prefix); + +The "base" argument may be 0, but you may want to build the reg32 array +using __stringify, and a number of register names (macros) are actually +byte offsets over a base for the register block. + + There are a couple of other directory-oriented helper functions: struct dentry *debugfs_rename(struct dentry *old_dir, diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index 90f7657..f31a27c 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -15,6 +15,7 @@ #include <linux/module.h> #include <linux/fs.h> +#include <linux/seq_file.h> #include <linux/pagemap.h> #include <linux/namei.h> #include <linux/debugfs.h> @@ -525,3 +526,92 @@ struct dentry *debugfs_create_blob(const char *name, mode_t mode, return debugfs_create_file(name, mode, parent, blob, &fops_blob); } EXPORT_SYMBOL_GPL(debugfs_create_blob); + +/* + * The regset32 stuff is used to print 32-bit registers using the + * seq_file utilities. We offer printing a register set in an already-opened + * sequential file or create a debugfs file that only prints a regset32. + */ + +/** + * debugfs_print_regs32 - use seq_print to describe a set of registers + * @s: the seq_file structure being used to generate output + * @regs: an array if struct debugfs_reg32 structures + * @mregs: the length of the above array + * @base: the base address to be used in reading the registers + * @prefix: a string to be prefixed to every output line + * + * This function outputs a text block describing the current values of + * some 32-bit hardware registers. It is meant to be used within debugfs + * files based on seq_file that need to show registers, intermixed with other + * information. The prefix argument may be used to specify a leading string, + * because some peripherals have several blocks of identical registers, + * for example configuration of dma channels + */ +int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, + int nregs, void __iomem *base, char *prefix) +{ + int i, ret = 0; + + for (i = 0; i < nregs; i++, regs++) { + if (prefix) + ret += seq_printf(s, "%s", prefix); + ret += seq_printf(s, "%s = 0x%08x\n", regs->name, + readl((void *)(base + regs->offset))); + } + return ret; +} +EXPORT_SYMBOL_GPL(debugfs_print_regs32); + +static int debugfs_show_regset32(struct seq_file *s, void *data) +{ + struct debugfs_regset32 *regset = s->private; + + debugfs_print_regs32(s, regset->regs, regset->nregs, regset->base, ""); + return 0; +} + +static int debugfs_open_regset32(struct inode *inode, struct file *file) +{ + return single_open(file, debugfs_show_regset32, inode->i_private); +} + +static const struct file_operations fops_regset32 = { + .open = debugfs_open_regset32, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +/** + * debugfs_create_regset32 - create a debugfs file that returns register values + * @name: a pointer to a string containing the name of the file to create. + * @mode: the permission that the file should have + * @parent: a pointer to the parent dentry for this file. This should be a + * directory dentry if set. If this parameter is %NULL, then the + * file will be created in the root of the debugfs filesystem. + * @regset: a pointer to a struct debugfs_regset32, which contains a pointer + * to an array of register definitions, the array size and the base + * address where the register bank is to be found. + * + * This function creates a file in debugfs with the given name that reports + * the names and values of a set of 32-bit registers. If the @mode variable + * is so set it can be read from. Writing is not supported. + * + * This function will return a pointer to a dentry if it succeeds. This + * pointer must be passed to the debugfs_remove() function when the file is + * to be removed (no automatic cleanup happens if your module is unloaded, + * you are responsible here.) If an error occurs, %NULL will be returned. + * + * If debugfs is not enabled in the kernel, the value -%ENODEV will be + * returned. It is not wise to check for this value, but rather, check for + * %NULL or !%NULL instead as to eliminate the need for #ifdef in the calling + * code. + */ +struct dentry *debugfs_create_regset32(const char *name, mode_t mode, + struct dentry *parent, + struct debugfs_regset32 *regset) +{ + return debugfs_create_file(name, mode, parent, regset, &fops_regset32); +} +EXPORT_SYMBOL_GPL(debugfs_create_regset32); diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index e7d9b20..5e6b01f 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h @@ -16,6 +16,7 @@ #define _DEBUGFS_H_ #include <linux/fs.h> +#include <linux/seq_file.h> #include <linux/types.h> @@ -26,6 +27,17 @@ struct debugfs_blob_wrapper { unsigned long size; }; +struct debugfs_reg32 { + char *name; + unsigned long offset; +}; + +struct debugfs_regset32 { + struct debugfs_reg32 *regs; + int nregs; + void __iomem *base; +}; + extern struct dentry *arch_debugfs_dir; #if defined(CONFIG_DEBUG_FS) @@ -74,6 +86,13 @@ struct dentry *debugfs_create_blob(const char *name, mode_t mode, struct dentry *parent, struct debugfs_blob_wrapper *blob); +struct dentry *debugfs_create_regset32(const char *name, mode_t mode, + struct dentry *parent, + struct debugfs_regset32 *regset); + +int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, + int nregs, void __iomem *base, char *prefix); + bool debugfs_initialized(void); #else @@ -188,6 +207,13 @@ static inline struct dentry *debugfs_create_blob(const char *name, mode_t mode, return ERR_PTR(-ENODEV); } +static inline struct dentry *debugfs_create_regset32(const char *name, + mode_t mode, struct dentry *parent, + struct debugfs_regset32 *regset) +{ + return ERR_PTR(-ENODEV); +} + static inline bool debugfs_initialized(void) { return false; -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() 2011-11-18 0:20 [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Alessandro Rubini 2011-11-18 13:36 ` Felipe Balbi 2011-11-18 13:50 ` [PATCH V2 1/2] debugfs: add tools to printk " Alessandro Rubini @ 2011-11-18 13:51 ` Alessandro Rubini 2011-11-18 18:31 ` Greg KH 2011-11-18 19:48 ` Greg KH 2011-11-22 13:04 ` [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Mark Brown 3 siblings, 2 replies; 11+ messages in thread From: Alessandro Rubini @ 2011-11-18 13:51 UTC (permalink / raw) To: gregkh, linux-kernel; +Cc: giancarlo.asnaghi, balbi, broonie This a use example of the regs32 utilities in debugfs, although this fuse use ":" as separator between name and value, and debugs uses "=" (as it looked to me a more common practice). Signed-off-by: Alessandro Rubini <rubini@gnudd.com> Cc: Felipe Balbi <balbi@ti.com> --- drivers/usb/dwc3/debugfs.c | 15 +++------------ 1 files changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index da1ad77..d9e7a26 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -51,18 +51,13 @@ #include "gadget.h" #include "io.h" -struct dwc3_register { - const char *name; - u32 offset; -}; - #define dump_register(nm) \ { \ .name = __stringify(nm), \ .offset = DWC3_ ##nm, \ } -static const struct dwc3_register dwc3_regs[] = { +static const struct debugfs_reg32 dwc3_regs[] = { dump_register(GSBUSCFG0), dump_register(GSBUSCFG1), dump_register(GTXTHRCFG), @@ -385,12 +380,8 @@ static int dwc3_regdump_show(struct seq_file *s, void *unused) int i; seq_printf(s, "DesignWare USB3 Core Register Dump\n"); - - for (i = 0; i < ARRAY_SIZE(dwc3_regs); i++) { - seq_printf(s, "%-20s : %08x\n", dwc3_regs[i].name, - dwc3_readl(dwc->regs, dwc3_regs[i].offset)); - } - + debugfs_print_regs32(s, dwc3_regs, ARRAY_SIZE(dwc3_regs), + dwc->regs, ""); return 0; } -- 1.6.0.2 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() 2011-11-18 13:51 ` [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() Alessandro Rubini @ 2011-11-18 18:31 ` Greg KH 2011-11-18 19:26 ` Felipe Balbi 2011-11-18 19:48 ` Greg KH 1 sibling, 1 reply; 11+ messages in thread From: Greg KH @ 2011-11-18 18:31 UTC (permalink / raw) To: Alessandro Rubini; +Cc: gregkh, linux-kernel, giancarlo.asnaghi, balbi, broonie On Fri, Nov 18, 2011 at 02:51:43PM +0100, Alessandro Rubini wrote: > This a use example of the regs32 utilities in debugfs, although > this fuse use ":" as separator between name and value, and debugs > uses "=" (as it looked to me a more common practice). > > Signed-off-by: Alessandro Rubini <rubini@gnudd.com> > Cc: Felipe Balbi <balbi@ti.com> Felipe, any objection to me applying this patch? thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() 2011-11-18 18:31 ` Greg KH @ 2011-11-18 19:26 ` Felipe Balbi 0 siblings, 0 replies; 11+ messages in thread From: Felipe Balbi @ 2011-11-18 19:26 UTC (permalink / raw) To: Greg KH Cc: Alessandro Rubini, gregkh, linux-kernel, giancarlo.asnaghi, balbi, broonie [-- Attachment #1: Type: text/plain, Size: 558 bytes --] On Fri, Nov 18, 2011 at 10:31:09AM -0800, Greg KH wrote: > On Fri, Nov 18, 2011 at 02:51:43PM +0100, Alessandro Rubini wrote: > > This a use example of the regs32 utilities in debugfs, although > > this fuse use ":" as separator between name and value, and debugs > > uses "=" (as it looked to me a more common practice). > > > > Signed-off-by: Alessandro Rubini <rubini@gnudd.com> > > Cc: Felipe Balbi <balbi@ti.com> > > Felipe, any objection to me applying this patch? none whatsoever: Acked-by: Felipe Balbi <balbi@ti.com> -- balbi [-- Attachment #2: Digital signature --] [-- Type: application/pgp-signature, Size: 836 bytes --] ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() 2011-11-18 13:51 ` [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() Alessandro Rubini 2011-11-18 18:31 ` Greg KH @ 2011-11-18 19:48 ` Greg KH 2011-11-18 22:53 ` [PATCH] usb: dwc3: fix a warning Alessandro Rubini 2011-11-18 22:53 ` [PATCH] debugfs: print_regs32: make regs array a const pointer Alessandro Rubini 1 sibling, 2 replies; 11+ messages in thread From: Greg KH @ 2011-11-18 19:48 UTC (permalink / raw) To: Alessandro Rubini; +Cc: gregkh, linux-kernel, giancarlo.asnaghi, balbi, broonie On Fri, Nov 18, 2011 at 02:51:43PM +0100, Alessandro Rubini wrote: > This a use example of the regs32 utilities in debugfs, although > this fuse use ":" as separator between name and value, and debugs > uses "=" (as it looked to me a more common practice). > > Signed-off-by: Alessandro Rubini <rubini@gnudd.com> > Acked-by: Felipe Balbi <balbi@ti.com> I've applied this, but it causes the following complier warnings to be spit out: drivers/usb/dwc3/debugfs.c: In function ‘dwc3_regdump_show’: drivers/usb/dwc3/debugfs.c:384:9: warning: passing argument 2 of ‘debugfs_print_regs32’ discards ‘const’ qualifier from pointer target type [enabled by default] include/linux/debugfs.h:93:5: note: expected ‘struct debugfs_reg32 *’ but argument is of type ‘const struct debugfs_reg32 *’ drivers/usb/dwc3/debugfs.c:380:8: warning: unused variable ‘i’ [-Wunused-variable] Alessandro, care to send me a follow-on patch to fix this up? thanks, greg k-h ^ permalink raw reply [flat|nested] 11+ messages in thread
* [PATCH] usb: dwc3: fix a warning 2011-11-18 19:48 ` Greg KH @ 2011-11-18 22:53 ` Alessandro Rubini 2011-11-18 22:53 ` [PATCH] debugfs: print_regs32: make regs array a const pointer Alessandro Rubini 1 sibling, 0 replies; 11+ messages in thread From: Alessandro Rubini @ 2011-11-18 22:53 UTC (permalink / raw) To: greg; +Cc: gregkh, linux-kernel, giancarlo.asnaghi, balbi, broonie The previous patch left an unused variable, I apologize. Signed-off-by: Alessandro Rubini <rubini@gnudd.com> --- drivers/usb/dwc3/debugfs.c | 1 - 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/drivers/usb/dwc3/debugfs.c b/drivers/usb/dwc3/debugfs.c index d9e7a26..fcfa915 100644 --- a/drivers/usb/dwc3/debugfs.c +++ b/drivers/usb/dwc3/debugfs.c @@ -377,7 +377,6 @@ static const struct debugfs_reg32 dwc3_regs[] = { static int dwc3_regdump_show(struct seq_file *s, void *unused) { struct dwc3 *dwc = s->private; - int i; seq_printf(s, "DesignWare USB3 Core Register Dump\n"); debugfs_print_regs32(s, dwc3_regs, ARRAY_SIZE(dwc3_regs), -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* [PATCH] debugfs: print_regs32: make regs array a const pointer 2011-11-18 19:48 ` Greg KH 2011-11-18 22:53 ` [PATCH] usb: dwc3: fix a warning Alessandro Rubini @ 2011-11-18 22:53 ` Alessandro Rubini 1 sibling, 0 replies; 11+ messages in thread From: Alessandro Rubini @ 2011-11-18 22:53 UTC (permalink / raw) To: greg; +Cc: gregkh, linux-kernel, giancarlo.asnaghi, balbi, broonie Signed-off-by: Alessandro Rubini <rubini@gnudd.com> --- fs/debugfs/file.c | 2 +- include/linux/debugfs.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/debugfs/file.c b/fs/debugfs/file.c index f31a27c..fc98ec9 100644 --- a/fs/debugfs/file.c +++ b/fs/debugfs/file.c @@ -548,7 +548,7 @@ EXPORT_SYMBOL_GPL(debugfs_create_blob); * because some peripherals have several blocks of identical registers, * for example configuration of dma channels */ -int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, +int debugfs_print_regs32(struct seq_file *s, const struct debugfs_reg32 *regs, int nregs, void __iomem *base, char *prefix) { int i, ret = 0; diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index 5e6b01f..e8c3abc 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h @@ -90,7 +90,7 @@ struct dentry *debugfs_create_regset32(const char *name, mode_t mode, struct dentry *parent, struct debugfs_regset32 *regset); -int debugfs_print_regs32(struct seq_file *s, struct debugfs_reg32 *regs, +int debugfs_print_regs32(struct seq_file *s, const struct debugfs_reg32 *regs, int nregs, void __iomem *base, char *prefix); bool debugfs_initialized(void); -- 1.5.6.5 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH V2 0/2] debugfs: a tool to print 32-bit registers 2011-11-18 0:20 [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Alessandro Rubini ` (2 preceding siblings ...) 2011-11-18 13:51 ` [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() Alessandro Rubini @ 2011-11-22 13:04 ` Mark Brown 3 siblings, 0 replies; 11+ messages in thread From: Mark Brown @ 2011-11-22 13:04 UTC (permalink / raw) To: Alessandro Rubini; +Cc: gregkh, linux-kernel, anaghi, balbi On Fri, Nov 18, 2011 at 01:20:49AM +0100, Alessandro Rubini wrote: > Mark, if you say this is not useful at this point, I'm fine with it; I > may return with some regbase-aware code when time permits if it's not > already there. We definitely can't just use this directly with regmap as regmap is for non memory mapped devices and makes some assumptions in that regard. I was mostly just suggesting that we try to keep the file formats similar to make life easier for userspace. ^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2011-11-22 13:04 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2011-11-18 0:20 [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Alessandro Rubini 2011-11-18 13:36 ` Felipe Balbi 2011-11-18 13:55 ` Alessandro Rubini 2011-11-18 13:50 ` [PATCH V2 1/2] debugfs: add tools to printk " Alessandro Rubini 2011-11-18 13:51 ` [PATCH V2 2/2] usb: dwc3: use debugfs_print_regs32() Alessandro Rubini 2011-11-18 18:31 ` Greg KH 2011-11-18 19:26 ` Felipe Balbi 2011-11-18 19:48 ` Greg KH 2011-11-18 22:53 ` [PATCH] usb: dwc3: fix a warning Alessandro Rubini 2011-11-18 22:53 ` [PATCH] debugfs: print_regs32: make regs array a const pointer Alessandro Rubini 2011-11-22 13:04 ` [PATCH V2 0/2] debugfs: a tool to print 32-bit registers Mark Brown
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox