Hi Greg, I tried to apply this path on the latest linux-5.11.y branch (27e543cca13fab05689b2d0d61d200a83cfb00b6) and it applied cleanly. Maybe there are other queued patches that are conflicting with this? Is there a branch somewhere that I should use? -- Cheers, Luca. On Mon, 2021-03-01 at 11:13 +0100, gregkh@xxxxxxxxxxxxxxxxxxx wrote: > The patch below does not apply to the 5.11-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@xxxxxxxxxxxxxxx>. > > thanks, > > greg k-h > > ------------------ original commit in Linus's tree ------------------ > > From 410f758529bc227b186ba0846bcc75ac0700ffb2 Mon Sep 17 00:00:00 2001 > From: Ihab Zhaika <ihab.zhaika@xxxxxxxxx> > Date: Sat, 6 Feb 2021 13:01:10 +0200 > Subject: [PATCH] iwlwifi: add new cards for So and Qu family > > add few PCI ID'S for So with Hr and Qu with Hr in AX family. > > Cc: stable@xxxxxxxxxxxxxxx > Signed-off-by: Ihab Zhaika <ihab.zhaika@xxxxxxxxx> > Signed-off-by: Luca Coelho <luciano.coelho@xxxxxxxxx> > Link: https://lore.kernel.org/r/iwlwifi.20210206130110.6f0c1849f7dc.I647b4d22f9468c2f34b777a4bfa445912c6f04f0@changeid > > diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c > index e0c7410a01f6..d1e9fcba9645 100644 > --- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c > +++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c > @@ -682,6 +682,24 @@ const struct iwl_cfg iwl_cfg_snj_a0_mr_a0 = { > .num_rbds = IWL_NUM_RBDS_AX210_HE, > }; > > > +const struct iwl_cfg iwl_cfg_so_a0_hr_a0 = { > + .fw_name_pre = IWL_SO_A_HR_B_FW_PRE, > + IWL_DEVICE_AX210, > + .num_rbds = IWL_NUM_RBDS_AX210_HE, > +}; > + > +const struct iwl_cfg iwl_cfg_quz_a0_hr_b0 = { > + .fw_name_pre = IWL_QUZ_A_HR_B_FW_PRE, > + IWL_DEVICE_22500, > + /* > + * This device doesn't support receiving BlockAck with a large bitmap > + * so we need to restrict the size of transmitted aggregation to the > + * HT size; mac80211 would otherwise pick the HE max (256) by default. > + */ > + .max_tx_agg_size = IEEE80211_MAX_AMPDU_BUF_HT, > + .num_rbds = IWL_NUM_RBDS_22000_HE, > +}; > + > MODULE_FIRMWARE(IWL_QU_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); > MODULE_FIRMWARE(IWL_QNJ_B_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); > MODULE_FIRMWARE(IWL_QU_C_HR_B_MODULE_FIRMWARE(IWL_22000_UCODE_API_MAX)); > diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h > index 41d74a8c314d..b72142a247d0 100644 > --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h > +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h > @@ -609,6 +609,8 @@ extern const struct iwl_cfg iwl_cfg_snj_a0_jf_b0; > extern const struct iwl_cfg iwl_cfg_ma_a0_gf_a0; > extern const struct iwl_cfg iwl_cfg_ma_a0_mr_a0; > extern const struct iwl_cfg iwl_cfg_snj_a0_mr_a0; > +extern const struct iwl_cfg iwl_cfg_so_a0_hr_a0; > +extern const struct iwl_cfg iwl_cfg_quz_a0_hr_b0; > #endif /* CONFIG_IWLMVM */ > > > #endif /* __IWL_CONFIG_H__ */ > diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c > index c45542fa8b7f..c17234c0c945 100644 > --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c > +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c > @@ -926,6 +926,11 @@ static const struct iwl_dev_info iwl_dev_info_table[] = { > IWL_CFG_RF_TYPE_HR1, IWL_CFG_ANY, > IWL_CFG_ANY, 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_NO_160, IWL_CFG_ANY, > + iwl_cfg_quz_a0_hr_b0, iwl_ax203_name), > > > /* QnJ with Hr */ > _IWL_DEV_INFO(IWL_CFG_ANY, IWL_CFG_ANY, > @@ -997,6 +1002,27 @@ static const struct iwl_dev_info iwl_dev_info_table[] = { > IWL_CFG_ANY, IWL_CFG_ANY, > iwl_cfg_snj_a0_mr_a0, iwl_ma_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_NO_160, 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_HR2, IWL_CFG_ANY, > + IWL_CFG_NO_160, 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_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_160, IWL_CFG_ANY, > + iwl_cfg_so_a0_hr_a0, iwl_ax201_name) > > > #endif /* CONFIG_IWLMVM */ > }; >