2016-09-22 09:51:20

by Jean Delvare

[permalink] [raw]
Subject: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

Hello,

I bought an Asus PCE-N10 PCIe Wi-Fi N card to install in my wife's
computer. This morning it stopped working suddenly. Investigating the
kernel logs, the following error message caught my eye:

rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

It was printed twice, 3.5 hours apart, the second time at the moment
the network stopped working. I guess this is not supposed to happen.
What additional information can I provide to help you debug the issue?
That's the device:

03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)
Subsystem: ASUSTeK Computer Inc. Device [1043:84b5]
Flags: bus master, fast devsel, latency 0, IRQ 17
I/O ports at e800 [size=256]
Memory at febfc000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: rtl8192ce
Kernel modules: rtl8192ce

Kernel version is 4.5.4-1-default x86_64 (openSUSE Tumbleweed.)

Reloading the rtl8192ce module and restarting the network service got
everything back up.

Thanks,
--
Jean Delvare
SUSE L3 Support


2016-09-24 20:02:06

by Jes Sorensen

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

Larry Finger <[email protected]> writes:
> On 09/24/2016 12:32 PM, Joe Perches wrote:
>> Is there any value in that or is Jes' work going to make
>> doing any or all of this unnecessary and futile?
>
> That is not yet determined. The only driver that is to be replaced at
> this point is rtl8192cu. Jes only has USB I/O for his driver. We are
> looking at adding SDIO, and once that is done, PCI should be possible.

If someone else wants to address PCI then it could happen quite soon,
but at the current schedule I don't see PCI happen in my driver for at
least a year, probably more.

If you can reduce the size of rtlwifi in the mean time that probably
isn't going to upset a lot of people.

Jes

2016-09-24 16:35:02

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On 09/24/2016 11:15 AM, Joe Perches wrote:
> On Sat, 2016-09-24 at 17:55 +0200, Jean Delvare wrote:
>> Would it make sense to explicitly set the enum values, or add them as
>> comments, to make such look-ups easier?
>
> If you want to create enum->#ENUM structs and
> "const char *" lookup functions, please be my guest.
>
> otherwise, hex is at least a consistent way to display
> what should be infrequent output.

Displaying those values as hex is OK. As Joe says, they will not be shown very
often.

I have patches that makes HAL_DEF_WOWLAN be a no-op for the rest of the drivers,
and one that sets the enum values for that particular statement to hex values. I
also looked at the other large enums and decided that they never need the human
lookup.

Larry

2016-09-24 16:15:58

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On Sat, 2016-09-24 at 17:55 +0200, Jean Delvare wrote:
> Would it make sense to explicitly set the enum values, or add them as
> comments, to make such look-ups easier?

If you want to create enum->#ENUM structs and
"const char *" lookup functions, please be my guest.

otherwise, hex is at least a consistent way to display
what should be infrequent output.

2016-09-23 18:27:35

by Joe Perches

[permalink] [raw]
Subject: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

Help along debugging by showing what switch/case variable is not
being processed in these messages.

Signed-off-by: Joe Perches <[email protected]>
---
drivers/net/wireless/realtek/rtlwifi/core.c | 3 ++-
drivers/net/wireless/realtek/rtlwifi/pci.c | 3 ++-
drivers/net/wireless/realtek/rtlwifi/ps.c | 2 +-
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 9 +++++----
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c | 10 ++++++----
.../wireless/realtek/rtlwifi/rtl8192c/fw_common.c | 4 ++--
.../wireless/realtek/rtlwifi/rtl8192c/phy_common.c | 8 +++++---
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 7 ++++---
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c | 7 ++-----
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c | 7 ++-----
drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 9 +++++----
drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 15 +++++++--------
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 9 +++++----
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c | 10 ++++++----
drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 9 +++++----
drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 5 +++--
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 9 +++++----
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c | 10 ++++++----
drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 10 +++++-----
drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c | 12 +++++++-----
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 9 +++++----
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c | 4 ++--
drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c | 20 ++++++--------------
38 files changed, 128 insertions(+), 123 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
index 7aee5ebb1..f95760c 100644
--- a/drivers/net/wireless/realtek/rtlwifi/core.c
+++ b/drivers/net/wireless/realtek/rtlwifi/core.c
@@ -765,7 +765,8 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
mac->bw_40 = false;
mac->bw_80 = false;
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ channel_type);
break;
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
index d12586d..0dfa9ea 100644
--- a/drivers/net/wireless/realtek/rtlwifi/pci.c
+++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
@@ -179,7 +179,8 @@ static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ rtlpci->const_support_pciaspm);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.c
index 9a64f9b..18d979a 100644
--- a/drivers/net/wireless/realtek/rtlwifi/ps.c
+++ b/drivers/net/wireless/realtek/rtlwifi/ps.c
@@ -151,7 +151,7 @@ static bool rtl_ps_set_rf_state(struct ieee80211_hw *hw,

default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", state_toset);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
index 6291256..5360d53 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
@@ -334,7 +334,7 @@ static void _rtl88e_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", boxnum);
break;
}
isfw_read = _rtl88e_check_fw_read_last_h2c(hw, boxnum);
@@ -405,7 +405,7 @@ static void _rtl88e_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
index 4ab6201..3285117 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
@@ -357,7 +357,7 @@ void rtl88ee_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break; }
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -571,7 +571,8 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -735,7 +736,7 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break; }
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -2352,7 +2353,7 @@ void rtl88ee_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c
index b504bd0..f05c2c6 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c
@@ -62,7 +62,7 @@ void rtl88ee_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -100,7 +100,7 @@ void rtl88ee_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
index 7498a12..fffaa92 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
@@ -1346,7 +1346,8 @@ static bool _rtl88e_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}

@@ -2128,7 +2129,7 @@ bool rtl88e_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -2166,7 +2167,8 @@ static void rtl88e_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
@@ -2319,7 +2321,7 @@ static bool _rtl88ee_phy_set_rf_power_state(struct ieee80211_hw *hw,
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
index 43fcb25..7d15246 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
@@ -352,7 +352,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", boxnum);
break;
}

@@ -456,7 +456,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c
index 60ab2ec..27e3d5f 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c
@@ -910,7 +910,8 @@ bool _rtl92c_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}

@@ -1567,7 +1568,7 @@ bool rtl92c_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -1605,7 +1606,8 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
index 2446079..6d308f9 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
@@ -143,7 +143,7 @@ void rtl92ce_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -367,7 +367,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -2154,7 +2155,7 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c
index 8283e9b..24e483b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c
@@ -62,7 +62,7 @@ void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -97,7 +97,7 @@ void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
index 1ee5a6a..46d0d94 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
@@ -300,12 +300,9 @@ bool rtl92c_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
}
break;
case RF90_PATH_C:
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
- break;
case RF90_PATH_D:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpath);
break;
default:
break;
@@ -554,7 +551,7 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
index 8789752..ae8f055 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
@@ -1560,7 +1560,7 @@ void rtl92cu_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -1931,7 +1931,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c
index 75a2deb..8514ab65 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c
@@ -62,7 +62,7 @@ void rtl92cu_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -95,7 +95,7 @@ void rtl92cu_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
index c972fa5..4b29764 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
@@ -277,12 +277,9 @@ bool rtl92cu_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
}
break;
case RF90_PATH_C:
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
- break;
case RF90_PATH_D:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpath);
break;
default:
break;
@@ -517,7 +514,7 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
index 62ef820..8de29cc 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
@@ -435,7 +435,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", boxnum);
break;
}
isfw_read = _rtl92d_check_fw_read_last_h2c(hw, boxnum);
@@ -512,7 +512,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}
bwrite_success = true;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
index 5720551..5369011 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
@@ -166,7 +166,7 @@ void rtl92de_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -361,7 +361,8 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -502,7 +503,7 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -2171,7 +2172,7 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c
index 76a57ae..811ba57 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c
@@ -71,7 +71,7 @@ void rtl92de_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -106,7 +106,7 @@ void rtl92de_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
index 2a4810d..2a1edfd 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
@@ -836,12 +836,9 @@ bool rtl92d_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
}
break;
case RF90_PATH_C:
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
- break;
case RF90_PATH_D:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpath);
break;
}
return true;
@@ -2850,7 +2847,8 @@ static bool _rtl92d_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}
break;
@@ -2963,7 +2961,8 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
@@ -2994,7 +2993,7 @@ bool rtl92d_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -3182,7 +3181,7 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
index 0708eed..b3f6a9e 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
@@ -344,7 +344,7 @@ static void _rtl92ee_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", boxnum);
break;
}

@@ -433,7 +433,7 @@ static void _rtl92ee_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
index b07af8d..47bb6d8 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
@@ -340,7 +340,7 @@ void rtl92ee_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -566,7 +566,8 @@ void rtl92ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -685,7 +686,7 @@ void rtl92ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -2463,7 +2464,7 @@ void rtl92ee_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
- "switch case not process\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c
index 8388e37..47da05d 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c
@@ -61,7 +61,7 @@ void rtl92ee_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -91,7 +91,7 @@ void rtl92ee_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
index beafc9a..5ad7e75 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
@@ -1927,7 +1927,8 @@ static bool _rtl92ee_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}

@@ -3001,7 +3002,7 @@ bool rtl92ee_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -3041,7 +3042,8 @@ static void rtl92ee_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
@@ -3187,7 +3189,7 @@ static bool _rtl92ee_phy_set_rf_power_state(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
index ddfa0ae..5bad9c9 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
@@ -79,7 +79,7 @@ void rtl92se_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
}
default: {
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -297,7 +297,8 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -433,7 +434,7 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break; }
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", variable);
break;
}

@@ -2465,7 +2466,7 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c
index 44949b5..9849cb9 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c
@@ -68,7 +68,7 @@ void rtl92se_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -104,7 +104,7 @@ void rtl92se_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
index 881821f..4bb7558 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
@@ -442,7 +442,8 @@ static bool _rtl92s_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}

@@ -648,7 +649,7 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not processed\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
index b7c0d38..1186755 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
@@ -124,7 +124,7 @@ static void _rtl8723e_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", boxnum);
break;
}

@@ -230,7 +230,7 @@ static void _rtl8723e_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
index ba30efc..2bf603b 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
@@ -143,7 +143,7 @@ void rtl8723e_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -366,7 +366,8 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -546,7 +547,7 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
}
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -2225,7 +2226,7 @@ void rtl8723e_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c
index 1317335..c7be934 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c
@@ -63,7 +63,7 @@ void rtl8723e_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -105,7 +105,7 @@ void rtl8723e_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
index 601b78e..17b58cb 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
@@ -1023,7 +1023,8 @@ static bool _rtl8723e_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}

@@ -1499,7 +1500,7 @@ bool rtl8723e_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -1536,7 +1537,8 @@ static void rtl8723e_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
@@ -1682,7 +1684,7 @@ static bool _rtl8723e_phy_set_rf_power_state(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
index d5da0f3..8c5c27c 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
@@ -122,7 +122,7 @@ static void _rtl8723be_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", boxnum);
break;
}

@@ -195,7 +195,7 @@ static void _rtl8723be_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
index 82e4476..999c1ac 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
@@ -350,7 +350,7 @@ void rtl8723be_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -607,7 +607,8 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -723,8 +724,7 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process %x\n",
- variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -2565,7 +2565,7 @@ void rtl8723be_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c
index 4196efb..497913e 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c
@@ -58,7 +58,7 @@ void rtl8723be_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -100,7 +100,7 @@ void rtl8723be_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
index 285818d..3cc2232 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
@@ -837,7 +837,7 @@ bool rtl8723be_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
break;
case RF90_PATH_D:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpath);
break;
}
return true;
@@ -1507,7 +1507,8 @@ static bool _rtl8723be_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ currentcmd->cmdid);
break;
}

@@ -2515,7 +2516,7 @@ bool rtl8723be_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -2553,7 +2554,8 @@ static void rtl8723be_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
@@ -2705,7 +2707,7 @@ static bool _rtl8723be_phy_set_rf_power_state(struct ieee80211_hw *hw,

default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
index a4fc70e..b665446 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
@@ -392,7 +392,7 @@ static void _rtl8821ae_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", boxnum);
break;
}

@@ -481,7 +481,7 @@ static void _rtl8821ae_fill_h2c_command(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", cmd_len);
break;
}

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
index 0cddf1a..1281ebe 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
@@ -480,7 +480,7 @@ void rtl8821ae_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -671,7 +671,8 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ e_aci);
break;
}
}
@@ -800,7 +801,7 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
break; }
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process %x\n", variable);
+ "switch case %#x not processed\n", variable);
break;
}
}
@@ -3934,7 +3935,7 @@ void rtl8821ae_set_key(struct ieee80211_hw *hw, u32 key_index,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", enc_algo);
enc_algo = CAM_TKIP;
break;
}
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c
index ba1946a..fcb3b28 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c
@@ -60,7 +60,7 @@ void rtl8821ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = true;
@@ -133,7 +133,7 @@ void rtl8821ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
- "switch case not process\n");
+ "switch case %#x not processed\n", pled->ledpin);
break;
}
pled->ledon = false;
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
index a71bfe3..5dad402 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
@@ -2063,12 +2063,9 @@ bool rtl8812ae_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
}
break;
case RF90_PATH_C:
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
- break;
case RF90_PATH_D:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpath);
break;
}
return true;
@@ -2133,16 +2130,10 @@ bool rtl8821ae_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
break;

case RF90_PATH_B:
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
- break;
case RF90_PATH_C:
- RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
- break;
case RF90_PATH_D:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpath);
break;
}
return true;
@@ -4670,7 +4661,7 @@ bool rtl8821ae_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", iotype);
break;
}
} while (false);
@@ -4714,7 +4705,8 @@ static void rtl8821ae_phy_set_io(struct ieee80211_hw *hw)
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n",
+ rtlphy->current_io_type);
break;
}
rtlphy->set_io_inprogress = false;
@@ -4820,7 +4812,7 @@ static bool _rtl8821ae_phy_set_rf_power_state(struct ieee80211_hw *hw,
break;
default:
RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
- "switch case not process\n");
+ "switch case %#x not processed\n", rfpwr_state);
bresult = false;
break;
}
--
2.10.0.rc2.1.g053435c

2016-09-24 15:56:00

by Jean Delvare

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

Hi Joe, Larry,

On Fri, 23 Sep 2016 12:02:43 -0700, Joe Perches wrote:
> On Fri, 2016-09-23 at 13:59 -0500, Larry Finger wrote:
> > I'm not familiar with the %#x format. What does it do?
>
> Outputs SPECIAL prefix, it's the same as "0x%x"
>
> lib/vsprintf.c:
> #define SPECIAL 64 /* prefix hex with "0x", octal with "0" */

Is hexadecimal actually the best way to display these values? I guess it
depends how they are listed in the datasheets (if there's anything like
that for these chips?)

I found it a bit difficult to look up the meaning of the value.
HAL_DEF_WOWLAN is an enum value, the number is not set and there's no
comment. I had to count the line numbers, taking blank lines into
account... I ended up pasting the whole enum to a random C file and
printing the value of HAL_DEF_WOWLAN to make sure it was 92.

Would it make sense to explicitly set the enum values, or add them as
comments, to make such look-ups easier?

--
Jean Delvare
SUSE L3 Support

2016-09-26 09:42:54

by David Laight

[permalink] [raw]
Subject: RE: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

> If you want to create enum->#ENUM structs and
> "const char *" lookup functions, please be my guest.
>
> otherwise, hex is at least a consistent way to display
> what should be infrequent output.

If I've typed it right:

#define tags(x) x(A) x(B) x(C)
#define x(t) t,
enum {tags(x) tag_count};
#undef x
#define x(t) ##t,
static const char names[] = { tags(x) };
#undef x

David

2016-09-23 12:16:25

by Jean Delvare

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

Hi Larry,

On Thu, 22 Sep 2016 10:09:58 -0500, Larry Finger wrote:
> Do you build your own kernel, or are you using openSUSE's supplied version? If
> the latter, I will need to think how we might debug the issue. If the former,
> please add the attached patch.

Lost network this morning, but no error message. We restarted the
network service, things were back up and the error message was logged
then:

rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case 92 not processed

So I think this is happening when the interface is put down, and is
probably not related with the loss of connectivity. But it would be
good to understand and fix it nevertheless.

92 is HAL_DEF_WOWLAN. I see it is handled differently in 2 other
rtlwifi drivers: rtl8192cu ignores it, while rtl8821ae processes it:

case HAL_DEF_WOWLAN:
if (ppsc->wo_wlan_mode)
*((bool *)(val)) = true;
else
*((bool *)(val)) = false;
break;

I don't know what is the appropriate course of action in the case of
the rtl8192ce. Let me know if you need anything else from me.

Thanks,
--
Jean Delvare
SUSE L3 Support

2016-09-22 15:10:02

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

On 09/22/2016 04:51 AM, Jean Delvare wrote:
> Hello,
>
> I bought an Asus PCE-N10 PCIe Wi-Fi N card to install in my wife's
> computer. This morning it stopped working suddenly. Investigating the
> kernel logs, the following error message caught my eye:
>
> rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
>
> It was printed twice, 3.5 hours apart, the second time at the moment
> the network stopped working. I guess this is not supposed to happen.
> What additional information can I provide to help you debug the issue?
> That's the device:
>
> 03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)
> Subsystem: ASUSTeK Computer Inc. Device [1043:84b5]
> Flags: bus master, fast devsel, latency 0, IRQ 17
> I/O ports at e800 [size=256]
> Memory at febfc000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: <access denied>
> Kernel driver in use: rtl8192ce
> Kernel modules: rtl8192ce
>
> Kernel version is 4.5.4-1-default x86_64 (openSUSE Tumbleweed.)
>
> Reloading the rtl8192ce module and restarting the network service got
> everything back up.

Unfortunately, that message is not as helpful as it might be.

Do you build your own kernel, or are you using openSUSE's supplied version? If
the latter, I will need to think how we might debug the issue. If the former,
please add the attached patch.

Larry


Attachments:
rtl8192ce_debug.diff (518.00 B)

2016-09-23 19:07:40

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On 09/23/2016 01:27 PM, Joe Perches wrote:
> Help along debugging by showing what switch/case variable is not
> being processed in these messages.
>
> Signed-off-by: Joe Perches <[email protected]>

Acked-by: Larry Finger <[email protected]>

Thanks,

Larry

2016-09-23 18:10:30

by Larry Finger

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

On 09/23/2016 07:16 AM, Jean Delvare wrote:
> Hi Larry,
>
> On Thu, 22 Sep 2016 10:09:58 -0500, Larry Finger wrote:
>> Do you build your own kernel, or are you using openSUSE's supplied version? If
>> the latter, I will need to think how we might debug the issue. If the former,
>> please add the attached patch.
>
> Lost network this morning, but no error message. We restarted the
> network service, things were back up and the error message was logged
> then:
>
> rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case 92 not processed
>
> So I think this is happening when the interface is put down, and is
> probably not related with the loss of connectivity. But it would be
> good to understand and fix it nevertheless.
>
> 92 is HAL_DEF_WOWLAN. I see it is handled differently in 2 other
> rtlwifi drivers: rtl8192cu ignores it, while rtl8821ae processes it:
>
> case HAL_DEF_WOWLAN:
> if (ppsc->wo_wlan_mode)
> *((bool *)(val)) = true;
> else
> *((bool *)(val)) = false;
> break;
>
> I don't know what is the appropriate course of action in the case of
> the rtl8192ce. Let me know if you need anything else from me.

As the RTL8192CE does not support WOWLAN, the correct response is to ignore that
call. Clearly, it has nothing to do with your network drops. One thing you might
do is add the appropriate file in /etc/modprobe.d/ so that the module is loaded
with the "ips=0" option to see if power save is messing up.

I am in the process of fixing all the instances where the log entry for the
default case does not output the switch variable. With these patches, I will
also handle the HAL_DEF_WOWLAN case.

I'm sorry about my original comments regarding patching the kernel. I sent that
E-mail before I even read your name and address. As a long-time openSUSE user, I
certainly recognize your name and your abilities.

Larry

2016-09-22 21:01:36

by Jean Delvare

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

Hi Larry,

On Thu, 22 Sep 2016 10:09:58 -0500, Larry Finger wrote:
> Do you build your own kernel, or are you using openSUSE's supplied version? If
> the latter, I will need to think how we might debug the issue. If the former,
> please add the attached patch.

The debug module is in place. The error message was logged 3 times
today, so I should have some data for you tomorrow.

Thanks,
--
Jean Delvare
SUSE L3 Support

2016-09-27 15:45:35

by Kalle Valo

[permalink] [raw]
Subject: Re: rtlwifi: Add switch variable to 'switch case not processed' messages

Joe Perches <[email protected]> wrote:
> Help along debugging by showing what switch/case variable is not
> being processed in these messages.
>
> Signed-off-by: Joe Perches <[email protected]>
> Acked-by: Larry Finger <[email protected]>

Patch applied to wireless-drivers-next.git, thanks.

ad5748893b27 rtlwifi: Add switch variable to 'switch case not processed' messages

--
https://patchwork.kernel.org/patch/9348573/

Documentation about submitting wireless patches and checking status
from patchwork:

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches

2016-09-24 17:32:42

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

(adding Jes Sorensen to recipients)

On Sat, 2016-09-24 at 11:35 -0500, Larry Finger wrote:
> I have patches that makes HAL_DEF_WOWLAN be a no-op for the rest of the drivers,?
> and one that sets the enum values for that particular statement to hex values. I?
> also looked at the other large enums and decided that they never need the human?
> lookup.

Hey Larry.

There are many somewhat common realtek wireless drivers.

Not to step on your toes, but what do you think of
rationalizing the switch/case statements of all the
realtek drivers in a few steps:

o Reindent all the switch/case blocks to a more normal
kernel style (git diff -w would show no changes here)

o cast, spacing and parenthesis reductions
Lots of odd and somewhat unique styles in various
drivers, looks like too many individual authors without
a style guide / code enforcer using slightly different
personalized code. Glancing at the code, it looks to be
similar logic, just written in different styles.

o Logic changes like
from:
if (foo) func(..., bar, ...); else func(..., baz, ...);
to:
func(..., foo ? bar : baz, ...);
to make the case statement code blocks more consistent
and emit somewhat smaller object code.

o Consolidation of equivalent function spanning drivers
With the style only changes minimized, where possible
make the drivers use common ops/callback functions.

Is there any value in that or is Jes' work going to make
doing any or all of this unnecessary and futile?

2016-09-24 20:35:26

by Jes Sorensen

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

Joe Perches <[email protected]> writes:
> On Sat, 2016-09-24 at 14:06 -0500, Larry Finger wrote:
>> On 09/24/2016 12:32 PM, Joe Perches wrote:
> []
>> o Reindent all the switch/case blocks to a more normal
>> kernel style (git diff -w would show no changes here)
>> That sounds like busy work to me, but if you want to do it, go ahead.
>
> It's really just to make the comparison case block reductions
> easier to verify for later steps done
>
>> > o cast, spacing and parenthesis reductions
>> > Lots of odd and somewhat unique styles in various
>> > drivers, looks like too many individual authors without
>> > a style guide / code enforcer using slightly different
>> > personalized code. Glancing at the code, it looks to be
>> > similar logic, just written in different styles.
>> Same comment.
>
> Same rationale
>
>> > o Logic changes like
>> > from:
>> > if (foo) func(..., bar, ...); else func(..., baz, ...);
>> > to:
>> > func(..., foo ? bar : baz, ...);
>> > to make the case statement code blocks more consistent
>> > and emit somewhat smaller object code.
>> I find if .. else constructs much easier to read than the cond ? xxxx : yyyy
>> form. I would reject any such patches.
>
> <shrug> I think object code reduction generally a good thing
> but then again, I'm not a maintainer here.

I missed this part, but I am with Larry here - 'foo ? bar : boo' are
just obfuscating the code and far less clear than if or switch
statements.

Jes

2016-09-23 18:12:30

by Joe Perches

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

On Thu, 2016-09-22 at 10:09 -0500, Larry Finger wrote:
> On 09/22/2016 04:51 AM, Jean Delvare wrote:
> Hello,
>
>
> I bought an Asus PCE-N10 PCIe Wi-Fi N card to install in my wife's
> computer. This morning it stopped working suddenly. Investigating the
> kernel logs, the following error message caught my eye:
>
>
> rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
>
>
> It was printed twice, 3.5 hours apart, the second time at the moment
> the network stopped working. I guess this is not supposed to happen.
> What additional information can I provide to help you debug the issue?
> That's the device:
>
>
> 03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)
> Subsystem: ASUSTeK Computer Inc. Device [1043:84b5]
> Flags: bus master, fast devsel, latency 0, IRQ 17
> I/O ports at e800 [size=256]
> Memory at febfc000 (64-bit, non-prefetchable) [size=16K]
> Capabilities: <access denied>
> Kernel driver in use: rtl8192ce
> Kernel modules: rtl8192ce
>
>
> Kernel version is 4.5.4-1-default x86_64 (openSUSE Tumbleweed.)
>
>
> Reloading the rtl8192ce module and restarting the network service got
> everything back up.
>
>
>
>
> Unfortunately, that message is not as helpful as it might be.
>
>
> Do you build your own kernel, or are you using openSUSE's supplied version? If
> the latter, I will need to think how we might debug the issue. If the former,
> please add the attached patch.

It might be better to add the switch value to all the
RT_TRACE(,,,"switch case not processed\n"); uses in
drivers/net/wireless/realtek/rtlwifi/

I'll send a patch.

2016-09-23 19:02:47

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On Fri, 2016-09-23 at 13:59 -0500, Larry Finger wrote:
> I'm not?familiar with the %#x format. What does it do?

Outputs SPECIAL prefix, it's the same as "0x%x"

lib/vsprintf.c:
#define SPECIAL 64 /* prefix hex with "0x", octal with "0" */

2016-09-24 19:06:32

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On 09/24/2016 12:32 PM, Joe Perches wrote:
> (adding Jes Sorensen to recipients)
>
> On Sat, 2016-09-24 at 11:35 -0500, Larry Finger wrote:
>> I have patches that makes HAL_DEF_WOWLAN be a no-op for the rest of the drivers,
>> and one that sets the enum values for that particular statement to hex values. I
>> also looked at the other large enums and decided that they never need the human
>> lookup.
>
> Hey Larry.
>
> There are many somewhat common realtek wireless drivers.
>
> Not to step on your toes, but what do you think of
> rationalizing the switch/case statements of all the
> realtek drivers in a few steps:
>
> o Reindent all the switch/case blocks to a more normal
> kernel style (git diff -w would show no changes here)

That sounds like busy work to me, but if you want to do it, go ahead.

> o cast, spacing and parenthesis reductions
> Lots of odd and somewhat unique styles in various
> drivers, looks like too many individual authors without
> a style guide / code enforcer using slightly different
> personalized code. Glancing at the code, it looks to be
> similar logic, just written in different styles.

Same comment.

> o Logic changes like
> from:
> if (foo) func(..., bar, ...); else func(..., baz, ...);
> to:
> func(..., foo ? bar : baz, ...);
> to make the case statement code blocks more consistent
> and emit somewhat smaller object code.

I find if .. else constructs much easier to read than the cond ? xxxx : yyyy
form. I would reject any such patches.

> o Consolidation of equivalent function spanning drivers
> With the style only changes minimized, where possible
> make the drivers use common ops/callback functions.

The is no question that there are similar routines in different drivers. I would
like to place as much as possible into common routines, but I never seem to find
the time. There are too many bugs in other things I support to consider these
niceties.

> Is there any value in that or is Jes' work going to make
> doing any or all of this unnecessary and futile?

That is not yet determined. The only driver that is to be replaced at this point
is rtl8192cu. Jes only has USB I/O for his driver. We are looking at adding
SDIO, and once that is done, PCI should be possible.

Larry

2016-09-22 17:05:44

by Jean Delvare

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

On Thu, 22 Sep 2016 10:09:58 -0500, Larry Finger wrote:
> On 09/22/2016 04:51 AM, Jean Delvare wrote:
> > Hello,
> >
> > I bought an Asus PCE-N10 PCIe Wi-Fi N card to install in my wife's
> > computer. This morning it stopped working suddenly. Investigating the
> > kernel logs, the following error message caught my eye:
> >
> > rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
> >
> > It was printed twice, 3.5 hours apart, the second time at the moment
> > the network stopped working. I guess this is not supposed to happen.
> > What additional information can I provide to help you debug the issue?
> > That's the device:
> >
> > 03:00.0 Network controller [0280]: Realtek Semiconductor Co., Ltd. RTL8188CE 802.11b/g/n WiFi Adapter [10ec:8176] (rev 01)
> > Subsystem: ASUSTeK Computer Inc. Device [1043:84b5]
> > Flags: bus master, fast devsel, latency 0, IRQ 17
> > I/O ports at e800 [size=256]
> > Memory at febfc000 (64-bit, non-prefetchable) [size=16K]
> > Capabilities: <access denied>
> > Kernel driver in use: rtl8192ce
> > Kernel modules: rtl8192ce
> >
> > Kernel version is 4.5.4-1-default x86_64 (openSUSE Tumbleweed.)
> >
> > Reloading the rtl8192ce module and restarting the network service got
> > everything back up.
>
> Unfortunately, that message is not as helpful as it might be.
>
> Do you build your own kernel, or are you using openSUSE's supplied version? If
> the latter, I will need to think how we might debug the issue. If the former,
> please add the attached patch.

I'm a kernel dev :-) I'll test your patch and report, thanks.

That being said, I agree it's better if drivers have useful debug
messages... Makes things faster. So something like your patch should go
upstream anyway. And the same improvement could be applied to various
other messages of the rtlwifi driver family.

--
Jean Delvare
SUSE L3 Support

2016-09-23 18:59:45

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On 09/23/2016 01:27 PM, Joe Perches wrote:
> Help along debugging by showing what switch/case variable is not
> being processed in these messages.
>
> Signed-off-by: Joe Perches <[email protected]>

Joe,

You beat me to the patch. No problem as this one looks OK; however, I'm not
familiar with the %#x format. What does it do?

Larry

> ---
> drivers/net/wireless/realtek/rtlwifi/core.c | 3 ++-
> drivers/net/wireless/realtek/rtlwifi/pci.c | 3 ++-
> drivers/net/wireless/realtek/rtlwifi/ps.c | 2 +-
> drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c | 9 +++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c | 10 ++++++----
> .../wireless/realtek/rtlwifi/rtl8192c/fw_common.c | 4 ++--
> .../wireless/realtek/rtlwifi/rtl8192c/phy_common.c | 8 +++++---
> drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c | 7 ++++---
> drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c | 7 ++-----
> drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c | 7 ++-----
> drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c | 9 +++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 15 +++++++--------
> drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c | 9 +++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c | 10 ++++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c | 9 +++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c | 5 +++--
> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c | 9 +++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c | 10 ++++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c | 10 +++++-----
> drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c | 12 +++++++-----
> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c | 9 +++++----
> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c | 4 ++--
> drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c | 20 ++++++--------------
> 38 files changed, 128 insertions(+), 123 deletions(-)
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
> index 7aee5ebb1..f95760c 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/core.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/core.c
> @@ -765,7 +765,8 @@ static int rtl_op_config(struct ieee80211_hw *hw, u32 changed)
> mac->bw_40 = false;
> mac->bw_80 = false;
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + channel_type);
> break;
> }
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/pci.c b/drivers/net/wireless/realtek/rtlwifi/pci.c
> index d12586d..0dfa9ea 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/pci.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/pci.c
> @@ -179,7 +179,8 @@ static void _rtl_pci_update_default_setting(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + rtlpci->const_support_pciaspm);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/ps.c b/drivers/net/wireless/realtek/rtlwifi/ps.c
> index 9a64f9b..18d979a 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/ps.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/ps.c
> @@ -151,7 +151,7 @@ static bool rtl_ps_set_rf_state(struct ieee80211_hw *hw,
>
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", state_toset);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
> index 6291256..5360d53 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/fw.c
> @@ -334,7 +334,7 @@ static void _rtl88e_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
> isfw_read = _rtl88e_check_fw_read_last_h2c(hw, boxnum);
> @@ -405,7 +405,7 @@ static void _rtl88e_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
> index 4ab6201..3285117 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/hw.c
> @@ -357,7 +357,7 @@ void rtl88ee_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break; }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -571,7 +571,8 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -735,7 +736,7 @@ void rtl88ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break; }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -2352,7 +2353,7 @@ void rtl88ee_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c
> index b504bd0..f05c2c6 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/led.c
> @@ -62,7 +62,7 @@ void rtl88ee_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -100,7 +100,7 @@ void rtl88ee_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
> index 7498a12..fffaa92 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8188ee/phy.c
> @@ -1346,7 +1346,8 @@ static bool _rtl88e_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
>
> @@ -2128,7 +2129,7 @@ bool rtl88e_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -2166,7 +2167,8 @@ static void rtl88e_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> @@ -2319,7 +2321,7 @@ static bool _rtl88ee_phy_set_rf_power_state(struct ieee80211_hw *hw,
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
> index 43fcb25..7d15246 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/fw_common.c
> @@ -352,7 +352,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
>
> @@ -456,7 +456,7 @@ static void _rtl92c_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c
> index 60ab2ec..27e3d5f 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192c/phy_common.c
> @@ -910,7 +910,8 @@ bool _rtl92c_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
>
> @@ -1567,7 +1568,7 @@ bool rtl92c_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -1605,7 +1606,8 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
> index 2446079..6d308f9 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/hw.c
> @@ -143,7 +143,7 @@ void rtl92ce_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -367,7 +367,8 @@ void rtl92ce_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -2154,7 +2155,7 @@ void rtl92ce_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c
> index 8283e9b..24e483b 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/led.c
> @@ -62,7 +62,7 @@ void rtl92ce_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -97,7 +97,7 @@ void rtl92ce_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
> index 1ee5a6a..46d0d94 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ce/phy.c
> @@ -300,12 +300,9 @@ bool rtl92c_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
> }
> break;
> case RF90_PATH_C:
> - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> - break;
> case RF90_PATH_D:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpath);
> break;
> default:
> break;
> @@ -554,7 +551,7 @@ static bool _rtl92ce_phy_set_rf_power_state(struct ieee80211_hw *hw,
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
> index 8789752..ae8f055 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/hw.c
> @@ -1560,7 +1560,7 @@ void rtl92cu_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -1931,7 +1931,7 @@ void rtl92cu_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c
> index 75a2deb..8514ab65 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/led.c
> @@ -62,7 +62,7 @@ void rtl92cu_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -95,7 +95,7 @@ void rtl92cu_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
> index c972fa5..4b29764 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192cu/phy.c
> @@ -277,12 +277,9 @@ bool rtl92cu_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
> }
> break;
> case RF90_PATH_C:
> - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> - break;
> case RF90_PATH_D:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpath);
> break;
> default:
> break;
> @@ -517,7 +514,7 @@ static bool _rtl92cu_phy_set_rf_power_state(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
> index 62ef820..8de29cc 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/fw.c
> @@ -435,7 +435,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
> isfw_read = _rtl92d_check_fw_read_last_h2c(hw, boxnum);
> @@ -512,7 +512,7 @@ static void _rtl92d_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
> bwrite_success = true;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
> index 5720551..5369011 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/hw.c
> @@ -166,7 +166,7 @@ void rtl92de_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -361,7 +361,8 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -502,7 +503,7 @@ void rtl92de_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -2171,7 +2172,7 @@ void rtl92de_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c
> index 76a57ae..811ba57 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/led.c
> @@ -71,7 +71,7 @@ void rtl92de_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -106,7 +106,7 @@ void rtl92de_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> index 2a4810d..2a1edfd 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
> @@ -836,12 +836,9 @@ bool rtl92d_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
> }
> break;
> case RF90_PATH_C:
> - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> - break;
> case RF90_PATH_D:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpath);
> break;
> }
> return true;
> @@ -2850,7 +2847,8 @@ static bool _rtl92d_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
> break;
> @@ -2963,7 +2961,8 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> @@ -2994,7 +2993,7 @@ bool rtl92d_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -3182,7 +3181,7 @@ bool rtl92d_phy_set_rf_power_state(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
> index 0708eed..b3f6a9e 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/fw.c
> @@ -344,7 +344,7 @@ static void _rtl92ee_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
>
> @@ -433,7 +433,7 @@ static void _rtl92ee_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
> index b07af8d..47bb6d8 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/hw.c
> @@ -340,7 +340,7 @@ void rtl92ee_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -566,7 +566,8 @@ void rtl92ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -685,7 +686,7 @@ void rtl92ee_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -2463,7 +2464,7 @@ void rtl92ee_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_DMESG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c
> index 8388e37..47da05d 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/led.c
> @@ -61,7 +61,7 @@ void rtl92ee_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -91,7 +91,7 @@ void rtl92ee_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
> index beafc9a..5ad7e75 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192ee/phy.c
> @@ -1927,7 +1927,8 @@ static bool _rtl92ee_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
>
> @@ -3001,7 +3002,7 @@ bool rtl92ee_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -3041,7 +3042,8 @@ static void rtl92ee_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> @@ -3187,7 +3189,7 @@ static bool _rtl92ee_phy_set_rf_power_state(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
> index ddfa0ae..5bad9c9 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/hw.c
> @@ -79,7 +79,7 @@ void rtl92se_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> }
> default: {
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -297,7 +297,8 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -433,7 +434,7 @@ void rtl92se_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break; }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
>
> @@ -2465,7 +2466,7 @@ void rtl92se_set_key(struct ieee80211_hw *hw, u32 key_index, u8 *p_macaddr,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c
> index 44949b5..9849cb9 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/led.c
> @@ -68,7 +68,7 @@ void rtl92se_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -104,7 +104,7 @@ void rtl92se_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> index 881821f..4bb7558 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192se/phy.c
> @@ -442,7 +442,8 @@ static bool _rtl92s_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
>
> @@ -648,7 +649,7 @@ bool rtl92s_phy_set_rf_power_state(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not processed\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
> index b7c0d38..1186755 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/fw.c
> @@ -124,7 +124,7 @@ static void _rtl8723e_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
>
> @@ -230,7 +230,7 @@ static void _rtl8723e_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
> index ba30efc..2bf603b 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/hw.c
> @@ -143,7 +143,7 @@ void rtl8723e_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -366,7 +366,8 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -546,7 +547,7 @@ void rtl8723e_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -2225,7 +2226,7 @@ void rtl8723e_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c
> index 1317335..c7be934 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/led.c
> @@ -63,7 +63,7 @@ void rtl8723e_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -105,7 +105,7 @@ void rtl8723e_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
> index 601b78e..17b58cb 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723ae/phy.c
> @@ -1023,7 +1023,8 @@ static bool _rtl8723e_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
>
> @@ -1499,7 +1500,7 @@ bool rtl8723e_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -1536,7 +1537,8 @@ static void rtl8723e_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> @@ -1682,7 +1684,7 @@ static bool _rtl8723e_phy_set_rf_power_state(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
> index d5da0f3..8c5c27c 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/fw.c
> @@ -122,7 +122,7 @@ static void _rtl8723be_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
>
> @@ -195,7 +195,7 @@ static void _rtl8723be_fill_h2c_command(struct ieee80211_hw *hw, u8 element_id,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
> index 82e4476..999c1ac 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
> @@ -350,7 +350,7 @@ void rtl8723be_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -607,7 +607,8 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -723,8 +724,7 @@ void rtl8723be_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process %x\n",
> - variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -2565,7 +2565,7 @@ void rtl8723be_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c
> index 4196efb..497913e 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/led.c
> @@ -58,7 +58,7 @@ void rtl8723be_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -100,7 +100,7 @@ void rtl8723be_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
> index 285818d..3cc2232 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/phy.c
> @@ -837,7 +837,7 @@ bool rtl8723be_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
> break;
> case RF90_PATH_D:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpath);
> break;
> }
> return true;
> @@ -1507,7 +1507,8 @@ static bool _rtl8723be_phy_sw_chnl_step_by_step(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + currentcmd->cmdid);
> break;
> }
>
> @@ -2515,7 +2516,7 @@ bool rtl8723be_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -2553,7 +2554,8 @@ static void rtl8723be_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> @@ -2705,7 +2707,7 @@ static bool _rtl8723be_phy_set_rf_power_state(struct ieee80211_hw *hw,
>
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
> index a4fc70e..b665446 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/fw.c
> @@ -392,7 +392,7 @@ static void _rtl8821ae_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", boxnum);
> break;
> }
>
> @@ -481,7 +481,7 @@ static void _rtl8821ae_fill_h2c_command(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", cmd_len);
> break;
> }
>
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
> index 0cddf1a..1281ebe 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/hw.c
> @@ -480,7 +480,7 @@ void rtl8821ae_get_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -671,7 +671,8 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + e_aci);
> break;
> }
> }
> @@ -800,7 +801,7 @@ void rtl8821ae_set_hw_reg(struct ieee80211_hw *hw, u8 variable, u8 *val)
> break; }
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process %x\n", variable);
> + "switch case %#x not processed\n", variable);
> break;
> }
> }
> @@ -3934,7 +3935,7 @@ void rtl8821ae_set_key(struct ieee80211_hw *hw, u32 key_index,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", enc_algo);
> enc_algo = CAM_TKIP;
> break;
> }
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c
> index ba1946a..fcb3b28 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/led.c
> @@ -60,7 +60,7 @@ void rtl8821ae_sw_led_on(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = true;
> @@ -133,7 +133,7 @@ void rtl8821ae_sw_led_off(struct ieee80211_hw *hw, struct rtl_led *pled)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_LOUD,
> - "switch case not process\n");
> + "switch case %#x not processed\n", pled->ledpin);
> break;
> }
> pled->ledon = false;
> diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
> index a71bfe3..5dad402 100644
> --- a/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
> +++ b/drivers/net/wireless/realtek/rtlwifi/rtl8821ae/phy.c
> @@ -2063,12 +2063,9 @@ bool rtl8812ae_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
> }
> break;
> case RF90_PATH_C:
> - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> - break;
> case RF90_PATH_D:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpath);
> break;
> }
> return true;
> @@ -2133,16 +2130,10 @@ bool rtl8821ae_phy_config_rf_with_headerfile(struct ieee80211_hw *hw,
> break;
>
> case RF90_PATH_B:
> - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> - break;
> case RF90_PATH_C:
> - RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> - break;
> case RF90_PATH_D:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpath);
> break;
> }
> return true;
> @@ -4670,7 +4661,7 @@ bool rtl8821ae_phy_set_io_cmd(struct ieee80211_hw *hw, enum io_type iotype)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", iotype);
> break;
> }
> } while (false);
> @@ -4714,7 +4705,8 @@ static void rtl8821ae_phy_set_io(struct ieee80211_hw *hw)
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n",
> + rtlphy->current_io_type);
> break;
> }
> rtlphy->set_io_inprogress = false;
> @@ -4820,7 +4812,7 @@ static bool _rtl8821ae_phy_set_rf_power_state(struct ieee80211_hw *hw,
> break;
> default:
> RT_TRACE(rtlpriv, COMP_ERR, DBG_EMERG,
> - "switch case not process\n");
> + "switch case %#x not processed\n", rfpwr_state);
> bresult = false;
> break;
> }
>

2016-09-24 20:29:19

by Joe Perches

[permalink] [raw]
Subject: Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages

On Sat, 2016-09-24 at 14:06 -0500, Larry Finger wrote:
> On 09/24/2016 12:32 PM, Joe Perches wrote:
[]
> o Reindent all the switch/case blocks to a more normal
> kernel style (git diff -w would show no changes here)
> That sounds like busy work to me, but if you want to do it, go ahead.

It's really just to make the comparison case block reductions
easier to verify for later steps done

> > o cast, spacing and parenthesis reductions
> > Lots of odd and somewhat unique styles in various
> > drivers, looks like too many individual authors without
> > a style guide / code enforcer using slightly different
> > personalized code. Glancing at the code, it looks to be
> > similar logic, just written in different styles.
> Same comment.

Same rationale

> > o Logic changes like
> > from:
> > if (foo) func(..., bar, ...); else func(..., baz, ...);
> > to:
> > func(..., foo ? bar : baz, ...);
> > to make the case statement code blocks more consistent
> > and emit somewhat smaller object code.
> I find if .. else constructs much easier to read than the cond ? xxxx : yyyy
> form. I would reject any such patches.

<shrug> I think object code reduction generally a good thing
but then again, I'm not a maintainer here.

> > o Consolidation of equivalent function spanning drivers
> > With the style only changes minimized, where possible
> > make the drivers use common ops/callback functions.
> The is no question that there are similar routines in different drivers. I would
> like to place as much as possible into common routines, but I never seem to find
> the time. There are too many bugs in other things I support to consider these
> niceties.

Consolidation generally reduces defects and improves ease of
updating.
>

2016-09-24 15:25:22

by Jean Delvare

[permalink] [raw]
Subject: Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed

Hi Larry,

On Fri, 23 Sep 2016 13:10:28 -0500, Larry Finger wrote:
> As the RTL8192CE does not support WOWLAN, the correct response is to ignore that
> call. Clearly, it has nothing to do with your network drops. One thing you might
> do is add the appropriate file in /etc/modprobe.d/ so that the module is loaded
> with the "ips=0" option to see if power save is messing up.

OK, we have just added the option, I'll let you know if it makes a
difference.

There are other messages logged, by the way. I did not mention them
before because they don't look like errors and "switch case not
processed" was my prime suspect, but maybe they would be useful to you:

wlp3s0: AP 94:a7:b7:xx:xx:xx changed bandwidth, new config is 2427 MHz, width 2 (2437/0 MHz)
wlp3s0: AP 94:a7:b7:xx:xx:xx changed bandwidth, new config is 2427 MHz, width 1 (2427/0 MHz)
wlp3s0: AP 94:a7:b7:xx:xx:xx changed bandwidth, new config is 2427 MHz, width 2 (2437/0 MHz)

It oscillates between both values. There doesn't seem to be a
correlation with the failures. The timing doesn't appear to be fully
random, for example these are the timestamps for this morning:

[Sat. sept. 24 09:17:16 2016]
[Sat. sept. 24 09:32:11 2016]
[Sat. sept. 24 10:27:15 2016]
[Sat. sept. 24 10:52:11 2016]
[Sat. sept. 24 12:07:16 2016]
[Sat. sept. 24 12:44:22 2016]

15 minutes, 55 minutes, 25 minutes, 75 minutes... Looks like something
is checking adjusting the configuration every 5 minutes? Last one
doesn't follow the pattern though (37 minutes.)

> I am in the process of fixing all the instances where the log entry for the
> default case does not output the switch variable. With these patches, I will
> also handle the HAL_DEF_WOWLAN case.

Great, thanks.

> I'm sorry about my original comments regarding patching the kernel. I sent that
> E-mail before I even read your name and address. As a long-time openSUSE user, I
> certainly recognize your name and your abilities.

No worry :-)

--
Jean Delvare
SUSE L3 Support