diff options
Diffstat (limited to 'drivers/net/wireless/broadcom')
46 files changed, 165 insertions, 119 deletions
| diff --git a/drivers/net/wireless/broadcom/b43/Makefile b/drivers/net/wireless/broadcom/b43/Makefile index 27fab958e3d5..54f92ce49bb8 100644 --- a/drivers/net/wireless/broadcom/b43/Makefile +++ b/drivers/net/wireless/broadcom/b43/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  b43-y				+= main.o  b43-y				+= bus.o  b43-$(CONFIG_B43_PHY_G)		+= phy_g.o tables.o lo.o wa.o diff --git a/drivers/net/wireless/broadcom/b43/b43.h b/drivers/net/wireless/broadcom/b43/b43.h index d7d42f0b80c3..b77d1a904f7e 100644 --- a/drivers/net/wireless/broadcom/b43/b43.h +++ b/drivers/net/wireless/broadcom/b43/b43.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_H_  #define B43_H_ diff --git a/drivers/net/wireless/broadcom/b43/bus.h b/drivers/net/wireless/broadcom/b43/bus.h index 256c2c17939a..2a695f9e528b 100644 --- a/drivers/net/wireless/broadcom/b43/bus.h +++ b/drivers/net/wireless/broadcom/b43/bus.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_BUS_H_  #define B43_BUS_H_ diff --git a/drivers/net/wireless/broadcom/b43/debugfs.h b/drivers/net/wireless/broadcom/b43/debugfs.h index d05377745011..0bf437c86c67 100644 --- a/drivers/net/wireless/broadcom/b43/debugfs.h +++ b/drivers/net/wireless/broadcom/b43/debugfs.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_DEBUGFS_H_  #define B43_DEBUGFS_H_ diff --git a/drivers/net/wireless/broadcom/b43/dma.h b/drivers/net/wireless/broadcom/b43/dma.h index df8c8cdcbdb5..c2a357219d4b 100644 --- a/drivers/net/wireless/broadcom/b43/dma.h +++ b/drivers/net/wireless/broadcom/b43/dma.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_DMA_H_  #define B43_DMA_H_ diff --git a/drivers/net/wireless/broadcom/b43/leds.h b/drivers/net/wireless/broadcom/b43/leds.h index 32b66d53cdac..5ebd1b2b1749 100644 --- a/drivers/net/wireless/broadcom/b43/leds.h +++ b/drivers/net/wireless/broadcom/b43/leds.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_LEDS_H_  #define B43_LEDS_H_ diff --git a/drivers/net/wireless/broadcom/b43/lo.h b/drivers/net/wireless/broadcom/b43/lo.h index 7b4df3883bc2..66e07ab79c51 100644 --- a/drivers/net/wireless/broadcom/b43/lo.h +++ b/drivers/net/wireless/broadcom/b43/lo.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_LO_H_  #define B43_LO_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_a.h b/drivers/net/wireless/broadcom/b43/phy_a.h index 0a92d01c21f9..b1cbfc02beb6 100644 --- a/drivers/net/wireless/broadcom/b43/phy_a.h +++ b/drivers/net/wireless/broadcom/b43/phy_a.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef LINUX_B43_PHY_A_H_  #define LINUX_B43_PHY_A_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_ac.h b/drivers/net/wireless/broadcom/b43/phy_ac.h index d1ca79e0eb24..02eb6c08670d 100644 --- a/drivers/net/wireless/broadcom/b43/phy_ac.h +++ b/drivers/net/wireless/broadcom/b43/phy_ac.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_PHY_AC_H_  #define B43_PHY_AC_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_common.h b/drivers/net/wireless/broadcom/b43/phy_common.h index ced054a9850c..57a1ad8afa08 100644 --- a/drivers/net/wireless/broadcom/b43/phy_common.h +++ b/drivers/net/wireless/broadcom/b43/phy_common.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef LINUX_B43_PHY_COMMON_H_  #define LINUX_B43_PHY_COMMON_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_g.h b/drivers/net/wireless/broadcom/b43/phy_g.h index 5413c906a3e7..a27b8603c75f 100644 --- a/drivers/net/wireless/broadcom/b43/phy_g.h +++ b/drivers/net/wireless/broadcom/b43/phy_g.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef LINUX_B43_PHY_G_H_  #define LINUX_B43_PHY_G_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_ht.h b/drivers/net/wireless/broadcom/b43/phy_ht.h index c086f56ce478..046753857493 100644 --- a/drivers/net/wireless/broadcom/b43/phy_ht.h +++ b/drivers/net/wireless/broadcom/b43/phy_ht.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_PHY_HT_H_  #define B43_PHY_HT_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_lcn.h b/drivers/net/wireless/broadcom/b43/phy_lcn.h index 6a7092e13fff..0b1cfaf6394c 100644 --- a/drivers/net/wireless/broadcom/b43/phy_lcn.h +++ b/drivers/net/wireless/broadcom/b43/phy_lcn.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_PHY_LCN_H_  #define B43_PHY_LCN_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_lp.h b/drivers/net/wireless/broadcom/b43/phy_lp.h index 62737f700cbc..50bef2ea6e52 100644 --- a/drivers/net/wireless/broadcom/b43/phy_lp.h +++ b/drivers/net/wireless/broadcom/b43/phy_lp.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef LINUX_B43_PHY_LP_H_  #define LINUX_B43_PHY_LP_H_ diff --git a/drivers/net/wireless/broadcom/b43/phy_n.h b/drivers/net/wireless/broadcom/b43/phy_n.h index a6da2c31a99c..b96ded0ef539 100644 --- a/drivers/net/wireless/broadcom/b43/phy_n.h +++ b/drivers/net/wireless/broadcom/b43/phy_n.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_NPHY_H_  #define B43_NPHY_H_ diff --git a/drivers/net/wireless/broadcom/b43/pio.h b/drivers/net/wireless/broadcom/b43/pio.h index 1e516147424f..ffbfec622f82 100644 --- a/drivers/net/wireless/broadcom/b43/pio.h +++ b/drivers/net/wireless/broadcom/b43/pio.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_PIO_H_  #define B43_PIO_H_ diff --git a/drivers/net/wireless/broadcom/b43/ppr.h b/drivers/net/wireless/broadcom/b43/ppr.h index 24d7447e9f01..094389f9f477 100644 --- a/drivers/net/wireless/broadcom/b43/ppr.h +++ b/drivers/net/wireless/broadcom/b43/ppr.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef LINUX_B43_PPR_H_  #define LINUX_B43_PPR_H_ diff --git a/drivers/net/wireless/broadcom/b43/radio_2055.h b/drivers/net/wireless/broadcom/b43/radio_2055.h index 67f96122f8d8..ad7271cde001 100644 --- a/drivers/net/wireless/broadcom/b43/radio_2055.h +++ b/drivers/net/wireless/broadcom/b43/radio_2055.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_RADIO_2055_H_  #define B43_RADIO_2055_H_ diff --git a/drivers/net/wireless/broadcom/b43/radio_2056.h b/drivers/net/wireless/broadcom/b43/radio_2056.h index 5b86673459fa..59297fdce5e3 100644 --- a/drivers/net/wireless/broadcom/b43/radio_2056.h +++ b/drivers/net/wireless/broadcom/b43/radio_2056.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_RADIO_2056_H_  #define B43_RADIO_2056_H_ diff --git a/drivers/net/wireless/broadcom/b43/radio_2057.h b/drivers/net/wireless/broadcom/b43/radio_2057.h index 220d080238ff..d7959da77b51 100644 --- a/drivers/net/wireless/broadcom/b43/radio_2057.h +++ b/drivers/net/wireless/broadcom/b43/radio_2057.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_RADIO_2057_H_  #define B43_RADIO_2057_H_ diff --git a/drivers/net/wireless/broadcom/b43/radio_2059.h b/drivers/net/wireless/broadcom/b43/radio_2059.h index 9e22fb60588b..32c0025bce9d 100644 --- a/drivers/net/wireless/broadcom/b43/radio_2059.h +++ b/drivers/net/wireless/broadcom/b43/radio_2059.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_RADIO_2059_H_  #define B43_RADIO_2059_H_ diff --git a/drivers/net/wireless/broadcom/b43/rfkill.h b/drivers/net/wireless/broadcom/b43/rfkill.h index f046c3ca0519..8682ac5b828a 100644 --- a/drivers/net/wireless/broadcom/b43/rfkill.h +++ b/drivers/net/wireless/broadcom/b43/rfkill.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_RFKILL_H_  #define B43_RFKILL_H_ diff --git a/drivers/net/wireless/broadcom/b43/sdio.h b/drivers/net/wireless/broadcom/b43/sdio.h index 1e93926f388f..aa5693b123ad 100644 --- a/drivers/net/wireless/broadcom/b43/sdio.h +++ b/drivers/net/wireless/broadcom/b43/sdio.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_SDIO_H_  #define B43_SDIO_H_ diff --git a/drivers/net/wireless/broadcom/b43/sysfs.h b/drivers/net/wireless/broadcom/b43/sysfs.h index 12bda9ef1a85..e70e6cff3c53 100644 --- a/drivers/net/wireless/broadcom/b43/sysfs.h +++ b/drivers/net/wireless/broadcom/b43/sysfs.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_SYSFS_H_  #define B43_SYSFS_H_ diff --git a/drivers/net/wireless/broadcom/b43/tables.h b/drivers/net/wireless/broadcom/b43/tables.h index 80e73c7cbac5..3b0777f15f3e 100644 --- a/drivers/net/wireless/broadcom/b43/tables.h +++ b/drivers/net/wireless/broadcom/b43/tables.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_TABLES_H_  #define B43_TABLES_H_ diff --git a/drivers/net/wireless/broadcom/b43/tables_lpphy.h b/drivers/net/wireless/broadcom/b43/tables_lpphy.h index 84f1d265f657..62002098bbda 100644 --- a/drivers/net/wireless/broadcom/b43/tables_lpphy.h +++ b/drivers/net/wireless/broadcom/b43/tables_lpphy.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_TABLES_LPPHY_H_  #define B43_TABLES_LPPHY_H_ diff --git a/drivers/net/wireless/broadcom/b43/tables_nphy.h b/drivers/net/wireless/broadcom/b43/tables_nphy.h index b51f386db02f..3876786d2692 100644 --- a/drivers/net/wireless/broadcom/b43/tables_nphy.h +++ b/drivers/net/wireless/broadcom/b43/tables_nphy.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_TABLES_NPHY_H_  #define B43_TABLES_NPHY_H_ diff --git a/drivers/net/wireless/broadcom/b43/tables_phy_ht.h b/drivers/net/wireless/broadcom/b43/tables_phy_ht.h index 1b5ef2bc770c..7ed057118ae3 100644 --- a/drivers/net/wireless/broadcom/b43/tables_phy_ht.h +++ b/drivers/net/wireless/broadcom/b43/tables_phy_ht.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_TABLES_PHY_HT_H_  #define B43_TABLES_PHY_HT_H_ diff --git a/drivers/net/wireless/broadcom/b43/tables_phy_lcn.h b/drivers/net/wireless/broadcom/b43/tables_phy_lcn.h index caff9db6831f..5ea6c15e851e 100644 --- a/drivers/net/wireless/broadcom/b43/tables_phy_lcn.h +++ b/drivers/net/wireless/broadcom/b43/tables_phy_lcn.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_TABLES_PHY_LCN_H_  #define B43_TABLES_PHY_LCN_H_ diff --git a/drivers/net/wireless/broadcom/b43/wa.h b/drivers/net/wireless/broadcom/b43/wa.h index e163c5e56e81..f3459b99d83b 100644 --- a/drivers/net/wireless/broadcom/b43/wa.h +++ b/drivers/net/wireless/broadcom/b43/wa.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_WA_H_  #define B43_WA_H_ diff --git a/drivers/net/wireless/broadcom/b43/xmit.h b/drivers/net/wireless/broadcom/b43/xmit.h index ba6115308068..6524a75bb73b 100644 --- a/drivers/net/wireless/broadcom/b43/xmit.h +++ b/drivers/net/wireless/broadcom/b43/xmit.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43_XMIT_H_  #define B43_XMIT_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/Makefile b/drivers/net/wireless/broadcom/b43legacy/Makefile index 227a77e84362..f8b392f09009 100644 --- a/drivers/net/wireless/broadcom/b43legacy/Makefile +++ b/drivers/net/wireless/broadcom/b43legacy/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  # b43legacy core  b43legacy-y				+= main.o  b43legacy-y				+= ilt.o diff --git a/drivers/net/wireless/broadcom/b43legacy/b43legacy.h b/drivers/net/wireless/broadcom/b43legacy/b43legacy.h index 482476fdb1f3..6b0cec467938 100644 --- a/drivers/net/wireless/broadcom/b43legacy/b43legacy.h +++ b/drivers/net/wireless/broadcom/b43legacy/b43legacy.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_H_  #define B43legacy_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/debugfs.h b/drivers/net/wireless/broadcom/b43legacy/debugfs.h index 9ee32158b947..7a37764406b1 100644 --- a/drivers/net/wireless/broadcom/b43legacy/debugfs.h +++ b/drivers/net/wireless/broadcom/b43legacy/debugfs.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_DEBUGFS_H_  #define B43legacy_DEBUGFS_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/dma.h b/drivers/net/wireless/broadcom/b43legacy/dma.h index c3282f906bc7..b5c1a51db2a4 100644 --- a/drivers/net/wireless/broadcom/b43legacy/dma.h +++ b/drivers/net/wireless/broadcom/b43legacy/dma.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_DMA_H_  #define B43legacy_DMA_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/ilt.h b/drivers/net/wireless/broadcom/b43legacy/ilt.h index 48bcf37eccb8..ce7a61e2efb1 100644 --- a/drivers/net/wireless/broadcom/b43legacy/ilt.h +++ b/drivers/net/wireless/broadcom/b43legacy/ilt.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_ILT_H_  #define B43legacy_ILT_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/leds.h b/drivers/net/wireless/broadcom/b43legacy/leds.h index 9ff6750dc57f..389ae06a2d10 100644 --- a/drivers/net/wireless/broadcom/b43legacy/leds.h +++ b/drivers/net/wireless/broadcom/b43legacy/leds.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_LEDS_H_  #define B43legacy_LEDS_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/pio.h b/drivers/net/wireless/broadcom/b43legacy/pio.h index 8e6773ea6e75..1cd1b9ca5e9c 100644 --- a/drivers/net/wireless/broadcom/b43legacy/pio.h +++ b/drivers/net/wireless/broadcom/b43legacy/pio.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_PIO_H_  #define B43legacy_PIO_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/rfkill.h b/drivers/net/wireless/broadcom/b43legacy/rfkill.h index 75585571c544..7f314eb815d4 100644 --- a/drivers/net/wireless/broadcom/b43legacy/rfkill.h +++ b/drivers/net/wireless/broadcom/b43legacy/rfkill.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_RFKILL_H_  #define B43legacy_RFKILL_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/sysfs.h b/drivers/net/wireless/broadcom/b43legacy/sysfs.h index 417d509803c7..ea9d783e6796 100644 --- a/drivers/net/wireless/broadcom/b43legacy/sysfs.h +++ b/drivers/net/wireless/broadcom/b43legacy/sysfs.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_SYSFS_H_  #define B43legacy_SYSFS_H_ diff --git a/drivers/net/wireless/broadcom/b43legacy/xmit.h b/drivers/net/wireless/broadcom/b43legacy/xmit.h index 289db00a4a7b..e4ef869f0b8c 100644 --- a/drivers/net/wireless/broadcom/b43legacy/xmit.h +++ b/drivers/net/wireless/broadcom/b43legacy/xmit.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0 */  #ifndef B43legacy_XMIT_H_  #define B43legacy_XMIT_H_ diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c index aaed4ab503ad..4157c90ad973 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c @@ -980,7 +980,7 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,  	eth_broadcast_addr(params_le->bssid);  	params_le->bss_type = DOT11_BSSTYPE_ANY; -	params_le->scan_type = 0; +	params_le->scan_type = BRCMF_SCANTYPE_ACTIVE;  	params_le->channel_num = 0;  	params_le->nprobes = cpu_to_le32(-1);  	params_le->active_time = cpu_to_le32(-1); @@ -988,12 +988,9 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,  	params_le->home_time = cpu_to_le32(-1);  	memset(¶ms_le->ssid_le, 0, sizeof(params_le->ssid_le)); -	/* if request is null exit so it will be all channel broadcast scan */ -	if (!request) -		return; -  	n_ssids = request->n_ssids;  	n_channels = request->n_channels; +  	/* Copy channel array if applicable */  	brcmf_dbg(SCAN, "### List of channelspecs to scan ### %d\n",  		  n_channels); @@ -1030,16 +1027,8 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,  			ptr += sizeof(ssid_le);  		}  	} else { -		brcmf_dbg(SCAN, "Broadcast scan %p\n", request->ssids); -		if ((request->ssids) && request->ssids->ssid_len) { -			brcmf_dbg(SCAN, "SSID %s len=%d\n", -				  params_le->ssid_le.SSID, -				  request->ssids->ssid_len); -			params_le->ssid_le.SSID_len = -				cpu_to_le32(request->ssids->ssid_len); -			memcpy(¶ms_le->ssid_le.SSID, request->ssids->ssid, -				request->ssids->ssid_len); -		} +		brcmf_dbg(SCAN, "Performing passive scan\n"); +		params_le->scan_type = BRCMF_SCANTYPE_PASSIVE;  	}  	/* Adding mask to channel numbers */  	params_le->channel_num = @@ -3162,6 +3151,7 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,  	struct brcmf_cfg80211_info *cfg = ifp->drvr->config;  	s32 status;  	struct brcmf_escan_result_le *escan_result_le; +	u32 escan_buflen;  	struct brcmf_bss_info_le *bss_info_le;  	struct brcmf_bss_info_le *bss = NULL;  	u32 bi_length; @@ -3181,11 +3171,23 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,  	if (status == BRCMF_E_STATUS_PARTIAL) {  		brcmf_dbg(SCAN, "ESCAN Partial result\n"); +		if (e->datalen < sizeof(*escan_result_le)) { +			brcmf_err("invalid event data length\n"); +			goto exit; +		}  		escan_result_le = (struct brcmf_escan_result_le *) data;  		if (!escan_result_le) {  			brcmf_err("Invalid escan result (NULL pointer)\n");  			goto exit;  		} +		escan_buflen = le32_to_cpu(escan_result_le->buflen); +		if (escan_buflen > BRCMF_ESCAN_BUF_SIZE || +		    escan_buflen > e->datalen || +		    escan_buflen < sizeof(*escan_result_le)) { +			brcmf_err("Invalid escan buffer length: %d\n", +				  escan_buflen); +			goto exit; +		}  		if (le16_to_cpu(escan_result_le->bss_count) != 1) {  			brcmf_err("Invalid bss_count %d: ignoring\n",  				  escan_result_le->bss_count); @@ -3202,9 +3204,8 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,  		}  		bi_length = le32_to_cpu(bss_info_le->length); -		if (bi_length != (le32_to_cpu(escan_result_le->buflen) - -					WL_ESCAN_RESULTS_FIXED_SIZE)) { -			brcmf_err("Invalid bss_info length %d: ignoring\n", +		if (bi_length != escan_buflen -	WL_ESCAN_RESULTS_FIXED_SIZE) { +			brcmf_err("Ignoring invalid bss_info length: %d\n",  				  bi_length);  			goto exit;  		} diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c index 4eb1e1ce9ace..ef72baf6dd96 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fweh.c @@ -429,7 +429,8 @@ void brcmf_fweh_process_event(struct brcmf_pub *drvr,  	if (code != BRCMF_E_IF && !fweh->evt_handler[code])  		return; -	if (datalen > BRCMF_DCMD_MAXLEN) +	if (datalen > BRCMF_DCMD_MAXLEN || +	    datalen + sizeof(*event_packet) > packet_len)  		return;  	if (in_interrupt()) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h index 8391989b1882..e0d22fedb2b4 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h @@ -45,6 +45,11 @@  #define BRCMF_SCAN_PARAMS_COUNT_MASK	0x0000ffff  #define BRCMF_SCAN_PARAMS_NSSID_SHIFT	16 +/* scan type definitions */ +#define BRCMF_SCANTYPE_DEFAULT		0xFF +#define BRCMF_SCANTYPE_ACTIVE		0 +#define BRCMF_SCANTYPE_PASSIVE		1 +  #define BRCMF_WSEC_MAX_PSK_LEN		32  #define	BRCMF_WSEC_PASSPHRASE		BIT(0) diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c index 74b17cecb189..c0a5449ed72c 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/led.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0  #include <net/mac80211.h>  #include <linux/bcma/bcma_driver_chipcommon.h>  #include <linux/gpio.h> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c index b3aab2fe96eb..ef685465f80a 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c @@ -14764,8 +14764,8 @@ static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)  }  static void -wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys, -		       u8 len) +wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, const u8 *events, +		       const u8 *dlys, u8 len)  {  	u32 t1_offset, t2_offset;  	u8 ctr; @@ -15240,16 +15240,16 @@ static void wlc_phy_workarounds_nphy_gainctrl_2057_rev5(struct brcms_phy *pi)  static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)  {  	u16 currband; -	s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 }; -	s8 *lna1_gain_db = NULL; -	s8 *lna1_gain_db_2 = NULL; -	s8 *lna2_gain_db = NULL; -	s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 }; -	s8 *tia_gain_db; -	s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 }; -	s8 *tia_gainbits; -	u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f }; -	u16 *rfseq_init_gain; +	static const s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 }; +	const s8 *lna1_gain_db = NULL; +	const s8 *lna1_gain_db_2 = NULL; +	const s8 *lna2_gain_db = NULL; +	static const s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 }; +	const s8 *tia_gain_db; +	static const s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 }; +	const s8 *tia_gainbits; +	static const u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f }; +	const u16 *rfseq_init_gain;  	u16 init_gaincode;  	u16 clip1hi_gaincode;  	u16 clip1md_gaincode = 0; @@ -15310,10 +15310,9 @@ static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)  			if ((freq <= 5080) || (freq == 5825)) { -				s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 }; -				s8 lna1A_gain_db_2_rev7[] = { -					11, 17, 22, 25}; -				s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 }; +				static const s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 }; +				static const s8 lna1A_gain_db_2_rev7[] = { 11, 17, 22, 25}; +				static const s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };  				crsminu_th = 0x3e;  				lna1_gain_db = lna1A_gain_db_rev7; @@ -15321,10 +15320,9 @@ static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)  				lna2_gain_db = lna2A_gain_db_rev7;  			} else if ((freq >= 5500) && (freq <= 5700)) { -				s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 }; -				s8 lna1A_gain_db_2_rev7[] = { -					12, 18, 22, 26}; -				s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 }; +				static const s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 }; +				static const s8 lna1A_gain_db_2_rev7[] = { 12, 18, 22, 26}; +				static const s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };  				crsminu_th = 0x45;  				clip1md_gaincode_B = 0x14; @@ -15335,10 +15333,9 @@ static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)  				lna2_gain_db = lna2A_gain_db_rev7;  			} else { -				s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 }; -				s8 lna1A_gain_db_2_rev7[] = { -					12, 18, 22, 26}; -				s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 }; +				static const s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 }; +				static const s8 lna1A_gain_db_2_rev7[] = { 12, 18, 22, 26}; +				static const s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };  				crsminu_th = 0x41;  				lna1_gain_db = lna1A_gain_db_rev7; @@ -15450,65 +15447,65 @@ static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)  		NPHY_RFSEQ_CMD_CLR_HIQ_DIS,  		NPHY_RFSEQ_CMD_SET_HPF_BW  	}; -	u8 rfseq_updategainu_dlys[] = { 10, 30, 1 }; -	s8 lna1G_gain_db[] = { 7, 11, 16, 23 }; -	s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 }; -	s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 }; -	s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 }; -	s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 }; -	s8 lna1A_gain_db[] = { 7, 11, 17, 23 }; -	s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 }; -	s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 }; -	s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 }; -	s8 *lna1_gain_db = NULL; -	s8 lna2G_gain_db[] = { -5, 6, 10, 14 }; -	s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 }; -	s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 }; -	s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 }; -	s8 lna2A_gain_db[] = { -6, 2, 6, 10 }; -	s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 }; -	s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 }; -	s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 }; -	s8 *lna2_gain_db = NULL; -	s8 tiaG_gain_db[] = { +	static const u8 rfseq_updategainu_dlys[] = { 10, 30, 1 }; +	static const s8 lna1G_gain_db[] = { 7, 11, 16, 23 }; +	static const s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 }; +	static const s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 }; +	static const s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 }; +	static const s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 }; +	static const s8 lna1A_gain_db[] = { 7, 11, 17, 23 }; +	static const s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 }; +	static const s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 }; +	static const s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 }; +	const s8 *lna1_gain_db = NULL; +	static const s8 lna2G_gain_db[] = { -5, 6, 10, 14 }; +	static const s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 }; +	static const s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 }; +	static const s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 }; +	static const s8 lna2A_gain_db[] = { -6, 2, 6, 10 }; +	static const s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 }; +	static const s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 }; +	static const s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 }; +	const s8 *lna2_gain_db = NULL; +	static const s8 tiaG_gain_db[] = {  		0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A }; -	s8 tiaA_gain_db[] = { +	static const s8 tiaA_gain_db[] = {  		0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13, 0x13 }; -	s8 tiaA_gain_db_rev4[] = { +	static const s8 tiaA_gain_db_rev4[] = {  		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d }; -	s8 tiaA_gain_db_rev5[] = { +	static const s8 tiaA_gain_db_rev5[] = {  		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d }; -	s8 tiaA_gain_db_rev6[] = { +	static const s8 tiaA_gain_db_rev6[] = {  		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d }; -	s8 *tia_gain_db; -	s8 tiaG_gainbits[] = { +	const s8 *tia_gain_db; +	static const s8 tiaG_gainbits[] = {  		0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 }; -	s8 tiaA_gainbits[] = { +	static const s8 tiaA_gainbits[] = {  		0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06, 0x06 }; -	s8 tiaA_gainbits_rev4[] = { +	static const s8 tiaA_gainbits_rev4[] = {  		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }; -	s8 tiaA_gainbits_rev5[] = { +	static const s8 tiaA_gainbits_rev5[] = {  		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }; -	s8 tiaA_gainbits_rev6[] = { +	static const s8 tiaA_gainbits_rev6[] = {  		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 }; -	s8 *tia_gainbits; -	s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 }; -	s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 }; -	u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f }; -	u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f }; -	u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f }; -	u16 rfseqG_init_gain_rev5_elna[] = { +	const s8 *tia_gainbits; +	static const s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 }; +	static const s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 }; +	static const u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f }; +	static const u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f }; +	static const u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f }; +	static const u16 rfseqG_init_gain_rev5_elna[] = {  		0x013f, 0x013f, 0x013f, 0x013f }; -	u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f }; -	u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f }; -	u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f }; -	u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f }; -	u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f }; -	u16 rfseqA_init_gain_rev4_elna[] = { +	static const u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f }; +	static const u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f }; +	static const u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f }; +	static const u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f }; +	static const u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f }; +	static const u16 rfseqA_init_gain_rev4_elna[] = {  		0x314f, 0x314f, 0x314f, 0x314f }; -	u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f }; -	u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f }; -	u16 *rfseq_init_gain; +	static const u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f }; +	static const u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f }; +	const u16 *rfseq_init_gain;  	u16 initG_gaincode = 0x627e;  	u16 initG_gaincode_rev4 = 0x527e;  	u16 initG_gaincode_rev5 = 0x427e; @@ -15538,10 +15535,10 @@ static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)  	u16 clip1mdA_gaincode_rev6 = 0x2084;  	u16 clip1md_gaincode = 0;  	u16 clip1loG_gaincode = 0x0074; -	u16 clip1loG_gaincode_rev5[] = { +	static const u16 clip1loG_gaincode_rev5[] = {  		0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c  	}; -	u16 clip1loG_gaincode_rev6[] = { +	static const u16 clip1loG_gaincode_rev6[] = {  		0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e  	};  	u16 clip1loG_gaincode_rev6_224B0 = 0x1074; @@ -16066,7 +16063,7 @@ static void wlc_phy_workarounds_nphy_gainctrl(struct brcms_phy *pi)  static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  { -	u8 rfseq_rx2tx_events[] = { +	static const u8 rfseq_rx2tx_events[] = {  		NPHY_RFSEQ_CMD_NOP,  		NPHY_RFSEQ_CMD_RXG_FBW,  		NPHY_RFSEQ_CMD_TR_SWITCH, @@ -16076,7 +16073,7 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  		NPHY_RFSEQ_CMD_EXT_PA  	};  	u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 }; -	u8 rfseq_tx2rx_events[] = { +	static const u8 rfseq_tx2rx_events[] = {  		NPHY_RFSEQ_CMD_NOP,  		NPHY_RFSEQ_CMD_EXT_PA,  		NPHY_RFSEQ_CMD_TX_GAIN, @@ -16085,8 +16082,8 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  		NPHY_RFSEQ_CMD_RXG_FBW,  		NPHY_RFSEQ_CMD_CLR_HIQ_DIS  	}; -	u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 }; -	u8 rfseq_tx2rx_events_rev3[] = { +	static const u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 }; +	static const u8 rfseq_tx2rx_events_rev3[] = {  		NPHY_REV3_RFSEQ_CMD_EXT_PA,  		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,  		NPHY_REV3_RFSEQ_CMD_TX_GAIN, @@ -16096,7 +16093,7 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  		NPHY_REV3_RFSEQ_CMD_CLR_HIQ_DIS,  		NPHY_REV3_RFSEQ_CMD_END  	}; -	u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 }; +	static const u8 rfseq_tx2rx_dlys_rev3[] = { 8, 4, 2, 2, 4, 4, 6, 1 };  	u8 rfseq_rx2tx_events_rev3[] = {  		NPHY_REV3_RFSEQ_CMD_NOP,  		NPHY_REV3_RFSEQ_CMD_RXG_FBW, @@ -16110,7 +16107,7 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  	};  	u8 rfseq_rx2tx_dlys_rev3[] = { 8, 6, 6, 4, 4, 18, 42, 1, 1 }; -	u8 rfseq_rx2tx_events_rev3_ipa[] = { +	static const u8 rfseq_rx2tx_events_rev3_ipa[] = {  		NPHY_REV3_RFSEQ_CMD_NOP,  		NPHY_REV3_RFSEQ_CMD_RXG_FBW,  		NPHY_REV3_RFSEQ_CMD_TR_SWITCH, @@ -16121,15 +16118,15 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,  		NPHY_REV3_RFSEQ_CMD_END  	}; -	u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 }; -	u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f }; +	static const u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 }; +	static const u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };  	s16 alpha0, alpha1, alpha2;  	s16 beta0, beta1, beta2;  	u32 leg_data_weights, ht_data_weights, nss1_data_weights,  	    stbc_data_weights;  	u8 chan_freq_range = 0; -	u16 dac_control = 0x0002; +	static const u16 dac_control = 0x0002;  	u16 aux_adc_vmid_rev7_core0[] = { 0x8e, 0x96, 0x96, 0x96 };  	u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };  	u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 }; @@ -16139,8 +16136,8 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  	u16 aux_adc_gain_rev4[] = { 0x02, 0x02, 0x02, 0x00 };  	u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };  	u16 *aux_adc_gain; -	u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 }; -	u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 }; +	static const u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 }; +	static const u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };  	s32 min_nvar_val = 0x18d;  	s32 min_nvar_offset_6mbps = 20;  	u8 pdetrange; @@ -16151,9 +16148,9 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)  	u16 rfseq_rx2tx_lpf_h_hpc_rev7 = 0x77;  	u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;  	u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77; -	u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 }; -	u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 }; -	u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 }; +	static const u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 }; +	static const u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 }; +	static const u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };  	u16 ipalvlshift_3p3_war_en = 0;  	u16 rccal_bcap_val, rccal_scap_val;  	u16 rccal_tx20_11b_bcap = 0; @@ -24291,13 +24288,13 @@ static void wlc_phy_update_txcal_ladder_nphy(struct brcms_phy *pi, u16 core)  	u16 bbmult;  	u16 tblentry; -	struct nphy_txiqcal_ladder ladder_lo[] = { +	static const struct nphy_txiqcal_ladder ladder_lo[] = {  		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},  		{25, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},  		{25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}  	}; -	struct nphy_txiqcal_ladder ladder_iq[] = { +	static const struct nphy_txiqcal_ladder ladder_iq[] = {  		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},  		{25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},  		{100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7} @@ -25773,67 +25770,67 @@ wlc_phy_cal_txiqlo_nphy(struct brcms_phy *pi, struct nphy_txgains target_gain,  	u16 cal_gain[2];  	struct nphy_iqcal_params cal_params[2];  	u32 tbl_len; -	void *tbl_ptr; +	const void *tbl_ptr;  	bool ladder_updated[2];  	u8 mphase_cal_lastphase = 0;  	int bcmerror = 0;  	bool phyhang_avoid_state = false; -	u16 tbl_tx_iqlo_cal_loft_ladder_20[] = { +	static const u16 tbl_tx_iqlo_cal_loft_ladder_20[] = {  		0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,  		0x1902,  		0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,  		0x6407  	}; -	u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = { +	static const u16 tbl_tx_iqlo_cal_iqimb_ladder_20[] = {  		0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,  		0x3200,  		0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,  		0x6407  	}; -	u16 tbl_tx_iqlo_cal_loft_ladder_40[] = { +	static const u16 tbl_tx_iqlo_cal_loft_ladder_40[] = {  		0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,  		0x1202,  		0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,  		0x4707  	}; -	u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = { +	static const u16 tbl_tx_iqlo_cal_iqimb_ladder_40[] = {  		0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,  		0x2300,  		0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,  		0x4707  	}; -	u16 tbl_tx_iqlo_cal_startcoefs[] = { +	static const u16 tbl_tx_iqlo_cal_startcoefs[] = {  		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  		0x0000  	}; -	u16 tbl_tx_iqlo_cal_cmds_fullcal[] = { +	static const u16 tbl_tx_iqlo_cal_cmds_fullcal[] = {  		0x8123, 0x8264, 0x8086, 0x8245, 0x8056,  		0x9123, 0x9264, 0x9086, 0x9245, 0x9056  	}; -	u16 tbl_tx_iqlo_cal_cmds_recal[] = { +	static const u16 tbl_tx_iqlo_cal_cmds_recal[] = {  		0x8101, 0x8253, 0x8053, 0x8234, 0x8034,  		0x9101, 0x9253, 0x9053, 0x9234, 0x9034  	}; -	u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = { +	static const u16 tbl_tx_iqlo_cal_startcoefs_nphyrev3[] = {  		0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  		0x0000, 0x0000, 0x0000, 0x0000, 0x0000,  		0x0000  	}; -	u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = { +	static const u16 tbl_tx_iqlo_cal_cmds_fullcal_nphyrev3[] = {  		0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,  		0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234  	}; -	u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = { +	static const u16 tbl_tx_iqlo_cal_cmds_recal_nphyrev3[] = {  		0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,  		0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223  	}; |