Skip to content

Commit

Permalink
wl1271: Fix keep-alive related command error
Browse files Browse the repository at this point in the history
The firmware does not like the host configuring the keep-alive after it has
been once configured after a join-operation. Instead, it will complain about
invalid parameters, which do not break functionality, but do not look nice
in the syslog either.

This patch prevents the complaints by only configuring the keep-alive once
for an association, after the first time join is performed with the correct
bssid.

Signed-off-by: Juuso Oikarinen <juuso.oikarinen@nokia.com>
Reviewed-by: Teemu Paasikivi <ext-teemu.3.paasikivi@nokia.com>
Signed-off-by: Luciano Coelho <luciano.coelho@nokia.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Juuso Oikarinen authored and John W. Linville committed Apr 6, 2010
1 parent 1ed9538 commit 40b359c
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions drivers/net/wireless/wl12xx/wl1271_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -1569,6 +1569,7 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
enum wl1271_cmd_ps_mode mode;
struct wl1271 *wl = hw->priv;
bool do_join = false;
bool do_keepalive = false;
int ret;

wl1271_debug(DEBUG_MAC80211, "mac80211 bss info changed");
Expand Down Expand Up @@ -1685,6 +1686,14 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
if (ret < 0)
goto out_sleep;

/*
* This is awkward. The keep-alive configs must be done
* *after* the join command, because otherwise it will
* not work, but it must only be done *once* because
* otherwise the firmware will start complaining.
*/
do_keepalive = true;

/* enable the connection monitoring feature */
ret = wl1271_acx_conn_monit_params(wl, true);
if (ret < 0)
Expand Down Expand Up @@ -1763,6 +1772,9 @@ static void wl1271_op_bss_info_changed(struct ieee80211_hw *hw,
ret = wl1271_acx_aid(wl, wl->aid);
if (ret < 0)
goto out_sleep;
}

if (do_keepalive) {
ret = wl1271_cmd_build_klv_null_data(wl);
if (ret < 0)
goto out_sleep;
Expand Down

0 comments on commit 40b359c

Please sign in to comment.