mt76: remove wait argument from mt76x02_mcu_function_select
authorStanislaw Gruszka <sgruszka@redhat.com>
Fri, 26 Oct 2018 12:00:28 +0000 (14:00 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 30 Nov 2018 11:21:43 +0000 (12:21 +0100)
Remove wait argument from mt76x02_mcu_function_select and wait for
response when function is not Q_SELECT, what is the same behaviour
like in vendor driver.

Note this change behaviour for PCIe devices for Q_SELECT function
form wait to no-wait, and for mt76x0u BW_SETTING from no-wait to wait.
But the change is in align with vendor driver.

Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt76x0/init.c
drivers/net/wireless/mediatek/mt76/mt76x0/phy.c
drivers/net/wireless/mediatek/mt76/mt76x02_mcu.c
drivers/net/wireless/mediatek/mt76/mt76x02_mcu.h
drivers/net/wireless/mediatek/mt76/mt76x2/pci_mcu.c
drivers/net/wireless/mediatek/mt76/mt76x2/usb_mcu.c

index 55db5a1..e74d476 100644 (file)
@@ -227,7 +227,7 @@ int mt76x0_init_hardware(struct mt76x02_dev *dev)
                return -ETIMEDOUT;
 
        mt76x0_reset_csr_bbp(dev);
-       ret = mt76x02_mcu_function_select(dev, Q_SELECT, 1, false);
+       ret = mt76x02_mcu_function_select(dev, Q_SELECT, 1);
        if (ret)
                return ret;
 
index 1450ba5..e9e6d33 100644 (file)
@@ -500,7 +500,7 @@ mt76x0_phy_bbp_set_bw(struct mt76x02_dev *dev, enum nl80211_chan_width width)
                return ;
        }
 
-       mt76x02_mcu_function_select(dev, BW_SETTING, bw, false);
+       mt76x02_mcu_function_select(dev, BW_SETTING, bw);
 }
 
 static void mt76x0_phy_tssi_dc_calibrate(struct mt76x02_dev *dev)
index 550e73f..cd906b4 100644 (file)
@@ -132,9 +132,8 @@ out:
 }
 EXPORT_SYMBOL_GPL(mt76x02_mcu_msg_send);
 
-int mt76x02_mcu_function_select(struct mt76x02_dev *dev,
-                               enum mcu_function func,
-                               u32 val, bool wait_resp)
+int mt76x02_mcu_function_select(struct mt76x02_dev *dev, enum mcu_function func,
+                               u32 val)
 {
        struct {
            __le32 id;
@@ -143,9 +142,12 @@ int mt76x02_mcu_function_select(struct mt76x02_dev *dev,
            .id = cpu_to_le32(func),
            .value = cpu_to_le32(val),
        };
+       bool wait = false;
 
-       return mt76_mcu_send_msg(dev, CMD_FUN_SET_OP, &msg, sizeof(msg),
-                                wait_resp);
+       if (func != Q_SELECT)
+               wait = true;
+
+       return mt76_mcu_send_msg(dev, CMD_FUN_SET_OP, &msg, sizeof(msg), wait);
 }
 EXPORT_SYMBOL_GPL(mt76x02_mcu_function_select);
 
index a3aee57..f34d55b 100644 (file)
@@ -101,9 +101,8 @@ int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type,
                          u32 param, bool wait);
 int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
                         int len, bool wait_resp);
-int mt76x02_mcu_function_select(struct mt76x02_dev *dev,
-                               enum mcu_function func,
-                               u32 val, bool wait_resp);
+int mt76x02_mcu_function_select(struct mt76x02_dev *dev, enum mcu_function func,
+                               u32 val);
 int mt76x02_mcu_set_radio_state(struct mt76x02_dev *dev, bool on,
                                bool wait_resp);
 void mt76x02_set_ethtool_fwver(struct mt76x02_dev *dev,
index b5067ee..03e24ae 100644 (file)
@@ -182,6 +182,6 @@ int mt76x2_mcu_init(struct mt76x02_dev *dev)
        if (ret)
                return ret;
 
-       mt76x02_mcu_function_select(dev, Q_SELECT, 1, true);
+       mt76x02_mcu_function_select(dev, Q_SELECT, 1);
        return 0;
 }
index d6e3e66..ca9037a 100644 (file)
@@ -258,7 +258,7 @@ int mt76x2u_mcu_init(struct mt76x02_dev *dev)
 {
        int err;
 
-       err = mt76x02_mcu_function_select(dev, Q_SELECT, 1, false);
+       err = mt76x02_mcu_function_select(dev, Q_SELECT, 1);
        if (err < 0)
                return err;