Commit f8af6a32 authored by Kees Cook's avatar Kees Cook Committed by Greg Kroah-Hartman

staging: rtlwifi: Convert timers to use timer_setup()

In preparation for unconditionally passing the struct timer_list pointer to
all timer callbacks, switch to using the new timer_setup() and from_timer()
to pass the timer pointer explicitly. Also drops unused odm timer code.

Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: Ping-Ke Shih <pkshih@realtek.com>
Cc: shaofu <shaofu@realtek.com>
Cc: devel@driverdev.osuosl.org
Signed-off-by: default avatarKees Cook <keescook@chromium.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 682455be
...@@ -465,10 +465,10 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw) ...@@ -465,10 +465,10 @@ static void _rtl_init_deferred_work(struct ieee80211_hw *hw)
struct rtl_priv *rtlpriv = rtl_priv(hw); struct rtl_priv *rtlpriv = rtl_priv(hw);
/* <1> timer */ /* <1> timer */
setup_timer(&rtlpriv->works.watchdog_timer, timer_setup(&rtlpriv->works.watchdog_timer,
rtl_watch_dog_timer_callback, (unsigned long)hw); rtl_watch_dog_timer_callback, 0);
setup_timer(&rtlpriv->works.dualmac_easyconcurrent_retrytimer, timer_setup(&rtlpriv->works.dualmac_easyconcurrent_retrytimer,
rtl_easy_concurrent_retrytimer_callback, (unsigned long)hw); rtl_easy_concurrent_retrytimer_callback, 0);
/* <2> work queue */ /* <2> work queue */
rtlpriv->works.hw = hw; rtlpriv->works.hw = hw;
rtlpriv->works.rtl_wq = alloc_workqueue("%s", 0, 0, rtlpriv->cfg->name); rtlpriv->works.rtl_wq = alloc_workqueue("%s", 0, 0, rtlpriv->cfg->name);
...@@ -2161,10 +2161,10 @@ void rtl_watchdog_wq_callback(void *data) ...@@ -2161,10 +2161,10 @@ void rtl_watchdog_wq_callback(void *data)
rtl_scan_list_expire(hw); rtl_scan_list_expire(hw);
} }
void rtl_watch_dog_timer_callback(unsigned long data) void rtl_watch_dog_timer_callback(struct timer_list *t)
{ {
struct ieee80211_hw *hw = (struct ieee80211_hw *)data; struct rtl_priv *rtlpriv = from_timer(rtlpriv, t, works.watchdog_timer);
struct rtl_priv *rtlpriv = rtl_priv(hw); struct ieee80211_hw *hw = rtlpriv->hw;
queue_delayed_work(rtlpriv->works.rtl_wq, queue_delayed_work(rtlpriv->works.rtl_wq,
&rtlpriv->works.watchdog_wq, 0); &rtlpriv->works.watchdog_wq, 0);
...@@ -2270,10 +2270,11 @@ void rtl_c2hcmd_wq_callback(void *data) ...@@ -2270,10 +2270,11 @@ void rtl_c2hcmd_wq_callback(void *data)
rtl_c2hcmd_launcher(hw, 1); rtl_c2hcmd_launcher(hw, 1);
} }
void rtl_easy_concurrent_retrytimer_callback(unsigned long data) void rtl_easy_concurrent_retrytimer_callback(struct timer_list *t)
{ {
struct ieee80211_hw *hw = (struct ieee80211_hw *)data; struct rtl_priv *rtlpriv =
struct rtl_priv *rtlpriv = rtl_priv(hw); from_timer(rtlpriv, t, works.dualmac_easyconcurrent_retrytimer);
struct ieee80211_hw *hw = rtlpriv->hw;
struct rtl_priv *buddy_priv = rtlpriv->buddy_priv; struct rtl_priv *buddy_priv = rtlpriv->buddy_priv;
if (!buddy_priv) if (!buddy_priv)
......
...@@ -120,7 +120,7 @@ void rtl_init_rx_config(struct ieee80211_hw *hw); ...@@ -120,7 +120,7 @@ void rtl_init_rx_config(struct ieee80211_hw *hw);
void rtl_init_rfkill(struct ieee80211_hw *hw); void rtl_init_rfkill(struct ieee80211_hw *hw);
void rtl_deinit_rfkill(struct ieee80211_hw *hw); void rtl_deinit_rfkill(struct ieee80211_hw *hw);
void rtl_watch_dog_timer_callback(unsigned long data); void rtl_watch_dog_timer_callback(struct timer_list *t);
void rtl_deinit_deferred_work(struct ieee80211_hw *hw); void rtl_deinit_deferred_work(struct ieee80211_hw *hw);
bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx); bool rtl_action_proc(struct ieee80211_hw *hw, struct sk_buff *skb, u8 is_tx);
...@@ -176,7 +176,7 @@ int rtl_send_smps_action(struct ieee80211_hw *hw, ...@@ -176,7 +176,7 @@ int rtl_send_smps_action(struct ieee80211_hw *hw,
u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie); u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie);
void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len); void rtl_recognize_peer(struct ieee80211_hw *hw, u8 *data, unsigned int len);
u8 rtl_tid_to_ac(u8 tid); u8 rtl_tid_to_ac(u8 tid);
void rtl_easy_concurrent_retrytimer_callback(unsigned long data); void rtl_easy_concurrent_retrytimer_callback(struct timer_list *t);
extern struct rtl_global_var rtl_global_var; extern struct rtl_global_var rtl_global_var;
void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation); void rtl_phy_scan_operation_backup(struct ieee80211_hw *hw, u8 operation);
bool rtl_check_beacon_key(struct ieee80211_hw *hw, void *data, bool rtl_check_beacon_key(struct ieee80211_hw *hw, void *data,
......
...@@ -116,7 +116,7 @@ static int rtl_op_start(struct ieee80211_hw *hw) ...@@ -116,7 +116,7 @@ static int rtl_op_start(struct ieee80211_hw *hw)
mutex_lock(&rtlpriv->locks.conf_mutex); mutex_lock(&rtlpriv->locks.conf_mutex);
err = rtlpriv->intf_ops->adapter_start(hw); err = rtlpriv->intf_ops->adapter_start(hw);
if (!err) if (!err)
rtl_watch_dog_timer_callback((unsigned long)hw); rtl_watch_dog_timer_callback(&rtlpriv->works.watchdog_timer);
mutex_unlock(&rtlpriv->locks.conf_mutex); mutex_unlock(&rtlpriv->locks.conf_mutex);
return err; return err;
} }
......
...@@ -179,29 +179,6 @@ void ODM_sleep_ms(u32 ms) { msleep(ms); } ...@@ -179,29 +179,6 @@ void ODM_sleep_ms(u32 ms) { msleep(ms); }
void ODM_sleep_us(u32 us) { usleep_range(us, us + 1); } void ODM_sleep_us(u32 us) { usleep_range(us, us + 1); }
void odm_set_timer(struct phy_dm_struct *dm, struct timer_list *timer,
u32 ms_delay)
{
mod_timer(timer, jiffies + msecs_to_jiffies(ms_delay));
}
void odm_initialize_timer(struct phy_dm_struct *dm, struct timer_list *timer,
void *call_back_func, void *context,
const char *sz_id)
{
init_timer(timer);
timer->function = call_back_func;
timer->data = (unsigned long)dm;
/*mod_timer(timer, jiffies+RTL_MILISECONDS_TO_JIFFIES(10)); */
}
void odm_cancel_timer(struct phy_dm_struct *dm, struct timer_list *timer)
{
del_timer(timer);
}
void odm_release_timer(struct phy_dm_struct *dm, struct timer_list *timer) {}
static u8 phydm_trans_h2c_id(struct phy_dm_struct *dm, u8 phydm_h2c_id) static u8 phydm_trans_h2c_id(struct phy_dm_struct *dm, u8 phydm_h2c_id)
{ {
u8 platform_h2c_id = phydm_h2c_id; u8 platform_h2c_id = phydm_h2c_id;
......
...@@ -172,17 +172,6 @@ void ODM_sleep_ms(u32 ms); ...@@ -172,17 +172,6 @@ void ODM_sleep_ms(u32 ms);
void ODM_sleep_us(u32 us); void ODM_sleep_us(u32 us);
void odm_set_timer(struct phy_dm_struct *dm, struct timer_list *timer,
u32 ms_delay);
void odm_initialize_timer(struct phy_dm_struct *dm, struct timer_list *timer,
void *call_back_func, void *context,
const char *sz_id);
void odm_cancel_timer(struct phy_dm_struct *dm, struct timer_list *timer);
void odm_release_timer(struct phy_dm_struct *dm, struct timer_list *timer);
/* /*
* ODM FW relative API. * ODM FW relative API.
*/ */
......
...@@ -61,7 +61,7 @@ bool rtl_ps_enable_nic(struct ieee80211_hw *hw) ...@@ -61,7 +61,7 @@ bool rtl_ps_enable_nic(struct ieee80211_hw *hw)
rtlpriv->cfg->ops->enable_interrupt(hw); rtlpriv->cfg->ops->enable_interrupt(hw);
/*<enable timer> */ /*<enable timer> */
rtl_watch_dog_timer_callback((unsigned long)hw); rtl_watch_dog_timer_callback(&rtlpriv->works.watchdog_timer);
return true; return true;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment