diff --git a/mt7603.h b/mt7603.h index 4b822ffa..5c89b499 100644 --- a/mt7603.h +++ b/mt7603.h @@ -232,8 +232,6 @@ void mt7603_mac_tx_ba_reset(struct mt7603_dev *dev, int wcid, int tid, int ssn, int mt7603_mcu_set_channel(struct mt7603_dev *dev); int mt7603_mcu_set_eeprom(struct mt7603_dev *dev); -int mt7603_mcu_set_timing(struct mt7603_dev *dev, int slot, int sifs, int rifs, - int eifs); void mt7603_mcu_exit(struct mt7603_dev *dev); void mt7603_wtbl_init(struct mt7603_dev *dev, int idx, int vif, const u8 *mac_addr); diff --git a/mt7603_mac.c b/mt7603_mac.c index 4fca0a25..532d9fb5 100644 --- a/mt7603_mac.c +++ b/mt7603_mac.c @@ -60,9 +60,17 @@ void mt7603_mac_set_timing(struct mt7603_dev *dev) else sifs = 10; - mt7603_mcu_set_timing(dev, dev->slottime + offset, sifs, 2, 360); + mt7603_mac_stop(dev); + mt76_wr(dev, MT_TIMEOUT_CCK, cck + reg_offset); mt76_wr(dev, MT_TIMEOUT_OFDM, ofdm + reg_offset); + mt76_wr(dev, MT_IFS, + FIELD_PREP(MT_IFS_EIFS, 360) | + FIELD_PREP(MT_IFS_RIFS, 2) | + FIELD_PREP(MT_IFS_SIFS, sifs) | + FIELD_PREP(MT_IFS_SLOT, dev->slottime)); + + mt7603_mac_start(dev); } static void diff --git a/mt7603_mcu.c b/mt7603_mcu.c index e04eb0ce..03fe9a60 100644 --- a/mt7603_mcu.c +++ b/mt7603_mcu.c @@ -497,25 +497,3 @@ int mt7603_mcu_set_channel(struct mt7603_dev *dev) return mt7603_mcu_set_tx_power(dev); } - -int mt7603_mcu_set_timing(struct mt7603_dev *dev, int slot, int sifs, int rifs, - int eifs) -{ - struct { - u8 slot_time; - u8 sifs_time; - u8 rifs_time; - u8 __res0; - __le16 eifs_time; - __le16 __res1; - } req = { - .slot_time = slot, - .sifs_time = sifs, - .rifs_time = cpu_to_le16(rifs), - .eifs_time = cpu_to_le16(eifs), - }; - struct sk_buff *skb; - - skb = mt7603_mcu_msg_alloc(&req, sizeof(req)); - return mt7603_mcu_msg_send(dev, skb, MCU_EXT_CMD_SLOT_TIME_SET, MCU_Q_SET, NULL); -}