* Re: Broadcom Firmware Rollback
From: Rafał Miłecki @ 2016-09-23 4:48 UTC (permalink / raw)
To: David Petrizze; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <CA+PvwyEA-U2OeTrGW+d8B_sEHZYdaM3J79ZcpcC=89MvvYsrCw@mail.gmail.com>
On 23 September 2016 at 04:43, David Petrizze <dpetrizze@gmail.com> wrote:
> I'm having issues with broadcom's latest firmware / driver, version
> 6.30.163.46. Wireless is solid for about a minute, and then drops
> completely. My research has led me to believe my chip (BCM4331) is no
> longer supported under 6.30.X.X, or has a bug somewhere. I want to
> roll back to the firmware that worked.
>
> What I'm looking for is a file named broadcom-wl-6.20.*.*.tar.bz2. I
> found my current firmware from http://www.lwfinger.com/b43-firmware/,
> but 6.20.X.X is nowhere to be found. 5.100.X.X is there, but the 4331
> definitely wasn't supported for that one.
>
> Inside each of these archives on lwfinger is a file called wl_apsta.o,
> where the firmware is extracted from. Since b43-fwcutter only
> extracts firmware from versions of wl_apsta.o that match specific
> MD5's, I figure 6.20.X.X has to be out there somewhere.
>
> More info can be found from my original post:
> https://bbs.archlinux.org/viewtopic.php?id=3D217326
>
> ...and other people confrim 6.30.X.X being a problem in this ubuntu bug:
> https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1189611
>
> If anyone could point me in the right direction, I would be immensely gra=
teful.
You can't make proprietary driver using firmware of your choice, so
don't bother looking at MIPS drivers stored at Larry's server.
You just need to find a /complete/ (mostly closed source of course)
driver 6.20 for x86/x86_64. I don't think it was ever published on
Broadcom's site, I think it was made available to Ubuntu only under
some agreement. So keep looking at Ubuntu resources.
Also linux-wireless ML focuses on open source drivers, so you may have
more luck asking at Ubuntu community.
--=20
Rafa=C5=82
^ permalink raw reply
* Re: brcmf_txfinalize misses 802.1x packet leading to infinite WARNINGs
From: Rafał Miłecki @ 2016-09-23 6:48 UTC (permalink / raw)
To: Hante Meuleman, Arend van Spriel, brcm80211 development
Cc: linux-wireless@vger.kernel.org
In-Reply-To: <CACna6rzhdzUDhG=jqG6Fksqh7qPP-7jKSTN0AoA-8u84HdrYdQ@mail.gmail.com>
On 22 September 2016 at 16:09, Rafa=C5=82 Mi=C5=82ecki <zajec5@gmail.com> w=
rote:
> On 22 September 2016 at 14:24, Rafa=C5=82 Mi=C5=82ecki <zajec5@gmail.com>=
wrote:
>> I got the same problem again, but this time there was only 1 skb in my
>> flowring.
>> That resulted in less serial console messages and no reboot.
>>
>> It doesn't look good. brcmf_txfinalize was called 11 times after deletin=
g
>> flowring. Everytime it was working with the same skb that was already fr=
eed.
>
> I'm wondering if there is some bug in flowring code. Please take a
> look if my following understanding it correct.
>
> 1) Every skb that is supposed to reach the device gets queued on a flowri=
ng.
> 2) Dequeuing means skb is not available in a flowring anymore
> 3a) brcmf_msgbuf_txflow dequeues skbs to pass them to the firmware
> 3b) brcmf_flowring_delete dequeues skbs to delete (free) them
>
> If that simple description is correct, it shouldn't be possible to skb to=
:
> 1) Reach the firmware
> *and*
> 2) Get freed as part of flowring deletion
>
> But this is what seems to be happening in my case. We get one skb
> freed on flowring deletion and then reported as transmitted (sometimes
> multiple times) by the firmware.
>
> Maybe there is simply a race between brcmf_flowring_delete and
> brcmf_msgbuf_txflow?
I can see a problem with my debugging code. It may happen brcmfmac
gets skb allocated at the same address. Due to brcmf_flowring_delete
bypassing brcmf_txfinalize we don't drop tracing of the old one and
that results in the same packet listed twice in my debugging code.
I got caught into the same trap that breaks pend_8021x_cnt counting.
I believe pend_8021x_cnt related code should be moved to the place
that really queues skb for the firmware to access.
--=20
Rafa=C5=82
^ permalink raw reply
* Re: [PATCH] brcmfmac: fix memory leak in brcmf_fill_bss_param
From: Arend Van Spriel @ 2016-09-23 9:15 UTC (permalink / raw)
To: Rafał Miłecki, Kalle Valo
Cc: Rafał Miłecki, Franky Lin, Hante Meuleman,
Pieter-Paul Giesberts, Franky (Zhenhui) Lin,
open list:BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER,
open list:BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER,
open list:NETWORKING DRIVERS, open list
In-Reply-To: <20160921062327.28729-1-zajec5@gmail.com>
On 21-9-2016 8:23, Rafał Miłecki wrote:
> From: Rafał Miłecki <rafal@milecki.pl>
>
> This function is called from get_station callback which means that every
> time user space was getting/dumping station(s) we were leaking 2 KiB.
>
Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
> Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
> Fixes: 1f0dc59a6de ("brcmfmac: rework .get_station() callback")
> Cc: stable@vger.kernel.org # 4.2+
> ---
> Kalle, ideally this should go as 4.8 fix, but I'm aware it's quite late.
> If you are not planning to send another pull request, just get it for
> the next release and let's let stable guys backport it.
> ---
> drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> index b8aec5e5..62a7675 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
> @@ -2533,7 +2533,7 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si)
> WL_BSS_INFO_MAX);
> if (err) {
> brcmf_err("Failed to get bss info (%d)\n", err);
> - return;
> + goto out_kfree;
> }
> si->filled |= BIT(NL80211_STA_INFO_BSS_PARAM);
> si->bss_param.beacon_interval = le16_to_cpu(buf->bss_le.beacon_period);
> @@ -2545,6 +2545,9 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si)
> si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
> if (capability & WLAN_CAPABILITY_SHORT_SLOT_TIME)
> si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
> +
> +out_kfree:
> + kfree(buf);
> }
>
> static s32
>
^ permalink raw reply
* Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
From: Jean Delvare @ 2016-09-23 12:16 UTC (permalink / raw)
To: Larry Finger; +Cc: Chaoming Li, linux-wireless
In-Reply-To: <83974845-037d-0cde-00b1-ec7b28eeb15f@lwfinger.net>
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
^ permalink raw reply
* Re: ath10k mesh mode issue
From: Michal Kazior @ 2016-09-23 12:28 UTC (permalink / raw)
To: Matteo Grandi; +Cc: Matteo Grandi, LinuxWireless Mailing List
In-Reply-To: <CAHdg3xYyEVAYEQimkjsPEUTcLD57KjcFYnkwbaPS0hHDmTZXbA@mail.gmail.com>
On 21 September 2016 at 18:27, Matteo Grandi <iu5bdp@gmail.com> wrote:
> Hi Michal,
> thanks for the reply:
> I've already loaded the ath10k_core with the rowmode parameters, this
> is the modinfo result:
> root@Tam:~# modinfo ath10k_core
> filename:
> /lib/modules/3.14.48-g408ccb9/kernel/drivers/net/wireless/ath/ath10k/ath1=
0k_core.ko
> license: Dual BSD/GPL
> description: Core module for QCA988X PCIe devices.
> author: Qualcomm Atheros
> srcversion: 407804E6D5A63597F137E9B
> depends: mac80211,cfg80211,compat,ath
> vermagic: 3.14.48-g408ccb9 SMP mod_unload modversions ARMv7 p2v8
> parm: debug_mask:Debugging mask (uint)
> parm: uart_print:Uart target debugging (bool)
> parm: skip_otp:Skip otp failure for calibration in testmode (bo=
ol)
> parm: cryptmode:Crypto mode: 0-hardware, 1-software (uint)
> parm: rawmode:Use raw 802.11 frame datapath (bool)
[...]
> I've loaded adding the line ath10k_core rawmode=3D1 to the file etc/modul=
es
Hmm... are you sure the module is actually loaded with the parameter?
You can check it with:
grep . /sys/module/ath10k*/parameters/*
Micha=C5=82
^ permalink raw reply
* Re: staging: wilc1000: kernel Oops while opening the device
From: Aditya.Shankar @ 2016-09-23 13:17 UTC (permalink / raw)
To: Ganesh.Krishna, gregkh, nicolas.ferre; +Cc: linux-wireless, luisbg
In-Reply-To: <65355EED85AFFB41B861AC69A1D0893DCADB8ACF@CHN-SV-EXMX03.mchp-main.com>
On Thursday 22 September 2016 06:04 PM, Ganesh Krishna - I00112 wrote:
>> -----Original Message-----
>> From: Greg Kroah-Hartman [mailto:gregkh@linuxfoundation.org]
>> Sent: Monday, September 19, 2016 7:12 PM
>> To: Nicolas Ferre
>> Cc: linux-wireless@vger.kernel.org; Aditya Shankar - I16078; Ganesh Krishna - I00112; luisbg@osg.samsung.com
>> Subject: Re: staging: wilc1000: kernel Oops while opening the device
>>
>> On Mon, Sep 19, 2016 at 02:06:02PM +0200, Nicolas Ferre wrote:
>>> Hi all,
>>>
>>> While using the wilc1000 driver with latest 4.8-rc7, I have
>>> difficulties to open the device and actually use it as I have this
>>> kernel Oops right after the loading of the firmware (wilc1003_firmware.bin).
>>>
>>> If I revert back the driver to its
>>> b9811891a9f60ca9c314dcab3244c65930c4cf37 state, it works okay. I did
>>> this because I tend to think that it might be related to the latest move on this driver to "completion" or "work queues".
>>> It seems to be a regression from 4.7.
>>
>> Ick, not good at all.
>>
>> Any chance you can run 'git bisect' to see if you can find the offending patch?
>>
>> I thought the maintainers were testing this driver over time :(
>
>> thanks,
>>
>> greg k-h
>
> Ick indeed. Maintainers are on it full time. Thank you very much for the flag. While I am only reporting activity, hope to have results soon.
> Regards,
> ganesh k
>
Hi All,
bisecting changes on the wilc1000 host driver, I find that this problem seems to occur after the below change.
As of now, I only know the where and not the why. So I will continue to figure out why this happens.
commit 2518ac59eb27ed003c5a97e8f9588adafdfe4a8a
Author: Binoy Jayan <binoy.jayan@linaro.org>
Date: Thu Jun 23 11:11:51 2016 +0530
staging: wilc1000: Replace kthread with workqueue for host interface
Deconstruct the kthread / message_queue logic, replacing it with
create_singlethread_workqueue() / queue_work() setup, by adding a
'struct work_struct' to 'struct host_if_msg'. The current kthread
hostIFthread() is converted to a work queue helper with the name
'host_if_work'.
Thanks!
Aditya
^ permalink raw reply
* [PATCH] brcmfmac: drop unused fields from struct brcmf_pub
From: Rafał Miłecki @ 2016-09-23 13:27 UTC (permalink / raw)
To: Kalle Valo
Cc: Rafał Miłecki, Arend van Spriel, Franky Lin,
Hante Meuleman, Pieter-Paul Giesberts, Franky (Zhenhui) Lin,
Colin Ian King,
open list:BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER,
open list:BROADCOM BRCM80211 IEEE802.11n WIRELESS DRIVER,
open list:NETWORKING DRIVERS, open list
From: Rafał Miłecki <rafal@milecki.pl>
They seem to be there from the first day. We calculate these values but
never use them.
Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 3 ---
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h | 4 ----
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c | 2 --
3 files changed, 9 deletions(-)
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 65e8c87..27cd50a 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -519,9 +519,6 @@ int brcmf_net_attach(struct brcmf_if *ifp, bool rtnl_locked)
ndev->needed_headroom += drvr->hdrlen;
ndev->ethtool_ops = &brcmf_ethtool_ops;
- drvr->rxsz = ndev->mtu + ndev->hard_header_len +
- drvr->hdrlen;
-
/* set the mac address */
memcpy(ndev->dev_addr, ifp->mac_addr, ETH_ALEN);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
index 8fa34ca..f16cfc9 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.h
@@ -112,15 +112,11 @@ struct brcmf_pub {
/* Internal brcmf items */
uint hdrlen; /* Total BRCMF header length (proto + bus) */
- uint rxsz; /* Rx buffer size bus module should use */
/* Dongle media info */
char fwver[BRCMF_DRIVER_FIRMWARE_VERSION_LEN];
u8 mac[ETH_ALEN]; /* MAC address obtained from dongle */
- /* Multicast data packets sent to dongle */
- unsigned long tx_multicast;
-
struct mac_address addresses[BRCMF_MAX_IFS];
struct brcmf_if *iflist[BRCMF_MAX_IFS];
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
index 9f9024a..a190f53 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwsignal.c
@@ -2104,8 +2104,6 @@ int brcmf_fws_process_skb(struct brcmf_if *ifp, struct sk_buff *skb)
if ((skb->priority == 0) || (skb->priority > 7))
skb->priority = cfg80211_classify8021d(skb, NULL);
- drvr->tx_multicast += !!multicast;
-
if (fws->avoid_queueing) {
rc = brcmf_proto_txdata(drvr, ifp->ifidx, 0, skb);
if (rc < 0)
--
2.9.3
^ permalink raw reply related
* Re: staging: wilc1000: kernel Oops while opening the device
From: Greg KH @ 2016-09-23 15:07 UTC (permalink / raw)
To: Aditya.Shankar; +Cc: Ganesh.Krishna, nicolas.ferre, linux-wireless, luisbg
In-Reply-To: <1FA4CE79C3B5BA4CB1930722261ABC02CAF96970@CHN-SV-EXMX03.mchp-main.com>
On Fri, Sep 23, 2016 at 01:17:08PM +0000, Aditya.Shankar@microchip.com wrote:
> On Thursday 22 September 2016 06:04 PM, Ganesh Krishna - I00112 wrote:
> >> -----Original Message-----
> >> From: Greg Kroah-Hartman [mailto:gregkh@linuxfoundation.org]
> >> Sent: Monday, September 19, 2016 7:12 PM
> >> To: Nicolas Ferre
> >> Cc: linux-wireless@vger.kernel.org; Aditya Shankar - I16078; Ganesh Krishna - I00112; luisbg@osg.samsung.com
> >> Subject: Re: staging: wilc1000: kernel Oops while opening the device
> >>
> >> On Mon, Sep 19, 2016 at 02:06:02PM +0200, Nicolas Ferre wrote:
> >>> Hi all,
> >>>
> >>> While using the wilc1000 driver with latest 4.8-rc7, I have
> >>> difficulties to open the device and actually use it as I have this
> >>> kernel Oops right after the loading of the firmware (wilc1003_firmware.bin).
> >>>
> >>> If I revert back the driver to its
> >>> b9811891a9f60ca9c314dcab3244c65930c4cf37 state, it works okay. I did
> >>> this because I tend to think that it might be related to the latest move on this driver to "completion" or "work queues".
> >>> It seems to be a regression from 4.7.
> >>
> >> Ick, not good at all.
> >>
> >> Any chance you can run 'git bisect' to see if you can find the offending patch?
> >>
> >> I thought the maintainers were testing this driver over time :(
> >
> >> thanks,
> >>
> >> greg k-h
> >
> > Ick indeed. Maintainers are on it full time. Thank you very much for the flag. While I am only reporting activity, hope to have results soon.
> > Regards,
> > ganesh k
> >
> Hi All,
>
> bisecting changes on the wilc1000 host driver, I find that this problem seems to occur after the below change.
> As of now, I only know the where and not the why. So I will continue to figure out why this happens.
>
> commit 2518ac59eb27ed003c5a97e8f9588adafdfe4a8a
> Author: Binoy Jayan <binoy.jayan@linaro.org>
> Date: Thu Jun 23 11:11:51 2016 +0530
>
> staging: wilc1000: Replace kthread with workqueue for host interface
>
> Deconstruct the kthread / message_queue logic, replacing it with
> create_singlethread_workqueue() / queue_work() setup, by adding a
> 'struct work_struct' to 'struct host_if_msg'. The current kthread
> hostIFthread() is converted to a work queue helper with the name
> 'host_if_work'.
So if you revert this, it works?
If so, let us know and I will gladly revert it, as breaking things is
not ok.
thanks,
greg k-h
^ permalink raw reply
* Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
From: Larry Finger @ 2016-09-23 18:10 UTC (permalink / raw)
To: Jean Delvare; +Cc: Chaoming Li, linux-wireless
In-Reply-To: <20160923141618.1fcfd809@endymion>
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
^ permalink raw reply
* Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
From: Joe Perches @ 2016-09-23 18:12 UTC (permalink / raw)
To: Larry Finger, Jean Delvare, Chaoming Li; +Cc: linux-wireless
In-Reply-To: <83974845-037d-0cde-00b1-ec7b28eeb15f@lwfinger.net>
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.
^ permalink raw reply
* [PATCH] realtek: Add switch variable to 'switch case not processed' messages
From: Joe Perches @ 2016-09-23 18:27 UTC (permalink / raw)
To: Larry Finger, Jean Delvare, Chaoming Li
Cc: Kalle Valo, linux-wireless, netdev, linux-kernel
In-Reply-To: <1474654333.1849.5.camel@perches.com>
Help along debugging by showing what switch/case variable is not
being processed in these messages.
Signed-off-by: Joe Perches <joe@perches.com>
---
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
^ permalink raw reply related
* Re: Broadcom Firmware Rollback
From: David Petrizze @ 2016-09-23 18:45 UTC (permalink / raw)
To: Rafał Miłecki; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <CACna6rwshvB1xPXwdzpJS7uDz-zWWa=pV29B=0J9JJW+GKUx6g@mail.gmail.com>
I see. I guess I was hoping for some sort of mishap i.e. replacing
6.20 with 6.30 without thinking. If it wasn't released, I'll keep
working on compiling the Ubuntu driver I did find.
Thanks again
On Thu, Sep 22, 2016 at 10:48 PM, Rafa=C5=82 Mi=C5=82ecki <zajec5@gmail.com=
> wrote:
> On 23 September 2016 at 04:43, David Petrizze <dpetrizze@gmail.com> wrote=
:
>> I'm having issues with broadcom's latest firmware / driver, version
>> 6.30.163.46. Wireless is solid for about a minute, and then drops
>> completely. My research has led me to believe my chip (BCM4331) is no
>> longer supported under 6.30.X.X, or has a bug somewhere. I want to
>> roll back to the firmware that worked.
>>
>> What I'm looking for is a file named broadcom-wl-6.20.*.*.tar.bz2. I
>> found my current firmware from http://www.lwfinger.com/b43-firmware/,
>> but 6.20.X.X is nowhere to be found. 5.100.X.X is there, but the 4331
>> definitely wasn't supported for that one.
>>
>> Inside each of these archives on lwfinger is a file called wl_apsta.o,
>> where the firmware is extracted from. Since b43-fwcutter only
>> extracts firmware from versions of wl_apsta.o that match specific
>> MD5's, I figure 6.20.X.X has to be out there somewhere.
>>
>> More info can be found from my original post:
>> https://bbs.archlinux.org/viewtopic.php?id=3D217326
>>
>> ...and other people confrim 6.30.X.X being a problem in this ubuntu bug:
>> https://bugs.launchpad.net/ubuntu/+source/bcmwl/+bug/1189611
>>
>> If anyone could point me in the right direction, I would be immensely gr=
ateful.
>
> You can't make proprietary driver using firmware of your choice, so
> don't bother looking at MIPS drivers stored at Larry's server.
>
> You just need to find a /complete/ (mostly closed source of course)
> driver 6.20 for x86/x86_64. I don't think it was ever published on
> Broadcom's site, I think it was made available to Ubuntu only under
> some agreement. So keep looking at Ubuntu resources.
>
> Also linux-wireless ML focuses on open source drivers, so you may have
> more luck asking at Ubuntu community.
>
> --
> Rafa=C5=82
^ permalink raw reply
* Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages
From: Larry Finger @ 2016-09-23 18:59 UTC (permalink / raw)
To: Joe Perches, Jean Delvare, Chaoming Li
Cc: Kalle Valo, linux-wireless, netdev, linux-kernel
In-Reply-To: <d091f73a6adf3bdaa09ab0399c22a9fdfe9b188c.1474654979.git.joe@perches.com>
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 <joe@perches.com>
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;
> }
>
^ permalink raw reply
* Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages
From: Joe Perches @ 2016-09-23 19:02 UTC (permalink / raw)
To: Larry Finger, Jean Delvare, Chaoming Li
Cc: Kalle Valo, linux-wireless, netdev, linux-kernel
In-Reply-To: <f98d2cf1-802a-93c1-b219-ec45aa417940@lwfinger.net>
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" */
^ permalink raw reply
* Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages
From: Larry Finger @ 2016-09-23 19:07 UTC (permalink / raw)
To: Joe Perches, Jean Delvare, Chaoming Li
Cc: Kalle Valo, linux-wireless, netdev, linux-kernel
In-Reply-To: <d091f73a6adf3bdaa09ab0399c22a9fdfe9b188c.1474654979.git.joe@perches.com>
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 <joe@perches.com>
Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Thanks,
Larry
^ permalink raw reply
* Re: Broadcom Firmware Rollback
From: Larry Finger @ 2016-09-23 19:09 UTC (permalink / raw)
To: David Petrizze, Rafał Miłecki; +Cc: linux-wireless@vger.kernel.org
In-Reply-To: <CA+PvwyGUF8a3FPpQVkHLMsT=YdD=LwN6bqKfZBO7=KZEv+UpgA@mail.gmail.com>
On 09/23/2016 01:45 PM, David Petrizze wrote:
> I see. I guess I was hoping for some sort of mishap i.e. replacing
> 6.20 with 6.30 without thinking. If it wasn't released, I'll keep
> working on compiling the Ubuntu driver I did find.
If you can point me to a redistributable version of 6.20, I will add it to
fwcutter and my server.
Larry
^ permalink raw reply
* [PATCH 0/3] Add memory limits to fq.h and mac80211 TXQ
From: Toke Høiland-Jørgensen @ 2016-09-23 19:59 UTC (permalink / raw)
To: make-wifi-fast, linux-wireless, netdev; +Cc: Toke Høiland-Jørgensen
This is a series of small patches to avoid OOM conditions on small
wireless devices with the mac80211 intermediate TXQ structure. The
current default limit in fq.h translates to up to 16 Mbytes of memory
usage, which can be fatal to a device with 32 MBytes of total RAM.
Rather than just change the fq_limit, this ports the memory limit
mechanism from the fq_codel qdisc. The second patch in the series just
adds the new fields to the mac80211 'aqm' debugfs file.
The third patch changes mac80211 to set a lower memory limit for non-VHT
devices. The assumption is that (a) for 802.11n and lower 4 Mbytes of
total queue (2048 packets, 64 max-size aggregates) is plenty, and so it
is safe to simply limit the queue size. And (b) that VHT-capable devices
are usually installed in systems equipped with more system memory.
Toke H=C3=B8iland-J=C3=B8rgensen (3):
fq.h: Port memory limit mechanism from fq_codel
mac80211: Export fq memory limit information in debugfs
mac80211: Set lower memory limit for non-VHT devices
include/net/fq.h | 3 +++
include/net/fq_impl.h | 7 ++++++-
net/mac80211/debugfs.c | 8 ++++++++
net/mac80211/tx.c | 18 ++++++++++++++++++
4 files changed, 35 insertions(+), 1 deletion(-)
--=20
2.9.3
base-commit: fb2a3d5c7c85cb6e8bc88192be919b4ef8d6e630
^ permalink raw reply
* [PATCH 2/3] mac80211: Export fq memory limit information in debugfs
From: Toke Høiland-Jørgensen @ 2016-09-23 19:59 UTC (permalink / raw)
To: make-wifi-fast, linux-wireless, netdev; +Cc: Toke Høiland-Jørgensen
In-Reply-To: <20160923195911.4572-1-toke@toke.dk>
Add memory limit, usage and overlimit counter to per-PHY 'aqm' debugfs
file.
Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen <toke@toke.dk>
---
net/mac80211/debugfs.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/net/mac80211/debugfs.c b/net/mac80211/debugfs.c
index 8ca62b6..f56e2f4 100644
--- a/net/mac80211/debugfs.c
+++ b/net/mac80211/debugfs.c
@@ -89,13 +89,19 @@ static ssize_t aqm_read(struct file *file,
"R fq_flows_cnt %u\n"
"R fq_backlog %u\n"
"R fq_overlimit %u\n"
+ "R fq_overmemory %u\n"
"R fq_collisions %u\n"
+ "R fq_memory_usage %u\n"
+ "RW fq_memory_limit %u\n"
"RW fq_limit %u\n"
"RW fq_quantum %u\n",
fq->flows_cnt,
fq->backlog,
+ fq->overmemory,
fq->overlimit,
fq->collisions,
+ fq->memory_usage,
+ fq->memory_limit,
fq->limit,
fq->quantum);
=20
@@ -128,6 +134,8 @@ static ssize_t aqm_write(struct file *file,
=20
if (sscanf(buf, "fq_limit %u", &local->fq.limit) =3D=3D 1)
return count;
+ else if (sscanf(buf, "fq_memory_limit %u", &local->fq.memory_limit) =3D=
=3D 1)
+ return count;
else if (sscanf(buf, "fq_quantum %u", &local->fq.quantum) =3D=3D 1)
return count;
=20
--=20
2.9.3
^ permalink raw reply related
* [PATCH 3/3] mac80211: Set lower memory limit for non-VHT devices
From: Toke Høiland-Jørgensen @ 2016-09-23 19:59 UTC (permalink / raw)
To: make-wifi-fast, linux-wireless, netdev; +Cc: Toke Høiland-Jørgensen
In-Reply-To: <20160923195911.4572-1-toke@toke.dk>
Small devices can run out of memory from queueing too many packets. If
VHT is not supported by the PHY, having more than 4 MBytes of total
queue in the TXQ intermediate queues is not needed, and so we can safely
limit the memory usage in these cases and avoid OOM.
Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen <toke@toke.dk>
---
net/mac80211/tx.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 1ff08be..82f41fc 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -1434,6 +1434,8 @@ int ieee80211_txq_setup_flows(struct ieee80211_loca=
l *local)
struct fq *fq =3D &local->fq;
int ret;
int i;
+ bool supp_vht =3D false;
+ enum nl80211_band band;
=20
if (!local->ops->wake_tx_queue)
return 0;
@@ -1442,6 +1444,22 @@ int ieee80211_txq_setup_flows(struct ieee80211_loc=
al *local)
if (ret)
return ret;
=20
+ /*
+ * If the hardware doesn't support VHT, it is safe to limit the maximum
+ * queue size. 4 Mbytes is 64 max-size aggregates in 802.11n.
+ */
+ for (band =3D 0; band < NUM_NL80211_BANDS; band++) {
+ struct ieee80211_supported_band *sband;
+
+ sband =3D local->hw.wiphy->bands[band];
+ if (!sband)
+ continue;
+
+ supp_vht =3D supp_vht || sband->vht_cap.vht_supported;
+ }
+ if (!supp_vht)
+ fq->memory_limit =3D 4 << 20; /* 4 Mbytes */
+
codel_params_init(&local->cparams);
local->cparams.interval =3D MS2TIME(100);
local->cparams.target =3D MS2TIME(20);
--=20
2.9.3
^ permalink raw reply related
* [PATCH 1/3] fq.h: Port memory limit mechanism from fq_codel
From: Toke Høiland-Jørgensen @ 2016-09-23 19:59 UTC (permalink / raw)
To: make-wifi-fast, linux-wireless, netdev; +Cc: Toke Høiland-Jørgensen
In-Reply-To: <20160923195911.4572-1-toke@toke.dk>
The reusable fairness queueing implementation (fq.h) lacks the memory
usage limit that the fq_codel qdisc has. This means that small
devices (e.g. WiFi routers) can run out of memory when flooded with a
large number of packets. This ports the memory limit feature from
fq_codel to fq.h.
Signed-off-by: Toke H=C3=B8iland-J=C3=B8rgensen <toke@toke.dk>
---
include/net/fq.h | 3 +++
include/net/fq_impl.h | 7 ++++++-
2 files changed, 9 insertions(+), 1 deletion(-)
diff --git a/include/net/fq.h b/include/net/fq.h
index 268b490..6d8521a 100644
--- a/include/net/fq.h
+++ b/include/net/fq.h
@@ -72,9 +72,12 @@ struct fq {
u32 flows_cnt;
u32 perturbation;
u32 limit;
+ u32 memory_limit;
+ u32 memory_usage;
u32 quantum;
u32 backlog;
u32 overlimit;
+ u32 overmemory;
u32 collisions;
};
=20
diff --git a/include/net/fq_impl.h b/include/net/fq_impl.h
index 163f3ed..4e6131c 100644
--- a/include/net/fq_impl.h
+++ b/include/net/fq_impl.h
@@ -29,6 +29,7 @@ static struct sk_buff *fq_flow_dequeue(struct fq *fq,
tin->backlog_packets--;
flow->backlog -=3D skb->len;
fq->backlog--;
+ fq->memory_usage -=3D skb->truesize;
=20
if (flow->backlog =3D=3D 0) {
list_del_init(&flow->backlogchain);
@@ -154,6 +155,7 @@ static void fq_tin_enqueue(struct fq *fq,
flow->backlog +=3D skb->len;
tin->backlog_bytes +=3D skb->len;
tin->backlog_packets++;
+ fq->memory_usage +=3D skb->truesize;
fq->backlog++;
=20
fq_recalc_backlog(fq, tin, flow);
@@ -166,7 +168,7 @@ static void fq_tin_enqueue(struct fq *fq,
=20
__skb_queue_tail(&flow->queue, skb);
=20
- if (fq->backlog > fq->limit) {
+ if (fq->backlog > fq->limit || fq->memory_usage > fq->memory_limit) {
flow =3D list_first_entry_or_null(&fq->backlogs,
struct fq_flow,
backlogchain);
@@ -181,6 +183,8 @@ static void fq_tin_enqueue(struct fq *fq,
=20
flow->tin->overlimit++;
fq->overlimit++;
+ if (fq->memory_usage > fq->memory_limit)
+ fq->overmemory++;
}
}
=20
@@ -251,6 +255,7 @@ static int fq_init(struct fq *fq, int flows_cnt)
fq->perturbation =3D prandom_u32();
fq->quantum =3D 300;
fq->limit =3D 8192;
+ fq->memory_limit =3D 16 << 20; /* 16 MBytes */
=20
fq->flows =3D kcalloc(fq->flows_cnt, sizeof(fq->flows[0]), GFP_KERNEL);
if (!fq->flows)
--=20
2.9.3
^ permalink raw reply related
* Re: ath10k mesh + ap + encryption?
From: Pedersen, Thomas @ 2016-09-23 22:18 UTC (permalink / raw)
To: Simon Wunderlich
Cc: ath10k@lists.infradead.org, Valo, Kalle, Martin Blumenstingl,
openwrt-devel@lists.openwrt.org, linux-wireless@vger.kernel.org
In-Reply-To: <5898628.mmcCycDigQ@prime>
T24gTW9uLCAyMDE2LTA5LTE5IGF0IDA4OjQzICswMjAwLCBTaW1vbiBXdW5kZXJsaWNoIHdyb3Rl
Og0KPiBPbiBUdWVzZGF5LCBTZXB0ZW1iZXIgMTMsIDIwMTYgNTo1NDozOCBQTSBDRVNUIFBlZGVy
c2VuLCBUaG9tYXMgd3JvdGU6DQo+ID4gT24gVHVlLCAyMDE2LTA5LTEzIGF0IDE0OjMwICswMjAw
LCBTaW1vbiBXdW5kZXJsaWNoIHdyb3RlOg0KPiA+IA0KPiA+ID4gWy4uLl0NCj4gPiA+DQo+ID4g
PiBUaGFua3MgZm9yIHRoZSBjbGFyaWZpY2F0aW9uLiBXZSB3aWxsIHRoZW4gc3RpY2sgdG8gdGhl
IDcwJ3MgYnJhbmNoDQo+ID4gPiB0aGVuLg0KPiA+ID4gDQo+ID4gPiBEb2VzIGFueW9uZSBoYXZl
IHBvaW50ZXJzIGZvciB0aGUgb3RoZXIgcXVlc3Rpb25zPyA6KSBJIHdvdWxkIGJlbGlldmUNCj4g
PiA+IGhhdCBtYW55IA0KPiA+ID4gcGVvcGxlIHdvdWxkIGJlIGludGVyZXN0ZWQgaW4gcnVubmlu
ZyBBUCArIE1lc2ggZW5jcnlwdGVkIGF0IHRoZSBzYW1lDQo+ID4gPiB0aW1lIChhdCANCj4gPiA+
IGxlYXN0IGluIHRoZSBvcGVuIHNvdXJjZSBjb21tdW5pdHkgLi4uKS4NCj4gPiANCj4gPiANCj4g
PiBXZSdyZSB0ZXN0aW5nIGVuY3J5cHRlZCBBUCArIE1lc2ggcXVpdGUgc3VjY2Vzc2Z1bGx5IHJp
Z2h0IG5vdyB3aXRoDQo+ID4gdGhpcyBmaXJtd2FyZTogaHR0cHM6Ly9naXRodWIuY29tL2t2YWxv
L2F0aDEway1maXJtd2FyZS9jb21taXQvMzA3Y2I0NmINCj4gPiAwNjY2MWViZDMxODY3MjNiNTAw
MmRlNzY5YzdhZGQ4Mywgb2YgY291cnNlIHRoYXQgaXMgZm9yIGEgUUNBNDAxOSBjaGlwLg0KPiA+
IFdoaWNoIGNoaXAgYXJlIHlvdSB1c2luZz8gSSBjYW4gcG9rZSB0aGUgZmlybXdhcmUgZ3V5cyBm
b3IgcG9zc2liaWxpdHkNCj4gPiBvZiBnZXR0aW5nIGEgMTAuNC4zLjIgZmlybXdhcmUgYnVpbGQg
Zm9yIGl0Lg0KPiANCj4gSGkgVGhvbWFzLA0KPiANCj4gdGhhbmtzIGZvciB0aGUgaGludCEgV2Ug
YXJlIHVzaW5nIGFuIG9sZGVyIFFDQTk4ODIuIEkgYXNzdW1lIHlvdXIgZmlybXdhcmUgd2lsbCAN
Cj4gbm90IHdvcmsgZm9yIHRoaXMgb25lPyBJZiB5b3UgY2FuIHBva2UgdGhlIGZpcm13YXJlIGd1
eXMsIHRoYXQgd291bGQgYmUgZ3JlYXQuIA0KPiA6KQ0KDQpIaSBTaW1vbiwNCg0KQWNjb3JkaW5n
IHRvIGZpcm13YXJlIGd1eXMgdGhlIGxhdGVzdCBjb2RlIGNhbiBhY3R1YWxseSBjb21waWxlIGRv
d24gdG8NCmFueSBjaGlwc2V0LCBzbyBpdCBzaG91bGQgc2ltcGx5IGJlIGEgbWF0dGVyIG9mIGdl
dHRpbmcgYnVpbGRzIHJlbGVhc2VkLg0K
^ permalink raw reply
* Re: [PATCH] brcmfmac: fix memory leak in brcmf_fill_bss_param
From: Kalle Valo @ 2016-09-24 10:27 UTC (permalink / raw)
To: Rafał Miłecki
Cc: Rafał Miłecki, Arend van Spriel, Franky Lin,
Hante Meuleman, Pieter-Paul Giesberts, Franky (Zhenhui) Lin,
linux-wireless, brcm80211-dev-list.pdl, netdev, linux-kernel
In-Reply-To: <20160921062327.28729-1-zajec5@gmail.com>
Rafa=C5=82 Mi=C5=82ecki <zajec5@gmail.com> writes:
> From: Rafa=C5=82 Mi=C5=82ecki <rafal@milecki.pl>
>
> This function is called from get_station callback which means that every
> time user space was getting/dumping station(s) we were leaking 2 KiB.
>
> Signed-off-by: Rafa=C5=82 Mi=C5=82ecki <rafal@milecki.pl>
> Fixes: 1f0dc59a6de ("brcmfmac: rework .get_station() callback")
> Cc: stable@vger.kernel.org # 4.2+
> ---
> Kalle, ideally this should go as 4.8 fix, but I'm aware it's quite late.
> If you are not planning to send another pull request, just get it for
> the next release and let's let stable guys backport it.
An old memory leak is not severe enough for 4.8 at this stage, so I'll
queue this to 4.9.
BTW, either my Gnus or my SMTP server (I haven't bothered to check yet
why exactly) don't like the names with style of "(open list:NETWORKING
DRIVERS)" in the CC list, I have to edit them away everytime I reply.
Does anyone have any ideas why that's happening just to me?
--=20
Kalle Valo
^ permalink raw reply
* Re: [PATCH 10/25] iwlwifi: mvm: support packet injection
From: Kalle Valo @ 2016-09-24 11:19 UTC (permalink / raw)
To: Luca Coelho; +Cc: linux-wireless, Sara Sharon, Luca Coelho
In-Reply-To: <20160919073028.22065-10-luca@coelho.fi>
Luca Coelho <luca@coelho.fi> writes:
> From: Sara Sharon <sara.sharon@intel.com>
>
> For automatic testing packet injection can be useful.
> Support injection through debugfs.
>
> Signed-off-by: Sara Sharon <sara.sharon@intel.com>
> Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
The commit log doesn't tell a lot. I started to wonder why use debugfs
and not the proper interface through mac80211?
> --- a/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
> +++ b/drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c
> @@ -917,6 +917,59 @@ static ssize_t iwl_dbgfs_indirection_tbl_write(struct iwl_mvm *mvm,
> return ret ?: count;
> }
>
> +static ssize_t iwl_dbgfs_inject_packet_write(struct iwl_mvm *mvm,
> + char *buf, size_t count,
> + loff_t *ppos)
> +{
> + struct iwl_rx_cmd_buffer rxb = {
> + ._rx_page_order = 0,
> + .truesize = 0, /* not used */
> + ._offset = 0,
> + };
> + struct iwl_rx_packet *pkt;
> + struct iwl_rx_mpdu_desc *desc;
> + int bin_len = count / 2;
> + int ret = -EINVAL;
> +
> + /* supporting only 9000 descriptor */
> + if (!mvm->trans->cfg->mq_rx_supported)
> + return -ENOTSUPP;
> +
> + rxb._page = alloc_pages(GFP_ATOMIC, 0);
> + if (!rxb._page)
> + return -ENOMEM;
> + pkt = rxb_addr(&rxb);
> +
> + ret = hex2bin(page_address(rxb._page), buf, bin_len);
> + if (ret)
> + goto out;
> +
> + /* avoid invalid memory access */
> + if (bin_len < sizeof(*pkt) + sizeof(*desc))
> + goto out;
> +
> + /* check this is RX packet */
> + if (WIDE_ID(pkt->hdr.group_id, pkt->hdr.cmd) !=
> + WIDE_ID(LEGACY_GROUP, REPLY_RX_MPDU_CMD))
> + goto out;
> +
> + /* check the length in metadata matches actual received length */
> + desc = (void *)pkt->data;
> + if (le16_to_cpu(desc->mpdu_len) !=
> + (bin_len - sizeof(*desc) - sizeof(*pkt)))
> + goto out;
> +
> + local_bh_disable();
> + iwl_mvm_rx_mpdu_mq(mvm, NULL, &rxb, 0);
> + local_bh_enable();
> + ret = 0;
But reading from the code makes me suspect that this isn't really normal
packet injection, more like passing full descriptors to the hw. Did I
understand correctly?
--
Kalle Valo
^ permalink raw reply
* Re: rtl8192ce:rtl92ce_get_hw_reg():<0-0> switch case not processed
From: Jean Delvare @ 2016-09-24 15:25 UTC (permalink / raw)
To: Larry Finger; +Cc: Chaoming Li, linux-wireless
In-Reply-To: <6feb0feb-eb53-8b6b-4c50-e6ace0cc854a@lwfinger.net>
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
^ permalink raw reply
* Re: [PATCH] realtek: Add switch variable to 'switch case not processed' messages
From: Jean Delvare @ 2016-09-24 15:55 UTC (permalink / raw)
To: Joe Perches
Cc: Larry Finger, Chaoming Li, Kalle Valo, linux-wireless, netdev,
linux-kernel
In-Reply-To: <1474657363.1849.9.camel@perches.com>
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
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox