return;
 
        if (power_on) {
-               mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0, false);
-               mt76x02_mcu_calibrate(dev, MCU_CAL_VCO, chan->hw_value,
-                                     false);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_VCO, chan->hw_value);
                usleep_range(10, 20);
 
                if (mt76x0_tssi_enabled(dev)) {
                val = 0x600;
        }
 
-       mt76x02_mcu_calibrate(dev, MCU_CAL_FULL, val, false);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_FULL, val);
        msleep(350);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_LC, is_5ghz, false);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_LC, is_5ghz);
        usleep_range(15000, 20000);
 
        mt76_wr(dev, MT_BBP(IBI, 9), reg_val);
        mt76_wr(dev, MT_TX_ALC_CFG_0, tx_alc);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_RXDCOC, 1, false);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_RXDCOC, 1);
 }
 EXPORT_SYMBOL_GPL(mt76x0_phy_calibrate);
 
 
        if (abs(val - dev->cal.temp_vco) > 20) {
                mt76x02_mcu_calibrate(dev, MCU_CAL_VCO,
-                                     dev->mt76.chandef.chan->hw_value,
-                                     false);
+                                     dev->mt76.chandef.chan->hw_value);
                dev->cal.temp_vco = val;
        }
        if (abs(val - dev->cal.temp) > 30) {
 
 }
 EXPORT_SYMBOL_GPL(mt76x02_mcu_set_radio_state);
 
-int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type,
-                         u32 param, bool wait)
+int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type, u32 param)
 {
        struct {
                __le32 id;
                .id = cpu_to_le32(type),
                .value = cpu_to_le32(param),
        };
+       bool is_mt76x2e = mt76_is_mmio(dev) && is_mt76x2(dev);
        int ret;
 
-       if (wait)
+       if (is_mt76x2e)
                mt76_rmw(dev, MT_MCU_COM_REG0, BIT(31), 0);
 
        ret = mt76_mcu_send_msg(dev, CMD_CALIBRATION_OP, &msg, sizeof(msg),
        if (ret)
                return ret;
 
-       if (wait &&
+       if (is_mt76x2e &&
            WARN_ON(!mt76_poll_msec(dev, MT_MCU_COM_REG0,
                                    BIT(31), BIT(31), 100)))
                return -ETIMEDOUT;
 
 };
 
 int mt76x02_mcu_cleanup(struct mt76x02_dev *dev);
-int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type,
-                         u32 param, bool wait);
+int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type, u32 param);
 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,
 
                         struct ieee80211_supported_band *sband);
 void mt76_write_mac_initvals(struct mt76x02_dev *dev);
 
-void mt76x2_phy_tssi_compensate(struct mt76x02_dev *dev, bool wait);
+void mt76x2_phy_tssi_compensate(struct mt76x02_dev *dev);
 void mt76x2_phy_set_txpower_regs(struct mt76x02_dev *dev,
                                 enum nl80211_band band);
 void mt76x2_configure_tx_delay(struct mt76x02_dev *dev,
 
        if (mt76x02_ext_pa_enabled(dev, chan->band))
                flag |= BIT(8);
 
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TSSI, flag, true);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TSSI, flag);
        dev->cal.tssi_cal_done = true;
        return true;
 }
                mt76x2_mac_stop(dev, false);
 
        if (is_5ghz)
-               mt76x02_mcu_calibrate(dev, MCU_CAL_LC, 0, true);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_LC, 0);
 
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_LOFT, is_5ghz, true);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TXIQ, is_5ghz, true);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_RXIQC_FI, is_5ghz, true);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TEMP_SENSOR, 0, true);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_SHAPING, 0, true);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_LOFT, is_5ghz);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TXIQ, is_5ghz);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_RXIQC_FI, is_5ghz);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TEMP_SENSOR, 0);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_SHAPING, 0);
 
        if (!mac_stopped)
                mt76x2_mac_resume(dev);
                u8 val = mt76x02_eeprom_get(dev, MT_EE_BT_RCAL_RESULT);
 
                if (val != 0xff)
-                       mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0, true);
+                       mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0);
        }
 
-       mt76x02_mcu_calibrate(dev, MCU_CAL_RXDCOC, channel, true);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_RXDCOC, channel);
 
        /* Rx LPF calibration */
        if (!dev->cal.init_cal_done)
-               mt76x02_mcu_calibrate(dev, MCU_CAL_RC, 0, true);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_RC, 0);
 
        dev->cal.init_cal_done = true;
 
 
        dev = container_of(work, struct mt76x02_dev, cal_work.work);
        mt76x2_phy_channel_calibrate(dev, false);
-       mt76x2_phy_tssi_compensate(dev, true);
+       mt76x2_phy_tssi_compensate(dev);
        mt76x2_phy_temp_compensate(dev);
        mt76x2_phy_update_channel_gain(dev);
        ieee80211_queue_delayed_work(mt76_hw(dev), &dev->cal_work,
 
 }
 EXPORT_SYMBOL_GPL(mt76x2_configure_tx_delay);
 
-void mt76x2_phy_tssi_compensate(struct mt76x02_dev *dev, bool wait)
+void mt76x2_phy_tssi_compensate(struct mt76x02_dev *dev)
 {
        struct ieee80211_channel *chan = dev->mt76.chandef.chan;
        struct mt76x2_tx_power_info txp;
                        return;
 
                usleep_range(10000, 20000);
-               mt76x02_mcu_calibrate(dev, MCU_CAL_DPD, chan->hw_value, wait);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_DPD, chan->hw_value);
                dev->cal.dpd_cal_done = true;
        }
 }
 
                mt76x2u_mac_stop(dev);
 
        if (is_5ghz)
-               mt76x02_mcu_calibrate(dev, MCU_CAL_LC, 0, false);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_LC, 0);
 
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_LOFT, is_5ghz, false);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TXIQ, is_5ghz, false);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_RXIQC_FI, is_5ghz, false);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TEMP_SENSOR, 0, false);
-       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_SHAPING, 0, false);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_LOFT, is_5ghz);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TXIQ, is_5ghz);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_RXIQC_FI, is_5ghz);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TEMP_SENSOR, 0);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_TX_SHAPING, 0);
 
        if (!mac_stopped)
                mt76x2u_mac_resume(dev);
 
        dev = container_of(work, struct mt76x02_dev, cal_work.work);
        mt76x2u_phy_channel_calibrate(dev, false);
-       mt76x2_phy_tssi_compensate(dev, false);
+       mt76x2_phy_tssi_compensate(dev);
        mt76x2_phy_update_channel_gain(dev);
 
        ieee80211_queue_delayed_work(mt76_hw(dev), &dev->cal_work,
                u8 val = mt76x02_eeprom_get(dev, MT_EE_BT_RCAL_RESULT);
 
                if (val != 0xff)
-                       mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0, false);
+                       mt76x02_mcu_calibrate(dev, MCU_CAL_R, 0);
        }
 
-       mt76x02_mcu_calibrate(dev, MCU_CAL_RXDCOC, channel, false);
+       mt76x02_mcu_calibrate(dev, MCU_CAL_RXDCOC, channel);
 
        /* Rx LPF calibration */
        if (!dev->cal.init_cal_done)
-               mt76x02_mcu_calibrate(dev, MCU_CAL_RC, 0, false);
+               mt76x02_mcu_calibrate(dev, MCU_CAL_RC, 0);
        dev->cal.init_cal_done = true;
 
        mt76_wr(dev, MT_BBP(AGC, 61), 0xff64a4e2);
                                flag |= BIT(0);
                        if (mt76x02_ext_pa_enabled(dev, chan->band))
                                flag |= BIT(8);
-                       mt76x02_mcu_calibrate(dev, MCU_CAL_TSSI, flag, false);
+                       mt76x02_mcu_calibrate(dev, MCU_CAL_TSSI, flag);
                        dev->cal.tssi_cal_done = true;
                }
        }