Commit a373f38c authored by Ramesh Rangavittal's avatar Ramesh Rangavittal Committed by Kalle Valo
Browse files

brcmfmac: Remove the call to "dtim_assoc" IOVAR



When STA roams from one AP to another, after roam is complete, host
driver tries to get TIM information from firmware. This is no longer
supported in the firmware & hence, this call will always fail.
This failure results in the below message being displayed on the
console all the time when roam is done.

ieee80211 phy0: brcmf_update_bss_info: wl dtim_assoc failed (-52)

Changes ensure that the host driver will no longer try to get TIM
information from firmware.

Signed-off-by: default avatarRamesh Rangavittal <ramesh.rangavittal@infineon.com>
Signed-off-by: default avatarChi-hsien Lin <chi-hsien.lin@infineon.com>
Signed-off-by: default avatarIan Lin <ian.lin@infineon.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220922104140.11889-5-ian.lin@infineon.com
parent 11eda8f0
Loading
Loading
Loading
Loading
+1 −25
Original line number Diff line number Diff line
@@ -3164,10 +3164,7 @@ static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg,
				 struct brcmf_if *ifp)
{
	struct brcmf_pub *drvr = cfg->pub;
	struct brcmf_bss_info_le *bi;
	const struct brcmf_tlv *tim;
	size_t ie_len;
	u8 *ie;
	struct brcmf_bss_info_le *bi = NULL;
	s32 err = 0;

	brcmf_dbg(TRACE, "Enter\n");
@@ -3181,29 +3178,8 @@ static s32 brcmf_update_bss_info(struct brcmf_cfg80211_info *cfg,
		bphy_err(drvr, "Could not get bss info %d\n", err);
		goto update_bss_info_out;
	}

	bi = (struct brcmf_bss_info_le *)(cfg->extra_buf + 4);
	err = brcmf_inform_single_bss(cfg, bi);
	if (err)
		goto update_bss_info_out;

	ie = ((u8 *)bi) + le16_to_cpu(bi->ie_offset);
	ie_len = le32_to_cpu(bi->ie_length);

	tim = brcmf_parse_tlvs(ie, ie_len, WLAN_EID_TIM);
	if (!tim) {
		/*
		* active scan was done so we could not get dtim
		* information out of probe response.
		* so we speficially query dtim information to dongle.
		*/
		u32 var;
		err = brcmf_fil_iovar_int_get(ifp, "dtim_assoc", &var);
		if (err) {
			bphy_err(drvr, "wl dtim_assoc failed (%d)\n", err);
			goto update_bss_info_out;
		}
	}

update_bss_info_out:
	brcmf_dbg(TRACE, "Exit");