Search Linux Wireless

Re: mt76x2e MCU message 31 timed out

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

 



(correct Felix email address)

On Fri, Jun 22, 2018 at 05:51:53PM +0200, Janusz Dziedzic wrote:
> 2018-06-22 16:48 GMT+02:00 Stanislaw Gruszka <sgruszka@xxxxxxxxxx>:
> > Hi
> >
> > On Fri, Jun 22, 2018 at 10:37:35AM +0200, Janusz Dziedzic wrote:
> >> Have this card in my laptop:
> >> 02:00.0 Network controller: MEDIATEK Corp. Device 7612
> >>
> >> [    8.478104] mt76x2e 0000:02:00.0: ASIC revision: 76120044
> >> [    8.489582] mt76x2e 0000:02:00.0: ROM patch already applied
> >> [    8.833476] mt76x2e 0000:02:00.0: Firmware Version: 0.0.00
> >> [    8.833477] mt76x2e 0000:02:00.0: Build: 1
> >> [    8.833479] mt76x2e 0000:02:00.0: Build Time: 201507311614____
> >> [    8.856115] mt76x2e 0000:02:00.0: Firmware running!
> >> [    9.558075] mt76x2e 0000:02:00.0 wlp2s0: renamed from wlan1
> >
> > I'm just curious. Does the card was installed in the laptop by default?
> > If so what is the model of the laptop?
> >
> No, I just buy this card on aliexpress and put into some dell (MTK
> MT7612 2x2 half miniPCIE).
> 
> >> Linux test4 4.17.0-rc7+ #5 SMP Mon May 28 12:35:22 CEST 2018 x86_64 GNU/Linux
> >>
> >> Seems iw scan works correctly and first assoc. After will run some
> >> traffic (iperf in such case) get:
> >>
> >> [  432.372081] wlp2s0: associate with 52:b4:f7:f0:16:c2 (try 2/3)
> >> [  432.375255] wlp2s0: RX AssocResp from 52:b4:f7:f0:16:c2
> >> (capab=0x511 status=0 aid=2)
> >> [  432.375336] wlp2s0: associated
> >> [  432.451097] IPv6: ADDRCONF(NETDEV_CHANGE): wlp2s0: link becomes ready
> >> [  522.562157] mt76x2e 0000:02:00.0: MCU message 31 (seq 13) timed out
> >> [  524.610281] mt76x2e 0000:02:00.0: MCU message 31 (seq 14) timed out
> >> [  526.658384] mt76x2e 0000:02:00.0: MCU message 31 (seq 15) timed out
> >> [  528.258455] mt76x2e 0000:02:00.0: MCU message 30 (seq 1) timed out
> >> [  529.282499] mt76x2e 0000:02:00.0: MCU message 30 (seq 2) timed out
> >> [  530.402544] mt76x2e 0000:02:00.0: MCU message 30 (seq 3) timed out
> >> [  531.426587] mt76x2e 0000:02:00.0: MCU message 30 (seq 4) timed out
> >> [  531.427444] wlp2s0: authenticate with 52:b4:f7:f0:14:ac
> >> [  532.450624] mt76x2e 0000:02:00.0: MCU message 30 (seq 5) timed out
> >> [  533.474666] mt76x2e 0000:02:00.0: MCU message 30 (seq 6) timed out
> >> [  534.498709] mt76x2e 0000:02:00.0: MCU message 30 (seq 7) timed out
> >> [  535.522736] mt76x2e 0000:02:00.0: MCU message 30 (seq 8) timed out
> >> [  535.522807] wlp2s0: send auth to 52:b4:f7:f0:14:ac (try 1/3)
> >> [  535.726740] wlp2s0: send auth to 52:b4:f7:f0:14:ac (try 2/3)
> >> [  535.930742] wlp2s0: send auth to 52:b4:f7:f0:14:ac (try 3/3)
> >> [  536.134747] wlp2s0: authentication with 52:b4:f7:f0:14:ac timed out
> >
> > I observed quite similar issue on some rt2800 devices when
> > I applied  this patch:
> > https://github.com/sgruszka/wireless-drivers-next/commit/846d205edd8c36d1b7828fee54bf4cf40bf8cb1a
> > It works on some devices and does not work on others with similar
> > symptoms - correctly associate but stop to work as soon as some
> > data traffic is performed.
> >
> > So, I would check if send IEEE80211_TX_CTL_RATE_CTRL_PROBE frames
> > with qsel = MT_QSEL_EDCA would help.
> >
> Thanks, will check this.

I guess it does not help? You can check attached patch instead
(note I only compile tested it).

Regards
Stanislaw
> 
> > Another thing to try is checkout vendor driver and see if there is need
> > to add extra code if device is_mt7612() .
> >
> > Regards
> > Stanislaw
> 
> 
> 
> -- 
> Janusz Dziedzic
>From 4f7cf0a78dd34b88f8158197e911624a5c4a862a Mon Sep 17 00:00:00 2001
From: Stanislaw Gruszka <sgruszka@xxxxxxxxxx>
Date: Wed, 11 Jul 2018 14:22:28 +0200
Subject: [PATCH v2] mt76x2: reset HW before probe

Signed-off-by: Stanislaw Gruszka <sgruszka@xxxxxxxxxx>
---
 drivers/net/wireless/mediatek/mt76/mt76x2.h      | 1 +
 drivers/net/wireless/mediatek/mt76/mt76x2_init.c | 2 +-
 drivers/net/wireless/mediatek/mt76/mt76x2_pci.c  | 2 ++
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2.h b/drivers/net/wireless/mediatek/mt76/mt76x2.h
index 71fcfa44fb2e..33318ac8fe81 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2.h
@@ -180,6 +180,7 @@ static inline void mt76x2_irq_disable(struct mt76x2_dev *dev, u32 mask)
 
 struct mt76x2_dev *mt76x2_alloc_device(struct device *pdev);
 int mt76x2_register_device(struct mt76x2_dev *dev);
+void mt76x2_set_wlan_state(struct mt76x2_dev *dev, bool enable);
 void mt76x2_init_debugfs(struct mt76x2_dev *dev);
 
 irqreturn_t mt76x2_irq_handler(int irq, void *dev_instance);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
index 79ab93613e06..782b350fee65 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_init.c
@@ -498,7 +498,7 @@ void mt76x2_set_tx_ackto(struct mt76x2_dev *dev)
 		       MT_TX_TIMEOUT_CFG_ACKTO, ackto);
 }
 
-static void
+void
 mt76x2_set_wlan_state(struct mt76x2_dev *dev, bool enable)
 {
 	u32 val = mt76_rr(dev, MT_WLAN_FUN_CTRL);
diff --git a/drivers/net/wireless/mediatek/mt76/mt76x2_pci.c b/drivers/net/wireless/mediatek/mt76/mt76x2_pci.c
index e66f047ea448..50f29d8393f1 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76x2_pci.c
+++ b/drivers/net/wireless/mediatek/mt76/mt76x2_pci.c
@@ -54,6 +54,8 @@
 
 	mt76_mmio_init(&dev->mt76, pcim_iomap_table(pdev)[0]);
 
+	mt76x2_set_wlan_state(dev, false);
+
 	dev->mt76.rev = mt76_rr(dev, MT_ASIC_VERSION);
 	dev_info(dev->mt76.dev, "ASIC revision: %08x\n", dev->mt76.rev);
 
-- 
1.9.3


[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