Re: [PATCH v2 09/10] rtlwifi: use debugfs to debug.

2017-08-14 Thread Joe Perches
On Mon, 2017-08-14 at 16:17 -0500, Larry Finger wrote:
> On 08/14/2017 01:56 PM, Joe Perches wrote:
> > On Sun, 2017-06-25 at 10:43 -0500, Larry Finger wrote:
> > > From: Ping-Ke Shih 
> > > 
> > > Use debugfs to dump register and btcoex status.
> > 
> > []
> > > diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.c 
> > > b/drivers/net/wireless/realtek/rtlwifi/debug.c
> > 
> > []
> > > +void rtl_debug_add_one(struct ieee80211_hw *hw)
> > > +{
> > > + struct rtl_priv *rtlpriv = rtl_priv(hw);
> > > + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
> > > + struct dentry *parent;
> > > +
> > > + snprintf(rtlpriv->dbg.debugfs_name, 18, "%02x-%02x-%02x-%02x-%02x-%02x",
> > > +  rtlefuse->dev_addr[0], rtlefuse->dev_addr[1],
> > > +  rtlefuse->dev_addr[2], rtlefuse->dev_addr[3],
> > > +  rtlefuse->dev_addr[4], rtlefuse->dev_addr[5]);
> > 
> > Why uses dashes and why not just use %pM
> 
> This snprintf() supplies the MAC address in a file name of the type
> /sys/kernel/debug/rtlwifi/00-11-22-33-44-55-66/mac_0
> Using %pM would put colons there, and I have had trouble with colons in a 
> file 
> name. We could use %#pM and drop the separators.

%pm emits without colons



Re: [PATCH v2 09/10] rtlwifi: use debugfs to debug.

2017-08-14 Thread Larry Finger

On 08/14/2017 02:08 PM, Arend van Spriel wrote:

On 14-08-17 20:56, Joe Perches wrote:

On Sun, 2017-06-25 at 10:43 -0500, Larry Finger wrote:

From: Ping-Ke Shih 


Also the subject line is kinda generic. At least it made me smile ;-p


Subject now changed to "rtlwifi: Use debugfs to improve debugging"

Larry



Re: [PATCH v2 09/10] rtlwifi: use debugfs to debug.

2017-08-14 Thread Larry Finger

On 08/14/2017 01:56 PM, Joe Perches wrote:

On Sun, 2017-06-25 at 10:43 -0500, Larry Finger wrote:

From: Ping-Ke Shih 

Use debugfs to dump register and btcoex status.

[]

diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.c 
b/drivers/net/wireless/realtek/rtlwifi/debug.c

[]

+void rtl_debug_add_one(struct ieee80211_hw *hw)
+{
+   struct rtl_priv *rtlpriv = rtl_priv(hw);
+   struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
+   struct dentry *parent;
+
+   snprintf(rtlpriv->dbg.debugfs_name, 18, "%02x-%02x-%02x-%02x-%02x-%02x",
+rtlefuse->dev_addr[0], rtlefuse->dev_addr[1],
+rtlefuse->dev_addr[2], rtlefuse->dev_addr[3],
+rtlefuse->dev_addr[4], rtlefuse->dev_addr[5]);


Why uses dashes and why not just use %pM


This snprintf() supplies the MAC address in a file name of the type
/sys/kernel/debug/rtlwifi/00-11-22-33-44-55-66/mac_0
Using %pM would put colons there, and I have had trouble with colons in a file 
name. We could use %#pM and drop the separators.


Larry




Re: [PATCH v2 09/10] rtlwifi: use debugfs to debug.

2017-08-14 Thread Arend van Spriel

On 14-08-17 20:56, Joe Perches wrote:

On Sun, 2017-06-25 at 10:43 -0500, Larry Finger wrote:

From: Ping-Ke Shih 


Also the subject line is kinda generic. At least it made me smile ;-p


Use debugfs to dump register and btcoex status.

[]

diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.c 
b/drivers/net/wireless/realtek/rtlwifi/debug.c

[]

+void rtl_debug_add_one(struct ieee80211_hw *hw)
+{
+   struct rtl_priv *rtlpriv = rtl_priv(hw);
+   struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
+   struct dentry *parent;
+
+   snprintf(rtlpriv->dbg.debugfs_name, 18, "%02x-%02x-%02x-%02x-%02x-%02x",
+rtlefuse->dev_addr[0], rtlefuse->dev_addr[1],
+rtlefuse->dev_addr[2], rtlefuse->dev_addr[3],
+rtlefuse->dev_addr[4], rtlefuse->dev_addr[5]);


Why uses dashes and why not just use %pM


Indeed looks like good candidate to use %pM.

Regards,
Arend


Re: [PATCH v2 09/10] rtlwifi: use debugfs to debug.

2017-08-14 Thread Joe Perches
On Sun, 2017-06-25 at 10:43 -0500, Larry Finger wrote:
> From: Ping-Ke Shih 
> 
> Use debugfs to dump register and btcoex status.
[]
> diff --git a/drivers/net/wireless/realtek/rtlwifi/debug.c 
> b/drivers/net/wireless/realtek/rtlwifi/debug.c
[]
> +void rtl_debug_add_one(struct ieee80211_hw *hw)
> +{
> + struct rtl_priv *rtlpriv = rtl_priv(hw);
> + struct rtl_efuse *rtlefuse = rtl_efuse(rtl_priv(hw));
> + struct dentry *parent;
> +
> + snprintf(rtlpriv->dbg.debugfs_name, 18, "%02x-%02x-%02x-%02x-%02x-%02x",
> +  rtlefuse->dev_addr[0], rtlefuse->dev_addr[1],
> +  rtlefuse->dev_addr[2], rtlefuse->dev_addr[3],
> +  rtlefuse->dev_addr[4], rtlefuse->dev_addr[5]);

Why uses dashes and why not just use %pM



[PATCH v2 09/10] rtlwifi: use debugfs to debug.

2017-06-25 Thread Larry Finger
From: Ping-Ke Shih 

Use debugfs to dump register and btcoex status.

Signed-off-by: Ping-Ke Shih 
Signed-off-by: Larry Finger 
Cc: Yan-Hsuan Chuang 
Cc: Birming Chiu 
Cc: Shaofu 
Cc: Steven Ting 
---
v2 - no changes
---
 drivers/net/wireless/realtek/rtlwifi/base.c|   6 +
 .../realtek/rtlwifi/btcoexist/halbtcoutsrc.c   |   3 +-
 .../realtek/rtlwifi/btcoexist/halbtcoutsrc.h   |   3 +-
 .../wireless/realtek/rtlwifi/btcoexist/rtl_btc.c   |   6 +
 .../wireless/realtek/rtlwifi/btcoexist/rtl_btc.h   |   1 +
 drivers/net/wireless/realtek/rtlwifi/debug.c   | 439 +
 drivers/net/wireless/realtek/rtlwifi/debug.h   |  12 +
 drivers/net/wireless/realtek/rtlwifi/pci.c |   6 +
 drivers/net/wireless/realtek/rtlwifi/wifi.h|   9 +
 9 files changed, 483 insertions(+), 2 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c 
b/drivers/net/wireless/realtek/rtlwifi/base.c
index 464f14450f75..40c6fbc05c14 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -2453,6 +2453,9 @@ static int __init rtl_core_module_init(void)
if (rtl_rate_control_register())
pr_err("rtl: Unable to register rtl_rc, use default RC !!\n");
 
+   /* add debugfs */
+   rtl_debugfs_add_topdir();
+
/* init some global vars */
INIT_LIST_HEAD(_global_var.glb_priv_list);
spin_lock_init(_global_var.glb_list_lock);
@@ -2464,6 +2467,9 @@ static void __exit rtl_core_module_exit(void)
 {
/*RC*/
rtl_rate_control_unregister();
+
+   /* remove debugfs */
+   rtl_debugfs_remove_topdir();
 }
 
 module_init(rtl_core_module_init);
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
index c1eacd8352a2..e4f0d4710fb4 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.c
@@ -1504,7 +1504,8 @@ void exhalbtc_set_single_ant_path(u8 single_ant_path)
gl_bt_coexist.board_info.single_ant_path = single_ant_path;
 }
 
-void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist)
+void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist,
+  struct seq_file *m)
 {
if (!halbtc_is_bt_coexist_available(btcoexist))
return;
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h
index f9b87c12db09..53aeb669cc63 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/halbtcoutsrc.h
@@ -626,7 +626,8 @@ void exhalbtc_update_min_bt_rssi(s8 bt_rssi);
 void exhalbtc_set_bt_exist(bool bt_exist);
 void exhalbtc_set_chip_type(u8 chip_type);
 void exhalbtc_set_ant_num(struct rtl_priv *rtlpriv, u8 type, u8 ant_num);
-void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist);
+void exhalbtc_display_bt_coex_info(struct btc_coexist *btcoexist,
+  struct seq_file *m);
 void exhalbtc_signal_compensation(struct btc_coexist *btcoexist,
  u8 *rssi_wifi, u8 *rssi_bt);
 void exhalbtc_lps_leave(struct btc_coexist *btcoexist);
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
index 7d296a401b6f..4d9e33078d4f 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.c
@@ -52,8 +52,14 @@ static struct rtl_btc_ops rtl_btc_operation = {
.btc_is_bt_ctrl_lps = rtl_btc_is_bt_ctrl_lps,
.btc_is_bt_lps_on = rtl_btc_is_bt_lps_on,
.btc_get_ampdu_cfg = rtl_btc_get_ampdu_cfg,
+   .btc_display_bt_coex_info = rtl_btc_display_bt_coex_info,
 };
 
+void rtl_btc_display_bt_coex_info(struct rtl_priv *rtlpriv, struct seq_file *m)
+{
+   exhalbtc_display_bt_coex_info(_bt_coexist, m);
+}
+
 void rtl_btc_record_pwr_mode(struct rtl_priv *rtlpriv, u8 *buf, u8 len)
 {
u8 safe_len;
diff --git a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.h 
b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.h
index ac1253c46f44..40f1ce8c8a06 100644
--- a/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.h
+++ b/drivers/net/wireless/realtek/rtlwifi/btcoexist/rtl_btc.h
@@ -44,6 +44,7 @@ bool rtl_btc_is_limited_dig(struct rtl_priv *rtlpriv);
 bool rtl_btc_is_disable_edca_turbo(struct rtl_priv *rtlpriv);
 bool rtl_btc_is_bt_disabled(struct rtl_priv *rtlpriv);
 void rtl_btc_special_packet_notify(struct rtl_priv *rtlpriv, u8 pkt_type);
+void rtl_btc_display_bt_coex_info(struct rtl_priv *rtlpriv, struct seq_file 
*m);