mt76: mt7921: get rid of mcu_reset function pointer
authorLorenzo Bianconi <lorenzo@kernel.org>
Wed, 21 Apr 2021 10:28:33 +0000 (12:28 +0200)
committerFelix Fietkau <nbd@nbd.name>
Wed, 21 Apr 2021 18:55:55 +0000 (20:55 +0200)
since mcu_reset it used only by mt7921, move the reset callback to
mt7921_mcu_parse_response routine and get rid of the function pointer.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mcu.c
drivers/net/wireless/mediatek/mt76/mt76.h
drivers/net/wireless/mediatek/mt76/mt7921/mcu.c

index 70624cd..d3a5e2c 100644 (file)
@@ -99,10 +99,6 @@ int mt76_mcu_skb_send_and_get_msg(struct mt76_dev *dev, struct sk_buff *skb,
                        dev_kfree_skb(skb);
        } while (ret == -EAGAIN);
 
-       /* notify driver code to reset the mcu */
-       if (ret == -ETIMEDOUT && dev->mcu_ops->mcu_reset)
-               dev->mcu_ops->mcu_reset(dev);
-
 out:
        mutex_unlock(&dev->mcu.mutex);
 
index cc5d95a..3b09ea8 100644 (file)
@@ -168,7 +168,6 @@ struct mt76_mcu_ops {
        int (*mcu_rd_rp)(struct mt76_dev *dev, u32 base,
                         struct mt76_reg_pair *rp, int len);
        int (*mcu_restart)(struct mt76_dev *dev);
-       void (*mcu_reset)(struct mt76_dev *dev);
 };
 
 struct mt76_queue_ops {
index c00295b..35aaba7 100644 (file)
@@ -162,6 +162,8 @@ mt7921_mcu_parse_response(struct mt76_dev *mdev, int cmd,
        if (!skb) {
                dev_err(mdev->dev, "Message %08x (seq %d) timeout\n",
                        cmd, seq);
+               mt7921_reset(mdev);
+
                return -ETIMEDOUT;
        }
 
@@ -974,7 +976,6 @@ int mt7921_mcu_init(struct mt7921_dev *dev)
                .mcu_skb_send_msg = mt7921_mcu_send_message,
                .mcu_parse_response = mt7921_mcu_parse_response,
                .mcu_restart = mt7921_mcu_restart,
-               .mcu_reset = mt7921_reset,
        };
 
        dev->mt76.mcu_ops = &mt7921_mcu_ops;