[PATCH 57/61] staging: rtl8723bs: inline rtl8723bs_hal_xmit into rtw_hal_xmit

From: Arsenii Pashchenko

Date: Wed Jul 15 2026 - 09:12:51 EST


Inline the transmit frame handling logic from rtl8723bs_hal_xmit
directly into rtw_hal_xmit. This simplifies the driver's transmit path,
cuts down on an unnecessary redirection layer, and improves code
maintainability.

Signed-off-by: Arsenii Pashchenko <ulijg308@xxxxxxxxx>
---
drivers/staging/rtl8723bs/hal/hal_intf.c | 28 ++++++++++++-
.../staging/rtl8723bs/hal/rtl8723bs_xmit.c | 42 -------------------
.../staging/rtl8723bs/include/rtl8723b_xmit.h | 1 -
3 files changed, 27 insertions(+), 44 deletions(-)

diff --git a/drivers/staging/rtl8723bs/hal/hal_intf.c b/drivers/staging/rtl8723bs/hal/hal_intf.c
index b11f4ab4a..9bb1fba5c 100644
--- a/drivers/staging/rtl8723bs/hal/hal_intf.c
+++ b/drivers/staging/rtl8723bs/hal/hal_intf.c
@@ -219,10 +219,36 @@ int rtw_hal_xmitframe_enqueue(struct adapter *padapter, struct xmit_frame *pxmit

s32 rtw_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe)
{
- if (rtl8723bs_hal_xmit(padapter, pxmitframe))
+ struct xmit_priv *pxmitpriv;
+ s32 err;
+
+ pxmitframe->attrib.qsel = pxmitframe->attrib.priority;
+ pxmitpriv = &padapter->xmitpriv;
+
+ if (
+ (pxmitframe->frame_tag == DATA_FRAMETAG) &&
+ (pxmitframe->attrib.ether_type != 0x0806) &&
+ (pxmitframe->attrib.ether_type != 0x888e) &&
+ (pxmitframe->attrib.dhcp_pkt != 1)
+ ) {
+ if (padapter->mlmepriv.link_detect_info.busy_traffic)
+ rtw_issue_addbareq_cmd(padapter, pxmitframe);
+ }
+
+ spin_lock_bh(&pxmitpriv->lock);
+ err = rtw_xmitframe_enqueue(padapter, pxmitframe);
+ spin_unlock_bh(&pxmitpriv->lock);
+ if (err) {
+ rtw_free_xmitframe(pxmitpriv, pxmitframe);
+
+ pxmitpriv->tx_drop++;
return _FAIL;
+ }
+
+ complete(&pxmitpriv->SdioXmitStart);

return _SUCCESS;
+
}

/*
diff --git a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
index a4dfee1d4..2298c41df 100644
--- a/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
+++ b/drivers/staging/rtl8723bs/hal/rtl8723bs_xmit.c
@@ -453,48 +453,6 @@ s32 rtl8723bs_mgnt_xmit(
return ret;
}

-/*
- * Description:
- *Handle xmitframe(packet) come from rtw_xmit()
- *
- * Return:
- * true dump packet directly ok
- * false enqueue, temporary can't transmit packets to hardware
- */
-s32 rtl8723bs_hal_xmit(
- struct adapter *padapter, struct xmit_frame *pxmitframe
-)
-{
- struct xmit_priv *pxmitpriv;
- s32 err;
-
- pxmitframe->attrib.qsel = pxmitframe->attrib.priority;
- pxmitpriv = &padapter->xmitpriv;
-
- if (
- (pxmitframe->frame_tag == DATA_FRAMETAG) &&
- (pxmitframe->attrib.ether_type != 0x0806) &&
- (pxmitframe->attrib.ether_type != 0x888e) &&
- (pxmitframe->attrib.dhcp_pkt != 1)
- ) {
- if (padapter->mlmepriv.link_detect_info.busy_traffic)
- rtw_issue_addbareq_cmd(padapter, pxmitframe);
- }
-
- spin_lock_bh(&pxmitpriv->lock);
- err = rtw_xmitframe_enqueue(padapter, pxmitframe);
- spin_unlock_bh(&pxmitpriv->lock);
- if (err) {
- rtw_free_xmitframe(pxmitpriv, pxmitframe);
-
- pxmitpriv->tx_drop++;
- return true;
- }
-
- complete(&pxmitpriv->SdioXmitStart);
-
- return false;
-}

/*
* Return
diff --git a/drivers/staging/rtl8723bs/include/rtl8723b_xmit.h b/drivers/staging/rtl8723bs/include/rtl8723b_xmit.h
index 8d6d6d2b7..157b2a808 100644
--- a/drivers/staging/rtl8723bs/include/rtl8723b_xmit.h
+++ b/drivers/staging/rtl8723bs/include/rtl8723b_xmit.h
@@ -409,7 +409,6 @@ u32 rtl8723bs_hal_init(struct adapter *padapter);
u32 rtl8723bs_hal_deinit(struct adapter *padapter);
s32 rtl8723bs_init_xmit_priv(struct adapter *padapter);
void rtl8723bs_free_xmit_priv(struct adapter *padapter);
-s32 rtl8723bs_hal_xmit(struct adapter *padapter, struct xmit_frame *pxmitframe);
s32 rtl8723bs_mgnt_xmit(struct adapter *padapter, struct xmit_frame *pmgntframe);
s32 rtl8723bs_xmit_buf_handler(struct adapter *padapter);
int rtl8723bs_xmit_thread(void *context);
--
2.55.0