Search Linux Wireless

Re: [PATCH 13/13] rtw89: prohibit mac80211 chanctx ops without HW scan

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

 



On Mon, 2022-06-20 at 13:09 +0300, Kalle Valo wrote:
> Ping-Ke Shih <pkshih@xxxxxxxxxxx> writes:
> 
> > From: Zong-Zhe Yang <kevin_yang@xxxxxxxxxxx>
> > 
> > If a chip is configured to support mac80211 chanctx ops, we avoid
> > using older FW that does not support HW scan to make mac80211 stack
> > handle scanning as expected.
> > 
> > Signed-off-by: Zong-Zhe Yang <kevin_yang@xxxxxxxxxxx>
> > Signed-off-by: Ping-Ke Shih <pkshih@xxxxxxxxxxx>
> > ---
> >  drivers/net/wireless/realtek/rtw89/fw.c | 8 ++++++++
> >  1 file changed, 8 insertions(+)
> > 
> > diff --git a/drivers/net/wireless/realtek/rtw89/fw.c b/drivers/net/wireless/realtek/rtw89/fw.c
> > index 0e12629f789c3..a47451dc9d81d 100644
> > --- a/drivers/net/wireless/realtek/rtw89/fw.c
> > +++ b/drivers/net/wireless/realtek/rtw89/fw.c
> > @@ -250,6 +250,7 @@ static void rtw89_fw_recognize_features(struct rtw89_dev *rtwdev)
> >  
> >  int rtw89_fw_recognize(struct rtw89_dev *rtwdev)
> >  {
> > +	const struct rtw89_chip_info *chip = rtwdev->chip;
> >  	int ret;
> >  
> >  	ret = __rtw89_fw_recognize(rtwdev, RTW89_FW_NORMAL);
> > @@ -261,6 +262,13 @@ int rtw89_fw_recognize(struct rtw89_dev *rtwdev)
> >  
> >  	rtw89_fw_recognize_features(rtwdev);
> >  
> > +	if (chip->support_chanctx_num != 0 &&
> > +	    !RTW89_CHK_FW_FEATURE(SCAN_OFFLOAD, &rtwdev->fw)) {
> > +		rtw89_err(rtwdev,
> > +			  "require newer FW to support HW scan for chanctx\n");
> > +		return -ENOENT;
> > +	}
> 
> So if the user has not update the firmware a kernel upgrade will break
> their internet? That's not good, we should not break existing setups. So
> what firmware version is required?
> 

Firmware version 0.13.35.0 is required. The firmware has been in
linux-firmware repository on 2022-02-18. I think people being able
to update kernel can update firmware as well.

The alternative ways could be
1. add a module parameter, like no_channel_context. We can add a
   prompt to note people can set it to 1 for old firmware.

2. wait version of request_firmware() as first step of pci probe.
   The probe could cost longer time, because currently we use
   request_firmware_nowait() and continue to initialize in parallel.
   More, hw->priv isn't allocated at that moment, so it could be not
   so straightforward.


Ping-Ke





[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