Lines Matching +full:8 +full:dev
15 mt76x2_eeprom_get_macaddr(struct mt76x02_dev *dev) in mt76x2_eeprom_get_macaddr() argument
17 void *src = dev->mt76.eeprom.data + MT_EE_MAC_ADDR; in mt76x2_eeprom_get_macaddr()
19 memcpy(dev->mphy.macaddr, src, ETH_ALEN); in mt76x2_eeprom_get_macaddr()
24 mt76x2_has_cal_free_data(struct mt76x02_dev *dev, u8 *efuse) in mt76x2_has_cal_free_data() argument
50 mt76x2_apply_cal_free_data(struct mt76x02_dev *dev, u8 *efuse) in mt76x2_apply_cal_free_data() argument
80 struct device_node *np = dev->mt76.dev->of_node; in mt76x2_apply_cal_free_data()
81 u8 *eeprom = dev->mt76.eeprom.data; in mt76x2_apply_cal_free_data()
94 if (!mt76x2_has_cal_free_data(dev, efuse)) in mt76x2_apply_cal_free_data()
116 eeprom[MT_EE_BT_VCDL_CALIBRATION + 1] = val >> 8; in mt76x2_apply_cal_free_data()
123 static int mt76x2_check_eeprom(struct mt76x02_dev *dev) in mt76x2_check_eeprom() argument
125 u16 val = get_unaligned_le16(dev->mt76.eeprom.data); in mt76x2_check_eeprom()
128 val = get_unaligned_le16(dev->mt76.eeprom.data + MT_EE_PCI_ID); in mt76x2_check_eeprom()
135 dev_err(dev->mt76.dev, "EEPROM data check failed: %04x\n", val); in mt76x2_check_eeprom()
141 mt76x2_eeprom_load(struct mt76x02_dev *dev) in mt76x2_eeprom_load() argument
147 ret = mt76_eeprom_init(&dev->mt76, MT7662_EEPROM_SIZE); in mt76x2_eeprom_load()
153 found = !mt76x2_check_eeprom(dev); in mt76x2_eeprom_load()
155 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, MT7662_EEPROM_SIZE, in mt76x2_eeprom_load()
157 dev->mt76.otp.size = MT7662_EEPROM_SIZE; in mt76x2_eeprom_load()
158 if (!dev->mt76.otp.data) in mt76x2_eeprom_load()
161 efuse = dev->mt76.otp.data; in mt76x2_eeprom_load()
163 if (mt76x02_get_efuse_data(dev, 0, efuse, MT7662_EEPROM_SIZE, in mt76x2_eeprom_load()
168 mt76x2_apply_cal_free_data(dev, efuse); in mt76x2_eeprom_load()
172 memcpy(dev->mt76.eeprom.data, efuse, MT7662_EEPROM_SIZE); in mt76x2_eeprom_load()
183 mt76x2_set_rx_gain_group(struct mt76x02_dev *dev, u8 val) in mt76x2_set_rx_gain_group() argument
185 s8 *dest = dev->cal.rx.high_gain; in mt76x2_set_rx_gain_group()
198 mt76x2_set_rssi_offset(struct mt76x02_dev *dev, int chain, u8 val) in mt76x2_set_rssi_offset() argument
200 s8 *dest = dev->cal.rx.rssi_offset; in mt76x2_set_rssi_offset()
227 mt76x2_get_5g_rx_gain(struct mt76x02_dev *dev, u8 channel) in mt76x2_get_5g_rx_gain() argument
234 return mt76x02_eeprom_get(dev, in mt76x2_get_5g_rx_gain()
237 return mt76x02_eeprom_get(dev, in mt76x2_get_5g_rx_gain()
238 MT_EE_RF_5G_GRP0_1_RX_HIGH_GAIN) >> 8; in mt76x2_get_5g_rx_gain()
240 return mt76x02_eeprom_get(dev, in mt76x2_get_5g_rx_gain()
243 return mt76x02_eeprom_get(dev, in mt76x2_get_5g_rx_gain()
244 MT_EE_RF_5G_GRP2_3_RX_HIGH_GAIN) >> 8; in mt76x2_get_5g_rx_gain()
246 return mt76x02_eeprom_get(dev, in mt76x2_get_5g_rx_gain()
249 return mt76x02_eeprom_get(dev, in mt76x2_get_5g_rx_gain()
250 MT_EE_RF_5G_GRP4_5_RX_HIGH_GAIN) >> 8; in mt76x2_get_5g_rx_gain()
254 void mt76x2_read_rx_gain(struct mt76x02_dev *dev) in mt76x2_read_rx_gain() argument
256 struct ieee80211_channel *chan = dev->mphy.chandef.chan; in mt76x2_read_rx_gain()
264 val = mt76x02_eeprom_get(dev, MT_EE_RF_2G_RX_HIGH_GAIN) >> 8; in mt76x2_read_rx_gain()
266 val = mt76x2_get_5g_rx_gain(dev, channel); in mt76x2_read_rx_gain()
268 mt76x2_set_rx_gain_group(dev, val); in mt76x2_read_rx_gain()
270 mt76x02_get_rx_gain(dev, chan->band, &val, &lna_2g, lna_5g); in mt76x2_read_rx_gain()
271 mt76x2_set_rssi_offset(dev, 0, val); in mt76x2_read_rx_gain()
272 mt76x2_set_rssi_offset(dev, 1, val >> 8); in mt76x2_read_rx_gain()
274 dev->cal.rx.mcu_gain = (lna_2g & 0xff); in mt76x2_read_rx_gain()
275 dev->cal.rx.mcu_gain |= (lna_5g[0] & 0xff) << 8; in mt76x2_read_rx_gain()
276 dev->cal.rx.mcu_gain |= (lna_5g[1] & 0xff) << 16; in mt76x2_read_rx_gain()
277 dev->cal.rx.mcu_gain |= (lna_5g[2] & 0xff) << 24; in mt76x2_read_rx_gain()
279 val = mt76x02_eeprom_get(dev, MT_EE_NIC_CONF_1); in mt76x2_read_rx_gain()
286 lna = mt76x02_get_lna_gain(dev, &lna_2g, lna_5g, chan); in mt76x2_read_rx_gain()
288 dev->cal.rx.lna_gain = mt76x02_sign_extend(lna, 8); in mt76x2_read_rx_gain()
292 void mt76x2_get_rate_power(struct mt76x02_dev *dev, struct mt76x02_rate_power *t, in mt76x2_get_rate_power() argument
302 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_CCK); in mt76x2_get_rate_power()
304 t->cck[2] = t->cck[3] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
307 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_OFDM_5G_6M); in mt76x2_get_rate_power()
309 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_OFDM_2G_6M); in mt76x2_get_rate_power()
311 t->ofdm[2] = t->ofdm[3] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
314 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_OFDM_5G_24M); in mt76x2_get_rate_power()
316 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_OFDM_2G_24M); in mt76x2_get_rate_power()
318 t->ofdm[6] = t->ofdm[7] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
320 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_HT_MCS0); in mt76x2_get_rate_power()
322 t->ht[2] = t->ht[3] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
324 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_HT_MCS4); in mt76x2_get_rate_power()
326 t->ht[6] = t->ht[7] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
328 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_HT_MCS8); in mt76x2_get_rate_power()
329 t->ht[8] = t->ht[9] = mt76x02_rate_power_val(val); in mt76x2_get_rate_power()
330 t->ht[10] = t->ht[11] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
332 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_HT_MCS12); in mt76x2_get_rate_power()
334 t->ht[14] = t->ht[15] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
336 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_VHT_MCS8); in mt76x2_get_rate_power()
338 val >>= 8; in mt76x2_get_rate_power()
339 t->vht[0] = t->vht[1] = mt76x02_rate_power_val(val >> 8); in mt76x2_get_rate_power()
344 mt76x2_get_power_info_2g(struct mt76x02_dev *dev, in mt76x2_get_power_info_2g() argument
361 mt76x02_eeprom_copy(dev, offset, data, sizeof(data)); in mt76x2_get_power_info_2g()
369 val = mt76x02_eeprom_get(dev, MT_EE_RF_2G_TSSI_OFF_TXPOWER); in mt76x2_get_power_info_2g()
370 t->target_power = val >> 8; in mt76x2_get_power_info_2g()
374 mt76x2_get_power_info_5g(struct mt76x02_dev *dev, in mt76x2_get_power_info_5g() argument
413 mt76x02_eeprom_copy(dev, offset, data, sizeof(data)); in mt76x2_get_power_info_5g()
421 val = mt76x02_eeprom_get(dev, MT_EE_RF_2G_RX_HIGH_GAIN); in mt76x2_get_power_info_5g()
425 void mt76x2_get_power_info(struct mt76x02_dev *dev, in mt76x2_get_power_info() argument
433 bw40 = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_DELTA_BW40); in mt76x2_get_power_info()
434 bw80 = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_DELTA_BW80); in mt76x2_get_power_info()
437 bw40 >>= 8; in mt76x2_get_power_info()
438 mt76x2_get_power_info_5g(dev, t, chan, 0, in mt76x2_get_power_info()
440 mt76x2_get_power_info_5g(dev, t, chan, 1, in mt76x2_get_power_info()
443 mt76x2_get_power_info_2g(dev, t, chan, 0, in mt76x2_get_power_info()
445 mt76x2_get_power_info_2g(dev, t, chan, 1, in mt76x2_get_power_info()
449 if (mt76x2_tssi_enabled(dev) || in mt76x2_get_power_info()
458 int mt76x2_get_temp_comp(struct mt76x02_dev *dev, struct mt76x2_temp_comp *t) in mt76x2_get_temp_comp() argument
460 enum nl80211_band band = dev->mphy.chandef.chan->band; in mt76x2_get_temp_comp()
466 if (!mt76x2_temp_tx_alc_enabled(dev)) in mt76x2_get_temp_comp()
469 if (!mt76x02_ext_pa_enabled(dev, band)) in mt76x2_get_temp_comp()
472 val = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_EXT_PA_5G) >> 8; in mt76x2_get_temp_comp()
475 slope = mt76x02_eeprom_get(dev, MT_EE_RF_TEMP_COMP_SLOPE_5G); in mt76x2_get_temp_comp()
476 bounds = mt76x02_eeprom_get(dev, MT_EE_TX_POWER_EXT_PA_5G); in mt76x2_get_temp_comp()
478 slope = mt76x02_eeprom_get(dev, MT_EE_RF_TEMP_COMP_SLOPE_2G); in mt76x2_get_temp_comp()
479 bounds = mt76x02_eeprom_get(dev, in mt76x2_get_temp_comp()
480 MT_EE_TX_POWER_DELTA_BW80) >> 8; in mt76x2_get_temp_comp()
484 t->low_slope = slope >> 8; in mt76x2_get_temp_comp()
492 int mt76x2_eeprom_init(struct mt76x02_dev *dev) in mt76x2_eeprom_init() argument
496 ret = mt76x2_eeprom_load(dev); in mt76x2_eeprom_init()
500 mt76x02_eeprom_parse_hw_cap(dev); in mt76x2_eeprom_init()
501 mt76x2_eeprom_get_macaddr(dev); in mt76x2_eeprom_init()
502 mt76_eeprom_override(&dev->mphy); in mt76x2_eeprom_init()
503 dev->mphy.macaddr[0] &= ~BIT(1); in mt76x2_eeprom_init()