mt7615_mcu_add_bss_info(phy, vif, NULL, true);
                mt7615_mcu_sta_add(phy, vif, NULL, true);
 
-               if (vif->p2p)
-                       mt7615_mcu_set_p2p_oppps(hw, vif);
+               if (mt7615_firmware_offload(dev) && vif->p2p)
+                       mt76_connac_mcu_set_p2p_oppps(hw, vif);
        }
 
        if (changed & (BSS_CHANGED_BEACON |
 
                                 sizeof(req), false);
 }
 
-int mt7615_mcu_set_p2p_oppps(struct ieee80211_hw *hw,
-                            struct ieee80211_vif *vif)
-{
-       struct mt7615_vif *mvif = (struct mt7615_vif *)vif->drv_priv;
-       int ct_window = vif->bss_conf.p2p_noa_attr.oppps_ctwindow;
-       struct mt7615_dev *dev = mt7615_hw_dev(hw);
-       struct {
-               __le32 ct_win;
-               u8 bss_idx;
-               u8 rsv[3];
-       } __packed req = {
-               .ct_win = cpu_to_le32(ct_window),
-               .bss_idx = mvif->mt76.idx,
-       };
-
-       if (!mt7615_firmware_offload(dev))
-               return -ENOTSUPP;
-
-       return mt76_mcu_send_msg(&dev->mt76, MCU_CMD_SET_P2P_OPPPS, &req,
-                                sizeof(req), false);
-}
-
 u32 mt7615_mcu_reg_rr(struct mt76_dev *dev, u32 offset)
 {
        struct {
 
 int mt7615_mcu_apply_tx_dpd(struct mt7615_phy *phy);
 int mt7615_dfs_init_radar_detector(struct mt7615_phy *phy);
 
-int mt7615_mcu_set_p2p_oppps(struct ieee80211_hw *hw,
-                            struct ieee80211_vif *vif);
 int mt7615_mcu_set_roc(struct mt7615_phy *phy, struct ieee80211_vif *vif,
                       struct ieee80211_channel *chan, int duration);
 
 
 }
 EXPORT_SYMBOL_GPL(mt76_connac_mcu_update_arp_filter);
 
+int mt76_connac_mcu_set_p2p_oppps(struct ieee80211_hw *hw,
+                                 struct ieee80211_vif *vif)
+{
+       struct mt76_vif *mvif = (struct mt76_vif *)vif->drv_priv;
+       int ct_window = vif->bss_conf.p2p_noa_attr.oppps_ctwindow;
+       struct mt76_phy *phy = hw->priv;
+       struct {
+               __le32 ct_win;
+               u8 bss_idx;
+               u8 rsv[3];
+       } __packed req = {
+               .ct_win = cpu_to_le32(ct_window),
+               .bss_idx = mvif->idx,
+       };
+
+       return mt76_mcu_send_msg(phy->dev, MCU_CMD_SET_P2P_OPPPS, &req,
+                                sizeof(req), false);
+}
+EXPORT_SYMBOL_GPL(mt76_connac_mcu_set_p2p_oppps);
+
 #ifdef CONFIG_PM
 
 const struct wiphy_wowlan_support mt76_connac_wowlan_support = {
 
 void mt76_connac_mcu_coredump_event(struct mt76_dev *dev, struct sk_buff *skb,
                                    struct mt76_connac_coredump *coredump);
 int mt76_connac_mcu_set_rate_txpower(struct mt76_phy *phy);
+int mt76_connac_mcu_set_p2p_oppps(struct ieee80211_hw *hw,
+                                 struct ieee80211_vif *vif);
 #endif /* __MT76_CONNAC_MCU_H */