diff options
| author | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
|---|---|---|
| committer | Dmitry Torokhov <[email protected]> | 2023-08-30 16:06:38 -0700 | 
| commit | 1ac731c529cd4d6adbce134754b51ff7d822b145 (patch) | |
| tree | 143ab3f35ca5f3b69f583c84e6964b17139c2ec1 /drivers/net/wireless/intel/iwlwifi/pcie/drv.c | |
| parent | 07b4c950f27bef0362dc6ad7ee713aab61d58149 (diff) | |
| parent | 54116d442e001e1b6bd482122043b1870998a1f3 (diff) | |
Merge branch 'next' into for-linus
Prepare input updates for 6.6 merge window.
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/pcie/drv.c')
| -rw-r--r-- | drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 438 | 
1 files changed, 262 insertions, 176 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 99768d6a6032..79115eb1c285 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -504,6 +504,7 @@ static const struct pci_device_id iwl_hw_card_ids[] = {  /* Bz devices */  	{IWL_PCI_DEVICE(0x2727, PCI_ANY_ID, iwl_bz_trans_cfg)}, +	{IWL_PCI_DEVICE(0x272b, PCI_ANY_ID, iwl_bz_trans_cfg)},  	{IWL_PCI_DEVICE(0xA840, PCI_ANY_ID, iwl_bz_trans_cfg)},  	{IWL_PCI_DEVICE(0x7740, PCI_ANY_ID, iwl_bz_trans_cfg)},  #endif /* CONFIG_IWLMVM */ @@ -513,16 +514,17 @@ static const struct pci_device_id iwl_hw_card_ids[] = {  MODULE_DEVICE_TABLE(pci, iwl_hw_card_ids);  #define _IWL_DEV_INFO(_device, _subdevice, _mac_type, _mac_step, _rf_type, \ -		      _rf_id, _no_160, _cores, _cdb, _jacket, _cfg, _name) \ -	{ .device = (_device), .subdevice = (_subdevice), .cfg = &(_cfg),  \ -	  .name = _name, .mac_type = _mac_type, .rf_type = _rf_type,	   \ -	  .no_160 = _no_160, .cores = _cores, .rf_id = _rf_id,		   \ +		      _rf_id, _rf_step, _no_160, _cores, _cdb, _jacket, _cfg, \ +		      _name) \ +	{ .device = (_device), .subdevice = (_subdevice), .cfg = &(_cfg), \ +	  .name = _name, .mac_type = _mac_type, .rf_type = _rf_type, .rf_step = _rf_step, \ +	  .no_160 = _no_160, .cores = _cores, .rf_id = _rf_id, \  	  .mac_step = _mac_step, .cdb = _cdb, .jacket = _jacket }  #define IWL_DEV_INFO(_device, _subdevice, _cfg, _name) \ -	_IWL_DEV_INFO(_device, _subdevice, IWL_CFG_ANY, IWL_CFG_ANY,	   \ -		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY,  \ -		      IWL_CFG_ANY, IWL_CFG_ANY, _cfg, _name) +	_IWL_DEV_INFO(_device, _subdevice, IWL_CFG_ANY, IWL_CFG_ANY, \ +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, \ +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_ANY, _cfg, _name)  static const struct iwl_dev_info iwl_dev_info_table[] = {  #if IS_ENABLED(CONFIG_IWLMVM) @@ -546,6 +548,8 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {  	IWL_DEV_INFO(0x54F0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name),  	IWL_DEV_INFO(0x7A70, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name),  	IWL_DEV_INFO(0x7A70, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name), +	IWL_DEV_INFO(0x7AF0, 0x1691, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name), +	IWL_DEV_INFO(0x7AF0, 0x1692, iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name),  	IWL_DEV_INFO(0x271C, 0x0214, iwl9260_2ac_cfg, iwl9260_1_name),  	IWL_DEV_INFO(0x7E40, 0x1691, iwl_cfg_ma_a0_gf4_a0, iwl_ax411_killer_1690s_name), @@ -565,7 +569,6 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {  	IWL_DEV_INFO(0x43F0, 0x1652, killer1650i_2ax_cfg_qu_b0_hr_b0, iwl_ax201_killer_1650i_name),  	IWL_DEV_INFO(0x43F0, 0x2074, iwl_ax201_cfg_qu_hr, NULL),  	IWL_DEV_INFO(0x43F0, 0x4070, iwl_ax201_cfg_qu_hr, NULL), -	IWL_DEV_INFO(0x43F0, 0x1651, killer1650s_2ax_cfg_qu_b0_hr_b0, iwl_ax201_killer_1650s_name),  	IWL_DEV_INFO(0xA0F0, 0x0070, iwl_ax201_cfg_qu_hr, NULL),  	IWL_DEV_INFO(0xA0F0, 0x0074, iwl_ax201_cfg_qu_hr, NULL),  	IWL_DEV_INFO(0xA0F0, 0x0078, iwl_ax201_cfg_qu_hr, NULL), @@ -694,87 +697,87 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_2ac_cfg_soc, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_2ac_cfg_soc, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_2ac_cfg_soc, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_2ac_cfg_soc, iwl9462_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_2ac_cfg_soc, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PU, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_2ac_cfg_soc, iwl9560_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9461_160_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9461_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9462_160_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_PNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9462_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT_GNSS, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9270_160_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT_GNSS, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9270_name),  	_IWL_DEV_INFO(0x271B, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9162_160_name),  	_IWL_DEV_INFO(0x271B, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_TH1, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9162_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9260_160_name),  	_IWL_DEV_INFO(0x2526, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_TH, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_TH, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9260_2ac_cfg, iwl9260_name), @@ -782,176 +785,176 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {  	/* Qu B step */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9462_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_killer_1550s_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_b0_jf_b0_cfg, iwl9560_killer_1550i_name),  	/* Qu C step */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9462_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_killer_1550s_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qu_c0_jf_b0_cfg, iwl9560_killer_1550i_name),  	/* QuZ */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9462_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550s_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550i_name),  	/* QnJ */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9462_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1551,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_killer_1550s_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, 0x1552,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl9560_qnj_b0_jf_b0_cfg, iwl9560_killer_1550i_name), @@ -959,367 +962,408 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {  	/* Qu B step */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_qu_b0_hr1_b0, iwl_ax101_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_qu_b0_hr_b0, iwl_ax203_name),  	/* Qu C step */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_qu_c0_hr1_b0, iwl_ax101_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_qu_c0_hr_b0, iwl_ax203_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QU, SILICON_C_STEP, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_qu_c0_hr_b0, iwl_ax201_name),  	/* QuZ */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_quz_a0_hr1_b0, iwl_ax101_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_quz_a0_hr_b0, iwl_ax203_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_QUZ, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_quz_a0_hr_b0, iwl_ax201_name),  /* QnJ with Hr */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_QNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_qnj_b0_hr_b0_cfg, iwl_ax201_name),  /* SnJ with Jf */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_jf_b0, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_jf_b0, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_jf_b0, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_jf_b0, iwl9462_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_jf_b0, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_jf_b0, iwl9560_name),  /* SnJ with Hr */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_hr_b0, iwl_ax101_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_hr_b0, iwl_ax201_name),  /* Ma */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_ma_a0_hr_b0, iwl_ax201_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_ma_a0_gf_a0, iwl_ax211_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY,  		      iwl_cfg_ma_a0_gf4_a0, iwl_ax211_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_ma_a0_mr_a0, iwl_ax221_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_ma_a0_fm_a0, iwl_ax231_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_mr_a0, iwl_ax221_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_ma_b0_hr_b0, iwl_ax201_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_ma_b0_gf_a0, iwl_ax211_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY, +		      iwl_cfg_ma_b0_gf4_a0, iwl_ax211_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_ma_b0_mr_a0, iwl_ax221_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_MA, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_ma_b0_fm_a0, iwl_ax231_name),  /* So with Hr */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_hr_a0, iwl_ax203_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, -		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_hr_a0, iwl_ax101_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_hr_a0, iwl_ax201_name),  /* So-F with Hr */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_hr_a0, iwl_ax203_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, -		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_NO_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_hr_a0, iwl_ax101_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_hr_a0, iwl_ax201_name),  /* So-F with Gf */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY,  		      iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name),  /* Bz */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_bz_a0_hr_a0, iwl_bz_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_bz_a0_hr_b0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_bz_a0_gf_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY,  		      iwl_cfg_bz_a0_gf4_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_MR, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_bz_a0_mr_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_BZ, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_bz_a0_fm_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_NO_JACKET,  		      iwl_cfg_bz_a0_fm4_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, +		      iwl_cfg_bz_a0_fm_b0, iwl_bz_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_BZ, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, +		      iwl_cfg_bz_a0_fm4_b0, iwl_bz_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,  		      iwl_cfg_gl_a0_fm_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_NO_JACKET,  		      iwl_cfg_gl_b0_fm_b0, iwl_bz_name),  /* BZ Z step */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_BZ, SILICON_Z_STEP, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_bz_z0_gf_a0, iwl_bz_name),  /* BNJ */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET,  		      iwl_cfg_bnj_a0_fm_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET,  		      iwl_cfg_bnj_b0_fm_b0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_GL, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_A_STEP,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET,  		      iwl_cfg_bnj_a0_fm4_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_FM, IWL_CFG_ANY, SILICON_B_STEP, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, +		      iwl_cfg_bnj_b0_fm4_b0, iwl_bz_name), +	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_GL, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET,  		      iwl_cfg_bnj_a0_gf_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_GL, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, -		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, -		      iwl_cfg_bnj_a0_gf4_a0, iwl_bz_name), -	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_GL, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, +		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_IS_JACKET, -		      iwl_cfg_bnj_a0_hr_b0, iwl_bz_name), - -/* SoF with JF2 */ +		      iwl_cfg_bnj_b0_gf_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, -		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, -		      iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name), +		      IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, +		      iwl_cfg_bnj_a0_gf4_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, -		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, -		      iwlax210_2ax_cfg_so_jf_b0, iwl9560_name), - -/* SoF with JF */ +		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_IS_JACKET, +		      iwl_cfg_bnj_b0_gf4_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, -		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, -		      iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name), +		      IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_bnj_a0_hr_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, -		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, -		      iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name), +		      IWL_CFG_MAC_TYPE_GL, SILICON_A_STEP, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_bnj_a0_hr_b0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, -		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, -		      iwlax210_2ax_cfg_so_jf_b0, iwl9461_name), +		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_bnj_b0_hr_a0, iwl_bz_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, -		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, -		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY, -		      iwlax210_2ax_cfg_so_jf_b0, iwl9462_name), +		      IWL_CFG_MAC_TYPE_GL, SILICON_B_STEP, +		      IWL_CFG_RF_TYPE_HR2, IWL_CFG_ANY, IWL_CFG_ANY, +		      IWL_CFG_ANY, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY, +		      iwl_cfg_bnj_b0_hr_b0, iwl_bz_name),  /* SoF with JF2 */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9560_name),  /* SoF with JF */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9462_name),  /* So with GF */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_GF, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_CDB, IWL_CFG_ANY,  		      iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name),  /* So with JF2 */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, +		      IWL_CFG_RF_TYPE_JF2, IWL_CFG_RF_ID_JF, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9560_name),  /* So with JF */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9461_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, +		      IWL_CFG_RF_TYPE_JF1, IWL_CFG_RF_ID_JF1_DIV, IWL_CFG_ANY,  		      IWL_CFG_NO_160, IWL_CFG_CORES_BT, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwlax210_2ax_cfg_so_jf_b0, iwl9462_name), @@ -1327,22 +1371,22 @@ static const struct iwl_dev_info iwl_dev_info_table[] = {  /* For now we use the same FW as MR, but this will change in the future. */  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SO, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_ms_a0, iwl_ax204_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SOF, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_so_a0_ms_a0, iwl_ax204_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_MA, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_ma_a0_ms_a0, iwl_ax204_name),  	_IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_MAC_TYPE_SNJ, IWL_CFG_ANY, -		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, +		      IWL_CFG_RF_TYPE_MS, IWL_CFG_ANY, IWL_CFG_ANY,  		      IWL_CFG_160, IWL_CFG_ANY, IWL_CFG_NO_CDB, IWL_CFG_ANY,  		      iwl_cfg_snj_a0_ms_a0, iwl_ax204_name) @@ -1377,8 +1421,16 @@ static int get_crf_id(struct iwl_trans *iwl_trans)  	/* Read crf info */  	iwl_trans->hw_crf_id = iwl_read_prph_no_grab(iwl_trans, sd_reg_ver_addr); +	/* Read cnv info */ +	iwl_trans->hw_cnv_id = +		iwl_read_prph_no_grab(iwl_trans, CNVI_AUX_MISC_CHIP); +  	/* Read cdb info (also contains the jacket info if needed in the future */ -	iwl_trans->hw_cdb_id = iwl_read_umac_prph_no_grab(iwl_trans, WFPM_OTP_CFG1_ADDR); +	iwl_trans->hw_wfpm_id = +		iwl_read_umac_prph_no_grab(iwl_trans, WFPM_OTP_CFG1_ADDR); +	IWL_INFO(iwl_trans, "Detected crf-id 0x%x, cnv-id 0x%x wfpm id 0x%x\n", +		 iwl_trans->hw_crf_id, iwl_trans->hw_cnv_id, +		 iwl_trans->hw_wfpm_id);  	iwl_trans_release_nic_access(iwl_trans); @@ -1394,7 +1446,11 @@ static int map_crf_id(struct iwl_trans *iwl_trans)  {  	int ret = 0;  	u32 val = iwl_trans->hw_crf_id; -	u32 cdb = iwl_trans->hw_cdb_id; +	u32 step_id = REG_CRF_ID_STEP(val); +	u32 slave_id = REG_CRF_ID_SLAVE(val); +	u32 jacket_id_cnv  = REG_CRF_ID_SLAVE(iwl_trans->hw_cnv_id); +	u32 jacket_id_wfpm  = WFPM_OTP_CFG1_IS_JACKET(iwl_trans->hw_wfpm_id); +	u32 cdb_id_wfpm  = WFPM_OTP_CFG1_IS_CDB(iwl_trans->hw_wfpm_id);  	/* Map between crf id to rf id */  	switch (REG_CRF_ID_TYPE(val)) { @@ -1404,9 +1460,12 @@ static int map_crf_id(struct iwl_trans *iwl_trans)  	case REG_CRF_ID_TYPE_JF_2:  		iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_JF2 << 12);  		break; -	case REG_CRF_ID_TYPE_HR_NONE_CDB: +	case REG_CRF_ID_TYPE_HR_NONE_CDB_1X1:  		iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR1 << 12);  		break; +	case REG_CRF_ID_TYPE_HR_NONE_CDB: +		iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12); +		break;  	case REG_CRF_ID_TYPE_HR_CDB:  		iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_HR2 << 12);  		break; @@ -1416,27 +1475,43 @@ static int map_crf_id(struct iwl_trans *iwl_trans)  	case REG_CRF_ID_TYPE_MR:  		iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_MR << 12);  		break; -		case REG_CRF_ID_TYPE_FM: -			iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_FM << 12); -			break; +	case REG_CRF_ID_TYPE_FM: +	case REG_CRF_ID_TYPE_FMI: +	case REG_CRF_ID_TYPE_FMR: +		iwl_trans->hw_rf_id = (IWL_CFG_RF_TYPE_FM << 12); +		break;  	default:  		ret = -EIO;  		IWL_ERR(iwl_trans, -			"Can find a correct rfid for crf id 0x%x\n", +			"Can't find a correct rfid for crf id 0x%x\n",  			REG_CRF_ID_TYPE(val));  		goto out;  	} +	/* Set Step-id */ +	iwl_trans->hw_rf_id |= (step_id << 8); +  	/* Set CDB capabilities */ -	if (cdb & BIT(4)) { +	if (cdb_id_wfpm || slave_id) {  		iwl_trans->hw_rf_id += BIT(28);  		IWL_INFO(iwl_trans, "Adding cdb to rf id\n");  	} -	IWL_INFO(iwl_trans, "Detected RF 0x%x from crf id 0x%x\n", -		 iwl_trans->hw_rf_id, REG_CRF_ID_TYPE(val)); +	/* Set Jacket capabilities */ +	if (jacket_id_wfpm || jacket_id_cnv) { +		iwl_trans->hw_rf_id += BIT(29); +		IWL_INFO(iwl_trans, "Adding jacket to rf id\n"); +	} +	IWL_INFO(iwl_trans, +		 "Detected rf-type 0x%x step-id 0x%x slave-id 0x%x from crf id 0x%x\n", +		 REG_CRF_ID_TYPE(val), step_id, slave_id, iwl_trans->hw_rf_id); +	IWL_INFO(iwl_trans, +		 "Detected cdb-id 0x%x jacket-id 0x%x from wfpm id 0x%x\n", +		 cdb_id_wfpm, jacket_id_wfpm, iwl_trans->hw_wfpm_id); +	IWL_INFO(iwl_trans, "Detected jacket-id 0x%x from cnvi id 0x%x\n", +		 jacket_id_cnv, iwl_trans->hw_cnv_id);  out:  	return ret; @@ -1447,8 +1522,8 @@ out:  static const struct iwl_dev_info *  iwl_pci_find_dev_info(u16 device, u16 subsystem_device, -		      u16 mac_type, u8 mac_step, -		      u16 rf_type, u8 cdb, u8 jacket, u8 rf_id, u8 no_160, u8 cores) +		      u16 mac_type, u8 mac_step, u16 rf_type, u8 cdb, +		      u8 jacket, u8 rf_id, u8 no_160, u8 cores, u8 rf_step)  {  	int num_devices = ARRAY_SIZE(iwl_dev_info_table);  	int i; @@ -1499,6 +1574,10 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device,  		    dev_info->cores != cores)  			continue; +		if (dev_info->rf_step != (u8)IWL_CFG_ANY && +		    dev_info->rf_step != rf_step) +			continue; +  		return dev_info;  	} @@ -1570,6 +1649,10 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  		goto out_free_trans;  	} +	IWL_INFO(iwl_trans, "PCI dev %04x/%04x, rev=0x%x, rfid=0x%x\n", +		 pdev->device, pdev->subsystem_device, +		 iwl_trans->hw_rev, iwl_trans->hw_rf_id); +  	dev_info = iwl_pci_find_dev_info(pdev->device, pdev->subsystem_device,  					 CSR_HW_REV_TYPE(iwl_trans->hw_rev),  					 iwl_trans->hw_rev_step, @@ -1578,8 +1661,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)  					 CSR_HW_RFID_IS_JACKET(iwl_trans->hw_rf_id),  					 IWL_SUBDEVICE_RF_ID(pdev->subsystem_device),  					 IWL_SUBDEVICE_NO_160(pdev->subsystem_device), -					 IWL_SUBDEVICE_CORES(pdev->subsystem_device)); - +					 IWL_SUBDEVICE_CORES(pdev->subsystem_device), +					 CSR_HW_RFID_STEP(iwl_trans->hw_rf_id));  	if (dev_info) {  		iwl_trans->cfg = dev_info->cfg;  		iwl_trans->name = dev_info->name; @@ -1699,6 +1782,9 @@ static void iwl_pci_remove(struct pci_dev *pdev)  {  	struct iwl_trans *trans = pci_get_drvdata(pdev); +	if (!trans) +		return; +  	iwl_drv_stop(trans->drv);  	iwl_trans_pcie_free(trans);  |