void rtl88e_dm_check_txpower_tracking(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       static u8 tm_trigger;
 
        if (!rtlpriv->dm.txpower_tracking)
                return;
 
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, BIT(17)|BIT(16),
                              0x03);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Trigger 88E Thermal Meter!!\n");
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Schedule TxPowerTracking !!\n");
                                dm_txpower_track_cb_therm(hw);
-               tm_trigger = 0;
+               rtlpriv->dm.tm_trigger = 0;
        }
 }
 
 
                                                struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       static u8 tm_trigger;
 
        if (!rtlpriv->dm.txpower_tracking)
                return;
 
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, RFREG_OFFSET_MASK,
                              0x60);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Trigger 92S Thermal Meter!!\n");
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Schedule TxPowerTracking direct call!!\n");
                rtl92c_dm_txpower_tracking_directcall(hw);
-               tm_trigger = 0;
+               rtlpriv->dm.tm_trigger = 0;
        }
 }
 
 
 void rtl92d_dm_check_txpower_tracking_thermal_meter(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       static u8 tm_trigger;
 
        if (!rtlpriv->dm.txpower_tracking)
                return;
 
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, BIT(17) |
                              BIT(16), 0x03);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Trigger 92S Thermal Meter!!\n");
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Schedule TxPowerTracking direct call!!\n");
                rtl92d_dm_txpower_tracking_callback_thermalmeter(hw);
-               tm_trigger = 0;
+               rtlpriv->dm.tm_trigger = 0;
        }
 }
 
 
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
        struct rtl_phy *rtlphy = &(rtlpriv->phy);
-       static u8 tm_trigger;
        u8 tx_power_checkcnt = 5;
 
        /* 2T2R TP issue */
                return;
        }
 
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER,
                              RFREG_OFFSET_MASK, 0x60);
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
        } else {
                _rtl92s_dm_txpowertracking_callback_thermalmeter(hw);
-               tm_trigger = 0;
+               rtlpriv->dm.tm_trigger = 0;
        }
 }
 
 
 void rtl8723be_dm_check_txpower_tracking(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       static u8 tm_trigger;
 
        if (!rtlpriv->dm.txpower_tracking)
                return;
 
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER, BIT(17) | BIT(16),
                              0x03);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Trigger 8723be Thermal Meter!!\n");
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Schedule TxPowerTracking !!\n");
                rtl8723be_dm_txpower_tracking_callback_thermalmeter(hw);
-               tm_trigger = 0;
+               rtlpriv->dm.tm_trigger = 0;
        }
 }
 
 
                struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       static u8 tm_trigger;
 
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER_88E,
                              BIT(17) | BIT(16), 0x03);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Trigger 8812 Thermal Meter!!\n");
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
                return;
        }
        RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                 "Schedule TxPowerTracking direct call!!\n");
        rtl8812ae_dm_txpower_tracking_callback_thermalmeter(hw);
-       tm_trigger = 0;
 }
 
 static void rtl8821ae_dm_iq_calibrate(struct ieee80211_hw *hw)
 void rtl8821ae_dm_check_txpower_tracking_thermalmeter(struct ieee80211_hw *hw)
 {
        struct rtl_priv *rtlpriv = rtl_priv(hw);
-       static u8 tm_trigger;
-
-       if (!tm_trigger) {
+       if (!rtlpriv->dm.tm_trigger) {
                rtl_set_rfreg(hw, RF90_PATH_A, RF_T_METER_88E, BIT(17)|BIT(16),
                              0x03);
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Trigger 8821ae Thermal Meter!!\n");
-               tm_trigger = 1;
+               rtlpriv->dm.tm_trigger = 1;
                return;
        } else {
                RT_TRACE(rtlpriv, COMP_POWER_TRACKING, DBG_LOUD,
                         "Schedule TxPowerTracking !!\n");
 
                rtl8821ae_dm_txpower_tracking_callback_thermalmeter(hw);
-               tm_trigger = 0;
+               rtlpriv->dm.tm_trigger = 0;
        }
 }
 
 
        u8 last_dtp_lvl;
        u8 thermalvalue_avg[AVG_THERMAL_NUM];
        u8 thermalvalue_avg_index;
+       u8 tm_trigger;
        bool done_txpower;
        u8 dynamic_txhighpower_lvl;     /*Tx high power level */
        u8 dm_flag;             /*Indicate each dynamic mechanism's status. */