From: Anisse Astier <anisse@astier.eu>
To: Ivo Van Doorn <ivdoorn@gmail.com>
Cc: linux-wireless@vger.kernel.org, users@rt2x00.serialmonkey.com,
linville@tuxdriver.com,
Gertjan van Wingerde <gwingerde@gmail.com>,
Helmut Schaa <helmut.schaa@googlemail.com>
Subject: Re: [PATCH v3 1/2] rt2x00: debugfs support - allow a register to be empty
Date: Fri, 20 Apr 2012 17:48:23 +0200 [thread overview]
Message-ID: <20120420174823.7a0e0921@destiny.ordissimo> (raw)
In-Reply-To: <CAOZOX0XppHercdP64G+pOTxrzz6H0UNsr0Bkw6TzkGW_MNZJiw@mail.gmail.com>
On Fri, 20 Apr 2012 09:03:00 +0200, Ivo Van Doorn <ivdoorn@gmail.com> wrote :
> Hi,
>
> I'm almost completely happy with this patch. :)
>
> > @@ -694,25 +693,29 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
> > if (IS_ERR(intf->register_folder) || !intf->register_folder)
> > goto exit;
> >
> > -#define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name) \
> > -({ \
> > - (__intf)->__name##_off_entry = \
> > - debugfs_create_u32(__stringify(__name) "_offset", \
> > - S_IRUSR | S_IWUSR, \
> > - (__intf)->register_folder, \
> > - &(__intf)->offset_##__name); \
> > - if (IS_ERR((__intf)->__name##_off_entry) \
> > - || !(__intf)->__name##_off_entry) \
> > - goto exit; \
> > - \
> > - (__intf)->__name##_val_entry = \
> > - debugfs_create_file(__stringify(__name) "_value", \
> > - S_IRUSR | S_IWUSR, \
> > - (__intf)->register_folder, \
> > - (__intf), &rt2x00debug_fop_##__name);\
> > - if (IS_ERR((__intf)->__name##_val_entry) \
> > - || !(__intf)->__name##_val_entry) \
> > - goto exit; \
> > +#define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name) \
> > +({ \
> > + if(debug->__name.read) { \
> > + (__intf)->__name##_off_entry = \
> > + debugfs_create_u32(__stringify(__name) "_offset", \
> > + S_IRUSR | S_IWUSR, \
> > + (__intf)->register_folder, \
> > + &(__intf)->offset_##__name); \
> > + if (IS_ERR((__intf)->__name##_off_entry) \
> > + || !(__intf)->__name##_off_entry) \
> > + goto exit; \
> > + \
> > + (__intf)->__name##_val_entry = \
> > + debugfs_create_file(__stringify(__name) "_value", \
> > + S_IRUSR | S_IWUSR, \
> > + (__intf)->register_folder, \
> > + (__intf), &rt2x00debug_fop_##__name); \
> > + if (IS_ERR((__intf)->__name##_val_entry) \
> > + || !(__intf)->__name##_val_entry) \
> > + goto exit; \
> > + } else \
> > + DEBUG(rt2x00dev, "Unsupported register on this device: " \
> > + __stringify(__name) "\n"); \
> > })
>
> I don't think we need to print error messages to the log, this will
> only confuse users.
> The driver intentionally didn't register the register type, so it is
> not worth the warning to the user.
>
> Ivo
Sure :-)
From: Anisse Astier <anisse@astier.eu>
Date: Thu, 19 Apr 2012 15:04:52 +0200
Subject: [PATCH v4 1/2] rt2x00: debugfs support - allow a register to be empty
Allow a register to be unspecified, therefore not creating its debugfs
file entry.
Signed-off-by: Anisse Astier <anisse@astier.eu>
---
Changes since v3:
- Don't print a debug message when register type isn't registered
---
drivers/net/wireless/rt2x00/rt2x00debug.c | 71 +++++++++++++++--------------
1 file changed, 36 insertions(+), 35 deletions(-)
diff --git a/drivers/net/wireless/rt2x00/rt2x00debug.c b/drivers/net/wireless/rt2x00/rt2x00debug.c
index 78787fc..5bb1221 100644
--- a/drivers/net/wireless/rt2x00/rt2x00debug.c
+++ b/drivers/net/wireless/rt2x00/rt2x00debug.c
@@ -624,22 +624,21 @@ static struct dentry *rt2x00debug_create_file_chipset(const char *name,
data += sprintf(data, "revision:\t%04x\n", intf->rt2x00dev->chip.rev);
data += sprintf(data, "\n");
data += sprintf(data, "register\tbase\twords\twordsize\n");
- data += sprintf(data, "csr\t%d\t%d\t%d\n",
- debug->csr.word_base,
- debug->csr.word_count,
- debug->csr.word_size);
- data += sprintf(data, "eeprom\t%d\t%d\t%d\n",
- debug->eeprom.word_base,
- debug->eeprom.word_count,
- debug->eeprom.word_size);
- data += sprintf(data, "bbp\t%d\t%d\t%d\n",
- debug->bbp.word_base,
- debug->bbp.word_count,
- debug->bbp.word_size);
- data += sprintf(data, "rf\t%d\t%d\t%d\n",
- debug->rf.word_base,
- debug->rf.word_count,
- debug->rf.word_size);
+#define RT2X00DEBUGFS_SPRINTF_REGISTER(__name) \
+{ \
+ if(debug->__name.read) \
+ data += sprintf(data, __stringify(__name) \
+ "\t%d\t%d\t%d\n", \
+ debug->__name.word_base, \
+ debug->__name.word_count, \
+ debug->__name.word_size); \
+}
+ RT2X00DEBUGFS_SPRINTF_REGISTER(csr);
+ RT2X00DEBUGFS_SPRINTF_REGISTER(eeprom);
+ RT2X00DEBUGFS_SPRINTF_REGISTER(bbp);
+ RT2X00DEBUGFS_SPRINTF_REGISTER(rf);
+#undef RT2X00DEBUGFS_SPRINTF_REGISTER
+
blob->size = strlen(blob->data);
return debugfs_create_blob(name, S_IRUSR, intf->driver_folder, blob);
@@ -694,25 +693,27 @@ void rt2x00debug_register(struct rt2x00_dev *rt2x00dev)
if (IS_ERR(intf->register_folder) || !intf->register_folder)
goto exit;
-#define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name) \
-({ \
- (__intf)->__name##_off_entry = \
- debugfs_create_u32(__stringify(__name) "_offset", \
- S_IRUSR | S_IWUSR, \
- (__intf)->register_folder, \
- &(__intf)->offset_##__name); \
- if (IS_ERR((__intf)->__name##_off_entry) \
- || !(__intf)->__name##_off_entry) \
- goto exit; \
- \
- (__intf)->__name##_val_entry = \
- debugfs_create_file(__stringify(__name) "_value", \
- S_IRUSR | S_IWUSR, \
- (__intf)->register_folder, \
- (__intf), &rt2x00debug_fop_##__name);\
- if (IS_ERR((__intf)->__name##_val_entry) \
- || !(__intf)->__name##_val_entry) \
- goto exit; \
+#define RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(__intf, __name) \
+({ \
+ if(debug->__name.read) { \
+ (__intf)->__name##_off_entry = \
+ debugfs_create_u32(__stringify(__name) "_offset", \
+ S_IRUSR | S_IWUSR, \
+ (__intf)->register_folder, \
+ &(__intf)->offset_##__name); \
+ if (IS_ERR((__intf)->__name##_off_entry) \
+ || !(__intf)->__name##_off_entry) \
+ goto exit; \
+ \
+ (__intf)->__name##_val_entry = \
+ debugfs_create_file(__stringify(__name) "_value", \
+ S_IRUSR | S_IWUSR, \
+ (__intf)->register_folder, \
+ (__intf), &rt2x00debug_fop_##__name); \
+ if (IS_ERR((__intf)->__name##_val_entry) \
+ || !(__intf)->__name##_val_entry) \
+ goto exit; \
+ } \
})
RT2X00DEBUGFS_CREATE_REGISTER_ENTRY(intf, csr);
--
1.7.9.4
next prev parent reply other threads:[~2012-04-20 15:48 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-19 9:20 [PATCH v2 1/2] rt2800: debugfs register access: BBP is 256 bytes big Anisse Astier
2012-04-19 9:20 ` [PATCH RFC v2 2/2] rt2x00: Add debugfs access for rfcsr register Anisse Astier
2012-04-19 11:07 ` Ivo Van Doorn
2012-04-19 13:53 ` [PATCH v3 1/2] rt2x00: debugfs support - allow a register to be empty Anisse Astier
2012-04-19 13:53 ` [PATCH v3 2/2] rt2x00: Add debugfs access for rfcsr register Anisse Astier
2012-04-20 7:03 ` Ivo Van Doorn
2012-04-20 7:03 ` [PATCH v3 1/2] rt2x00: debugfs support - allow a register to be empty Ivo Van Doorn
2012-04-20 15:48 ` Anisse Astier [this message]
2012-04-21 12:54 ` Ivo Van Doorn
2012-04-19 11:02 ` [PATCH v2 1/2] rt2800: debugfs register access: BBP is 256 bytes big Ivo Van Doorn
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120420174823.7a0e0921@destiny.ordissimo \
--to=anisse@astier.eu \
--cc=gwingerde@gmail.com \
--cc=helmut.schaa@googlemail.com \
--cc=ivdoorn@gmail.com \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=users@rt2x00.serialmonkey.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox