cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

eeprom.h (1834B)


      1/* SPDX-License-Identifier: ISC */
      2/*
      3 * Copyright (C) 2016 Felix Fietkau <nbd@nbd.name>
      4 */
      5
      6#ifndef __MT76x2_EEPROM_H
      7#define __MT76x2_EEPROM_H
      8
      9#include "../mt76x02_eeprom.h"
     10
     11enum mt76x2_cal_channel_group {
     12	MT_CH_5G_JAPAN,
     13	MT_CH_5G_UNII_1,
     14	MT_CH_5G_UNII_2,
     15	MT_CH_5G_UNII_2E_1,
     16	MT_CH_5G_UNII_2E_2,
     17	MT_CH_5G_UNII_3,
     18	__MT_CH_MAX
     19};
     20
     21struct mt76x2_tx_power_info {
     22	u8 target_power;
     23
     24	s8 delta_bw40;
     25	s8 delta_bw80;
     26
     27	struct {
     28		s8 tssi_slope;
     29		s8 tssi_offset;
     30		s8 target_power;
     31		s8 delta;
     32	} chain[MT_MAX_CHAINS];
     33};
     34
     35struct mt76x2_temp_comp {
     36	u8 temp_25_ref;
     37	int lower_bound; /* J */
     38	int upper_bound; /* J */
     39	unsigned int high_slope; /* J / dB */
     40	unsigned int low_slope; /* J / dB */
     41};
     42
     43void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76_rate_power *t,
     44			   struct ieee80211_channel *chan);
     45void mt76x2_get_power_info(struct mt76x02_dev *dev,
     46			   struct mt76x2_tx_power_info *t,
     47			   struct ieee80211_channel *chan);
     48int mt76x2_get_temp_comp(struct mt76x02_dev *dev, struct mt76x2_temp_comp *t);
     49void mt76x2_read_rx_gain(struct mt76x02_dev *dev);
     50
     51static inline bool
     52mt76x2_has_ext_lna(struct mt76x02_dev *dev)
     53{
     54	u32 val = mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1);
     55
     56	if (dev->mphy.chandef.chan->band == NL80211_BAND_2GHZ)
     57		return val & MT_EE_NIC_CONF_1_LNA_EXT_2G;
     58	else
     59		return val & MT_EE_NIC_CONF_1_LNA_EXT_5G;
     60}
     61
     62static inline bool
     63mt76x2_temp_tx_alc_enabled(struct mt76x02_dev *dev)
     64{
     65	u16 val;
     66
     67	val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_EXT_PA_5G);
     68	if (!(val & BIT(15)))
     69		return false;
     70
     71	return mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
     72	       MT_EE_NIC_CONF_1_TEMP_TX_ALC;
     73}
     74
     75static inline bool
     76mt76x2_tssi_enabled(struct mt76x02_dev *dev)
     77{
     78	return !mt76x2_temp_tx_alc_enabled(dev) &&
     79	       (mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1) &
     80		MT_EE_NIC_CONF_1_TX_ALC_EN);
     81}
     82
     83#endif