Skip to content

Commit 06c4b20

Browse files
committed
Miri Korenblit says: ==================== iwlwifi features, notably a rework of the transport configuration ==================== Link: https://patch.msgid.link/MW5PR11MB5810DD2655DE461E98A618DDA390A@MW5PR11MB5810.namprd11.prod.outlook.com/ Signed-off-by: Johannes Berg <[email protected]>
2 parents 63a9a72 + 379f768 commit 06c4b20

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

155 files changed

+6223
-5380
lines changed

drivers/net/wireless/intel/iwlwifi/Makefile

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,23 @@ iwlwifi-objs += iwl-nvm-utils.o
88
iwlwifi-objs += iwl-utils.o
99
iwlwifi-objs += iwl-phy-db.o iwl-nvm-parse.o
1010
iwlwifi-objs += pcie/drv.o pcie/rx.o pcie/tx.o pcie/trans.o
11-
iwlwifi-objs += pcie/ctxt-info.o pcie/ctxt-info-gen3.o
11+
iwlwifi-objs += pcie/ctxt-info.o pcie/ctxt-info-v2.o
1212
iwlwifi-objs += pcie/trans-gen2.o pcie/tx-gen2.o
13-
iwlwifi-$(CONFIG_IWLDVM) += cfg/1000.o cfg/2000.o cfg/5000.o cfg/6000.o
14-
iwlwifi-$(CONFIG_IWLMVM) += cfg/7000.o cfg/8000.o cfg/9000.o cfg/22000.o
13+
14+
CFLAGS_pcie/drv.o += -Wno-override-init
15+
16+
# combined MAC/RF configurations
17+
iwlwifi-$(CONFIG_IWLDVM) += cfg/1000.o cfg/2000.o
18+
iwlwifi-$(CONFIG_IWLDVM) += cfg/5000.o cfg/6000.o
19+
iwlwifi-$(CONFIG_IWLMVM) += cfg/7000.o cfg/8000.o
20+
# MAC configurations
21+
iwlwifi-$(CONFIG_IWLMVM) += cfg/9000.o cfg/22000.o
1522
iwlwifi-$(CONFIG_IWLMVM) += cfg/ax210.o
1623
iwlwifi-$(CONFIG_IWLMLD) += cfg/bz.o cfg/sc.o cfg/dr.o
24+
# RF configurations
25+
iwlwifi-$(CONFIG_IWLMVM) += cfg/rf-jf.o cfg/rf-hr.o cfg/rf-gf.o
26+
iwlwifi-$(CONFIG_IWLMLD) += cfg/rf-fm.o cfg/rf-wh.o cfg/rf-pe.o
27+
1728
iwlwifi-objs += iwl-dbg-tlv.o
1829
iwlwifi-objs += iwl-trans.o
1930

drivers/net/wireless/intel/iwlwifi/cfg/1000.c

Lines changed: 29 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/******************************************************************************
33
*
44
* Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
5-
* Copyright(c) 2018 - 2020, 2023 Intel Corporation
5+
* Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation
66
*****************************************************************************/
77

88
#include <linux/module.h>
@@ -29,7 +29,7 @@
2929
#define IWL100_MODULE_FIRMWARE(api) IWL100_FW_PRE "-" __stringify(api) ".ucode"
3030

3131

32-
static const struct iwl_base_params iwl1000_base_params = {
32+
static const struct iwl_family_base_params iwl1000_base = {
3333
.num_of_queues = IWLAGN_NUM_QUEUES,
3434
.max_tfd_queue_size = 256,
3535
.eeprom_size = OTP_LOW_IMAGE_SIZE_2K,
@@ -42,12 +42,6 @@ static const struct iwl_base_params iwl1000_base_params = {
4242
.scd_chain_ext_wa = true,
4343
};
4444

45-
static const struct iwl_ht_params iwl1000_ht_params = {
46-
.ht_greenfield_support = true,
47-
.use_rts_for_aggregation = true, /* use rts/cts protection */
48-
.ht40_bands = BIT(NL80211_BAND_2GHZ),
49-
};
50-
5145
static const struct iwl_eeprom_params iwl1000_eeprom_params = {
5246
.regulatory_bands = {
5347
EEPROM_REG_BAND_1_CHANNELS,
@@ -60,54 +54,67 @@ static const struct iwl_eeprom_params iwl1000_eeprom_params = {
6054
}
6155
};
6256

57+
const struct iwl_mac_cfg iwl1000_mac_cfg = {
58+
.device_family = IWL_DEVICE_FAMILY_1000,
59+
.base = &iwl1000_base,
60+
};
61+
6362
#define IWL_DEVICE_1000 \
6463
.fw_name_pre = IWL1000_FW_PRE, \
6564
.ucode_api_max = IWL1000_UCODE_API_MAX, \
6665
.ucode_api_min = IWL1000_UCODE_API_MIN, \
67-
.trans.device_family = IWL_DEVICE_FAMILY_1000, \
6866
.max_inst_size = IWLAGN_RTC_INST_SIZE, \
6967
.max_data_size = IWLAGN_RTC_DATA_SIZE, \
7068
.nvm_ver = EEPROM_1000_EEPROM_VERSION, \
7169
.nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \
72-
.trans.base_params = &iwl1000_base_params, \
7370
.eeprom_params = &iwl1000_eeprom_params, \
7471
.led_mode = IWL_LED_BLINK
7572

76-
const struct iwl_cfg iwl1000_bgn_cfg = {
77-
.name = "Intel(R) Centrino(R) Wireless-N 1000 BGN",
73+
const struct iwl_rf_cfg iwl1000_bgn_cfg = {
7874
IWL_DEVICE_1000,
79-
.ht_params = &iwl1000_ht_params,
75+
.ht_params = {
76+
.ht_greenfield_support = true,
77+
.use_rts_for_aggregation = true, /* use rts/cts protection */
78+
.ht40_bands = BIT(NL80211_BAND_2GHZ),
79+
},
8080
};
8181

82-
const struct iwl_cfg iwl1000_bg_cfg = {
83-
.name = "Intel(R) Centrino(R) Wireless-N 1000 BG",
82+
const char iwl1000_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 1000 BGN";
83+
84+
const struct iwl_rf_cfg iwl1000_bg_cfg = {
8485
IWL_DEVICE_1000,
8586
};
8687

88+
const char iwl1000_bg_name[] = "Intel(R) Centrino(R) Wireless-N 1000 BG";
89+
8790
#define IWL_DEVICE_100 \
8891
.fw_name_pre = IWL100_FW_PRE, \
8992
.ucode_api_max = IWL100_UCODE_API_MAX, \
9093
.ucode_api_min = IWL100_UCODE_API_MIN, \
91-
.trans.device_family = IWL_DEVICE_FAMILY_100, \
9294
.max_inst_size = IWLAGN_RTC_INST_SIZE, \
9395
.max_data_size = IWLAGN_RTC_DATA_SIZE, \
9496
.nvm_ver = EEPROM_1000_EEPROM_VERSION, \
9597
.nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \
96-
.trans.base_params = &iwl1000_base_params, \
9798
.eeprom_params = &iwl1000_eeprom_params, \
9899
.led_mode = IWL_LED_RF_STATE, \
99100
.rx_with_siso_diversity = true
100101

101-
const struct iwl_cfg iwl100_bgn_cfg = {
102-
.name = "Intel(R) Centrino(R) Wireless-N 100 BGN",
102+
const struct iwl_rf_cfg iwl100_bgn_cfg = {
103103
IWL_DEVICE_100,
104-
.ht_params = &iwl1000_ht_params,
104+
.ht_params = {
105+
.ht_greenfield_support = true,
106+
.use_rts_for_aggregation = true, /* use rts/cts protection */
107+
.ht40_bands = BIT(NL80211_BAND_2GHZ),
108+
},
105109
};
106110

107-
const struct iwl_cfg iwl100_bg_cfg = {
108-
.name = "Intel(R) Centrino(R) Wireless-N 100 BG",
111+
const char iwl100_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 100 BGN";
112+
113+
const struct iwl_rf_cfg iwl100_bg_cfg = {
109114
IWL_DEVICE_100,
110115
};
111116

117+
const char iwl100_bg_name[] = "Intel(R) Centrino(R) Wireless-N 100 BG";
118+
112119
MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX));
113120
MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_MAX));

drivers/net/wireless/intel/iwlwifi/cfg/2000.c

Lines changed: 53 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
/******************************************************************************
33
*
44
* Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved.
5-
* Copyright(c) 2018 - 2020, 2023 Intel Corporation
5+
* Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation
66
*****************************************************************************/
77

88
#include <linux/module.h>
@@ -40,7 +40,7 @@
4040
#define IWL135_FW_PRE "iwlwifi-135"
4141
#define IWL135_MODULE_FIRMWARE(api) IWL135_FW_PRE "-" __stringify(api) ".ucode"
4242

43-
static const struct iwl_base_params iwl2000_base_params = {
43+
static const struct iwl_family_base_params iwl2000_base = {
4444
.eeprom_size = OTP_LOW_IMAGE_SIZE_2K,
4545
.num_of_queues = IWLAGN_NUM_QUEUES,
4646
.max_tfd_queue_size = 256,
@@ -54,7 +54,7 @@ static const struct iwl_base_params iwl2000_base_params = {
5454
};
5555

5656

57-
static const struct iwl_base_params iwl2030_base_params = {
57+
static const struct iwl_family_base_params iwl2030_base = {
5858
.eeprom_size = OTP_LOW_IMAGE_SIZE_2K,
5959
.num_of_queues = IWLAGN_NUM_QUEUES,
6060
.max_tfd_queue_size = 256,
@@ -67,12 +67,6 @@ static const struct iwl_base_params iwl2030_base_params = {
6767
.scd_chain_ext_wa = true,
6868
};
6969

70-
static const struct iwl_ht_params iwl2000_ht_params = {
71-
.ht_greenfield_support = true,
72-
.use_rts_for_aggregation = true, /* use rts/cts protection */
73-
.ht40_bands = BIT(NL80211_BAND_2GHZ),
74-
};
75-
7670
static const struct iwl_eeprom_params iwl20x0_eeprom_params = {
7771
.regulatory_bands = {
7872
EEPROM_REG_BAND_1_CHANNELS,
@@ -86,97 +80,119 @@ static const struct iwl_eeprom_params iwl20x0_eeprom_params = {
8680
.enhanced_txpower = true,
8781
};
8882

83+
const struct iwl_mac_cfg iwl2000_mac_cfg = {
84+
.device_family = IWL_DEVICE_FAMILY_2000,
85+
.base = &iwl2000_base,
86+
};
87+
8988
#define IWL_DEVICE_2000 \
9089
.fw_name_pre = IWL2000_FW_PRE, \
9190
.ucode_api_max = IWL2000_UCODE_API_MAX, \
9291
.ucode_api_min = IWL2000_UCODE_API_MIN, \
93-
.trans.device_family = IWL_DEVICE_FAMILY_2000, \
9492
.max_inst_size = IWL60_RTC_INST_SIZE, \
9593
.max_data_size = IWL60_RTC_DATA_SIZE, \
9694
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \
9795
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
98-
.trans.base_params = &iwl2000_base_params, \
9996
.eeprom_params = &iwl20x0_eeprom_params, \
10097
.led_mode = IWL_LED_RF_STATE
10198

10299

103-
const struct iwl_cfg iwl2000_2bgn_cfg = {
104-
.name = "Intel(R) Centrino(R) Wireless-N 2200 BGN",
100+
const struct iwl_rf_cfg iwl2000_2bgn_cfg = {
105101
IWL_DEVICE_2000,
106-
.ht_params = &iwl2000_ht_params,
102+
.ht_params = {
103+
.ht_greenfield_support = true,
104+
.use_rts_for_aggregation = true, /* use rts/cts protection */
105+
.ht40_bands = BIT(NL80211_BAND_2GHZ),
106+
},
107107
};
108108

109-
const struct iwl_cfg iwl2000_2bgn_d_cfg = {
110-
.name = "Intel(R) Centrino(R) Wireless-N 2200D BGN",
111-
IWL_DEVICE_2000,
112-
.ht_params = &iwl2000_ht_params,
109+
const char iwl2000_2bgn_name[] = "Intel(R) Centrino(R) Wireless-N 2200 BGN";
110+
const char iwl2000_2bgn_d_name[] = "Intel(R) Centrino(R) Wireless-N 2200D BGN";
111+
112+
const struct iwl_mac_cfg iwl2030_mac_cfg = {
113+
.device_family = IWL_DEVICE_FAMILY_2030,
114+
.base = &iwl2030_base,
113115
};
114116

115117
#define IWL_DEVICE_2030 \
116118
.fw_name_pre = IWL2030_FW_PRE, \
117119
.ucode_api_max = IWL2030_UCODE_API_MAX, \
118120
.ucode_api_min = IWL2030_UCODE_API_MIN, \
119-
.trans.device_family = IWL_DEVICE_FAMILY_2030, \
120121
.max_inst_size = IWL60_RTC_INST_SIZE, \
121122
.max_data_size = IWL60_RTC_DATA_SIZE, \
122123
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \
123124
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
124-
.trans.base_params = &iwl2030_base_params, \
125125
.eeprom_params = &iwl20x0_eeprom_params, \
126126
.led_mode = IWL_LED_RF_STATE
127127

128-
const struct iwl_cfg iwl2030_2bgn_cfg = {
129-
.name = "Intel(R) Centrino(R) Wireless-N 2230 BGN",
128+
const struct iwl_rf_cfg iwl2030_2bgn_cfg = {
130129
IWL_DEVICE_2030,
131-
.ht_params = &iwl2000_ht_params,
130+
.ht_params = {
131+
.ht_greenfield_support = true,
132+
.use_rts_for_aggregation = true, /* use rts/cts protection */
133+
.ht40_bands = BIT(NL80211_BAND_2GHZ),
134+
},
135+
};
136+
137+
const char iwl2030_2bgn_name[] = "Intel(R) Centrino(R) Wireless-N 2230 BGN";
138+
139+
const struct iwl_mac_cfg iwl105_mac_cfg = {
140+
.device_family = IWL_DEVICE_FAMILY_105,
141+
.base = &iwl2000_base,
132142
};
133143

134144
#define IWL_DEVICE_105 \
135145
.fw_name_pre = IWL105_FW_PRE, \
136146
.ucode_api_max = IWL105_UCODE_API_MAX, \
137147
.ucode_api_min = IWL105_UCODE_API_MIN, \
138-
.trans.device_family = IWL_DEVICE_FAMILY_105, \
139148
.max_inst_size = IWL60_RTC_INST_SIZE, \
140149
.max_data_size = IWL60_RTC_DATA_SIZE, \
141150
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \
142151
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
143-
.trans.base_params = &iwl2000_base_params, \
144152
.eeprom_params = &iwl20x0_eeprom_params, \
145153
.led_mode = IWL_LED_RF_STATE, \
146154
.rx_with_siso_diversity = true
147155

148-
const struct iwl_cfg iwl105_bgn_cfg = {
149-
.name = "Intel(R) Centrino(R) Wireless-N 105 BGN",
156+
const struct iwl_rf_cfg iwl105_bgn_cfg = {
150157
IWL_DEVICE_105,
151-
.ht_params = &iwl2000_ht_params,
158+
.ht_params = {
159+
.ht_greenfield_support = true,
160+
.use_rts_for_aggregation = true, /* use rts/cts protection */
161+
.ht40_bands = BIT(NL80211_BAND_2GHZ),
162+
},
152163
};
153164

154-
const struct iwl_cfg iwl105_bgn_d_cfg = {
155-
.name = "Intel(R) Centrino(R) Wireless-N 105D BGN",
156-
IWL_DEVICE_105,
157-
.ht_params = &iwl2000_ht_params,
165+
const char iwl105_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 105 BGN";
166+
const char iwl105_bgn_d_name[] = "Intel(R) Centrino(R) Wireless-N 105D BGN";
167+
168+
const struct iwl_mac_cfg iwl135_mac_cfg = {
169+
.device_family = IWL_DEVICE_FAMILY_135,
170+
.base = &iwl2030_base,
158171
};
159172

160173
#define IWL_DEVICE_135 \
161174
.fw_name_pre = IWL135_FW_PRE, \
162175
.ucode_api_max = IWL135_UCODE_API_MAX, \
163176
.ucode_api_min = IWL135_UCODE_API_MIN, \
164-
.trans.device_family = IWL_DEVICE_FAMILY_135, \
165177
.max_inst_size = IWL60_RTC_INST_SIZE, \
166178
.max_data_size = IWL60_RTC_DATA_SIZE, \
167179
.nvm_ver = EEPROM_2000_EEPROM_VERSION, \
168180
.nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \
169-
.trans.base_params = &iwl2030_base_params, \
170181
.eeprom_params = &iwl20x0_eeprom_params, \
171182
.led_mode = IWL_LED_RF_STATE, \
172183
.rx_with_siso_diversity = true
173184

174-
const struct iwl_cfg iwl135_bgn_cfg = {
175-
.name = "Intel(R) Centrino(R) Wireless-N 135 BGN",
185+
const struct iwl_rf_cfg iwl135_bgn_cfg = {
176186
IWL_DEVICE_135,
177-
.ht_params = &iwl2000_ht_params,
187+
.ht_params = {
188+
.ht_greenfield_support = true,
189+
.use_rts_for_aggregation = true, /* use rts/cts protection */
190+
.ht40_bands = BIT(NL80211_BAND_2GHZ),
191+
},
178192
};
179193

194+
const char iwl135_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 135 BGN";
195+
180196
MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_MAX));
181197
MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_MAX));
182198
MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_MAX));

0 commit comments

Comments
 (0)