static void mt76x0_phy_ant_select(struct mt76x02_dev *dev)
 {
        u16 ee_ant = mt76x02_eeprom_get(dev, MT_EE_ANTENNA);
+       u16 ee_cfg1 = mt76x02_eeprom_get(dev, MT_EE_CFG1_INIT);
        u16 nic_conf2 = mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_2);
-       u32 wlan, coex3, cmb;
+       u32 wlan, coex3;
        bool ant_div;
 
        wlan = mt76_rr(dev, MT_WLAN_FUN_CTRL);
-       cmb = mt76_rr(dev, MT_CMB_CTRL);
        coex3 = mt76_rr(dev, MT_COEXCFG3);
 
-       cmb   &= ~(BIT(14) | BIT(12));
+       ee_ant &= ~(BIT(14) | BIT(12));
        wlan  &= ~(BIT(6) | BIT(5));
        coex3 &= ~GENMASK(5, 2);
 
                ant_div = !(nic_conf2 & MT_EE_NIC_CONF_2_ANT_OPT) &&
                          (nic_conf2 & MT_EE_NIC_CONF_2_ANT_DIV);
                if (ant_div)
-                       cmb |= BIT(12);
+                       ee_ant |= BIT(12);
                else
                        coex3 |= BIT(4);
                coex3 |= BIT(3);
        }
 
        if (is_mt7630(dev))
-               cmb |= BIT(14) | BIT(11);
+               ee_ant |= BIT(14) | BIT(11);
 
        mt76_wr(dev, MT_WLAN_FUN_CTRL, wlan);
-       mt76_wr(dev, MT_CMB_CTRL, cmb);
+       mt76_rmw(dev, MT_CMB_CTRL, GENMASK(15, 0), ee_ant);
+       mt76_rmw(dev, MT_CSR_EE_CFG1, GENMASK(15, 0), ee_cfg1);
        mt76_clear(dev, MT_COEXCFG0, BIT(2));
        mt76_wr(dev, MT_COEXCFG3, coex3);
 }
 
 #define MT_WLAN_FUN_CTRL_GPIO_OUT      GENMASK(23, 16) /* MT76x0 */
 #define MT_WLAN_FUN_CTRL_GPIO_OUT_EN   GENMASK(31, 24) /* MT76x0 */
 
+/* MT76x0 */
+#define MT_CSR_EE_CFG1                 0x0104
+
 #define MT_XO_CTRL0                    0x0100
 #define MT_XO_CTRL1                    0x0104
 #define MT_XO_CTRL2                    0x0108