These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / rtl8192e / rtl8192e / rtl_ps.c
index 0bbffec..9a4d1bc 100644 (file)
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  * more details.
  *
- * You should have received a copy of the GNU General Public License along with
- * this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA
- *
  * The full GNU General Public License is included in this distribution in the
  * file called LICENSE.
  *
@@ -28,8 +24,9 @@
 #include "r8192E_phyreg.h"
 #include "r8190P_rtl8256.h" /* RTL8225 Radio frontend */
 #include "r8192E_cmdpkt.h"
+#include <linux/jiffies.h>
 
-static void rtl8192_hw_sleep_down(struct net_device *dev)
+static void _rtl92e_hw_sleep(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        unsigned long flags = 0;
@@ -38,25 +35,25 @@ static void rtl8192_hw_sleep_down(struct net_device *dev)
        if (priv->RFChangeInProgress) {
                spin_unlock_irqrestore(&priv->rf_ps_lock, flags);
                RT_TRACE(COMP_DBG,
-                        "rtl8192_hw_sleep_down(): RF Change in progress!\n");
+                        "_rtl92e_hw_sleep(): RF Change in progress!\n");
                return;
        }
        spin_unlock_irqrestore(&priv->rf_ps_lock, flags);
        RT_TRACE(COMP_DBG, "%s()============>come to sleep down\n", __func__);
 
-       MgntActSet_RF_State(dev, eRfSleep, RF_CHANGE_BY_PS, false);
+       rtl92e_set_rf_state(dev, eRfSleep, RF_CHANGE_BY_PS);
 }
 
-void rtl8192_hw_sleep_wq(void *data)
+void rtl92e_hw_sleep_wq(void *data)
 {
        struct rtllib_device *ieee = container_of_dwork_rsl(data,
                                     struct rtllib_device, hw_sleep_wq);
        struct net_device *dev = ieee->dev;
 
-       rtl8192_hw_sleep_down(dev);
+       _rtl92e_hw_sleep(dev);
 }
 
-void rtl8192_hw_wakeup(struct net_device *dev)
+void rtl92e_hw_wakeup(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        unsigned long flags = 0;
@@ -65,7 +62,7 @@ void rtl8192_hw_wakeup(struct net_device *dev)
        if (priv->RFChangeInProgress) {
                spin_unlock_irqrestore(&priv->rf_ps_lock, flags);
                RT_TRACE(COMP_DBG,
-                        "rtl8192_hw_wakeup(): RF Change in progress!\n");
+                        "rtl92e_hw_wakeup(): RF Change in progress!\n");
                queue_delayed_work_rsl(priv->rtllib->wq,
                                       &priv->rtllib->hw_wakeup_wq,
                                       msecs_to_jiffies(10));
@@ -73,39 +70,41 @@ void rtl8192_hw_wakeup(struct net_device *dev)
        }
        spin_unlock_irqrestore(&priv->rf_ps_lock, flags);
        RT_TRACE(COMP_PS, "%s()============>come to wake up\n", __func__);
-       MgntActSet_RF_State(dev, eRfOn, RF_CHANGE_BY_PS, false);
+       rtl92e_set_rf_state(dev, eRfOn, RF_CHANGE_BY_PS);
 }
 
-void rtl8192_hw_wakeup_wq(void *data)
+void rtl92e_hw_wakeup_wq(void *data)
 {
        struct rtllib_device *ieee = container_of_dwork_rsl(data,
                                     struct rtllib_device, hw_wakeup_wq);
        struct net_device *dev = ieee->dev;
 
-       rtl8192_hw_wakeup(dev);
+       rtl92e_hw_wakeup(dev);
 }
 
 #define MIN_SLEEP_TIME 50
 #define MAX_SLEEP_TIME 10000
-void rtl8192_hw_to_sleep(struct net_device *dev, u64 time)
+void rtl92e_enter_sleep(struct net_device *dev, u64 time)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
 
        u32 tmp;
        unsigned long flags;
+       unsigned long timeout;
 
        spin_lock_irqsave(&priv->ps_lock, flags);
 
        time -= msecs_to_jiffies(8 + 16 + 7);
 
-       if ((time - jiffies) <= msecs_to_jiffies(MIN_SLEEP_TIME)) {
+       timeout = jiffies + msecs_to_jiffies(MIN_SLEEP_TIME);
+       if (time_before((unsigned long)time, timeout)) {
                spin_unlock_irqrestore(&priv->ps_lock, flags);
                netdev_info(dev, "too short to sleep::%lld < %ld\n",
                            time - jiffies, msecs_to_jiffies(MIN_SLEEP_TIME));
                return;
        }
-
-       if ((time - jiffies) > msecs_to_jiffies(MAX_SLEEP_TIME)) {
+       timeout = jiffies + msecs_to_jiffies(MAX_SLEEP_TIME);
+       if (time_after((unsigned long)time, timeout)) {
                netdev_info(dev, "========>too long to sleep:%lld > %ld\n",
                            time - jiffies, msecs_to_jiffies(MAX_SLEEP_TIME));
                spin_unlock_irqrestore(&priv->ps_lock, flags);
@@ -119,25 +118,24 @@ void rtl8192_hw_to_sleep(struct net_device *dev, u64 time)
        spin_unlock_irqrestore(&priv->ps_lock, flags);
 }
 
-static void InactivePsWorkItemCallback(struct net_device *dev)
+static void _rtl92e_ps_update_rf_state(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *)
                                        &(priv->rtllib->PowerSaveControl);
 
-       RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() --------->\n");
+       RT_TRACE(COMP_PS, "_rtl92e_ps_update_rf_state() --------->\n");
        pPSC->bSwRfProcessing = true;
 
-       RT_TRACE(COMP_PS, "InactivePsWorkItemCallback(): Set RF to %s.\n",
+       RT_TRACE(COMP_PS, "_rtl92e_ps_update_rf_state(): Set RF to %s.\n",
                 pPSC->eInactivePowerState == eRfOff ? "OFF" : "ON");
-       MgntActSet_RF_State(dev, pPSC->eInactivePowerState, RF_CHANGE_BY_IPS,
-                           false);
+       rtl92e_set_rf_state(dev, pPSC->eInactivePowerState, RF_CHANGE_BY_IPS);
 
        pPSC->bSwRfProcessing = false;
-       RT_TRACE(COMP_PS, "InactivePsWorkItemCallback() <---------\n");
+       RT_TRACE(COMP_PS, "_rtl92e_ps_update_rf_state() <---------\n");
 }
 
-void IPSEnter(struct net_device *dev)
+void rtl92e_ips_enter(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *)
@@ -149,16 +147,16 @@ void IPSEnter(struct net_device *dev)
                if (rtState == eRfOn && !pPSC->bSwRfProcessing &&
                        (priv->rtllib->state != RTLLIB_LINKED) &&
                        (priv->rtllib->iw_mode != IW_MODE_MASTER)) {
-                       RT_TRACE(COMP_PS, "IPSEnter(): Turn off RF.\n");
+                       RT_TRACE(COMP_PS, "rtl92e_ips_enter(): Turn off RF.\n");
                        pPSC->eInactivePowerState = eRfOff;
                        priv->isRFOff = true;
                        priv->bInPowerSaveMode = true;
-                       InactivePsWorkItemCallback(dev);
+                       _rtl92e_ps_update_rf_state(dev);
                }
        }
 }
 
-void IPSLeave(struct net_device *dev)
+void rtl92e_ips_leave(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *)
@@ -169,15 +167,15 @@ void IPSLeave(struct net_device *dev)
                rtState = priv->rtllib->eRFPowerState;
                if (rtState != eRfOn  && !pPSC->bSwRfProcessing &&
                    priv->rtllib->RfOffReason <= RF_CHANGE_BY_IPS) {
-                       RT_TRACE(COMP_PS, "IPSLeave(): Turn on RF.\n");
+                       RT_TRACE(COMP_PS, "rtl92e_ips_leave(): Turn on RF.\n");
                        pPSC->eInactivePowerState = eRfOn;
                        priv->bInPowerSaveMode = false;
-                       InactivePsWorkItemCallback(dev);
+                       _rtl92e_ps_update_rf_state(dev);
                }
        }
 }
 
-void IPSLeave_wq(void *data)
+void rtl92e_ips_leave_wq(void *data)
 {
        struct rtllib_device *ieee = container_of_work_rsl(data,
                                     struct rtllib_device, ips_leave_wq);
@@ -185,11 +183,11 @@ void IPSLeave_wq(void *data)
        struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
 
        down(&priv->rtllib->ips_sem);
-       IPSLeave(dev);
+       rtl92e_ips_leave(dev);
        up(&priv->rtllib->ips_sem);
 }
 
-void rtllib_ips_leave_wq(struct net_device *dev)
+void rtl92e_rtllib_ips_leave_wq(struct net_device *dev)
 {
        struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
        enum rt_rf_power_state rtState;
@@ -199,11 +197,11 @@ void rtllib_ips_leave_wq(struct net_device *dev)
        if (priv->rtllib->PowerSaveControl.bInactivePs) {
                if (rtState == eRfOff) {
                        if (priv->rtllib->RfOffReason > RF_CHANGE_BY_IPS) {
-                               RT_TRACE(COMP_ERR, "%s(): RF is OFF.\n",
-                                        __func__);
+                               netdev_warn(dev, "%s(): RF is OFF.\n",
+                                           __func__);
                                return;
                        }
-                       netdev_info(dev, "=========>%s(): IPSLeave\n",
+                       netdev_info(dev, "=========>%s(): rtl92e_ips_leave\n",
                                    __func__);
                        queue_work_rsl(priv->rtllib->wq,
                                       &priv->rtllib->ips_leave_wq);
@@ -211,17 +209,16 @@ void rtllib_ips_leave_wq(struct net_device *dev)
        }
 }
 
-void rtllib_ips_leave(struct net_device *dev)
+void rtl92e_rtllib_ips_leave(struct net_device *dev)
 {
        struct r8192_priv *priv = (struct r8192_priv *)rtllib_priv(dev);
 
        down(&priv->rtllib->ips_sem);
-       IPSLeave(dev);
+       rtl92e_ips_leave(dev);
        up(&priv->rtllib->ips_sem);
 }
 
-static bool MgntActSet_802_11_PowerSaveMode(struct net_device *dev,
-                                           u8 rtPsMode)
+static bool _rtl92e_ps_set_mode(struct net_device *dev, u8 rtPsMode)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
 
@@ -235,7 +232,7 @@ static bool MgntActSet_802_11_PowerSaveMode(struct net_device *dev,
            rtPsMode == RTLLIB_PS_DISABLED) {
                unsigned long flags;
 
-               rtl8192_hw_wakeup(dev);
+               rtl92e_hw_wakeup(dev);
                priv->rtllib->sta_sleep = LPS_IS_WAKE;
 
                spin_lock_irqsave(&(priv->rtllib->mgmt_tx_lock), flags);
@@ -248,13 +245,13 @@ static bool MgntActSet_802_11_PowerSaveMode(struct net_device *dev,
        return true;
 }
 
-void LeisurePSEnter(struct net_device *dev)
+void rtl92e_leisure_ps_enter(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *)
                                        &(priv->rtllib->PowerSaveControl);
 
-       RT_TRACE(COMP_PS, "LeisurePSEnter()...\n");
+       RT_TRACE(COMP_PS, "rtl92e_leisure_ps_enter()...\n");
        RT_TRACE(COMP_PS,
                 "pPSC->bLeisurePs = %d, ieee->ps = %d,pPSC->LpsIdleCount is %d,RT_CHECK_FOR_HANG_PERIOD is %d\n",
                 pPSC->bLeisurePs, priv->rtllib->ps, pPSC->LpsIdleCount,
@@ -272,15 +269,14 @@ void LeisurePSEnter(struct net_device *dev)
                        if (priv->rtllib->ps == RTLLIB_PS_DISABLED) {
 
                                RT_TRACE(COMP_LPS,
-                                        "LeisurePSEnter(): Enter 802.11 power save mode...\n");
+                                        "rtl92e_leisure_ps_enter(): Enter 802.11 power save mode...\n");
 
                                if (!pPSC->bFwCtrlLPS) {
                                        if (priv->rtllib->SetFwCmdHandler)
                                                priv->rtllib->SetFwCmdHandler(
                                                        dev, FW_CMD_LPS_ENTER);
                                }
-                               MgntActSet_802_11_PowerSaveMode(dev,
-                                                        RTLLIB_PS_MBCAST |
+                               _rtl92e_ps_set_mode(dev, RTLLIB_PS_MBCAST |
                                                         RTLLIB_PS_UNICAST);
                        }
                } else
@@ -288,23 +284,22 @@ void LeisurePSEnter(struct net_device *dev)
        }
 }
 
-void LeisurePSLeave(struct net_device *dev)
+void rtl92e_leisure_ps_leave(struct net_device *dev)
 {
        struct r8192_priv *priv = rtllib_priv(dev);
        struct rt_pwr_save_ctrl *pPSC = (struct rt_pwr_save_ctrl *)
                                        &(priv->rtllib->PowerSaveControl);
 
 
-       RT_TRACE(COMP_PS, "LeisurePSLeave()...\n");
+       RT_TRACE(COMP_PS, "rtl92e_leisure_ps_leave()...\n");
        RT_TRACE(COMP_PS, "pPSC->bLeisurePs = %d, ieee->ps = %d\n",
                pPSC->bLeisurePs, priv->rtllib->ps);
 
        if (pPSC->bLeisurePs) {
                if (priv->rtllib->ps != RTLLIB_PS_DISABLED) {
                        RT_TRACE(COMP_LPS,
-                                "LeisurePSLeave(): Busy Traffic , Leave 802.11 power save..\n");
-                       MgntActSet_802_11_PowerSaveMode(dev,
-                                        RTLLIB_PS_DISABLED);
+                                "rtl92e_leisure_ps_leave(): Busy Traffic , Leave 802.11 power save..\n");
+                       _rtl92e_ps_set_mode(dev, RTLLIB_PS_DISABLED);
 
                        if (!pPSC->bFwCtrlLPS) {
                                if (priv->rtllib->SetFwCmdHandler)