Added functions that are not invoked yet, but are there as a reminder that
this functionality needs to be activated. The functions set certain flags
that withold the phy from calibration during measurements.

Signed-off-by: Roland Vossen <[email protected]>
---
 drivers/staging/brcm80211/brcmsmac/wl_mac80211.c  |   16 ++++++++++++++++
 drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c |   13 +++++++++++++
 drivers/staging/brcm80211/brcmsmac/wlc_pub.h      |    2 ++
 3 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c 
b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
index 7645c6c..9fc6de9 100644
--- a/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wl_mac80211.c
@@ -2006,3 +2006,19 @@ bool wl_rfkill_set_hw_state(struct wl_info *wl)
        WL_LOCK(wl);
        return blocked;
 }
+
+/*
+ * placeholder routine that will be used once Mac80211 radio measurement
+ * functionality becomes available
+ */
+int wl_ops_measurement(struct ieee80211_hw *hw, u32 start)
+{
+       struct wl_info *wl = hw->priv;
+       WL_LOCK(wl);
+       if (start)
+               wlc_meas_start(wl->wlc);
+       else
+               wlc_meas_stop(wl->wlc);
+       WL_UNLOCK(wl);
+       return -ENOSYS; /* currently not implemented */
+}
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c 
b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
index 711656d..8a6cdb1 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_mac80211.c
@@ -8545,3 +8545,16 @@ void wlc_associate_upd(struct wlc_info *wlc, bool state)
        wlc->pub->associated = state;
        wlc->cfg->associated = state;
 }
+
+/*
+ * Flag 'measurement in progress' to withold dynamic phy calibration
+ */
+void wlc_meas_start(struct wlc_info *wlc)
+{
+       wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_RM, true);
+}
+
+void wlc_meas_stop(struct wlc_info *wlc)
+{
+       wlc_phy_hold_upd(wlc->band->pi, PHY_HOLD_FOR_RM, false);
+}
diff --git a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h 
b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
index ddce1dd..a1a6ab4 100644
--- a/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
+++ b/drivers/staging/brcm80211/brcmsmac/wlc_pub.h
@@ -580,6 +580,8 @@ extern void wlc_associate_upd(struct wlc_info *wlc, bool 
state);
 extern void wlc_scan_start(struct wlc_info *wlc);
 extern void wlc_scan_stop(struct wlc_info *wlc);
 extern void wlc_associate_upd(struct wlc_info *wlc, bool state);
+extern void wlc_meas_start(struct wlc_info *wlc);
+extern void wlc_meas_stop(struct wlc_info *wlc);
 
 static inline int wlc_iovar_getuint(struct wlc_info *wlc, const char *name,
                                    uint *arg)
-- 
1.7.1


_______________________________________________
devel mailing list
[email protected]
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel

Reply via email to