mirror of
https://github.com/torvalds/linux.git
synced 2026-06-01 02:53:36 +02:00
wifi: rtlwifi: simplify TX command fill callbacks
Since 'rtlpriv->cfg->ops->fill_tx_cmddesc()' is always called with 'firstseg' and 'lastseg' set to 1 (and the latter is never actually used), all of the relevant chip-specific routines may be simplified. Compile tested only. Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru> Acked-by: Ping-Ke Shih <pkshih@realtek.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/20231011154442.52457-2-dmantipov@yandex.ru
This commit is contained in:
parent
f35ccb65bd
commit
4619088252
|
|
@ -1897,7 +1897,7 @@ bool rtl_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)
|
|||
/*this is wrong, fill_tx_cmddesc needs update*/
|
||||
pdesc = &ring->desc[0];
|
||||
|
||||
rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb);
|
||||
rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, skb);
|
||||
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
|
||||
|
|
|
|||
|
|
@ -665,9 +665,8 @@ void rtl88ee_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
@ -687,8 +686,7 @@ void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
|||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
|
||||
if (firstseg)
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
|
||||
set_tx_desc_tx_rate(pdesc, DESC92C_RATE1M);
|
||||
|
||||
|
|
|
|||
|
|
@ -797,6 +797,5 @@ bool rtl88ee_is_tx_desc_closed(struct ieee80211_hw *hw,
|
|||
u8 hw_queue, u16 index);
|
||||
void rtl88ee_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl88ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -518,9 +518,8 @@ void rtl92ce_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
@ -540,9 +539,7 @@ void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
|||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
|
||||
if (firstseg)
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
|
||||
|
||||
set_tx_desc_seq(pdesc, 0);
|
||||
|
|
|
|||
|
|
@ -527,6 +527,5 @@ bool rtl92ce_is_tx_desc_closed(struct ieee80211_hw *hw,
|
|||
u8 hw_queue, u16 index);
|
||||
void rtl92ce_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl92ce_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool b_firstseg, bool b_lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1539,7 +1539,7 @@ static bool usb_cmd_send_packet(struct ieee80211_hw *hw, struct sk_buff *skb)
|
|||
* if its "here".
|
||||
*
|
||||
* This is maybe necessary:
|
||||
* rtlpriv->cfg->ops->fill_tx_cmddesc(hw, buffer, 1, 1, skb);
|
||||
* rtlpriv->cfg->ops->fill_tx_cmddesc(hw, buffer, skb);
|
||||
*/
|
||||
dev_kfree_skb(skb);
|
||||
|
||||
|
|
|
|||
|
|
@ -626,9 +626,8 @@ void rtl92cu_fill_fake_txdesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
|||
_rtl_tx_desc_checksum(pdesc);
|
||||
}
|
||||
|
||||
void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
u8 fw_queue = QSLT_BEACON;
|
||||
|
|
@ -637,8 +636,7 @@ void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
|||
__le32 *pdesc = (__le32 *)pdesc8;
|
||||
|
||||
memset((void *)pdesc, 0, RTL_TX_HEADER_SIZE);
|
||||
if (firstseg)
|
||||
set_tx_desc_offset(pdesc, RTL_TX_HEADER_SIZE);
|
||||
set_tx_desc_offset(pdesc, RTL_TX_HEADER_SIZE);
|
||||
set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
|
||||
set_tx_desc_seq(pdesc, 0);
|
||||
set_tx_desc_linip(pdesc, 0);
|
||||
|
|
|
|||
|
|
@ -396,8 +396,7 @@ void rtl92cu_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
struct rtl_tcb_desc *tcb_desc);
|
||||
void rtl92cu_fill_fake_txdesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
u32 buffer_len, bool ispspoll);
|
||||
void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc, bool b_firstseg,
|
||||
bool b_lastseg, struct sk_buff *skb);
|
||||
void rtl92cu_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
struct sk_buff *skb);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -469,7 +469,7 @@ static bool _rtl92d_cmd_send_packet(struct ieee80211_hw *hw,
|
|||
pdesc = &ring->desc[idx];
|
||||
/* discard output from call below */
|
||||
rtlpriv->cfg->ops->get_desc(hw, (u8 *)pdesc, true, HW_DESC_OWN);
|
||||
rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *) pdesc, 1, 1, skb);
|
||||
rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, skb);
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
|
||||
rtlpriv->cfg->ops->tx_polling(hw, BEACON_QUEUE);
|
||||
|
|
|
|||
|
|
@ -655,9 +655,8 @@ void rtl92de_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
@ -678,8 +677,7 @@ void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
|||
return;
|
||||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
if (firstseg)
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
/* 5G have no CCK rate
|
||||
* Caution: The macros below are multi-line expansions.
|
||||
* The braces are needed no matter what checkpatch says
|
||||
|
|
|
|||
|
|
@ -564,7 +564,6 @@ bool rtl92de_is_tx_desc_closed(struct ieee80211_hw *hw,
|
|||
u8 hw_queue, u16 index);
|
||||
void rtl92de_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl92de_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool b_firstseg, bool b_lastseg,
|
||||
struct sk_buff *skb);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -827,9 +827,8 @@ void rtl92ee_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
@ -846,8 +845,7 @@ void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
|||
}
|
||||
clear_pci_tx_desc_content(pdesc, txdesc_len);
|
||||
|
||||
if (firstseg)
|
||||
set_tx_desc_offset(pdesc, txdesc_len);
|
||||
set_tx_desc_offset(pdesc, txdesc_len);
|
||||
|
||||
set_tx_desc_tx_rate(pdesc, DESC_RATE1M);
|
||||
|
||||
|
|
|
|||
|
|
@ -743,6 +743,5 @@ u64 rtl92ee_get_desc(struct ieee80211_hw *hw,
|
|||
bool rtl92ee_is_tx_desc_closed(struct ieee80211_hw *hw, u8 hw_queue, u16 index);
|
||||
void rtl92ee_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl92ee_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ static bool _rtl92s_cmd_send_packet(struct ieee80211_hw *hw,
|
|||
|
||||
idx = (ring->idx + skb_queue_len(&ring->queue)) % ring->entries;
|
||||
pdesc = &ring->desc[idx];
|
||||
rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, 1, 1, skb);
|
||||
rtlpriv->cfg->ops->fill_tx_cmddesc(hw, (u8 *)pdesc, skb);
|
||||
__skb_queue_tail(&ring->queue, skb);
|
||||
|
||||
spin_unlock_irqrestore(&rtlpriv->locks.irq_th_lock, flags);
|
||||
|
|
|
|||
|
|
@ -492,7 +492,7 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
}
|
||||
|
||||
void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
bool firstseg, bool lastseg, struct sk_buff *skb)
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
|
|||
|
|
@ -10,8 +10,8 @@ void rtl92se_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
struct ieee80211_sta *sta,
|
||||
struct sk_buff *skb, u8 hw_queue,
|
||||
struct rtl_tcb_desc *ptcb_desc);
|
||||
void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb);
|
||||
void rtl92se_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
struct sk_buff *skb);
|
||||
bool rtl92se_rx_query_desc(struct ieee80211_hw *hw, struct rtl_stats *stats,
|
||||
struct ieee80211_rx_status *rx_status, u8 *pdesc,
|
||||
struct sk_buff *skb);
|
||||
|
|
|
|||
|
|
@ -519,9 +519,8 @@ void rtl8723e_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
@ -541,8 +540,7 @@ void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
|||
}
|
||||
clear_pci_tx_desc_content(pdesc, TX_DESC_SIZE);
|
||||
|
||||
if (firstseg)
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
set_tx_desc_offset(pdesc, USB_HWDESC_HEADER_LEN);
|
||||
|
||||
set_tx_desc_tx_rate(pdesc, DESC92C_RATE1M);
|
||||
|
||||
|
|
|
|||
|
|
@ -530,6 +530,5 @@ bool rtl8723e_is_tx_desc_closed(struct ieee80211_hw *hw,
|
|||
u8 hw_queue, u16 index);
|
||||
void rtl8723e_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl8723e_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -585,7 +585,6 @@ void rtl8723be_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
}
|
||||
|
||||
void rtl8723be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
|
|
|
|||
|
|
@ -642,6 +642,5 @@ bool rtl8723be_is_tx_desc_closed(struct ieee80211_hw *hw,
|
|||
u8 hw_queue, u16 index);
|
||||
void rtl8723be_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl8723be_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -828,9 +828,8 @@ void rtl8821ae_tx_fill_desc(struct ieee80211_hw *hw,
|
|||
rtl_dbg(rtlpriv, COMP_SEND, DBG_TRACE, "\n");
|
||||
}
|
||||
|
||||
void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw,
|
||||
u8 *pdesc8, bool firstseg,
|
||||
bool lastseg, struct sk_buff *skb)
|
||||
void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc8,
|
||||
struct sk_buff *skb)
|
||||
{
|
||||
struct rtl_priv *rtlpriv = rtl_priv(hw);
|
||||
struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
|
||||
|
|
|
|||
|
|
@ -648,6 +648,5 @@ bool rtl8821ae_is_tx_desc_closed(struct ieee80211_hw *hw,
|
|||
u8 hw_queue, u16 index);
|
||||
void rtl8821ae_tx_polling(struct ieee80211_hw *hw, u8 hw_queue);
|
||||
void rtl8821ae_tx_fill_cmddesc(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -2249,7 +2249,6 @@ struct rtl_hal_ops {
|
|||
void (*fill_fake_txdesc)(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
u32 buffer_len, bool bsspspoll);
|
||||
void (*fill_tx_cmddesc)(struct ieee80211_hw *hw, u8 *pdesc,
|
||||
bool firstseg, bool lastseg,
|
||||
struct sk_buff *skb);
|
||||
void (*fill_tx_special_desc)(struct ieee80211_hw *hw,
|
||||
u8 *pdesc, u8 *pbd_desc,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user