Skip to content

Commit c67d7c7

Browse files
arndbPing-Ke Shih
authored andcommitted
wifi: rtw89: fix -Wenum-compare-conditional warnings
This is one of three drivers that trigger -Wenum-compare-conditional warnings with clang: drivers/net/wireless/realtek/rtw89/core.c:1806:14: error: conditional expression between different enumeration types ('enum nl80211_eht_gi' and 'enum nl80211_he_gi') [-Werror,-Wenum-compare-conditional] 1806 | return eht ? NL80211_RATE_INFO_EHT_GI_0_8 : | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1807 | NL80211_RATE_INFO_HE_GI_0_8; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/realtek/rtw89/core.c:1810:14: error: conditional expression between different enumeration types ('enum nl80211_eht_gi' and 'enum nl80211_he_gi') [-Werror,-Wenum-compare-conditional] 1810 | return eht ? NL80211_RATE_INFO_EHT_GI_1_6 : | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1811 | NL80211_RATE_INFO_HE_GI_1_6; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/realtek/rtw89/core.c:1813:14: error: conditional expression between different enumeration types ('enum nl80211_eht_gi' and 'enum nl80211_he_gi') [-Werror,-Wenum-compare-conditional] 1813 | return eht ? NL80211_RATE_INFO_EHT_GI_3_2 : | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1814 | NL80211_RATE_INFO_HE_GI_3_2; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/wireless/realtek/rtw89/core.c:1818:15: error: conditional expression between different enumeration types ('enum nl80211_eht_gi' and 'enum nl80211_he_gi') [-Werror,-Wenum-compare-conditional] 1818 | return eht ? NL80211_RATE_INFO_EHT_GI_3_2 : | ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1819 | NL80211_RATE_INFO_HE_GI_3_2; | ~~~~~~~~~~~~~~~~~~~~~~~~~~~ In this case, all four warnings can be easily avoided by splitting the function into two separate ones, in a way that helps readability as well, at the expense of a few extra source lines. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Nathan Chancellor <nathan@kernel.org> Signed-off-by: Ping-Ke Shih <pkshih@realtek.com> Link: https://patch.msgid.link/20241018152311.4023979-1-arnd@kernel.org
1 parent 142c062 commit c67d7c7

File tree

1 file changed

+37
-11
lines changed
  • drivers/net/wireless/realtek/rtw89

1 file changed

+37
-11
lines changed

drivers/net/wireless/realtek/rtw89/core.c

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1858,32 +1858,58 @@ static void rtw89_core_rx_process_phy_sts(struct rtw89_dev *rtwdev,
18581858
phy_ppdu);
18591859
}
18601860

1861-
static u8 rtw89_rxdesc_to_nl_he_eht_gi(struct rtw89_dev *rtwdev,
1862-
u8 desc_info_gi,
1863-
bool rx_status, bool eht)
1861+
static u8 rtw89_rxdesc_to_nl_he_gi(struct rtw89_dev *rtwdev,
1862+
u8 desc_info_gi,
1863+
bool rx_status)
1864+
{
1865+
switch (desc_info_gi) {
1866+
case RTW89_GILTF_SGI_4XHE08:
1867+
case RTW89_GILTF_2XHE08:
1868+
case RTW89_GILTF_1XHE08:
1869+
return NL80211_RATE_INFO_HE_GI_0_8;
1870+
case RTW89_GILTF_2XHE16:
1871+
case RTW89_GILTF_1XHE16:
1872+
return NL80211_RATE_INFO_HE_GI_1_6;
1873+
case RTW89_GILTF_LGI_4XHE32:
1874+
return NL80211_RATE_INFO_HE_GI_3_2;
1875+
default:
1876+
rtw89_warn(rtwdev, "invalid gi_ltf=%d", desc_info_gi);
1877+
if (rx_status)
1878+
return NL80211_RATE_INFO_HE_GI_3_2;
1879+
return U8_MAX;
1880+
}
1881+
}
1882+
1883+
static u8 rtw89_rxdesc_to_nl_eht_gi(struct rtw89_dev *rtwdev,
1884+
u8 desc_info_gi,
1885+
bool rx_status)
18641886
{
18651887
switch (desc_info_gi) {
18661888
case RTW89_GILTF_SGI_4XHE08:
18671889
case RTW89_GILTF_2XHE08:
18681890
case RTW89_GILTF_1XHE08:
1869-
return eht ? NL80211_RATE_INFO_EHT_GI_0_8 :
1870-
NL80211_RATE_INFO_HE_GI_0_8;
1891+
return NL80211_RATE_INFO_EHT_GI_0_8;
18711892
case RTW89_GILTF_2XHE16:
18721893
case RTW89_GILTF_1XHE16:
1873-
return eht ? NL80211_RATE_INFO_EHT_GI_1_6 :
1874-
NL80211_RATE_INFO_HE_GI_1_6;
1894+
return NL80211_RATE_INFO_EHT_GI_1_6;
18751895
case RTW89_GILTF_LGI_4XHE32:
1876-
return eht ? NL80211_RATE_INFO_EHT_GI_3_2 :
1877-
NL80211_RATE_INFO_HE_GI_3_2;
1896+
return NL80211_RATE_INFO_EHT_GI_3_2;
18781897
default:
18791898
rtw89_warn(rtwdev, "invalid gi_ltf=%d", desc_info_gi);
18801899
if (rx_status)
1881-
return eht ? NL80211_RATE_INFO_EHT_GI_3_2 :
1882-
NL80211_RATE_INFO_HE_GI_3_2;
1900+
return NL80211_RATE_INFO_EHT_GI_3_2;
18831901
return U8_MAX;
18841902
}
18851903
}
18861904

1905+
static u8 rtw89_rxdesc_to_nl_he_eht_gi(struct rtw89_dev *rtwdev,
1906+
u8 desc_info_gi,
1907+
bool rx_status, bool eht)
1908+
{
1909+
return eht ? rtw89_rxdesc_to_nl_eht_gi(rtwdev, desc_info_gi, rx_status) :
1910+
rtw89_rxdesc_to_nl_he_gi(rtwdev, desc_info_gi, rx_status);
1911+
}
1912+
18871913
static
18881914
bool rtw89_check_rx_statu_gi_match(struct ieee80211_rx_status *status, u8 gi_ltf,
18891915
bool eht)

0 commit comments

Comments
 (0)