2022-08-01 11:35:51

by Ping-Ke Shih

[permalink] [raw]
Subject: [PATCH v3] wifi: rtlwifi: 8192de: correct checking of IQK reload

Since IQK could spend time, we make a cache of IQK result matrix that looks
like iqk_matrix[channel_idx].val[x][y], and we can reload the matrix if we
have made a cache. To determine a cache is made, we check
iqk_matrix[channel_idx].val[0][0].

The initial commit 7274a8c22980 ("rtlwifi: rtl8192de: Merge phy routines")
make a mistake that checks incorrect iqk_matrix[channel_idx].val[0] that
is always true, and this mistake is found by commit ee3db469dd31
("wifi: rtlwifi: remove always-true condition pointed out by GCC 12"), so
I recall the vendor driver to find fix and apply the correctness.

Fixes: 7274a8c22980 ("rtlwifi: rtl8192de: Merge phy routines")
Signed-off-by: Ping-Ke Shih <[email protected]>
---
v3: add "wifi:" title prefix
v2: add more commit message to make it clear what this patch does
---
drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c | 9 ++++-----
1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
index 15e6a6aded319..d18c092b61426 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8192de/phy.c
@@ -2386,11 +2386,10 @@ void rtl92d_phy_reload_iqk_setting(struct ieee80211_hw *hw, u8 channel)
rtl_dbg(rtlpriv, COMP_SCAN, DBG_LOUD,
"Just Read IQK Matrix reg for channel:%d....\n",
channel);
- _rtl92d_phy_patha_fill_iqk_matrix(hw, true,
- rtlphy->iqk_matrix[
- indexforchannel].value, 0,
- (rtlphy->iqk_matrix[
- indexforchannel].value[0][2] == 0));
+ if (rtlphy->iqk_matrix[indexforchannel].value[0][0] != 0)
+ _rtl92d_phy_patha_fill_iqk_matrix(hw, true,
+ rtlphy->iqk_matrix[indexforchannel].value, 0,
+ rtlphy->iqk_matrix[indexforchannel].value[0][2] == 0);
if (IS_92D_SINGLEPHY(rtlhal->version)) {
if ((rtlphy->iqk_matrix[
indexforchannel].value[0][4] != 0)
--
2.25.1



2022-08-09 06:02:24

by Kalle Valo

[permalink] [raw]
Subject: Re: [PATCH v3] wifi: rtlwifi: 8192de: correct checking of IQK reload

Ping-Ke Shih <[email protected]> wrote:

> Since IQK could spend time, we make a cache of IQK result matrix that looks
> like iqk_matrix[channel_idx].val[x][y], and we can reload the matrix if we
> have made a cache. To determine a cache is made, we check
> iqk_matrix[channel_idx].val[0][0].
>
> The initial commit 7274a8c22980 ("rtlwifi: rtl8192de: Merge phy routines")
> make a mistake that checks incorrect iqk_matrix[channel_idx].val[0] that
> is always true, and this mistake is found by commit ee3db469dd31
> ("wifi: rtlwifi: remove always-true condition pointed out by GCC 12"), so
> I recall the vendor driver to find fix and apply the correctness.
>
> Fixes: 7274a8c22980 ("rtlwifi: rtl8192de: Merge phy routines")
> Signed-off-by: Ping-Ke Shih <[email protected]>

Patch applied to wireless-next.git, thanks.

93fbc1ebd978 wifi: rtlwifi: 8192de: correct checking of IQK reload

--
https://patchwork.kernel.org/project/linux-wireless/patch/[email protected]/

https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches