aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/iwl-nvm-utils.h
blob: ac0a29a1c31f5b0107be352e6450f3cb5eab807f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/*
 * Copyright (C) 2005-2014, 2018, 2020-2023 Intel Corporation
 * Copyright (C) 2015 Intel Mobile Communications GmbH
 */
#ifndef __iwl_eeprom_parse_h__
#define __iwl_eeprom_parse_h__

#include <linux/types.h>
#include <linux/if_ether.h>
#include <net/cfg80211.h>
#include "iwl-trans.h"

struct iwl_nvm_data {
	int n_hw_addrs;
	u8 hw_addr[ETH_ALEN];

	u8 calib_version;
	__le16 calib_voltage;

	__le16 raw_temperature;
	__le16 kelvin_temperature;
	__le16 kelvin_voltage;
	__le16 xtal_calib[2];

	bool sku_cap_band_24ghz_enable;
	bool sku_cap_band_52ghz_enable;
	bool sku_cap_11n_enable;
	bool sku_cap_11ac_enable;
	bool sku_cap_11ax_enable;
	bool sku_cap_amt_enable;
	bool sku_cap_ipan_enable;
	bool sku_cap_mimo_disabled;
	bool sku_cap_11be_enable;

	u16 radio_cfg_type;
	u8 radio_cfg_step;
	u8 radio_cfg_dash;
	u8 radio_cfg_pnum;
	u8 valid_tx_ant, valid_rx_ant;

	u32 nvm_version;
	s8 max_tx_pwr_half_dbm;

	bool lar_enabled;
	bool vht160_supported;
	struct ieee80211_supported_band bands[NUM_NL80211_BANDS];

	/*
	 * iftype data for low (2.4 GHz) high (5 GHz) and uhb (6 GHz) bands
	 */
	struct {
		struct ieee80211_sband_iftype_data low[2];
		struct ieee80211_sband_iftype_data high[2];
		struct ieee80211_sband_iftype_data uhb[2];
	} iftd;

	struct ieee80211_channel channels[];
};

int iwl_init_sband_channels(struct iwl_nvm_data *data,
			    struct ieee80211_supported_band *sband,
			    int n_channels, enum nl80211_band band);

void iwl_init_ht_hw_capab(struct iwl_trans *trans,
			  struct iwl_nvm_data *data,
			  struct ieee80211_sta_ht_cap *ht_info,
			  enum nl80211_band band,
			  u8 tx_chains, u8 rx_chains);

#endif /* __iwl_eeprom_parse_h__ */
a href='/linux/commit/Documentation/devicetree/bindings/input/google,cros-ec-keyb.yaml?id=d95bca4fbde0a29a3d987c39fd17e414f1ed5ec6&follow=1'>dt-bindings: google,cros-ec-keyb: Fixup bad compatible matchStephen Boyd1-7/+4 2022-05-18Input: ili210x - use one common reset implementationMarek Vasut1-12/+8 2022-05-18Input: ili210x - fix reset timingMarek Vasut1-2/+2 2022-05-17Input: cros-ec-keyb - allow skipping keyboard registrationStephen Boyd1-11/+18 2022-05-17dt-bindings: google,cros-ec-keyb: Introduce switches only compatibleStephen Boyd1-6/+33 2022-05-16Input: psmouse-smbus - avoid flush_scheduled_work() usageTetsuo Handa1-2/+9 2022-05-16Input: bcm-keypad - remove unneeded NULL check before clk_disable_unprepareWan Jiabing1-2/+1 2022-05-16Input: sparcspkr - fix refcount leak in bbc_beep_probeMiaoqian Lin1-0/+1 2022-05-05Input: sun4i-lradc-keys - add support for R329 and D1Samuel Holland1-0/+8 2022-05-05Input: sun4i-lradc-keys - add optional clock/reset supportSamuel Holland1-0/+33 2022-05-05dt-bindings: input: sun4i-lradc-keys: Add R329 and D1 compatiblesSamuel Holland1-0/+22 2022-04-24dt-bindings: input: mediatek,mt6779-keypad: update maintainerMattijs Korpershoek1-1/+1 2022-04-24Input: sun4i-lradc-keys - add wakeup supportOndrej Jirman1-4/+18 2022-04-24Input: pm8941-pwrkey - simulate missed key press eventsDavid Collins1-0/+11 2022-04-24Input: pm8941-pwrkey - add software key press debouncing supportDavid Collins1-6/+77 2022-04-24Input: pm8941-pwrkey - add support for PON GEN3 base addressesAnjelique Melendez1-7/+24 2022-04-24Input: pm8941-pwrkey - fix error messageAnjelique Melendez1-1/+1 2022-04-24Input: synaptics-rmi4 - remove unnecessary flush_workqueue()ran jianping1-1/+0 2022-04-24Input: ep93xx_keypad - use devm_platform_ioremap_resource() helperLv Ruyi1-6/+1 2022-04-24Input: add Raspberry Pi Sense HAT joystick driverCharles Mirabile3-0/+149 2022-04-24Input: clps711x-keypad - use syscon_regmap_lookup_by_phandleAlexander Shiyan1-2/+1 2022-04-24Input: remove unneeded variable in input_inhibit_device()Changcheng Deng1-3/+1 2022-04-20Input: aiptek - remove redundant assignment to variable retColin Ian King1-2/+1 2022-04-17Input: iqs7222 - avoid dereferencing a NULL pointerJeff LaBundy1-2/+3 2022-04-17Input: iqs7222 - propagate some error codes correctlyDan Carpenter1-16/+16 2022-04-17Input: add Marine Navigation KeycodesShelby Heffron1-0/+21 2022-04-17Input: omap4-keypad - fix pm_runtime_get_sync() error checkingMiaoqian Lin1-1/+1 2022-04-08Input: cypress-sf - register a callback to disable the regulatorsZheyu Ma1-0/+14 2022-04-08Input: add support for Azoteq IQS7222A/B/CJeff LaBundy3-0/+2456