Linux kernel staging patches
 help / color / mirror / Atom feed
From: Arsenii Pashchenko <ulijg308@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org,
	ulijg308@gmail.com
Subject: [PATCH 00/61] staging: rtl8723bs: monolithic HAL cleanup and tx power limit fix
Date: Wed, 15 Jul 2026 19:47:28 +0700	[thread overview]
Message-ID: <20260715124829.90290-1-ulijg308@gmail.com> (raw)

Hello,

This patch series performs a massive, systematic cleanup of the legacy 
vendor HAL layer and redundant abstraction wrappers in the rtl8723bs 
driver, concluding with a functional fix for the TX power limit lookup.

The primary goal of this refactoring is to drastically improve the 
readability and maintainability of the codebase, transforming the 
highly tangled, Windows-legacy Realtek abstractions into a cleaner, 
more idiomatic Linux driver structure.

KEY CHANGES IN THIS SERIES:

1. Dead Code & Stub Removal: Eliminated several unimplemented functions, 
   empty stubs (like OnAtim, DoReserved), duplicate prototypes, and 
   completely unused helpers (NULL_hdl, set_csa_hdl, tdls_hdl).
2. Wrapper Collapse & Inlining: Removed multiple layers of superficial 
   wrappers around core operations (e.g., rtw_ap_set_group_key, 
   issue_deauth, issue_probereq, rtw_free_mlme_priv, etc.). High-frequency 
   or single-use HAL entry points (like SetHwReg8723BS, GetHwReg8723BS, 
   and xmit helpers) have been carefully inlined directly into their 
   respective dispatchers to enhance readability.
3. Scope & Warning Fixes: Restructured local functions (like 
   lps_ctrl_wk_hdl) by marking them static and aligning headers, which 
   resolves missing-prototypes compiler warnings.
4. Logical Fixes: In the final patch, a critical copy-paste bug in 
   phy_get_tx_pwr_lmt() was resolved. The computed channel index from 
   phy_GetChannelIndexOfTxPowerLimit() was mistakenly assigned back to 
   the 'channel' parameter and discarded, leaving 'idx_channel' at -1. 
   This caused the function to always fail validation and return 
   MAX_POWER_INDEX. Correcting this restores the intended hardware tx 
   power limit logic and resolves a compiler warning.
5. Refined Abstractions: In places where removing a wrapper would 
   decrease overall elegance or require awkward type workarounds, the 
   cleanest architectural approach was intentionally preserved.

TESTING & VERIFICATION:

- Hardware: I do not possess the physical rtl8723bs hardware, so 
  real-world runtime wireless testing was not performed.
- Compilation: The entire series compiles flawlessly against the 
  latest tree.
- Code Style: All 61 patches have been fully validated with 
  `scripts/checkpatch.pl` and return 0 errors / 0 warnings per patch. 
  (Note: A few pre-existing vendor style warnings remain in the modified 
  files, but no new ones were introduced).

This cleanup significantly reduces the boilerplate footprint, making 
future maintenance and eventual mac80211 migration tasks much more 
approachable.

Please review.

Thanks,
Arsenii

Arsenii Pashchenko (61):
  staging: rtl8723bs: remove redundant rtw_ap_set_group_key wrapper
  staging: rtl8723bs: replace is_same_ess with rtw_ssid_differ
  staging: rtl8723bs: remove redundant rtw_to_roam wrapper
  staging: rtl8723bs: remove redundant rtw_dec_to_roam helper
  staging: rtl8723bs: remove unused OnAtim stub function
  staging: rtl8723bs: remove DoReserved stub and clean up OnAction_tbl
  staging: rtl8723bs: remove redundant issue_deauth wrapper
  staging: rtl8723bs: remove unused NULL_hdl function
  staging: rtl8723bs: remove unused set_csa_hdl function
  staging: rtl8723bs: remove unused tdls_hdl function
  staging: rtl8723bs: inline rtw_ps_deny_get() and remove dead code
  staging: rtl8723bs: replace custom CMAC with kernel Crypto API helper
  staging: rtl8723bs: remove redundant rtw_get_oper_ch() wrapper
  staging: rtl8723bs: remove ODM_CheckPowerStatus and dead branches
  staging: rtl8723bs: remove unimplemented halbtcoutsrc_GetBtReg helper
  staging: rtl8723bs: remove rtw_free_evt_priv wrapper and rename helper
  staging: rtl8723bs: remove rtw_free_cmd_priv wrapper and rename helper
  staging: rtl8723bs: replace rtw_dm_in_lps_hdl with direct hal call
  staging: rtl8723bs: make lps_ctrl_wk_hdl() static
  staging: rtl8723bs: sanitize and align efuse read function headers
  staging: rtl8723bs: replace rtw_reset_continual_io_error with
    atomic_set
  staging: rtl8723bs: inline single-use init_mlme_default_rate_set
  staging: rtl8723bs: remove issue_probereq wrapper and rename helper
  staging: rtl8723bs: remove register_task_alive inline helper
  staging: rtl8723bs: remove unregister_task_alive inline helper
  staging: rtl8723bs: clean up Michael MIC pseudo header logic
  staging: rtl8723bs: replace rtw_set_oper_bw with direct assignment
  staging: rtl8723bs: inline single-use _clear_cam_entry helper
  staging: rtl8723bs: collapse set_sta_rate and Update_RA_Entry wrappers
  staging: rtl8723bs: replace correct_TSF with direct HAL call
  staging: rtl8723bs: replace rtw_sctx_done with direct status call
  staging: rtl8723bs: remove rtw_free_mlme_priv wrapper and rename
    helper
  staging: rtl8723bs: remove duplicate prototype of
    rtw_free_network_nolock
  staging: rtl8723bs: replace rtw_get_beacon_interval_from_ie with
    define
  staging: rtl8723bs: inline _rtw_free_network_nolock into wrapper
  staging: rtl8723bs: remove rtw_wmm_event_callback and update handler
  staging: rtl8723bs: replace halbtc8723b1ant_SwMechanism with direct
    call
  staging: rtl8723bs: remove redundant ternary operators from bool
    returns
  staging: rtl8723bs: remove redundant DM wrapper
  staging: rtl8723bs: remove EXhalbtc8723b2ant_InitHwConfig
  staging: rtl8723bs: remove EXhalbtc8723b1ant_InitHwConfig
  staging: rtl8723bs: remove ConfigureTxpowerTrack wrapper
  staging: rtl8723bs: remove hal_init_macaddr wrapper
  staging: rtl8723bs: remove rtw_init_hal_com_default_value
  staging: rtl8723bs: remove c2h_evt_clear wrapper
  staging: rtl8723bs: remove rtw_get_mgntframe_raid helper
  staging: rtl8723bs: clean up phy power conversion function
  staging: rtl8723bs: remove PHY_TxPowerByRateConfiguration wrapper
  staging: rtl8723bs: remove phy_GetChannelIndexOfTxPowerLimit helper
  staging: rtl8723bs: inline SetHwReg8723BS into rtw_hal_set_hwreg
  staging: rtl8723bs: inline GetHwReg8723BS into rtw_hal_get_hwreg
  staging: rtl8723bs: inline SetHwRegWithBuf8723B into helper
  staging: rtl8723bs: inline GetHalDefVar8723BSDIO into helper
  staging: rtl8723bs: inline SetHalODMVar into rtw_hal_set_odm_var
  staging: rtl8723bs: inline CheckIPSStatus logic with defines
  staging: rtl8723bs: inline rtl8723bs_hal_xmitframe_enqueue helper
  staging: rtl8723bs: inline rtl8723bs_hal_xmit into rtw_hal_xmit
  staging: rtl8723bs: extend rtw_hal_mgnt_xmit functionality
  staging: rtl8723bs: inline rtl8723bs_init_xmit_priv helper
  staging: rtl8723bs: inline recv private data freeing helper
  staging: rtl8723bs: fix tx power limit lookup by using correct channel
    index

 drivers/staging/rtl8723bs/core/rtw_ap.c       |  19 +-
 drivers/staging/rtl8723bs/core/rtw_cmd.c      |  43 +--
 drivers/staging/rtl8723bs/core/rtw_efuse.c    |  30 +-
 drivers/staging/rtl8723bs/core/rtw_io.c       |   6 -
 .../staging/rtl8723bs/core/rtw_ioctl_set.c    |   4 +-
 drivers/staging/rtl8723bs/core/rtw_mlme.c     |  99 ++----
 drivers/staging/rtl8723bs/core/rtw_mlme_ext.c | 144 +++-----
 drivers/staging/rtl8723bs/core/rtw_pwrctrl.c  |  34 +-
 drivers/staging/rtl8723bs/core/rtw_recv.c     |  47 ++-
 drivers/staging/rtl8723bs/core/rtw_security.c | 142 +-------
 .../staging/rtl8723bs/core/rtw_wlan_util.c    |  56 +--
 drivers/staging/rtl8723bs/core/rtw_xmit.c     |   7 +-
 .../staging/rtl8723bs/hal/HalBtc8723b1Ant.c   |  25 +-
 .../staging/rtl8723bs/hal/HalBtc8723b1Ant.h   |   5 +-
 .../staging/rtl8723bs/hal/HalBtc8723b2Ant.c   |  18 +-
 .../staging/rtl8723bs/hal/HalBtc8723b2Ant.h   |   5 +-
 drivers/staging/rtl8723bs/hal/HalBtcOutSrc.h  |  11 +-
 drivers/staging/rtl8723bs/hal/HalPhyRf.c      |   7 +-
 drivers/staging/rtl8723bs/hal/HalPhyRf.h      |   1 -
 .../staging/rtl8723bs/hal/HalPhyRf_8723B.c    |   8 -
 drivers/staging/rtl8723bs/hal/hal_btcoex.c    |  13 +-
 drivers/staging/rtl8723bs/hal/hal_com.c       |  66 +---
 .../staging/rtl8723bs/hal/hal_com_phycfg.c    |  40 +--
 drivers/staging/rtl8723bs/hal/hal_intf.c      | 334 +++++++++++++++++-
 drivers/staging/rtl8723bs/hal/odm_HWConfig.c  |   2 +-
 drivers/staging/rtl8723bs/hal/rtl8723b_cmd.c  |  32 +-
 .../staging/rtl8723bs/hal/rtl8723b_hal_init.c |   4 +-
 .../staging/rtl8723bs/hal/rtl8723b_phycfg.c   |   7 +-
 .../staging/rtl8723bs/hal/rtl8723bs_recv.c    | 123 +------
 .../staging/rtl8723bs/hal/rtl8723bs_xmit.c    | 115 ------
 drivers/staging/rtl8723bs/hal/sdio_halinit.c  | 110 +-----
 drivers/staging/rtl8723bs/hal/sdio_ops.c      |  16 -
 drivers/staging/rtl8723bs/include/cmd_osdep.h |   2 -
 drivers/staging/rtl8723bs/include/hal_com.h   |  10 +-
 .../rtl8723bs/include/hal_com_phycfg.h        |   1 -
 drivers/staging/rtl8723bs/include/hal_intf.h  |   4 -
 drivers/staging/rtl8723bs/include/ieee80211.h |   6 +-
 .../staging/rtl8723bs/include/rtl8723b_cmd.h  |   1 -
 .../staging/rtl8723bs/include/rtl8723b_hal.h  |   6 +
 .../staging/rtl8723bs/include/rtl8723b_recv.h |   3 +-
 .../staging/rtl8723bs/include/rtl8723b_xmit.h |   5 +-
 drivers/staging/rtl8723bs/include/rtw_ap.h    |   2 +-
 drivers/staging/rtl8723bs/include/rtw_io.h    |   2 +-
 drivers/staging/rtl8723bs/include/rtw_mlme.h  |  11 +-
 .../staging/rtl8723bs/include/rtw_mlme_ext.h  |  23 +-
 .../staging/rtl8723bs/include/rtw_pwrctrl.h   |   3 +-
 .../staging/rtl8723bs/include/rtw_security.h  |  10 +-
 drivers/staging/rtl8723bs/include/rtw_xmit.h  |   2 +-
 drivers/staging/rtl8723bs/include/sdio_ops.h  |   4 +-
 .../staging/rtl8723bs/os_dep/ioctl_cfg80211.c |  16 +-
 drivers/staging/rtl8723bs/os_dep/os_intfs.c   |   7 +-
 .../staging/rtl8723bs/os_dep/osdep_service.c  |   4 +-
 drivers/staging/rtl8723bs/os_dep/sdio_intf.c  |   2 +-
 .../staging/rtl8723bs/os_dep/sdio_ops_linux.c |   4 +-
 54 files changed, 626 insertions(+), 1075 deletions(-)

-- 
2.55.0


             reply	other threads:[~2026-07-15 12:48 UTC|newest]

Thread overview: 65+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-15 12:47 Arsenii Pashchenko [this message]
2026-07-15 12:47 ` [PATCH 01/61] staging: rtl8723bs: remove redundant rtw_ap_set_group_key wrapper Arsenii Pashchenko
2026-07-15 13:15   ` Greg Kroah-Hartman
2026-07-15 13:19     ` Greg Kroah-Hartman
2026-07-15 12:47 ` [PATCH 02/61] staging: rtl8723bs: replace is_same_ess with rtw_ssid_differ Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 03/61] staging: rtl8723bs: remove redundant rtw_to_roam wrapper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 04/61] staging: rtl8723bs: remove redundant rtw_dec_to_roam helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 05/61] staging: rtl8723bs: remove unused OnAtim stub function Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 06/61] staging: rtl8723bs: remove DoReserved stub and clean up OnAction_tbl Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 07/61] staging: rtl8723bs: remove redundant issue_deauth wrapper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 08/61] staging: rtl8723bs: remove unused NULL_hdl function Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 09/61] staging: rtl8723bs: remove unused set_csa_hdl function Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 10/61] staging: rtl8723bs: remove unused tdls_hdl function Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 11/61] staging: rtl8723bs: inline rtw_ps_deny_get() and remove dead code Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 12/61] staging: rtl8723bs: replace custom CMAC with kernel Crypto API helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 13/61] staging: rtl8723bs: remove redundant rtw_get_oper_ch() wrapper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 14/61] staging: rtl8723bs: remove ODM_CheckPowerStatus and dead branches Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 15/61] staging: rtl8723bs: remove unimplemented halbtcoutsrc_GetBtReg helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 16/61] staging: rtl8723bs: remove rtw_free_evt_priv wrapper and rename helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 17/61] staging: rtl8723bs: remove rtw_free_cmd_priv " Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 18/61] staging: rtl8723bs: replace rtw_dm_in_lps_hdl with direct hal call Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 19/61] staging: rtl8723bs: make lps_ctrl_wk_hdl() static Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 20/61] staging: rtl8723bs: sanitize and align efuse read function headers Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 21/61] staging: rtl8723bs: replace rtw_reset_continual_io_error with atomic_set Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 22/61] staging: rtl8723bs: inline single-use init_mlme_default_rate_set Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 23/61] staging: rtl8723bs: remove issue_probereq wrapper and rename helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 24/61] staging: rtl8723bs: remove register_task_alive inline helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 25/61] staging: rtl8723bs: remove unregister_task_alive " Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 26/61] staging: rtl8723bs: clean up Michael MIC pseudo header logic Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 27/61] staging: rtl8723bs: replace rtw_set_oper_bw with direct assignment Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 28/61] staging: rtl8723bs: inline single-use _clear_cam_entry helper Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 29/61] staging: rtl8723bs: collapse set_sta_rate and Update_RA_Entry wrappers Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 30/61] staging: rtl8723bs: replace correct_TSF with direct HAL call Arsenii Pashchenko
2026-07-15 12:47 ` [PATCH 31/61] staging: rtl8723bs: replace rtw_sctx_done with direct status call Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 32/61] staging: rtl8723bs: remove rtw_free_mlme_priv wrapper and rename helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 33/61] staging: rtl8723bs: remove duplicate prototype of rtw_free_network_nolock Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 34/61] staging: rtl8723bs: replace rtw_get_beacon_interval_from_ie with define Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 35/61] staging: rtl8723bs: inline _rtw_free_network_nolock into wrapper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 36/61] staging: rtl8723bs: remove rtw_wmm_event_callback and update handler Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 37/61] staging: rtl8723bs: replace halbtc8723b1ant_SwMechanism with direct call Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 38/61] staging: rtl8723bs: remove redundant ternary operators from bool returns Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 39/61] staging: rtl8723bs: remove redundant DM wrapper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 40/61] staging: rtl8723bs: remove EXhalbtc8723b2ant_InitHwConfig Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 41/61] staging: rtl8723bs: remove EXhalbtc8723b1ant_InitHwConfig Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 42/61] staging: rtl8723bs: remove ConfigureTxpowerTrack wrapper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 43/61] staging: rtl8723bs: remove hal_init_macaddr wrapper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 44/61] staging: rtl8723bs: remove rtw_init_hal_com_default_value Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 45/61] staging: rtl8723bs: remove c2h_evt_clear wrapper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 46/61] staging: rtl8723bs: remove rtw_get_mgntframe_raid helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 47/61] staging: rtl8723bs: clean up phy power conversion function Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 48/61] staging: rtl8723bs: remove PHY_TxPowerByRateConfiguration wrapper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 49/61] staging: rtl8723bs: remove phy_GetChannelIndexOfTxPowerLimit helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 50/61] staging: rtl8723bs: inline SetHwReg8723BS into rtw_hal_set_hwreg Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 51/61] staging: rtl8723bs: inline GetHwReg8723BS into rtw_hal_get_hwreg Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 52/61] staging: rtl8723bs: inline SetHwRegWithBuf8723B into helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 53/61] staging: rtl8723bs: inline GetHalDefVar8723BSDIO " Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 54/61] staging: rtl8723bs: inline SetHalODMVar into rtw_hal_set_odm_var Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 55/61] staging: rtl8723bs: inline CheckIPSStatus logic with defines Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 56/61] staging: rtl8723bs: inline rtl8723bs_hal_xmitframe_enqueue helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 57/61] staging: rtl8723bs: inline rtl8723bs_hal_xmit into rtw_hal_xmit Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 58/61] staging: rtl8723bs: extend rtw_hal_mgnt_xmit functionality Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 59/61] staging: rtl8723bs: inline rtl8723bs_init_xmit_priv helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 60/61] staging: rtl8723bs: inline recv private data freeing helper Arsenii Pashchenko
2026-07-15 12:48 ` [PATCH 61/61] staging: rtl8723bs: fix tx power limit lookup by using correct channel index Arsenii Pashchenko
2026-07-15 13:03 ` [PATCH 00/61] staging: rtl8723bs: monolithic HAL cleanup and tx power limit fix Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260715124829.90290-1-ulijg308@gmail.com \
    --to=ulijg308@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-staging@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox