Search Linux Wireless

RE: rtl8822cs, mainline 6.16-rc7: kernel reports ' unsupported rf path'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Piotr Oniszczuk <piotr.oniszczuk@xxxxxxxxx> wrote:
> > Wiadomość napisana przez Ping-Ke Shih <pkshih@xxxxxxxxxxx> w dniu 23 lip 2025, o godz. 02:52:
> >
> > Piotr Oniszczuk <piotr.oniszczuk@xxxxxxxxx> wrote:
> >
> > [...]
> >
> >>
> >> Working: HT RX MCS indexes: 0-15
> >> Non-working: HT RX MCS indexes: 0-7
> >>
> >> Isn’t that 8-15 are for 2x2mimo?
> >> So maybe - by some reason - hw sometimes reports support for only 1x mimo but receives from air 2x mimo
> >> (2 streams) and thats why I see hell of "unsupported rf path"  errors from driver?
> >
> > I think your point is correct that firmware reports incorrect value somehow.
> > With below changes, we can check this:
> >
> > diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
> > index fa0ed39cb199..3363458a9ea1 100644
> > --- a/drivers/net/wireless/realtek/rtw88/main.c
> > +++ b/drivers/net/wireless/realtek/rtw88/main.
> 
> 
> …….
> 
> 
> pls find dmesg from:
> 
> non-working state: https://termbin.com/8x42
> working state: https://termbin.com/b804

The dmsg find 
non-working state:
   rtw88: rtw_chip_parameter_setup:1872 hal->rf_phy_num=1 hal->rf_path_num=1
working state:
   rtw88: rtw_chip_parameter_setup:1872 hal->rf_phy_num=2 hal->rf_path_num=2

They were induced from register 
  #define REG_SYS_CFG1		0x00F0

Please apply below change and share the working/non-working sates.

diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c
index fa0ed39cb199..95decf90a43d 100644
--- a/drivers/net/wireless/realtek/rtw88/main.c
+++ b/drivers/net/wireless/realtek/rtw88/main.c
@@ -1861,6 +1864,8 @@ static int rtw_chip_parameter_setup(struct rtw_dev *rtwdev)
        hal->chip_version = rtw_read32(rtwdev, REG_SYS_CFG1);
        hal->cut_version = BIT_GET_CHIP_VER(hal->chip_version);
        hal->mp_chip = (hal->chip_version & BIT_RTL_ID) ? 0 : 1;
+       printk("rtw88: %s:%d hal->chip_version=0x%x\n",
+               __func__, __LINE__, hal->chip_version);
        if (hal->chip_version & BIT_RF_TYPE_ID) {
                hal->rf_type = RF_2T2R;
                hal->rf_path_num = 2;







[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux