FAILED: patch "[PATCH] mt76: mt76x0u: do not reset radio on resume" failed to apply to 4.19-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.19-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 8f2d163cb26da87e7d8e1677368b8ba1ba4d30b3 Mon Sep 17 00:00:00 2001
From: Stanislaw Gruszka <[email protected]>
Date: Thu, 18 Jul 2019 12:38:10 +0200
Subject: [PATCH] mt76: mt76x0u: do not reset radio on resume
On some machines mt76x0u firmware can hung during resume, what result on messages like below:
[ 475.480062] mt76x0 1-8:1.0: Error: MCU response pre-completed! [ 475.990066] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110 [ 475.990075] mt76x0 1-8:1.0: Error: MCU response pre-completed! [ 476.500003] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110 [ 476.500012] mt76x0 1-8:1.0: Error: MCU response pre-completed! [ 477.010046] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110 [ 477.010055] mt76x0 1-8:1.0: Error: MCU response pre-completed! [ 477.529997] mt76x0 1-8:1.0: Error: send MCU cmd failed:-110 [ 477.530006] mt76x0 1-8:1.0: Error: MCU response pre-completed! [ 477.824907] mt76x0 1-8:1.0: Error: send MCU cmd failed:-71 [ 477.824916] mt76x0 1-8:1.0: Error: MCU response pre-completed! [ 477.825029] usb 1-8: USB disconnect, device number 6
and possible whole system freeze.
This can be avoided, if we do not perform mt76x0_chip_onoff() reset.
Fixes 134b2d0d1fcf ("mt76x0: init files")
Signed-off-by Stanislaw Gruszka <[email protected]>
Signed-off-by Kalle Valo <[email protected]>
drivers/net/wireless/mediatek/mt76/mt76x0/usb.c +4 -4
@@ -136,11 +136,11 @@ static const struct ieee80211_ops mt76x0u_ops = { .release_buffered_frames = mt76_release_buffered_frames, }; -static int mt76x0u_init_hardware (struct mt76x02_dev *dev) +static int mt76x0u_init_hardware (struct mt76x02_dev *dev,bool reset) {int err; -mt76x0_chip_onoff (dev, true, true); +mt76x0_chip_onoff (dev, true, reset);if (!mt76x02_wait_for_mac (&dev->mt76))return -ETIMEDOUT ;
@@ -173,7 +173,7 @@ static int mt76x0u_register_device(struct mt76x02_dev *dev)if (err <0 ) goto out_err; - err =mt76x0u_init_hardware (dev); + err =mt76x0u_init_hardware (dev, true);if (err <0 ) goto out_err;
@@ -309,7 +309,7 @@ static int __maybe_unused mt76x0_resume(struct usb_interface *usb_intf)if (ret <0 ) goto err; - ret =mt76x0u_init_hardware (dev); + ret =mt76x0u_init_hardware (dev, false);if (ret) goto err;