Piotr Oniszczuk <piotr.oniszczuk@xxxxxxxxx> wrote: > > Wiadomość napisana przez Ping-Ke Shih <pkshih@xxxxxxxxxxx> w dniu 23 lip 2025, o godz. 14:23: > > > > Thanks for the hints. I think it's worth to try: > > > > diff --git a/drivers/net/wireless/realtek/rtw88/main.c b/drivers/net/wireless/realtek/rtw88/main.c > > index fa0ed39cb199..5ea13c775796 100644 > > --- a/drivers/net/wireless/realtek/rtw88/main.c > > +++ b/drivers/net/wireless/realtek/rtw88/main.c > > @@ -1861,6 +1861,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; > > diff --git a/drivers/net/wireless/realtek/rtw88/sdio.c b/drivers/net/wireless/realtek/rtw88/sdio.c > > index cc2d4fef3587..5c9e7c8cdd7e 100644 > > --- a/drivers/net/wireless/realtek/rtw88/sdio.c > > +++ b/drivers/net/wireless/realtek/rtw88/sdio.c > > @@ -144,6 +144,10 @@ static u32 rtw_sdio_to_io_address(struct rtw_dev *rtwdev, u32 addr, > > > > static bool rtw_sdio_use_direct_io(struct rtw_dev *rtwdev, u32 addr) > > { > > + if (!rtw_sdio_is_bus_addr(addr) && > > + !test_bit(RTW_FLAG_POWERON, rtwdev->flags)) > > + return false; > > + > > return !rtw_sdio_is_sdio30_supported(rtwdev) || > > rtw_sdio_is_bus_addr(addr); > > } > > > > With this change all works ok. > 15 boots and all 15 were with nice wifi :-) > > dmesg from working system: https://termbin.com/09a1 I sent a patch [1] with a change that check RTW_FLAG_POWERON flag first, so things will be the same as this final try. Still want you test the patch again, and give me a Tested-by tag there. Thanks. [1] https://lore.kernel.org/linux-wireless/20250724004815.7043-1-pkshih@xxxxxxxxxxx/T/#u