Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0fac9e2d authored by Kalle Valo's avatar Kalle Valo
Browse files
Mark Brown reported that there are conflicts in iwlwifi between the two trees
so fix those now.
parents a39644b2 a6127b44
Loading
Loading
Loading
Loading
+2 −5
Original line number Original line Diff line number Diff line
@@ -3396,9 +3396,7 @@ static void ath10k_pci_remove(struct pci_dev *pdev)


MODULE_DEVICE_TABLE(pci, ath10k_pci_id_table);
MODULE_DEVICE_TABLE(pci, ath10k_pci_id_table);


#ifdef CONFIG_PM
static __maybe_unused int ath10k_pci_pm_suspend(struct device *dev)

static int ath10k_pci_pm_suspend(struct device *dev)
{
{
	struct ath10k *ar = dev_get_drvdata(dev);
	struct ath10k *ar = dev_get_drvdata(dev);
	int ret;
	int ret;
@@ -3414,7 +3412,7 @@ static int ath10k_pci_pm_suspend(struct device *dev)
	return ret;
	return ret;
}
}


static int ath10k_pci_pm_resume(struct device *dev)
static __maybe_unused int ath10k_pci_pm_resume(struct device *dev)
{
{
	struct ath10k *ar = dev_get_drvdata(dev);
	struct ath10k *ar = dev_get_drvdata(dev);
	int ret;
	int ret;
@@ -3433,7 +3431,6 @@ static int ath10k_pci_pm_resume(struct device *dev)
static SIMPLE_DEV_PM_OPS(ath10k_pci_pm_ops,
static SIMPLE_DEV_PM_OPS(ath10k_pci_pm_ops,
			 ath10k_pci_pm_suspend,
			 ath10k_pci_pm_suspend,
			 ath10k_pci_pm_resume);
			 ath10k_pci_pm_resume);
#endif


static struct pci_driver ath10k_pci_driver = {
static struct pci_driver ath10k_pci_driver = {
	.name = "ath10k_pci",
	.name = "ath10k_pci",
+19 −18
Original line number Original line Diff line number Diff line
@@ -980,7 +980,7 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,


	eth_broadcast_addr(params_le->bssid);
	eth_broadcast_addr(params_le->bssid);
	params_le->bss_type = DOT11_BSSTYPE_ANY;
	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->channel_num = 0;
	params_le->nprobes = cpu_to_le32(-1);
	params_le->nprobes = cpu_to_le32(-1);
	params_le->active_time = 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);
	params_le->home_time = cpu_to_le32(-1);
	memset(&params_le->ssid_le, 0, sizeof(params_le->ssid_le));
	memset(&params_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_ssids = request->n_ssids;
	n_channels = request->n_channels;
	n_channels = request->n_channels;

	/* Copy channel array if applicable */
	/* Copy channel array if applicable */
	brcmf_dbg(SCAN, "### List of channelspecs to scan ### %d\n",
	brcmf_dbg(SCAN, "### List of channelspecs to scan ### %d\n",
		  n_channels);
		  n_channels);
@@ -1030,16 +1027,8 @@ static void brcmf_escan_prep(struct brcmf_cfg80211_info *cfg,
			ptr += sizeof(ssid_le);
			ptr += sizeof(ssid_le);
		}
		}
	} else {
	} else {
		brcmf_dbg(SCAN, "Broadcast scan %p\n", request->ssids);
		brcmf_dbg(SCAN, "Performing passive scan\n");
		if ((request->ssids) && request->ssids->ssid_len) {
		params_le->scan_type = BRCMF_SCANTYPE_PASSIVE;
			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(&params_le->ssid_le.SSID, request->ssids->ssid,
				request->ssids->ssid_len);
		}
	}
	}
	/* Adding mask to channel numbers */
	/* Adding mask to channel numbers */
	params_le->channel_num =
	params_le->channel_num =
@@ -3162,6 +3151,7 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,
	struct brcmf_cfg80211_info *cfg = ifp->drvr->config;
	struct brcmf_cfg80211_info *cfg = ifp->drvr->config;
	s32 status;
	s32 status;
	struct brcmf_escan_result_le *escan_result_le;
	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_info_le;
	struct brcmf_bss_info_le *bss = NULL;
	struct brcmf_bss_info_le *bss = NULL;
	u32 bi_length;
	u32 bi_length;
@@ -3181,11 +3171,23 @@ brcmf_cfg80211_escan_handler(struct brcmf_if *ifp,


	if (status == BRCMF_E_STATUS_PARTIAL) {
	if (status == BRCMF_E_STATUS_PARTIAL) {
		brcmf_dbg(SCAN, "ESCAN Partial result\n");
		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;
		escan_result_le = (struct brcmf_escan_result_le *) data;
		if (!escan_result_le) {
		if (!escan_result_le) {
			brcmf_err("Invalid escan result (NULL pointer)\n");
			brcmf_err("Invalid escan result (NULL pointer)\n");
			goto exit;
			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) {
		if (le16_to_cpu(escan_result_le->bss_count) != 1) {
			brcmf_err("Invalid bss_count %d: ignoring\n",
			brcmf_err("Invalid bss_count %d: ignoring\n",
				  escan_result_le->bss_count);
				  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);
		bi_length = le32_to_cpu(bss_info_le->length);
		if (bi_length != (le32_to_cpu(escan_result_le->buflen) -
		if (bi_length != escan_buflen -	WL_ESCAN_RESULTS_FIXED_SIZE) {
					WL_ESCAN_RESULTS_FIXED_SIZE)) {
			brcmf_err("Ignoring invalid bss_info length: %d\n",
			brcmf_err("Invalid bss_info length %d: ignoring\n",
				  bi_length);
				  bi_length);
			goto exit;
			goto exit;
		}
		}
+2 −1
Original line number Original line Diff line number Diff line
@@ -424,7 +424,8 @@ void brcmf_fweh_process_event(struct brcmf_pub *drvr,
	if (code != BRCMF_E_IF && !fweh->evt_handler[code])
	if (code != BRCMF_E_IF && !fweh->evt_handler[code])
		return;
		return;


	if (datalen > BRCMF_DCMD_MAXLEN)
	if (datalen > BRCMF_DCMD_MAXLEN ||
	    datalen + sizeof(*event_packet) > packet_len)
		return;
		return;


	if (in_interrupt())
	if (in_interrupt())
+5 −0
Original line number Original line Diff line number Diff line
@@ -45,6 +45,11 @@
#define BRCMF_SCAN_PARAMS_COUNT_MASK	0x0000ffff
#define BRCMF_SCAN_PARAMS_COUNT_MASK	0x0000ffff
#define BRCMF_SCAN_PARAMS_NSSID_SHIFT	16
#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_MAX_PSK_LEN		32
#define	BRCMF_WSEC_PASSPHRASE		BIT(0)
#define	BRCMF_WSEC_PASSPHRASE		BIT(0)


+97 −100
Original line number Original line Diff line number Diff line
@@ -14764,8 +14764,8 @@ static void wlc_phy_ipa_restore_tx_digi_filts_nphy(struct brcms_phy *pi)
}
}
static void
static void
wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, u8 *events, u8 *dlys,
wlc_phy_set_rfseq_nphy(struct brcms_phy *pi, u8 cmd, const u8 *events,
		       u8 len)
		       const u8 *dlys, u8 len)
{
{
	u32 t1_offset, t2_offset;
	u32 t1_offset, t2_offset;
	u8 ctr;
	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)
static void wlc_phy_workarounds_nphy_gainctrl_2057_rev6(struct brcms_phy *pi)
{
{
	u16 currband;
	u16 currband;
	s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
	static const s8 lna1G_gain_db_rev7[] = { 9, 14, 19, 24 };
	s8 *lna1_gain_db = NULL;
	const s8 *lna1_gain_db = NULL;
	s8 *lna1_gain_db_2 = NULL;
	const s8 *lna1_gain_db_2 = NULL;
	s8 *lna2_gain_db = NULL;
	const s8 *lna2_gain_db = NULL;
	s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
	static const s8 tiaA_gain_db_rev7[] = { -9, -6, -3, 0, 3, 3, 3, 3, 3, 3 };
	s8 *tia_gain_db;
	const s8 *tia_gain_db;
	s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
	static const s8 tiaA_gainbits_rev7[] = { 0, 1, 2, 3, 4, 4, 4, 4, 4, 4 };
	s8 *tia_gainbits;
	const s8 *tia_gainbits;
	u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
	static const u16 rfseqA_init_gain_rev7[] = { 0x624f, 0x624f };
	u16 *rfseq_init_gain;
	const u16 *rfseq_init_gain;
	u16 init_gaincode;
	u16 init_gaincode;
	u16 clip1hi_gaincode;
	u16 clip1hi_gaincode;
	u16 clip1md_gaincode = 0;
	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)) {
			if ((freq <= 5080) || (freq == 5825)) {
				s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
				static const s8 lna1A_gain_db_rev7[] = { 11, 16, 20, 24 };
				s8 lna1A_gain_db_2_rev7[] = {
				static const s8 lna1A_gain_db_2_rev7[] = { 11, 17, 22, 25};
					11, 17, 22, 25};
				static const s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
				s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
				crsminu_th = 0x3e;
				crsminu_th = 0x3e;
				lna1_gain_db = lna1A_gain_db_rev7;
				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;
				lna2_gain_db = lna2A_gain_db_rev7;
			} else if ((freq >= 5500) && (freq <= 5700)) {
			} else if ((freq >= 5500) && (freq <= 5700)) {
				s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
				static const s8 lna1A_gain_db_rev7[] = { 11, 17, 21, 25 };
				s8 lna1A_gain_db_2_rev7[] = {
				static const s8 lna1A_gain_db_2_rev7[] = { 12, 18, 22, 26};
					12, 18, 22, 26};
				static const s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
				s8 lna2A_gain_db_rev7[] = { 1, 8, 12, 16 };
				crsminu_th = 0x45;
				crsminu_th = 0x45;
				clip1md_gaincode_B = 0x14;
				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;
				lna2_gain_db = lna2A_gain_db_rev7;
			} else {
			} else {
				s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
				static const s8 lna1A_gain_db_rev7[] = { 12, 18, 22, 26 };
				s8 lna1A_gain_db_2_rev7[] = {
				static const s8 lna1A_gain_db_2_rev7[] = { 12, 18, 22, 26};
					12, 18, 22, 26};
				static const s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
				s8 lna2A_gain_db_rev7[] = { -1, 6, 10, 14 };
				crsminu_th = 0x41;
				crsminu_th = 0x41;
				lna1_gain_db = lna1A_gain_db_rev7;
				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_CLR_HIQ_DIS,
		NPHY_RFSEQ_CMD_SET_HPF_BW
		NPHY_RFSEQ_CMD_SET_HPF_BW
	};
	};
	u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
	static const u8 rfseq_updategainu_dlys[] = { 10, 30, 1 };
	s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
	static const s8 lna1G_gain_db[] = { 7, 11, 16, 23 };
	s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
	static const s8 lna1G_gain_db_rev4[] = { 8, 12, 17, 25 };
	s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
	static const s8 lna1G_gain_db_rev5[] = { 9, 13, 18, 26 };
	s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
	static const s8 lna1G_gain_db_rev6[] = { 8, 13, 18, 25 };
	s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
	static const s8 lna1G_gain_db_rev6_224B0[] = { 10, 14, 19, 27 };
	s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
	static const s8 lna1A_gain_db[] = { 7, 11, 17, 23 };
	s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
	static const s8 lna1A_gain_db_rev4[] = { 8, 12, 18, 23 };
	s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
	static const s8 lna1A_gain_db_rev5[] = { 6, 10, 16, 21 };
	s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
	static const s8 lna1A_gain_db_rev6[] = { 6, 10, 16, 21 };
	s8 *lna1_gain_db = NULL;
	const s8 *lna1_gain_db = NULL;
	s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
	static const s8 lna2G_gain_db[] = { -5, 6, 10, 14 };
	s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
	static const s8 lna2G_gain_db_rev5[] = { -3, 7, 11, 16 };
	s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
	static const s8 lna2G_gain_db_rev6[] = { -5, 6, 10, 14 };
	s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
	static const s8 lna2G_gain_db_rev6_224B0[] = { -5, 6, 10, 15 };
	s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
	static const s8 lna2A_gain_db[] = { -6, 2, 6, 10 };
	s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
	static const s8 lna2A_gain_db_rev4[] = { -5, 2, 6, 10 };
	s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
	static const s8 lna2A_gain_db_rev5[] = { -7, 0, 4, 8 };
	s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
	static const s8 lna2A_gain_db_rev6[] = { -7, 0, 4, 8 };
	s8 *lna2_gain_db = NULL;
	const s8 *lna2_gain_db = NULL;
	s8 tiaG_gain_db[] = {
	static const s8 tiaG_gain_db[] = {
		0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A };
		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 };
		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 };
		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 };
		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 };
		0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d, 0x0d };
	s8 *tia_gain_db;
	const s8 *tia_gain_db;
	s8 tiaG_gainbits[] = {
	static const s8 tiaG_gainbits[] = {
		0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03 };
		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 };
		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 };
		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 };
		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 };
		0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04 };
	s8 *tia_gainbits;
	const s8 *tia_gainbits;
	s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
	static const s8 lpf_gain_db[] = { 0x00, 0x06, 0x0c, 0x12, 0x12, 0x12 };
	s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
	static const s8 lpf_gainbits[] = { 0x00, 0x01, 0x02, 0x03, 0x03, 0x03 };
	u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
	static const u16 rfseqG_init_gain[] = { 0x613f, 0x613f, 0x613f, 0x613f };
	u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
	static const u16 rfseqG_init_gain_rev4[] = { 0x513f, 0x513f, 0x513f, 0x513f };
	u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
	static const u16 rfseqG_init_gain_rev5[] = { 0x413f, 0x413f, 0x413f, 0x413f };
	u16 rfseqG_init_gain_rev5_elna[] = {
	static const u16 rfseqG_init_gain_rev5_elna[] = {
		0x013f, 0x013f, 0x013f, 0x013f };
		0x013f, 0x013f, 0x013f, 0x013f };
	u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
	static const u16 rfseqG_init_gain_rev6[] = { 0x513f, 0x513f };
	u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
	static const u16 rfseqG_init_gain_rev6_224B0[] = { 0x413f, 0x413f };
	u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
	static const u16 rfseqG_init_gain_rev6_elna[] = { 0x113f, 0x113f };
	u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
	static const u16 rfseqA_init_gain[] = { 0x516f, 0x516f, 0x516f, 0x516f };
	u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
	static const u16 rfseqA_init_gain_rev4[] = { 0x614f, 0x614f, 0x614f, 0x614f };
	u16 rfseqA_init_gain_rev4_elna[] = {
	static const u16 rfseqA_init_gain_rev4_elna[] = {
		0x314f, 0x314f, 0x314f, 0x314f };
		0x314f, 0x314f, 0x314f, 0x314f };
	u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
	static const u16 rfseqA_init_gain_rev5[] = { 0x714f, 0x714f, 0x714f, 0x714f };
	u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
	static const u16 rfseqA_init_gain_rev6[] = { 0x714f, 0x714f };
	u16 *rfseq_init_gain;
	const u16 *rfseq_init_gain;
	u16 initG_gaincode = 0x627e;
	u16 initG_gaincode = 0x627e;
	u16 initG_gaincode_rev4 = 0x527e;
	u16 initG_gaincode_rev4 = 0x527e;
	u16 initG_gaincode_rev5 = 0x427e;
	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 clip1mdA_gaincode_rev6 = 0x2084;
	u16 clip1md_gaincode = 0;
	u16 clip1md_gaincode = 0;
	u16 clip1loG_gaincode = 0x0074;
	u16 clip1loG_gaincode = 0x0074;
	u16 clip1loG_gaincode_rev5[] = {
	static const u16 clip1loG_gaincode_rev5[] = {
		0x0062, 0x0064, 0x006a, 0x106a, 0x106c, 0x1074, 0x107c, 0x207c
		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
		0x106a, 0x106c, 0x1074, 0x107c, 0x007e, 0x107e, 0x207e, 0x307e
	};
	};
	u16 clip1loG_gaincode_rev6_224B0 = 0x1074;
	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)
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_NOP,
		NPHY_RFSEQ_CMD_RXG_FBW,
		NPHY_RFSEQ_CMD_RXG_FBW,
		NPHY_RFSEQ_CMD_TR_SWITCH,
		NPHY_RFSEQ_CMD_TR_SWITCH,
@@ -16076,7 +16073,7 @@ static void wlc_phy_workarounds_nphy(struct brcms_phy *pi)
		NPHY_RFSEQ_CMD_EXT_PA
		NPHY_RFSEQ_CMD_EXT_PA
	};
	};
	u8 rfseq_rx2tx_dlys[] = { 8, 6, 6, 2, 4, 60, 1 };
	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_NOP,
		NPHY_RFSEQ_CMD_EXT_PA,
		NPHY_RFSEQ_CMD_EXT_PA,
		NPHY_RFSEQ_CMD_TX_GAIN,
		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_RXG_FBW,
		NPHY_RFSEQ_CMD_CLR_HIQ_DIS
		NPHY_RFSEQ_CMD_CLR_HIQ_DIS
	};
	};
	u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
	static const u8 rfseq_tx2rx_dlys[] = { 8, 6, 2, 4, 4, 6, 1 };
	u8 rfseq_tx2rx_events_rev3[] = {
	static const u8 rfseq_tx2rx_events_rev3[] = {
		NPHY_REV3_RFSEQ_CMD_EXT_PA,
		NPHY_REV3_RFSEQ_CMD_EXT_PA,
		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
		NPHY_REV3_RFSEQ_CMD_INT_PA_PU,
		NPHY_REV3_RFSEQ_CMD_TX_GAIN,
		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_CLR_HIQ_DIS,
		NPHY_REV3_RFSEQ_CMD_END
		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[] = {
	u8 rfseq_rx2tx_events_rev3[] = {
		NPHY_REV3_RFSEQ_CMD_NOP,
		NPHY_REV3_RFSEQ_CMD_NOP,
		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
		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_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_NOP,
		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
		NPHY_REV3_RFSEQ_CMD_RXG_FBW,
		NPHY_REV3_RFSEQ_CMD_TR_SWITCH,
		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_INT_PA_PU,
		NPHY_REV3_RFSEQ_CMD_END
		NPHY_REV3_RFSEQ_CMD_END
	};
	};
	u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
	static const u8 rfseq_rx2tx_dlys_rev3_ipa[] = { 8, 6, 6, 4, 4, 16, 43, 1, 1 };
	u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
	static const u16 rfseq_rx2tx_dacbufpu_rev7[] = { 0x10f, 0x10f };
	s16 alpha0, alpha1, alpha2;
	s16 alpha0, alpha1, alpha2;
	s16 beta0, beta1, beta2;
	s16 beta0, beta1, beta2;
	u32 leg_data_weights, ht_data_weights, nss1_data_weights,
	u32 leg_data_weights, ht_data_weights, nss1_data_weights,
	    stbc_data_weights;
	    stbc_data_weights;
	u8 chan_freq_range = 0;
	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_core0[] = { 0x8e, 0x96, 0x96, 0x96 };
	u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
	u16 aux_adc_vmid_rev7_core1[] = { 0x8f, 0x9f, 0x9f, 0x96 };
	u16 aux_adc_vmid_rev4[] = { 0xa2, 0xb4, 0xb4, 0x89 };
	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_rev4[] = { 0x02, 0x02, 0x02, 0x00 };
	u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
	u16 aux_adc_gain_rev3[] = { 0x02, 0x02, 0x02, 0x00 };
	u16 *aux_adc_gain;
	u16 *aux_adc_gain;
	u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
	static const u16 sk_adc_vmid[] = { 0xb4, 0xb4, 0xb4, 0x24 };
	u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
	static const u16 sk_adc_gain[] = { 0x02, 0x02, 0x02, 0x02 };
	s32 min_nvar_val = 0x18d;
	s32 min_nvar_val = 0x18d;
	s32 min_nvar_offset_6mbps = 20;
	s32 min_nvar_offset_6mbps = 20;
	u8 pdetrange;
	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_rx2tx_lpf_h_hpc_rev7 = 0x77;
	u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
	u16 rfseq_tx2rx_lpf_h_hpc_rev7 = 0x77;
	u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
	u16 rfseq_pktgn_lpf_h_hpc_rev7 = 0x77;
	u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
	static const u16 rfseq_htpktgn_lpf_hpc_rev7[] = { 0x77, 0x11, 0x11 };
	u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
	static const u16 rfseq_pktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
	u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
	static const u16 rfseq_cckpktgn_lpf_hpc_rev7[] = { 0x11, 0x11 };
	u16 ipalvlshift_3p3_war_en = 0;
	u16 ipalvlshift_3p3_war_en = 0;
	u16 rccal_bcap_val, rccal_scap_val;
	u16 rccal_bcap_val, rccal_scap_val;
	u16 rccal_tx20_11b_bcap = 0;
	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 bbmult;
	u16 tblentry;
	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},
		{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, 0}, {25, 1}, {25, 2}, {25, 3}, {25, 4}, {25, 5},
		{25, 6}, {25, 7}, {35, 7}, {50, 7}, {71, 7}, {100, 7}
		{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},
		{3, 0}, {4, 0}, {6, 0}, {9, 0}, {13, 0}, {18, 0},
		{25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
		{25, 0}, {35, 0}, {50, 0}, {71, 0}, {100, 0}, {100, 1},
		{100, 2}, {100, 3}, {100, 4}, {100, 5}, {100, 6}, {100, 7}
		{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];
	u16 cal_gain[2];
	struct nphy_iqcal_params cal_params[2];
	struct nphy_iqcal_params cal_params[2];
	u32 tbl_len;
	u32 tbl_len;
	void *tbl_ptr;
	const void *tbl_ptr;
	bool ladder_updated[2];
	bool ladder_updated[2];
	u8 mphase_cal_lastphase = 0;
	u8 mphase_cal_lastphase = 0;
	int bcmerror = 0;
	int bcmerror = 0;
	bool phyhang_avoid_state = false;
	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,
		0x0300, 0x0500, 0x0700, 0x0900, 0x0d00, 0x1100, 0x1900, 0x1901,
		0x1902,
		0x1902,
		0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
		0x1903, 0x1904, 0x1905, 0x1906, 0x1907, 0x2407, 0x3207, 0x4607,
		0x6407
		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,
		0x0200, 0x0300, 0x0600, 0x0900, 0x0d00, 0x1100, 0x1900, 0x2400,
		0x3200,
		0x3200,
		0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
		0x4600, 0x6400, 0x6401, 0x6402, 0x6403, 0x6404, 0x6405, 0x6406,
		0x6407
		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,
		0x0200, 0x0300, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1201,
		0x1202,
		0x1202,
		0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
		0x1203, 0x1204, 0x1205, 0x1206, 0x1207, 0x1907, 0x2307, 0x3207,
		0x4707
		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,
		0x0100, 0x0200, 0x0400, 0x0700, 0x0900, 0x0c00, 0x1200, 0x1900,
		0x2300,
		0x2300,
		0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
		0x3200, 0x4700, 0x4701, 0x4702, 0x4703, 0x4704, 0x4705, 0x4706,
		0x4707
		0x4707
	};
	};
	u16 tbl_tx_iqlo_cal_startcoefs[] = {
	static const u16 tbl_tx_iqlo_cal_startcoefs[] = {
		0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
		0x0000, 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,
		0x8123, 0x8264, 0x8086, 0x8245, 0x8056,
		0x9123, 0x9264, 0x9086, 0x9245, 0x9056
		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,
		0x8101, 0x8253, 0x8053, 0x8234, 0x8034,
		0x9101, 0x9253, 0x9053, 0x9234, 0x9034
		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, 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,
		0x8434, 0x8334, 0x8084, 0x8267, 0x8056, 0x8234,
		0x9434, 0x9334, 0x9084, 0x9267, 0x9056, 0x9234
		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,
		0x8423, 0x8323, 0x8073, 0x8256, 0x8045, 0x8223,
		0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
		0x9423, 0x9323, 0x9073, 0x9256, 0x9045, 0x9223
	};
	};
Loading