Thread (21 messages) 21 messages, 4 authors, 2018-09-19

Re: mt76x0 bug report

From: Sid Hayn <hidden>
Date: 2018-09-08 00:38:12
Also in: linux-mediatek

On Fri, Sep 7, 2018 at 4:24 AM Lorenzo Bianconi
[off-list ref] wrote:
quoted
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
quoted hunk ↗ jump to hunk
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;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help