Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx> wrote: > The chips supported so far only use the first condition, and so the > parsing code ignores the second condition. RTL8812AU's init tables use > the second condition also. Make the parsing code check it. > > Signed-off-by: Bitterblue Smith <rtl8821cerfe2@xxxxxxxxx> > --- > drivers/net/wireless/realtek/rtw88/main.h | 15 ++++++ > drivers/net/wireless/realtek/rtw88/phy.c | 57 ++++++++++++++++++++--- > 2 files changed, 66 insertions(+), 6 deletions(-) > [...] > @@ -1042,6 +1045,7 @@ void rtw_phy_setup_phy_cond(struct rtw_dev *rtwdev, u32 pkg) > struct rtw_hal *hal = &rtwdev->hal; > struct rtw_efuse *efuse = &rtwdev->efuse; > struct rtw_phy_cond cond = {0}; > + struct rtw_phy_cond2 cond2 = {0}; '= {}' I guess you imitate above declaration. Please change both to '= {}'. > > cond.cut = hal->cut_version ? hal->cut_version : 15; > cond.pkg = pkg ? pkg : 15; [...] > @@ -1091,6 +1134,7 @@ void rtw_parse_tbl_phy_cond(struct rtw_dev *rtwdev, const struct rtw_table *tbl) > const union phy_table_tile *p = tbl->data; > const union phy_table_tile *end = p + tbl->size / 2; > struct rtw_phy_cond pos_cond = {0}; > + struct rtw_phy_cond2 pos_cond2 = {0}; ditto. '={}' > bool is_matched = true, is_skipped = false; > > BUILD_BUG_ON(sizeof(union phy_table_tile) != sizeof(struct phy_cfg_pair));