Search Linux Wireless

Re: mt76x0 bug report

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

 



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;



[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