diff options
author | Ryder Lee <ryder.lee@mediatek.com> | 2020-05-12 00:06:33 +0800 |
---|---|---|
committer | Felix Fietkau <nbd@nbd.name> | 2020-05-12 19:52:36 +0200 |
commit | 89029a85482cbcf68026a89fc974e8f6898d6b37 (patch) | |
tree | f60db9dfb1536f96dc54e2bc13fefae350601af8 /drivers/net/wireless/mediatek/mt76/mt7915/init.c | |
parent | b0efe6dd21e6a7c7fc591d95cceb203a365ffc30 (diff) |
mt76: mt7915: add Tx beamformer support
Enable TxBF modules and trigger sounding process to support Tx beamformer.
Signed-off-by: Ryder Lee <ryder.lee@mediatek.com>
Tested-by: Evelyn Tsai <evelyn.tsai@mediatek.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Diffstat (limited to 'drivers/net/wireless/mediatek/mt76/mt7915/init.c')
-rw-r--r-- | drivers/net/wireless/mediatek/mt76/mt7915/init.c | 20 |
1 files changed, 20 insertions, 0 deletions
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) |