summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBera Yüzlü <b9788213@gmail.com>2026-02-08 13:54:24 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-02-23 17:08:40 +0300
commite50ecef464e87736ba0beaddaba8bd8769c73c78 (patch)
tree95fb8b23fc15ad4ebcc05738e9e3a2431196407a
parentd1c2574d03cced16a9b363807b41d599285e3e60 (diff)
downloadlinux-e50ecef464e87736ba0beaddaba8bd8769c73c78.tar.xz
staging: rtl8723bs: Refactor setCCKFilterCoefficient to remove duplicated rtw_write8() calls
Previously, the function used 16 individual and repetitive rtw_write8() calls (8 for each channel condition) to set the filter coefficients. The new implementation uses a table pointer to select the appropriate swingtable and iterates through the 8-byte coefficient array using a single for loop. This achieves the same result without changing logic. Signed-off-by: Bera Yüzlü <b9788213@gmail.com> Link: https://patch.msgid.link/aYhrYLYDsxAzWfd1@BERA.localdomain Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c28
1 files changed, 9 insertions, 19 deletions
diff --git a/drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c b/drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c
index 9df3274c1048..ed447daad3ad 100644
--- a/drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c
+++ b/drivers/staging/rtl8723bs/hal/HalPhyRf_8723B.c
@@ -121,25 +121,15 @@ static void setIqkMatrix_8723B(
static void setCCKFilterCoefficient(struct dm_odm_t *pDM_Odm, u8 CCKSwingIndex)
{
- if (!pDM_Odm->RFCalibrateInfo.bCCKinCH14) {
- rtw_write8(pDM_Odm->Adapter, 0xa22, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][0]);
- rtw_write8(pDM_Odm->Adapter, 0xa23, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][1]);
- rtw_write8(pDM_Odm->Adapter, 0xa24, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][2]);
- rtw_write8(pDM_Odm->Adapter, 0xa25, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][3]);
- rtw_write8(pDM_Odm->Adapter, 0xa26, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][4]);
- rtw_write8(pDM_Odm->Adapter, 0xa27, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][5]);
- rtw_write8(pDM_Odm->Adapter, 0xa28, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][6]);
- rtw_write8(pDM_Odm->Adapter, 0xa29, CCKSwingTable_Ch1_Ch13_New[CCKSwingIndex][7]);
- } else {
- rtw_write8(pDM_Odm->Adapter, 0xa22, CCKSwingTable_Ch14_New[CCKSwingIndex][0]);
- rtw_write8(pDM_Odm->Adapter, 0xa23, CCKSwingTable_Ch14_New[CCKSwingIndex][1]);
- rtw_write8(pDM_Odm->Adapter, 0xa24, CCKSwingTable_Ch14_New[CCKSwingIndex][2]);
- rtw_write8(pDM_Odm->Adapter, 0xa25, CCKSwingTable_Ch14_New[CCKSwingIndex][3]);
- rtw_write8(pDM_Odm->Adapter, 0xa26, CCKSwingTable_Ch14_New[CCKSwingIndex][4]);
- rtw_write8(pDM_Odm->Adapter, 0xa27, CCKSwingTable_Ch14_New[CCKSwingIndex][5]);
- rtw_write8(pDM_Odm->Adapter, 0xa28, CCKSwingTable_Ch14_New[CCKSwingIndex][6]);
- rtw_write8(pDM_Odm->Adapter, 0xa29, CCKSwingTable_Ch14_New[CCKSwingIndex][7]);
- }
+ u8 (*swingtable)[8];
+
+ if (!pDM_Odm->RFCalibrateInfo.bCCKinCH14)
+ swingtable = CCKSwingTable_Ch1_Ch13_New;
+ else
+ swingtable = CCKSwingTable_Ch14_New;
+
+ for (int i = 0; i < 8; i++)
+ rtw_write8(pDM_Odm->Adapter, 0xa22 + i, swingtable[CCKSwingIndex][i]);
}
/*-----------------------------------------------------------------------------