wl12xx: add power_level field to wlvif

move power_level into the per-interface data.

mac80211 configures some values (e.g. band, channel)
globally, while we configure them per-interface.

In order to make it easier to keep track of the
configured value for each value while keeping sync
with mac80211, save these values both globally
and per-vif.

Signed-off-by: Eliad Peller <eliad@wizery.com>
Signed-off-by: Luciano Coelho <coelho@ti.com>
diff --git a/drivers/net/wireless/wl12xx/main.c b/drivers/net/wireless/wl12xx/main.c
index 5137275..cffb40b 100644
--- a/drivers/net/wireless/wl12xx/main.c
+++ b/drivers/net/wireless/wl12xx/main.c
@@ -1974,6 +1974,7 @@
 	 */
 	wlvif->band = wl->band;
 	wlvif->channel = wl->channel;
+	wlvif->power_level = wl->power_level;
 
 	INIT_WORK(&wlvif->rx_streaming_enable_work,
 		  wl1271_rx_streaming_enable_work);
@@ -2562,12 +2563,13 @@
 						 wlvif->basic_rate, true);
 	}
 
-	if (conf->power_level != wl->power_level) {
+	if (conf->power_level != wlvif->power_level) {
 		ret = wl1271_acx_tx_power(wl, wlvif, conf->power_level);
 		if (ret < 0)
 			goto out_sleep;
 
 		wl->power_level = conf->power_level;
+		wlvif->power_level = conf->power_level;
 	}
 
 out_sleep: