From 89029a85482cbcf68026a89fc974e8f6898d6b37 Mon Sep 17 00:00:00 2001 From: Ryder Lee Date: Tue, 12 May 2020 00:06:33 +0800 Subject: mt76: mt7915: add Tx beamformer support Enable TxBF modules and trigger sounding process to support Tx beamformer. Signed-off-by: Ryder Lee Tested-by: Evelyn Tsai --- drivers/net/wireless/mediatek/mt76/mt7915/init.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'drivers/net/wireless/mediatek/mt76/mt7915/init.c') diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/init.c b/drivers/net/wireless/mediatek/mt76/mt7915/init.c index 7d59571216e3..3721bd632b4d 100644 --- a/drivers/net/wireless/mediatek/mt76/mt7915/init.c +++ b/drivers/net/wireless/mediatek/mt76/mt7915/init.c @@ -57,6 +57,25 @@ static void mt7915_mac_init(struct mt7915_dev *dev) mt7915_mcu_set_rts_thresh(&dev->phy, 0x92b); } +static int mt7915_txbf_init(struct mt7915_dev *dev) +{ + int ret; + + /* + * TODO: DBDC & check whether iBF phase calibration data has + * been stored in eeprom offset 0x651~0x7b8, then write down + * 0x1111 into 0x651 and 0x651 to trigger iBF. + */ + + /* trigger sounding packets */ + ret = mt7915_mcu_set_txbf_sounding(dev); + if (ret) + return ret; + + /* enable iBF & eBF */ + return mt7915_mcu_set_txbf_type(dev); +} + static void mt7915_init_txpower_band(struct mt7915_dev *dev, struct ieee80211_supported_band *sband) @@ -97,6 +116,7 @@ static void mt7915_init_work(struct work_struct *work) mt7915_mcu_set_eeprom(dev); mt7915_mac_init(dev); mt7915_init_txpower(dev); + mt7915_txbf_init(dev); } static int mt7915_init_hardware(struct mt7915_dev *dev) -- cgit v1.2.3