On Fri, Sep 7, 2018 at 4:24 AM Lorenzo Bianconi <lorenzo.bianconi@xxxxxxxxxx> wrote: > > > Actions like that have caused great problems in the past, as the > > kernel won't allow channel control of a monitor interface at all when > > there is a managed interface on the same phy (afaik). > > > > But just for fun and codepath testing here are two test scenarios: > > > > Test 1: "iwconfig t2u mode monitor" > > Sees nothing on any channel, no packets reported > > > > Test 2(requested test): "iw phy phy11 interface add t2uhmon type monitor" > > Sees nothing on any channel, no packets reported. > > Despite having a monitor and managed interface on the same phy, > > iwconfig is reporting that the channel is changing as requested. So > > perhaps my above "afaik" comment is partially outdated. > > > > For both tests the interface was not used to connect to any ap prior > > to or during testing. > > > > Could you please try following patch? Excellent! This seems to work for all channels up to 140, however, not 144 or above. "iw list" shows these are supported but I cannot set them in monitor mode: * 5720 MHz [144] (22.0 dBm) (no IR, radar detection) * 5745 MHz [149] (22.0 dBm) (no IR) * 5765 MHz [153] (22.0 dBm) (no IR) * 5785 MHz [157] (22.0 dBm) (no IR) * 5805 MHz [161] (22.0 dBm) (no IR) * 5825 MHz [165] (22.0 dBm) (no IR) remote2 ~ # iw dev t2uhmon set channel 140 remote2 ~ # iw dev t2uhmon set channel 144 command failed: Invalid argument (-22) Thanks, Zero > Regards, > > Lorenzo > > --- a/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c > +++ b/drivers/net/wireless/mediatek/mt76/mt76x0/phy.c > @@ -756,11 +756,10 @@ __mt76x0_phy_set_channel(struct mt76x0_dev *dev, > > /* Vendor driver don't do it */ > /* mt76x0_phy_set_tx_power(dev, channel, rf_bw_band); */ > + mt76x0_vco_cal(dev, channel); > > if (scan) > - mt76x0_vco_cal(dev, channel); > - > - mt76x0_mcu_calibrate(dev, MCU_CAL_RXDCOC, 1); > + mt76x0_mcu_calibrate(dev, MCU_CAL_RXDCOC, 1); > mt76x0_phy_set_chan_pwr(dev, channel); > > dev->mt76.chandef = *chandef;