From patchwork Fri May 2 12:56:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886932 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4DD2E24677A for ; Fri, 2 May 2025 12:56:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190609; cv=none; b=L5Wrist+P4+QKXTAX/aUwq7q4HLfLl6/W/XDFPFuTYZy/N9c4LhWBjrcndPYZ/i4AUu1M8EGX7VHUfYvruxDCcI8pruHNbvfi/ssWAUT7hlCxkZZSI++wpgLXMt5t2VwfOeho99LVe1qOA3QKWMRrx1bSBcnlZKJPS2nVuW77pk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190609; c=relaxed/simple; bh=6ExVofQO/mGozoeImBBS0bn9JNgb1/lpowWmeQUb+q8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=n4+tgDhb8grcv+FZ2yOsYXXgM9YpR40SLZymJgPf2TxTAo1VxsLb4MgJhq407lOgjyZmokDKWfKkXM1znhkHJP01Epola24VUPadCc/P4wNle6SbBi7mgX0hFpluKZ/EtT0rvi3hPs0iiDmapRq5nDGDJ8un11P4vRqKH+czR4c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=DvZHSKEz; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="DvZHSKEz" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190608; x=1777726608; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6ExVofQO/mGozoeImBBS0bn9JNgb1/lpowWmeQUb+q8=; b=DvZHSKEzz/vewhwuRE0IUjkTf3VqE82O4m1adEqW8Xw7tuCxJcf+Yblu aTuXpw2kqi9F5NsLGPqQYTS2xX40H9nKSyC7y80PhBke+Fa6Zb5t17Qso IPo6BAPIZjN2Yhn2jQOHKgwaeBvhVBXkeQf6kj9HSeylH4U22OIPHWyP/ ElIi7ovTIIBwtzc0i82Lm39QpEK2wIL1fdTG5fepc1uXpMcQrqlwAOHLp 8JSwxWk1cukVc2E4FqPqfMIH9l7zn4SbOT2ywU3CbDSInThmmDAaTCd+4 bQfaLOv1DRAUOuq9gZQui8I4iMRB+suGmMv5KD0w19JktcJlAjZPRoyrz A==; X-CSE-ConnectionGUID: AybB0iW6S7yAzEgNIO7AqQ== X-CSE-MsgGUID: cRyJnejDQqm9ZB1ii4ctYg== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255533" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255533" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:47 -0700 X-CSE-ConnectionGUID: y8DocBf+TYWi1nCCdJFFCA== X-CSE-MsgGUID: NZescXw4QACKZHi/l4+KUg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554697" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:45 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 01/15] wifi: iwlwifi: cfg: remove iwl_cfg_br Date: Fri, 2 May 2025 15:56:17 +0300 Message-Id: <20250502155404.83b86e8a182b.Iec7f3027e7058005a98ff6d05cc224ab61b7c44a@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg This is the same as iwl_cfg_dr, just different by the MAC, so no need to keep a separate config; remove it. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/cfg/dr.c | 4 ---- drivers/net/wireless/intel/iwlwifi/iwl-config.h | 1 - drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 +- 3 files changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/dr.c b/drivers/net/wireless/intel/iwlwifi/cfg/dr.c index 4bca1b13858f..8bbeb2a1f691 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/dr.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/dr.c @@ -154,10 +154,6 @@ const struct iwl_cfg_trans_params iwl_br_trans_cfg = { const char iwl_br_name[] = "Intel(R) TBD Br device"; -const struct iwl_cfg iwl_cfg_br = { - IWL_DEVICE_DR, -}; - MODULE_FIRMWARE(IWL_DR_A_PE_A_FW_MODULE_FIRMWARE(IWL_DR_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_BR_A_PET_A_FW_MODULE_FIRMWARE(IWL_DR_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_BR_A_PE_A_FW_MODULE_FIRMWARE(IWL_DR_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 8862148a49bb..1ecd873911bc 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -642,7 +642,6 @@ extern const struct iwl_cfg iwl_cfg_bz; extern const struct iwl_cfg iwl_cfg_sc; extern const struct iwl_cfg iwl_cfg_dr; -extern const struct iwl_cfg iwl_cfg_br; #endif /* CONFIG_IWLMLD */ #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 6c4854f44b26..b96b85e7d5d8 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -1152,7 +1152,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_cfg_dr, iwl_dr_name, MAC_TYPE(DR)), /* Br */ - IWL_DEV_INFO(iwl_cfg_br, iwl_br_name, MAC_TYPE(BR)), + IWL_DEV_INFO(iwl_cfg_dr, iwl_br_name, MAC_TYPE(BR)), #endif /* CONFIG_IWLMLD */ }; EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_dev_info_table); From patchwork Fri May 2 12:56:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887153 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 80B812522AB for ; Fri, 2 May 2025 12:56:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190610; cv=none; b=Mv+L1boOwxCrp+Q4mOMEnpgYt68DrM0KPDEgs5T3TEUhkYPUQxHHQ3rJXTQEc6SfEwZRVi53bS1a/q31hKMO5IPpS34N/NM38xvmIpuoF2ElVK/AMCI/o1vtjKiWz/tCm2E4uJ7mvS8M9zBPB6ZaC5ijIgSI92rYO4DCGkioO6k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190610; c=relaxed/simple; bh=VW1uH1TS8CQq2QGxMG8LFdFSdbogbZ8MkiQZc6K54Zk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=QaqUdAxhqtPF3K1bLq0eE5kKMjaVf3MF+itAU0FXGB8RRKdQdSvMsVvjkt4+oQK+oAiQWlVK4lIJxIEqbEqhptyYScRf5NDDNF7GBLSqP0zT9NVDLx6qtnX/GAESocBCfI37Ts/jx1+P+UZ75zy7grpeXNPfIhsOFY9EBxeWgYg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=GJblBIQD; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="GJblBIQD" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190609; x=1777726609; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VW1uH1TS8CQq2QGxMG8LFdFSdbogbZ8MkiQZc6K54Zk=; b=GJblBIQDi4jxHN4JWUNReqzFsqbQ4KcWHoz0C14fRE4ZgJi9mApeaMD6 U35o748eejRymyNgYI+6a9aamDs9NESTgoRBeyymgFzWsXLkBRMES0XgL JYsiNuq5wSY9HdurZa5gZPrjQSFaV8iKLM1nP12fCWgpLR9lDW80o/sEB 9wJ+ecnDRzCIjlwUPNSBhAeAezksah4cSYFhtMwVksTpfRBsCn4ivGLZE 6kynS2KhNJK1iWgOGByV5hmTGhD4637cLTNtIzulzu+pMEzQLVbZ5jW4G +aULCCXehX8qMKs6ETSavcLFGN6c2fOWGJ/ydi0zWGQchT1AKD4muMpVZ Q==; X-CSE-ConnectionGUID: sjhpdVE9SL+23o32ZPc1BA== X-CSE-MsgGUID: yiXl0plnQcqX83bdPoUJjQ== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255535" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255535" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:49 -0700 X-CSE-ConnectionGUID: PV5sCHzKQ1in5e4T+RNyNQ== X-CSE-MsgGUID: ctUC2K1FTm23MugsQ9Yh5w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554701" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:47 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 02/15] wifi: iwlwifi: tests: check configs are not duplicated Date: Fri, 2 May 2025 15:56:18 +0300 Message-Id: <20250502155404.0cfd9fb8322e.I9567b839405be8d1e4be0bfca7a17b5d222b0158@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Add a kunit test to check that all (used) config structs are not duplicated, ignoring the name since that can be handled differently via the dev-info list. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../wireless/intel/iwlwifi/tests/devinfo.c | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index a64880fd3398..0de3a01001d7 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -58,6 +58,52 @@ static void devinfo_names(struct kunit *test) } } +static void devinfo_no_cfg_dups(struct kunit *test) +{ + /* allocate iwl_dev_info_table_size as upper bound */ + const struct iwl_cfg **cfgs = kunit_kcalloc(test, + iwl_dev_info_table_size, + sizeof(*cfgs), GFP_KERNEL); + int p = 0; + + KUNIT_ASSERT_NOT_NULL(test, cfgs); + + /* build a list of unique (by pointer) configs first */ + for (int i = 0; i < iwl_dev_info_table_size; i++) { + bool found = false; + + for (int j = 0; j < p; j++) { + if (cfgs[j] == iwl_dev_info_table[i].cfg) { + found = true; + break; + } + } + if (!found) { + cfgs[p] = iwl_dev_info_table[i].cfg; + p++; + } + } + + /* check that they're really all different */ + for (int i = 0; i < p; i++) { + struct iwl_cfg cfg_i = *cfgs[i]; + + /* null out the names since we can handle them differently */ + cfg_i.name = NULL; + + for (int j = 0; j < i; j++) { + struct iwl_cfg cfg_j = *cfgs[j]; + + cfg_j.name = NULL; + + KUNIT_EXPECT_NE_MSG(test, memcmp(&cfg_i, &cfg_j, + sizeof(cfg_i)), 0, + "identical configs: %ps and %ps\n", + cfgs[i], cfgs[j]); + } + } +} + static void devinfo_pci_ids(struct kunit *test) { struct pci_dev *dev; @@ -83,6 +129,7 @@ static void devinfo_pci_ids(struct kunit *test) static struct kunit_case devinfo_test_cases[] = { KUNIT_CASE(devinfo_table_order), KUNIT_CASE(devinfo_names), + KUNIT_CASE(devinfo_no_cfg_dups), KUNIT_CASE(devinfo_pci_ids), {} }; From patchwork Fri May 2 12:56:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886931 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2699B254AF7 for ; Fri, 2 May 2025 12:56:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190612; cv=none; b=PDXT/w9NQeeclRJ2WMgX4YozApcGhi1roTKSioRYcv2IdpheG87HrYjK7Cl18/Bg0au8DYHV1AGRhH65dDhr/fp8Sb8zlW7MfLuMH6oHoKS2N2qyGZstneGcvp4b+CdW8xmCW+E4aDeS4S1GV6WpcbIF7ZX53Gg/fdBef3iPgY0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190612; c=relaxed/simple; bh=eH1HAqL6c34Mfy5lvKdqkn9mtPkhVpgvGk25gj3hPJc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=eWK50gNJb9JnwrIH3YTW5jP+Um9NpY9UV5vp6cypRXVHtuVK9BA2heIbh2QvG8qqismtLO5Rj3jBWrfw7yftWjJ3Eli9KXjeUhwpIvj/N8xxSIsnfx3QSruvCpzlh60SMjY7RPyi9OOPb7p9FXx+yUQBzCrPTwyUYuMTcJv6yQE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=blRMuna5; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="blRMuna5" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190611; x=1777726611; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=eH1HAqL6c34Mfy5lvKdqkn9mtPkhVpgvGk25gj3hPJc=; b=blRMuna5ySgOWBrwhLDquvk7a/J0rqARlf4lwbHyzC6vfUFdo0rE2TUr orwnC0R54A2I/tgS+8t/Z0R7gTkkjF6E6/cQhdxzw3Taluu5IwuzjrI6E Gl+Mp+nMixxbIPQDcFELaMiAjsheUXZSdGcPGq3J0EUPTlEm8RxwxSduB 5gniQ77TIZqrfgskJ3ctKedaq2Gl4UZuTdZv+uG58fYgfKzQJbJ2Y8H+o /MCoF4QVcOXwSSxheNraKVMwNYNvslqJIYc/mus9vY1Fvh5VFgrZ9pJF/ jnDnA4EbNldL6QC1oZxoEQ3rmbI0hqp1VkZUMXuWEvFlus7utDI7nUskg w==; X-CSE-ConnectionGUID: VMVxcj4uTHa/uDz6YBzpjA== X-CSE-MsgGUID: Tj3tTrpFS76t9alcHhZyXQ== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255537" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255537" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:50 -0700 X-CSE-ConnectionGUID: kk7ygMV+Qq2OvzRYlyGn2A== X-CSE-MsgGUID: i6RvAYjTQhK8NjrPiiMdwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554704" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:48 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 03/15] wifi: iwlwifi: tests: check transport configs are not duplicated Date: Fri, 2 May 2025 15:56:19 +0300 Message-Id: <20250502155404.a151af19aaba.Id57f099a899e09318c6218ed1859151f00232b41@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Add a kunit test to check that all (used) transport config structs are not duplicated, since there's no value in having the same info in two places in memory. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../net/wireless/intel/iwlwifi/iwl-config.h | 2 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 1 - .../wireless/intel/iwlwifi/tests/devinfo.c | 48 +++++++++++++++++++ 3 files changed, 50 insertions(+), 1 deletion(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 1ecd873911bc..a9d70b58e134 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -305,6 +305,8 @@ struct iwl_fw_mon_regs { struct iwl_fw_mon_reg cur_frag; }; +#define TRANS_CFG_MARKER BIT(0) + /** * struct iwl_cfg * @trans: the trans-specific configuration part diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index b96b85e7d5d8..83d368ef623a 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -17,7 +17,6 @@ #include "iwl-prph.h" #include "internal.h" -#define TRANS_CFG_MARKER BIT(0) #define _IS_A(cfg, _struct) __builtin_types_compatible_p(typeof(cfg), \ struct _struct) extern int _invalid_type; diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index 0de3a01001d7..de6e3eaca8cd 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -126,11 +126,59 @@ static void devinfo_pci_ids(struct kunit *test) } } +static void devinfo_no_trans_cfg_dups(struct kunit *test) +{ + /* allocate iwl_dev_info_table_size as upper bound */ + const struct iwl_cfg_trans_params **cfgs; + int count = 0; + int p = 0; + + for (int i = 0; iwl_hw_card_ids[i].vendor; i++) + count++; + + cfgs = kunit_kcalloc(test, count, sizeof(*cfgs), GFP_KERNEL); + KUNIT_ASSERT_NOT_NULL(test, cfgs); + + /* build a list of unique (by pointer) configs first */ + for (int i = 0; iwl_hw_card_ids[i].vendor; i++) { + struct iwl_cfg_trans_params *cfg; + bool found = false; + + if (!(iwl_hw_card_ids[i].driver_data & TRANS_CFG_MARKER)) + continue; + + cfg = (void *)(iwl_hw_card_ids[i].driver_data & + ~TRANS_CFG_MARKER); + + for (int j = 0; j < p; j++) { + if (cfgs[j] == cfg) { + found = true; + break; + } + } + if (!found) { + cfgs[p] = cfg; + p++; + } + } + + /* check that they're really all different */ + for (int i = 0; i < p; i++) { + for (int j = 0; j < i; j++) { + KUNIT_EXPECT_NE_MSG(test, memcmp(cfgs[i], cfgs[j], + sizeof(*cfgs[i])), 0, + "identical configs: %ps and %ps\n", + cfgs[i], cfgs[j]); + } + } +} + static struct kunit_case devinfo_test_cases[] = { KUNIT_CASE(devinfo_table_order), KUNIT_CASE(devinfo_names), KUNIT_CASE(devinfo_no_cfg_dups), KUNIT_CASE(devinfo_pci_ids), + KUNIT_CASE(devinfo_no_trans_cfg_dups), {} }; From patchwork Fri May 2 12:56:20 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887152 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CB49F2522AB for ; Fri, 2 May 2025 12:56:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190614; cv=none; b=D6AoaFv8VV5qsEb0ZtaBckg7hoYlDwY3/XHi5tPcHuHoOASBgY96SZL+uJVpCtTjDKuppp2JqKoGhKIqZ5EJkTVcoZrlwhZOD7jYl9OP+TvGnuh3wzu0lq0KTOwhVGh3jy3AOBgQ3KqF/A4JmzwhU9aUrwdttfW5ITtc5pOv59I= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190614; c=relaxed/simple; bh=oYC58V4NwxfrziKrG0Un5HQw/7LX14s1NfglnZOkhF8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iL8nMDlJjY72lzd1LhEQRLE+Fx4bro2Ia226+sZZp2pH83ydN06eBno1L5T4nU0gqII/ZNNCHi7jSy3nThE8LZcPKczbiNW0s3oXBbMwulYgNvB0/hinis5grbByUP6/ckw7SRM3v2Ky49jCGhylp1GzYh0NVikC+FGwOi19mqA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=cY7F4iQW; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="cY7F4iQW" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190612; x=1777726612; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=oYC58V4NwxfrziKrG0Un5HQw/7LX14s1NfglnZOkhF8=; b=cY7F4iQW1ANYyOLD8Rqhu2U8SKGF3x8cqc3+vyolDnWfZY9XTXeFUEb+ NUglZ6Vsrx5E85QixmiHS/BLru9GCqu1eJkxZA8aJ2WQCKoXa1GYv8BF3 Yk3mg1+rK/ozvcXlQYyrf7TCaxoFy9zePjNYSg48SaLZRN8Ngf61mTnab VFjl6mtncpTYC9KuoIkqJ6wCDSRsKR3wWEpk60QLFr/e2W9VqVmy7vKKm qkfmkfOKXmWsPAr3JC59hKiQT+hHUHHkwsDXEl/khDo3PWma1njY3RtTf 5hnatbL+lgbLw7IDChV6h8J6sAwTsR/HD+0JmiFQveRrjIMSoBBueVecc Q==; X-CSE-ConnectionGUID: lfoHSpYlRD2IDAQQFzKkrQ== X-CSE-MsgGUID: 9lDBslz1SHOlPZwNQ50Q3Q== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255540" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255540" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:52 -0700 X-CSE-ConnectionGUID: 4phw4NZdSoqParqNsXqqJQ== X-CSE-MsgGUID: 7hq6BqjmT1+P7vPTGFZkwQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554707" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:50 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 04/15] wifi: iwlwifi: cfg: clean up BW limit and subdev matching Date: Fri, 2 May 2025 15:56:20 +0300 Message-Id: <20250502155404.a185eac2736c.I87ee87300c92518a1d3296d3eda9fd4163e9085e@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg The BW limit, cores and RF ID are matched in the subdevice ID, so it doesn't really make sense to have both SUBDEV() match and a match on any of those three. In particular, for Killer devices the subdevice ID doesn't even follow the layout, so no matching should be on those three values at all, only with SUBDEV(). Change the logic around the BW limit to have it more like all the other things: only a bw_limit match in the dev_info, and put the actual bandwidth into struct iwl_cfg. This duplicates a number of those values, but that way the logic is clearer. Add a test that checks that the three matches mentioned above are not used in conjunction with SUBDEV(), and check that if the bw_limit is matched, a BW limit is provided in the config. Also check that the "Killer" devices have a SUBDEV() match. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../net/wireless/intel/iwlwifi/cfg/22000.c | 19 + drivers/net/wireless/intel/iwlwifi/cfg/9000.c | 14 +- .../net/wireless/intel/iwlwifi/cfg/ax210.c | 14 + drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 8 + drivers/net/wireless/intel/iwlwifi/cfg/sc.c | 5 + .../net/wireless/intel/iwlwifi/iwl-config.h | 16 +- .../wireless/intel/iwlwifi/iwl-nvm-parse.c | 7 +- .../net/wireless/intel/iwlwifi/iwl-trans.h | 2 - drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 450 +++++++++--------- .../wireless/intel/iwlwifi/tests/devinfo.c | 35 +- 10 files changed, 327 insertions(+), 243 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c index 172ca18d888b..59d0fa2193f5 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c @@ -175,12 +175,25 @@ const struct iwl_cfg iwl9560_qu_jf_cfg = { .num_rbds = IWL_NUM_RBDS_NON_HE, }; +const struct iwl_cfg iwl9560_qu_jf_cfg_80mhz = { + IWL_DEVICE_22500, + .num_rbds = IWL_NUM_RBDS_NON_HE, + .bw_limit = 80, +}; + const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg = { .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE, IWL_DEVICE_22500, .num_rbds = IWL_NUM_RBDS_NON_HE, }; +const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg_80mhz = { + .fw_name_pre = IWL_QUZ_A_JF_B_FW_PRE, + IWL_DEVICE_22500, + .num_rbds = IWL_NUM_RBDS_NON_HE, + .bw_limit = 80, +}; + const struct iwl_cfg_trans_params iwl_ax200_trans_cfg = { .device_family = IWL_DEVICE_FAMILY_22000, .base_params = &iwl_22000_base_params, @@ -215,6 +228,12 @@ const struct iwl_cfg iwl_qu_hr = { .num_rbds = IWL_NUM_RBDS_22000_HE, }; +const struct iwl_cfg iwl_qu_hr_80mhz = { + IWL_DEVICE_22500, + .num_rbds = IWL_NUM_RBDS_22000_HE, + .bw_limit = 80, +}; + const struct iwl_cfg iwl_ax200_cfg_cc = { .fw_name_pre = IWL_CC_A_FW_PRE, IWL_DEVICE_22500, diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/9000.c b/drivers/net/wireless/intel/iwlwifi/cfg/9000.c index 0130d9a9b78b..16bf25051dbf 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/9000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/9000.c @@ -1,7 +1,7 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* * Copyright (C) 2015-2017 Intel Deutschland GmbH - * Copyright (C) 2018-2021, 2023 Intel Corporation + * Copyright (C) 2018-2021, 2023, 2025 Intel Corporation */ #include #include @@ -183,10 +183,22 @@ const struct iwl_cfg iwl9260_2ac_cfg = { IWL_DEVICE_9000, }; +const struct iwl_cfg iwl9260_2ac_cfg_80mhz = { + .fw_name_pre = IWL9260_FW_PRE, + IWL_DEVICE_9000, + .bw_limit = 80, +}; + const struct iwl_cfg iwl9560_2ac_cfg_soc = { .fw_name_pre = IWL9000_FW_PRE, IWL_DEVICE_9000, }; +const struct iwl_cfg iwl9560_2ac_cfg_soc_80mhz = { + .fw_name_pre = IWL9000_FW_PRE, + IWL_DEVICE_9000, + .bw_limit = 80, +}; + MODULE_FIRMWARE(IWL9000_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL9260_MODULE_FIRMWARE(IWL9000_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index 309d59d28c73..40244bdcad6f 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -203,6 +203,13 @@ const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0 = { .num_rbds = IWL_NUM_RBDS_NON_HE, }; +const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz = { + .fw_name_pre = IWL_SO_A_JF_B_FW_PRE, + IWL_DEVICE_AX210, + .num_rbds = IWL_NUM_RBDS_NON_HE, + .bw_limit = 80, +}; + const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = { .name = iwl_ax211_name, .fw_name_pre = IWL_SO_A_GF_A_FW_PRE, @@ -259,6 +266,13 @@ const struct iwl_cfg iwl_cfg_so_a0_hr_a0 = { .num_rbds = IWL_NUM_RBDS_AX210_HE, }; +const struct iwl_cfg iwl_cfg_so_a0_hr_a0_80mhz = { + .fw_name_pre = IWL_SO_A_HR_B_FW_PRE, + IWL_DEVICE_AX210, + .num_rbds = IWL_NUM_RBDS_AX210_HE, + .bw_limit = 80, +}; + MODULE_FIRMWARE(IWL_SO_A_JF_B_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX)); MODULE_FIRMWARE(IWL_SO_A_HR_B_MODULE_FIRMWARE(IWL_AX210_UCODE_API_MAX)); IWL_FW_AND_PNVM(IWL_SO_A_GF_A_FW_PRE, IWL_AX210_UCODE_API_MAX); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c index f3f2dc66bfb5..abd4bfd2a812 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c @@ -169,6 +169,14 @@ const struct iwl_cfg iwl_cfg_bz = { .num_rbds = IWL_NUM_RBDS_BZ_EHT, }; +const struct iwl_cfg iwl_cfg_bz_160mhz = { + .uhb_supported = true, + IWL_DEVICE_BZ, + .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, + .num_rbds = IWL_NUM_RBDS_BZ_EHT, + .bw_limit = 160, +}; + MODULE_FIRMWARE(IWL_BZ_A_HR_B_MODULE_FIRMWARE(IWL_BZ_UCODE_API_MAX)); IWL_FW_AND_PNVM(IWL_BZ_A_GF_A_FW_PRE, IWL_BZ_UCODE_API_MAX); IWL_FW_AND_PNVM(IWL_BZ_A_GF4_A_FW_PRE, IWL_BZ_UCODE_API_MAX); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c index 405c282e019c..800b6ffec4af 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c @@ -149,6 +149,11 @@ const struct iwl_cfg iwl_cfg_sc = { IWL_DEVICE_SC, }; +const struct iwl_cfg iwl_cfg_sc_160mhz = { + IWL_DEVICE_SC, + .bw_limit = 160, +}; + IWL_FW_AND_PNVM(IWL_SC_A_FM_B_FW_PRE, IWL_SC_UCODE_API_MAX); IWL_FW_AND_PNVM(IWL_SC_A_FM_C_FW_PRE, IWL_SC_UCODE_API_MAX); MODULE_FIRMWARE(IWL_SC_A_HR_A_FW_MODULE_FIRMWARE(IWL_SC_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index a9d70b58e134..f8044af3b0f2 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -324,6 +324,7 @@ struct iwl_fw_mon_regs { * @non_shared_ant: the antenna that is for WiFi only * @nvm_ver: NVM version * @nvm_calib_ver: NVM calibration version + * @bw_limit: bandwidth limit for this device, if non-zero * @ht_params: point to ht parameters * @led_mode: 0=blinking, 1=On(RF On)/Off(RF Off) * @rx_with_siso_diversity: 1x1 device with rx antenna diversity @@ -382,6 +383,7 @@ struct iwl_cfg { u32 smem_len; u16 nvm_ver; u16 nvm_calib_ver; + u16 bw_limit; u32 rx_with_siso_diversity:1, tx_with_siso_diversity:1, internal_wimax_coex:1, @@ -447,9 +449,6 @@ struct iwl_cfg { #define IWL_CFG_RF_ID_HR 0x7 #define IWL_CFG_RF_ID_HR1 0x4 -#define IWL_CFG_BW_NO_LIM (U16_MAX - 1) -#define IWL_CFG_BW_ANY U16_MAX - #define IWL_CFG_CORES_BT 0x0 #define IWL_CFG_CORES_BT_GNSS 0x5 @@ -468,7 +467,7 @@ struct iwl_dev_info { u16 subdevice; u16 mac_type; u16 rf_type; - u16 bw_limit; + u8 bw_limit; u8 mac_step; u8 rf_step; u8 rf_id; @@ -619,13 +618,19 @@ extern const struct iwl_cfg iwl8265_2ac_cfg; extern const struct iwl_cfg iwl8275_2ac_cfg; extern const struct iwl_cfg iwl4165_2ac_cfg; extern const struct iwl_cfg iwl9260_2ac_cfg; +extern const struct iwl_cfg iwl9260_2ac_cfg_80mhz; extern const struct iwl_cfg iwl9560_qu_jf_cfg; +extern const struct iwl_cfg iwl9560_qu_jf_cfg_80mhz; extern const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg; +extern const struct iwl_cfg iwl9560_quz_a0_jf_b0_cfg_80mhz; extern const struct iwl_cfg iwl9560_2ac_cfg_soc; +extern const struct iwl_cfg iwl9560_2ac_cfg_soc_80mhz; extern const struct iwl_cfg iwl_qu_hr1; extern const struct iwl_cfg iwl_qu_hr; +extern const struct iwl_cfg iwl_qu_hr_80mhz; extern const struct iwl_cfg iwl_ax200_cfg_cc; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0; +extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz; extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0; extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0_long; extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0; @@ -635,14 +640,17 @@ extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0_long; extern const struct iwl_cfg iwl_cfg_ma; extern const struct iwl_cfg iwl_cfg_so_a0_hr_a0; +extern const struct iwl_cfg iwl_cfg_so_a0_hr_a0_80mhz; #endif /* CONFIG_IWLMVM */ #if IS_ENABLED(CONFIG_IWLMLD) extern const struct iwl_ht_params iwl_bz_ht_params; extern const struct iwl_cfg iwl_cfg_bz; +extern const struct iwl_cfg iwl_cfg_bz_160mhz; extern const struct iwl_cfg iwl_cfg_sc; +extern const struct iwl_cfg iwl_cfg_sc_160mhz; extern const struct iwl_cfg iwl_cfg_dr; #endif /* CONFIG_IWLMLD */ diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c index 018752b8c4d8..b0b42e024766 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c @@ -949,7 +949,7 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans, break; case NL80211_BAND_6GHZ: if (!trans->reduced_cap_sku && - trans->bw_limit >= 320) { + (!trans->cfg->bw_limit || trans->cfg->bw_limit >= 320)) { iftype_data->eht_cap.eht_cap_elem.phy_cap_info[0] |= IEEE80211_EHT_PHY_CAP0_320MHZ_IN_6GHZ; iftype_data->eht_cap.eht_cap_elem.phy_cap_info[1] |= @@ -1099,11 +1099,12 @@ iwl_nvm_fixup_sband_iftd(struct iwl_trans *trans, iftype_data->eht_cap.eht_mcs_nss_supp.bw._320.rx_tx_mcs13_max_nss = 0; } - if (trans->bw_limit < 160) + if (trans->cfg->bw_limit && trans->cfg->bw_limit < 160) iftype_data->he_cap.he_cap_elem.phy_cap_info[0] &= ~IEEE80211_HE_PHY_CAP0_CHANNEL_WIDTH_SET_160MHZ_IN_5G; - if (trans->bw_limit < 320 || trans->reduced_cap_sku) { + if ((trans->cfg->bw_limit && trans->cfg->bw_limit < 320) || + trans->reduced_cap_sku) { memset(&iftype_data->eht_cap.eht_mcs_nss_supp.bw._320, 0, sizeof(iftype_data->eht_cap.eht_mcs_nss_supp.bw._320)); iftype_data->eht_cap.eht_cap_elem.phy_cap_info[2] &= diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h index 7378a8e74314..c02c9af2e302 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h @@ -880,7 +880,6 @@ struct iwl_txq { * only valid for discrete (not integrated) NICs * @invalid_tx_cmd: invalid TX command buffer * @reduced_cap_sku: reduced capability supported SKU - * @bw_limit: the max bandwidth * @step_urm: STEP is in URM, no support for MCS>9 in 320 MHz * @restart: restart worker data * @restart.wk: restart worker @@ -919,7 +918,6 @@ struct iwl_trans { char hw_id_str[52]; u32 sku_id[3]; bool reduced_cap_sku; - u16 bw_limit; bool step_urm; u8 dsbr_urm_fw_dependent:1, diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 83d368ef623a..69191ec5d3e7 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -559,7 +559,7 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); .mac_step = IWL_CFG_ANY, \ .rf_type = IWL_CFG_ANY, \ .rf_step = IWL_CFG_ANY, \ - .bw_limit = IWL_CFG_BW_ANY, \ + .bw_limit = IWL_CFG_ANY, \ .jacket = IWL_CFG_ANY, \ .cores = IWL_CFG_ANY, \ .rf_id = IWL_CFG_ANY, \ @@ -579,453 +579,447 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); #define RF_ID(n) .rf_id = IWL_CFG_RF_ID_##n #define NO_CDB .cdb = IWL_CFG_NO_CDB #define CDB .cdb = IWL_CFG_CDB -#define BW_NO_LIMIT .bw_limit = IWL_CFG_BW_NO_LIM -#define BW_LIMIT(n) .bw_limit = (n) +#define BW_NO_LIMIT .bw_limit = 0 +#define BW_LIMITED .bw_limit = 1 VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { #if IS_ENABLED(CONFIG_IWLMVM) /* 9000 */ IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_killer_1550_name, - DEVICE(0x2526), SUBDEV(0x1550), BW_NO_LIMIT), + DEVICE(0x2526), SUBDEV(0x1550)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, - DEVICE(0x2526), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x2526), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, - DEVICE(0x2526), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x2526), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, - DEVICE(0x30DC), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x30DC), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, - DEVICE(0x30DC), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x30DC), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, - DEVICE(0x31DC), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x31DC), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, - DEVICE(0x31DC), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x31DC), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_name, - DEVICE(0xA370), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0xA370), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, - DEVICE(0xA370), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0xA370), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, - DEVICE(0x54F0), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x54F0), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_name, - DEVICE(0x54F0), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x54F0), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, - DEVICE(0x51F0), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x51F0), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name, - DEVICE(0x51F0), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x51F0), SUBDEV(0x1551)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, - DEVICE(0x51F0), SUBDEV(0x1691), BW_NO_LIMIT), + DEVICE(0x51F0), SUBDEV(0x1691)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, - DEVICE(0x51F0), SUBDEV(0x1692), BW_NO_LIMIT), + DEVICE(0x51F0), SUBDEV(0x1692)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, - DEVICE(0x51F1), SUBDEV(0x1692), BW_NO_LIMIT), + DEVICE(0x51F1), SUBDEV(0x1692)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, - DEVICE(0x54F0), SUBDEV(0x1691), BW_NO_LIMIT), + DEVICE(0x54F0), SUBDEV(0x1691)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, - DEVICE(0x54F0), SUBDEV(0x1692), BW_NO_LIMIT), + DEVICE(0x54F0), SUBDEV(0x1692)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, - DEVICE(0x7A70), SUBDEV(0x1691), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x1691)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, - DEVICE(0x7A70), SUBDEV(0x1692), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x1692)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690s_name, - DEVICE(0x7AF0), SUBDEV(0x1691), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x1691)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_killer_1690i_name, - DEVICE(0x7AF0), SUBDEV(0x1692), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x1692)), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_1_name, - DEVICE(0x271C), SUBDEV(0x0214), BW_NO_LIMIT), + DEVICE(0x271C), SUBDEV(0x0214)), IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690s_name, - DEVICE(0x7E40), SUBDEV(0x1691), BW_NO_LIMIT), + DEVICE(0x7E40), SUBDEV(0x1691)), IWL_DEV_INFO(iwl_cfg_ma, iwl_ax411_killer_1690i_name, - DEVICE(0x7E40), SUBDEV(0x1692), BW_NO_LIMIT), + DEVICE(0x7E40), SUBDEV(0x1692)), /* AX200 */ IWL_DEV_INFO(iwl_ax200_cfg_cc, iwl_ax200_name, - DEVICE(0x2723), BW_NO_LIMIT), + DEVICE(0x2723)), IWL_DEV_INFO(iwl_ax200_cfg_cc, iwl_ax200_killer_1650w_name, - DEVICE(0x2723), SUBDEV(0x1653), BW_NO_LIMIT), + DEVICE(0x2723), SUBDEV(0x1653)), IWL_DEV_INFO(iwl_ax200_cfg_cc, iwl_ax200_killer_1650x_name, - DEVICE(0x2723), SUBDEV(0x1654), BW_NO_LIMIT), + DEVICE(0x2723), SUBDEV(0x1654)), /* Qu with Hr */ IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x43F0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x43F0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x43F0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0x43F0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x0A10), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x0A10)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0xA0F0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0xA0F0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0xA0F0), SUBDEV(0x6074), BW_NO_LIMIT), + DEVICE(0xA0F0), SUBDEV(0x6074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x6074), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x6074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x0310)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x02F0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x02F0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x02F0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0x02F0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x0310)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x06F0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x06F0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x06F0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0x06F0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x0310)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x34F0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x34F0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x34F0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0x34F0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x0310)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x3DF0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x3DF0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x3DF0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0x3DF0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0070), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x0070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0074), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x0074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0078), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x0078)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x007C), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x007C)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x0310)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650s_name, - DEVICE(0x4DF0), SUBDEV(0x1651), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x1651)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_killer_1650i_name, - DEVICE(0x4DF0), SUBDEV(0x1652), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x1652)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x2074), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x2074)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x4070), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x4070)), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, - DEVICE(0x4DF0), SUBDEV(0x6074), BW_NO_LIMIT), + DEVICE(0x4DF0), SUBDEV(0x6074)), /* So with HR */ IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x0090), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x0090)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x0020), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x0020)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x2020), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x2020)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x0024), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x0024)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x0310)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x0510), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x0510)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x0A10), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x0A10)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0xE020), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0xE020)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0xE024), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0xE024)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x4020), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x4020)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x6020), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x6020)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, - DEVICE(0x2725), SUBDEV(0x6024), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x6024)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675w_name, - DEVICE(0x2725), SUBDEV(0x1673), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x1673)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675x_name, - DEVICE(0x2725), SUBDEV(0x1674), BW_NO_LIMIT), + DEVICE(0x2725), SUBDEV(0x1674)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, - DEVICE(0x7A70), SUBDEV(0x0090), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x0090)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, - DEVICE(0x7A70), SUBDEV(0x0098), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x0098)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0_long, NULL, - DEVICE(0x7A70), SUBDEV(0x00B0), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x00B0)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, - DEVICE(0x7A70), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x0310)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, - DEVICE(0x7A70), SUBDEV(0x0510), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x0510)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, - DEVICE(0x7A70), SUBDEV(0x0A10), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x0A10)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, - DEVICE(0x7AF0), SUBDEV(0x0090), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x0090)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, - DEVICE(0x7AF0), SUBDEV(0x0098), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x0098)), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, NULL, - DEVICE(0x7AF0), SUBDEV(0x00B0), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x00B0)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, - DEVICE(0x7AF0), SUBDEV(0x0310), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x0310)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, - DEVICE(0x7AF0), SUBDEV(0x0510), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x0510)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, - DEVICE(0x7AF0), SUBDEV(0x0A10), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x0A10)), /* So with JF */ IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, - DEVICE(0x7A70), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name, - DEVICE(0x7A70), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x1552)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550s_160_name, - DEVICE(0x7AF0), SUBDEV(0x1551), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x1551)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_killer_1550i_160_name, - DEVICE(0x7AF0), SUBDEV(0x1552), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x1552)), /* SO with GF2 */ IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x2726), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x2726), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x2726), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x2726), SUBDEV(0x1672)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x51F0), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x51F0), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x51F0), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x51F0), SUBDEV(0x1672)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x51F1), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x51F1), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x51F1), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x51F1), SUBDEV(0x1672)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x54F0), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x54F0), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x54F0), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x54F0), SUBDEV(0x1672)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x7A70), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x7A70), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x7A70), SUBDEV(0x1672)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x7AF0), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x7AF0), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x7AF0), SUBDEV(0x1672)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675s_name, - DEVICE(0x7F70), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x7F70), SUBDEV(0x1671)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_killer_1675i_name, - DEVICE(0x7F70), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x7F70), SUBDEV(0x1672)), /* MA with GF2 */ IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675s_name, - DEVICE(0x7E40), SUBDEV(0x1671), BW_NO_LIMIT), + DEVICE(0x7E40), SUBDEV(0x1671)), IWL_DEV_INFO(iwl_cfg_ma, iwl_ax211_killer_1675i_name, - DEVICE(0x7E40), SUBDEV(0x1672), BW_NO_LIMIT), + DEVICE(0x7E40), SUBDEV(0x1672)), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9461_160_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9461_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9461_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9462_160_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9462_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9462_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_160_name, MAC_TYPE(PU), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_name, MAC_TYPE(PU), + IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9560_name, MAC_TYPE(PU), RF_TYPE(JF2), RF_ID(JF), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9270_160_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_NO_LIMIT, CORES(BT_GNSS), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9270_name, DEVICE(0x2526), + IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9270_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), - BW_LIMIT(80), CORES(BT_GNSS), NO_CDB), + BW_LIMITED, CORES(BT_GNSS), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9162_160_name, DEVICE(0x271B), MAC_TYPE(TH), RF_TYPE(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9162_name, DEVICE(0x271B), + IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9162_name, DEVICE(0x271B), MAC_TYPE(TH), RF_TYPE(JF1), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_160_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_name, DEVICE(0x2526), + IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9260_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), /* Qu with Jf */ /* Qu B step */ IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9461_160_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9461_name, + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9461_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9462_160_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9462_name, + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9462_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_160_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_name, + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2), RF_ID(JF), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_killer_1550s_name, - SUBDEV(0x1551), MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2), - RF_ID(JF), BW_LIMIT(80), CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_killer_1550i_name, - SUBDEV(0x1552), MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2), - RF_ID(JF), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_killer_1550s_name, + SUBDEV(0x1551), MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2)), + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_killer_1550i_name, + SUBDEV(0x1552), MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2)), /* Qu C step */ IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9461_160_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9461_name, + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9461_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9462_160_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9462_name, + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9462_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_LIMIT(80), CORES(BT), NO_CDB), + BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_160_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_name, MAC_TYPE(QU), - MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_LIMIT(80), CORES(BT), + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_name, MAC_TYPE(QU), + MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_killer_1550s_name, - SUBDEV(0x1551), MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF2), - RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_killer_1550i_name, - SUBDEV(0x1552), MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF2), - RF_ID(JF), BW_LIMIT(80), CORES(BT), NO_CDB), + SUBDEV(0x1551), MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF2)), + IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_killer_1550i_name, + SUBDEV(0x1552), MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF2)), /* QuZ */ IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9461_160_name, MAC_TYPE(QUZ), RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9461_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9461_name, MAC_TYPE(QUZ), + RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9462_160_name, MAC_TYPE(QUZ), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9462_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9462_name, MAC_TYPE(QUZ), + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9560_160_name, MAC_TYPE(QUZ), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9560_name, MAC_TYPE(QUZ), - RF_TYPE(JF2), RF_ID(JF), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9560_name, MAC_TYPE(QUZ), + RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550s_name, - SUBDEV(0x1551), MAC_TYPE(QUZ), RF_TYPE(JF2), RF_ID(JF), - BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9560_killer_1550i_name, - SUBDEV(0x1552), MAC_TYPE(QUZ), RF_TYPE(JF2), RF_ID(JF), - BW_LIMIT(80), CORES(BT), NO_CDB), + SUBDEV(0x1551), MAC_TYPE(QUZ), RF_TYPE(JF2)), + IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9560_killer_1550i_name, + SUBDEV(0x1552), MAC_TYPE(QUZ), RF_TYPE(JF2)), /* Qu with Hr */ /* Qu B step */ IWL_DEV_INFO(iwl_qu_hr1, iwl_ax101_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(HR1), NO_CDB), - IWL_DEV_INFO(iwl_qu_hr, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(B), - RF_TYPE(HR2), BW_LIMIT(80), NO_CDB), + IWL_DEV_INFO(iwl_qu_hr_80mhz, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(B), + RF_TYPE(HR2), BW_LIMITED, NO_CDB), /* Qu C step */ IWL_DEV_INFO(iwl_qu_hr1, iwl_ax101_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(HR1), NO_CDB), - IWL_DEV_INFO(iwl_qu_hr, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(HR2), BW_LIMIT(80), NO_CDB), + IWL_DEV_INFO(iwl_qu_hr_80mhz, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(C), + RF_TYPE(HR2), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), /* QuZ */ IWL_DEV_INFO(iwl_qu_hr1, iwl_ax101_name, MAC_TYPE(QUZ), RF_TYPE(HR1), NO_CDB), - IWL_DEV_INFO(iwl_qu_hr, iwl_ax203_name, MAC_TYPE(QUZ), - MAC_STEP(B), RF_TYPE(HR2), BW_LIMIT(80), NO_CDB), + IWL_DEV_INFO(iwl_qu_hr_80mhz, iwl_ax203_name, MAC_TYPE(QUZ), + MAC_STEP(B), RF_TYPE(HR2), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, MAC_TYPE(QUZ), MAC_STEP(B), RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), @@ -1037,10 +1031,10 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { NO_CDB), /* So with Hr */ - IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax203_name, MAC_TYPE(SO), - RF_TYPE(HR2), BW_LIMIT(80), NO_CDB), - IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax101_name, MAC_TYPE(SO), - RF_TYPE(HR1), BW_LIMIT(80), NO_CDB), + IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0_80mhz, iwl_ax203_name, MAC_TYPE(SO), + RF_TYPE(HR2), BW_LIMITED, NO_CDB), + IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0_80mhz, iwl_ax101_name, MAC_TYPE(SO), + RF_TYPE(HR1), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax201_name, MAC_TYPE(SO), RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax201_killer_1650i_name, @@ -1048,10 +1042,10 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { MAC_TYPE(SO), RF_TYPE(HR2)), /* So-F with Hr */ - IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax203_name, MAC_TYPE(SOF), - RF_TYPE(HR2), BW_LIMIT(80), NO_CDB), - IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax101_name, MAC_TYPE(SOF), - RF_TYPE(HR1), BW_LIMIT(80), NO_CDB), + IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0_80mhz, iwl_ax203_name, MAC_TYPE(SOF), + RF_TYPE(HR2), BW_LIMITED, NO_CDB), + IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0_80mhz, iwl_ax101_name, MAC_TYPE(SOF), + RF_TYPE(HR1), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax201_name, MAC_TYPE(SOF), RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), @@ -1064,18 +1058,18 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* SoF with JF2 */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name, MAC_TYPE(SOF), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9560_name, MAC_TYPE(SOF), - RF_TYPE(JF2), RF_ID(JF), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9560_name, MAC_TYPE(SOF), + RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), /* SoF with JF */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name, MAC_TYPE(SOF), RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name, MAC_TYPE(SOF), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9461_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1), BW_LIMIT(80), CORES(BT), NO_CDB), - IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9462_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9461_name, MAC_TYPE(SOF), + RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), + IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9462_name, MAC_TYPE(SOF), + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), /* So with GF */ IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, MAC_TYPE(SO), @@ -1086,18 +1080,18 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* So with JF2 */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name, MAC_TYPE(SO), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9560_name, MAC_TYPE(SO), - RF_TYPE(JF2), RF_ID(JF), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9560_name, MAC_TYPE(SO), + RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), /* So with JF */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name, MAC_TYPE(SO), RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name, MAC_TYPE(SO), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), - IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9461_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1), BW_LIMIT(80), CORES(BT), NO_CDB), - IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9462_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMIT(80), CORES(BT), NO_CDB), + IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9461_name, MAC_TYPE(SO), + RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), + IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9462_name, MAC_TYPE(SO), + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), #endif /* CONFIG_IWLMVM */ #if IS_ENABLED(CONFIG_IWLMLD) @@ -1121,30 +1115,30 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* Ga (Gl) */ IWL_DEV_INFO(iwl_cfg_bz, iwl_gl_name, MAC_TYPE(GL), RF_TYPE(FM), BW_NO_LIMIT, NO_CDB), - IWL_DEV_INFO(iwl_cfg_bz, iwl_mtp_name, MAC_TYPE(GL), RF_TYPE(FM), - BW_LIMIT(160), NO_CDB), + IWL_DEV_INFO(iwl_cfg_bz_160mhz, iwl_mtp_name, MAC_TYPE(GL), RF_TYPE(FM), + BW_LIMITED, NO_CDB), /* Sc */ IWL_DEV_INFO(iwl_cfg_sc, iwl_ax211_name, MAC_TYPE(SC), RF_TYPE(GF)), IWL_DEV_INFO(iwl_cfg_sc, iwl_fm_name, MAC_TYPE(SC), RF_TYPE(FM)), IWL_DEV_INFO(iwl_cfg_sc, iwl_wh_name, MAC_TYPE(SC), RF_TYPE(WH), BW_NO_LIMIT), - IWL_DEV_INFO(iwl_cfg_sc, iwl_sp_name, MAC_TYPE(SC), RF_TYPE(WH), - BW_LIMIT(160)), + IWL_DEV_INFO(iwl_cfg_sc_160mhz, iwl_sp_name, MAC_TYPE(SC), RF_TYPE(WH), + BW_LIMITED), IWL_DEV_INFO(iwl_cfg_sc, iwl_pe_name, MAC_TYPE(SC), RF_TYPE(PE)), IWL_DEV_INFO(iwl_cfg_sc, iwl_ax211_name, MAC_TYPE(SC2), RF_TYPE(GF)), IWL_DEV_INFO(iwl_cfg_sc, iwl_fm_name, MAC_TYPE(SC2), RF_TYPE(FM)), IWL_DEV_INFO(iwl_cfg_sc, iwl_wh_name, MAC_TYPE(SC2), RF_TYPE(WH), BW_NO_LIMIT), - IWL_DEV_INFO(iwl_cfg_sc, iwl_sp_name, MAC_TYPE(SC2), RF_TYPE(WH), - BW_LIMIT(160)), + IWL_DEV_INFO(iwl_cfg_sc_160mhz, iwl_sp_name, MAC_TYPE(SC2), RF_TYPE(WH), + BW_LIMITED), IWL_DEV_INFO(iwl_cfg_sc, iwl_pe_name, MAC_TYPE(SC2), RF_TYPE(PE)), IWL_DEV_INFO(iwl_cfg_sc, iwl_ax211_name, MAC_TYPE(SC2F), RF_TYPE(GF)), IWL_DEV_INFO(iwl_cfg_sc, iwl_fm_name, MAC_TYPE(SC2F), RF_TYPE(FM)), IWL_DEV_INFO(iwl_cfg_sc, iwl_wh_name, MAC_TYPE(SC2F), RF_TYPE(WH), BW_NO_LIMIT), - IWL_DEV_INFO(iwl_cfg_sc, iwl_sp_name, MAC_TYPE(SC2F), RF_TYPE(WH), - BW_LIMIT(160)), + IWL_DEV_INFO(iwl_cfg_sc_160mhz, iwl_sp_name, MAC_TYPE(SC2F), RF_TYPE(WH), + BW_LIMITED), IWL_DEV_INFO(iwl_cfg_sc, iwl_pe_name, MAC_TYPE(SC2F), RF_TYPE(PE)), /* Dr */ @@ -1345,15 +1339,8 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device, dev_info->rf_id != rf_id) continue; - /* - * Check that bw_limit have the same "boolean" value since - * IWL_SUBDEVICE_BW_LIM can only return a boolean value and - * dev_info->bw_limit encodes a non-boolean value. - * dev_info->bw_limit == IWL_CFG_BW_NO_LIM must be equal to - * !bw_limit to have a match. - */ - if (dev_info->bw_limit != IWL_CFG_BW_ANY && - (dev_info->bw_limit == IWL_CFG_BW_NO_LIM) == !!bw_limit) + if (dev_info->bw_limit != (u8)IWL_CFG_ANY && + dev_info->bw_limit != bw_limit) continue; if (dev_info->cores != (u8)IWL_CFG_ANY && @@ -1497,7 +1484,6 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) if (dev_info) { iwl_trans->cfg = dev_info->cfg; iwl_trans->name = dev_info->name; - iwl_trans->bw_limit = dev_info->bw_limit; } #if IS_ENABLED(CONFIG_IWLMVM) diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index de6e3eaca8cd..0da5e255b063 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -31,7 +31,7 @@ static void devinfo_table_order(struct kunit *test) di->mac_type, di->mac_step, di->rf_type, di->cdb, di->jacket, di->rf_id, - di->bw_limit != IWL_CFG_BW_NO_LIM, + di->bw_limit, di->cores, di->rf_step); if (!ret) { iwl_pci_print_dev_info("No entry found for: ", di); @@ -104,6 +104,37 @@ static void devinfo_no_cfg_dups(struct kunit *test) } } +static void devinfo_check_subdev_match(struct kunit *test) +{ + for (int i = 0; i < iwl_dev_info_table_size; i++) { + const struct iwl_dev_info *di = &iwl_dev_info_table[i]; + + /* if BW limit bit is matched then must have a limit */ + if (di->bw_limit == 1) + KUNIT_EXPECT_NE(test, di->cfg->bw_limit, 0); + + if (di->subdevice == (u16)IWL_CFG_ANY) + continue; + + KUNIT_EXPECT_EQ(test, di->rf_id, (u8)IWL_CFG_ANY); + KUNIT_EXPECT_EQ(test, di->bw_limit, (u8)IWL_CFG_ANY); + KUNIT_EXPECT_EQ(test, di->cores, (u8)IWL_CFG_ANY); + } +} + +static void devinfo_check_killer_subdev(struct kunit *test) +{ + for (int i = 0; i < iwl_dev_info_table_size; i++) { + const struct iwl_dev_info *di = &iwl_dev_info_table[i]; + const char *name = di->name ?: di->cfg->name; + + if (!strstr(name, "Killer")) + continue; + + KUNIT_EXPECT_NE(test, di->subdevice, (u16)IWL_CFG_ANY); + } +} + static void devinfo_pci_ids(struct kunit *test) { struct pci_dev *dev; @@ -177,6 +208,8 @@ static struct kunit_case devinfo_test_cases[] = { KUNIT_CASE(devinfo_table_order), KUNIT_CASE(devinfo_names), KUNIT_CASE(devinfo_no_cfg_dups), + KUNIT_CASE(devinfo_check_subdev_match), + KUNIT_CASE(devinfo_check_killer_subdev), KUNIT_CASE(devinfo_pci_ids), KUNIT_CASE(devinfo_no_trans_cfg_dups), {} From patchwork Fri May 2 12:56:21 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886930 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 96CFC254AF7 for ; Fri, 2 May 2025 12:56:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190615; cv=none; b=hZmtqrzDyz5xzzzQbSpwDrAD6gbUPj+VBGpCrqa0gPFCFsa3ca2/GA8EWssFnenBfNKLhGTOjTZGwCb3ccC7/MFyNZQ2uNub9hs0T6uCo95gC8jgSGdngD7eJlkznDNXMy4aACCrGkhEUoUmLzCj8JjrJLyNZyhZTzNBEEIWfdA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190615; c=relaxed/simple; bh=J9TrBDvSaXbv7SZNM8bnf1eznDRORAaCLVwdZ1xFG6E=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=fZU7pU7SQHHinUt9r2PEpwzyu12W0VwQOAZ8YnhtiAwEpwpMFEsDf4qNQJFno6eZnFbu0bDNhEEaTXJKflatPhu0UYu4P2YtNxbhunaEWqHieZGmmCHBC0r7c0csrI6ZD5TZQb4+jVdAfEZcxGmoq+RUDSQ5ok6OCO3hWQeQcMY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=BSYSSkya; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="BSYSSkya" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190614; x=1777726614; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=J9TrBDvSaXbv7SZNM8bnf1eznDRORAaCLVwdZ1xFG6E=; b=BSYSSkyaNQDKB/MYygfpmlhfsLdOY4fjBubV5HoUwKyLqy58x3t1HBfH vaDzGX9fmuFXOC4r2rHVGZes4MClqccWqMaTw7sFVKRR7FwoRuv3SXZI9 9hA77xW4reaQJpa9W6ZRJzp4JAAKsxKXx1A1UDMdbwpTtUKGBcJjPcYHP oOWYla0er8zEwpr4kQaLSWy8Z+VFQuinkubPV2vwQIsR/YegbB1RrRQak LeHPMDDDQmPynKnCDAZNr8Fa0CAdNNjrqzSfrqoxwd/bKT8s7eVxfAaZD aXuUJAWHDA5R6UsTpcrPhia8XLZNwAWTuTY5H2XeGM1u3JeWLWH7IuLnX g==; X-CSE-ConnectionGUID: R4grKruqToetwq/Tz/qjuw== X-CSE-MsgGUID: 2HN6HyM5QrWlH16GhTeg+A== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255541" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255541" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:54 -0700 X-CSE-ConnectionGUID: b1WZ3BF+QnCnKt5Xax6nmg== X-CSE-MsgGUID: 3jHhdyJQQfGDnFcsSPLFPA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554711" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:52 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 05/15] wifi: iwlwifi: cfg: rename BW_NO_LIMIT to BW_NOT_LIMITED Date: Fri, 2 May 2025 15:56:21 +0300 Message-Id: <20250502155404.9b39693b505c.Ib47aa6a072a0e61bbba28383ce54764cd859f19c@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg It's not clear that it makes sense to have any matches for IWL_CFG_ANY for this bit, but let's assume for now that this makes sense. Then, it's clearer to call this BW_NOT_LIMITED rather than BW_NO_LIMIT, since the last change. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 68 +++++++++---------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 69191ec5d3e7..618b6b9fefa7 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -579,7 +579,7 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); #define RF_ID(n) .rf_id = IWL_CFG_RF_ID_##n #define NO_CDB .cdb = IWL_CFG_NO_CDB #define CDB .cdb = IWL_CFG_CDB -#define BW_NO_LIMIT .bw_limit = 0 +#define BW_NOT_LIMITED .bw_limit = 0 #define BW_LIMITED .bw_limit = 1 VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { @@ -881,41 +881,41 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9461_160_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9461_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9462_160_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9462_name, MAC_TYPE(PU), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc, iwl9560_160_name, MAC_TYPE(PU), RF_TYPE(JF2), RF_ID(JF), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_2ac_cfg_soc_80mhz, iwl9560_name, MAC_TYPE(PU), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9270_160_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), - BW_NO_LIMIT, CORES(BT_GNSS), NO_CDB), + BW_NOT_LIMITED, CORES(BT_GNSS), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9270_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_LIMITED, CORES(BT_GNSS), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9162_160_name, DEVICE(0x271B), MAC_TYPE(TH), RF_TYPE(JF1), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9162_name, DEVICE(0x271B), MAC_TYPE(TH), RF_TYPE(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_160_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9260_2ac_cfg_80mhz, iwl9260_name, DEVICE(0x2526), MAC_TYPE(TH), RF_TYPE(JF2), BW_LIMITED, CORES(BT), NO_CDB), @@ -924,14 +924,14 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* Qu B step */ IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9461_160_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9461_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9462_160_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9462_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF1), RF_ID(JF1_DIV), @@ -940,7 +940,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_160_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2), RF_ID(JF), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_name, MAC_TYPE(QU), MAC_STEP(B), RF_TYPE(JF2), RF_ID(JF), @@ -955,7 +955,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9461_160_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9461_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1), @@ -963,14 +963,14 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9462_160_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1_DIV), - BW_NO_LIMIT, CORES(BT), NO_CDB), + BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9462_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg, iwl9560_160_name, MAC_TYPE(QU), - MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), + MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_qu_jf_cfg_80mhz, iwl9560_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), @@ -982,16 +982,16 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* QuZ */ IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9461_160_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9461_name, MAC_TYPE(QUZ), RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9462_160_name, MAC_TYPE(QUZ), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9462_name, MAC_TYPE(QUZ), RF_TYPE(JF1), RF_ID(JF1_DIV), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg, iwl9560_160_name, MAC_TYPE(QUZ), - RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwl9560_quz_a0_jf_b0_cfg_80mhz, iwl9560_name, MAC_TYPE(QUZ), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), @@ -1013,7 +1013,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_qu_hr_80mhz, iwl_ax203_name, MAC_TYPE(QU), MAC_STEP(C), RF_TYPE(HR2), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, MAC_TYPE(QU), MAC_STEP(C), - RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), + RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), /* QuZ */ IWL_DEV_INFO(iwl_qu_hr1, iwl_ax101_name, MAC_TYPE(QUZ), @@ -1021,7 +1021,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_qu_hr_80mhz, iwl_ax203_name, MAC_TYPE(QUZ), MAC_STEP(B), RF_TYPE(HR2), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_qu_hr, iwl_ax201_name, MAC_TYPE(QUZ), - MAC_STEP(B), RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), + MAC_STEP(B), RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), /* Ma */ IWL_DEV_INFO(iwl_cfg_ma, iwl_ax201_name, MAC_TYPE(MA), RF_TYPE(HR2), @@ -1036,7 +1036,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0_80mhz, iwl_ax101_name, MAC_TYPE(SO), RF_TYPE(HR1), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax201_name, MAC_TYPE(SO), - RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), + RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax201_killer_1650i_name, DEVICE(0x51f0), SUBDEV(0x1652), MAC_TYPE(SO), RF_TYPE(HR2)), @@ -1047,25 +1047,25 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0_80mhz, iwl_ax101_name, MAC_TYPE(SOF), RF_TYPE(HR1), BW_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_cfg_so_a0_hr_a0, iwl_ax201_name, MAC_TYPE(SOF), - RF_TYPE(HR2), BW_NO_LIMIT, NO_CDB), + RF_TYPE(HR2), BW_NOT_LIMITED, NO_CDB), /* So-F with Gf */ IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, MAC_TYPE(SOF), - RF_TYPE(GF), BW_NO_LIMIT, NO_CDB), + RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, MAC_TYPE(SOF), - RF_TYPE(GF), BW_NO_LIMIT, CDB), + RF_TYPE(GF), BW_NOT_LIMITED, CDB), /* SoF with JF2 */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name, MAC_TYPE(SOF), - RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9560_name, MAC_TYPE(SOF), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), /* SoF with JF */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name, MAC_TYPE(SOF), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9461_name, MAC_TYPE(SOF), RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9462_name, MAC_TYPE(SOF), @@ -1073,21 +1073,21 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* So with GF */ IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, MAC_TYPE(SO), - RF_TYPE(GF), BW_NO_LIMIT, NO_CDB), + RF_TYPE(GF), BW_NOT_LIMITED, NO_CDB), IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, MAC_TYPE(SO), - RF_TYPE(GF), BW_NO_LIMIT, CDB), + RF_TYPE(GF), BW_NOT_LIMITED, CDB), /* So with JF2 */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9560_160_name, MAC_TYPE(SO), - RF_TYPE(JF2), RF_ID(JF), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF2), RF_ID(JF), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9560_name, MAC_TYPE(SO), RF_TYPE(JF2), RF_ID(JF), BW_LIMITED, CORES(BT), NO_CDB), /* So with JF */ IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9461_160_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF1), RF_ID(JF1), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0, iwl9462_160_name, MAC_TYPE(SO), - RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NO_LIMIT, CORES(BT), NO_CDB), + RF_TYPE(JF1), RF_ID(JF1_DIV), BW_NOT_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9461_name, MAC_TYPE(SO), RF_TYPE(JF1), RF_ID(JF1), BW_LIMITED, CORES(BT), NO_CDB), IWL_DEV_INFO(iwlax210_2ax_cfg_so_jf_b0_80mhz, iwl9462_name, MAC_TYPE(SO), @@ -1114,7 +1114,7 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* Ga (Gl) */ IWL_DEV_INFO(iwl_cfg_bz, iwl_gl_name, MAC_TYPE(GL), RF_TYPE(FM), - BW_NO_LIMIT, NO_CDB), + BW_NOT_LIMITED, NO_CDB), IWL_DEV_INFO(iwl_cfg_bz_160mhz, iwl_mtp_name, MAC_TYPE(GL), RF_TYPE(FM), BW_LIMITED, NO_CDB), @@ -1122,21 +1122,21 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl_cfg_sc, iwl_ax211_name, MAC_TYPE(SC), RF_TYPE(GF)), IWL_DEV_INFO(iwl_cfg_sc, iwl_fm_name, MAC_TYPE(SC), RF_TYPE(FM)), IWL_DEV_INFO(iwl_cfg_sc, iwl_wh_name, MAC_TYPE(SC), RF_TYPE(WH), - BW_NO_LIMIT), + BW_NOT_LIMITED), IWL_DEV_INFO(iwl_cfg_sc_160mhz, iwl_sp_name, MAC_TYPE(SC), RF_TYPE(WH), BW_LIMITED), IWL_DEV_INFO(iwl_cfg_sc, iwl_pe_name, MAC_TYPE(SC), RF_TYPE(PE)), IWL_DEV_INFO(iwl_cfg_sc, iwl_ax211_name, MAC_TYPE(SC2), RF_TYPE(GF)), IWL_DEV_INFO(iwl_cfg_sc, iwl_fm_name, MAC_TYPE(SC2), RF_TYPE(FM)), IWL_DEV_INFO(iwl_cfg_sc, iwl_wh_name, MAC_TYPE(SC2), RF_TYPE(WH), - BW_NO_LIMIT), + BW_NOT_LIMITED), IWL_DEV_INFO(iwl_cfg_sc_160mhz, iwl_sp_name, MAC_TYPE(SC2), RF_TYPE(WH), BW_LIMITED), IWL_DEV_INFO(iwl_cfg_sc, iwl_pe_name, MAC_TYPE(SC2), RF_TYPE(PE)), IWL_DEV_INFO(iwl_cfg_sc, iwl_ax211_name, MAC_TYPE(SC2F), RF_TYPE(GF)), IWL_DEV_INFO(iwl_cfg_sc, iwl_fm_name, MAC_TYPE(SC2F), RF_TYPE(FM)), IWL_DEV_INFO(iwl_cfg_sc, iwl_wh_name, MAC_TYPE(SC2F), RF_TYPE(WH), - BW_NO_LIMIT), + BW_NOT_LIMITED), IWL_DEV_INFO(iwl_cfg_sc_160mhz, iwl_sp_name, MAC_TYPE(SC2F), RF_TYPE(WH), BW_LIMITED), IWL_DEV_INFO(iwl_cfg_sc, iwl_pe_name, MAC_TYPE(SC2F), RF_TYPE(PE)), From patchwork Fri May 2 12:56:22 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887151 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 110452550BB for ; Fri, 2 May 2025 12:56:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190616; cv=none; b=CPjxd2FO06uc4rvPeXIOQKHCuT386B0XZzZHeJdBZLUeV52Zq941SJME84N6ogVNyLNPDu6VbvP6n7b4HmB3Ntgy4P+wBonjIcqNgYMfsrsUrj2CIZoNvZZUjU4dfzhwiOdgMMrz1u7n13EU2O3OBlwYYaw3aCBQx5QL1LYx5vM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190616; c=relaxed/simple; bh=BmjtXTo8bIftVzLyWdLW53bTdwpiIkuhksQTqmFCHSA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=InKz+TKkzjiU9EtR/CplQ/73Kjh3zzF8fZu8f6QKl68M1+MoU11RR3SH0TNfWga9XhH642tkalYcGqX1fNp4QwNs+9ShDKrpDwpS5xzddj2XKJ0dP6bljDSHK5VL7MnfAm7j/YkspvP6PTQnUDtN+dU8xQFcjF4pYAv2R+jp/rw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=FKUawuof; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="FKUawuof" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190616; x=1777726616; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=BmjtXTo8bIftVzLyWdLW53bTdwpiIkuhksQTqmFCHSA=; b=FKUawuofGA1vlEL5Tuegl0CjGWC+ETxR5IeqzQWeBYpPL3P8Lmmw8NB+ zYG9JdOdTQ/NOFKtgi0ZIfCXmpFDnEh6a+UUBG7/aQkpKXf+XkKh3pw0l IFDJK+8Y2yIL/vxyadqMKc2uHJI3t9SpLt/J1aVaz27hQh1DnixgndmQP 7x3kODUuREvhbuK5KBLi2vG6wB0tQjSeXco6RkywG5FbBe/LdN8Vc0gsY 5wm415AKRlmnpCmNS3vbUVCEpbcBQ57kg2akhzC1P1sUlbMB1ENP+Qqz4 ew8cqgW/EpCsd0ax3aQxB8BOyqEToFEaLNvaJjdB2Absc7BMI8aoCTkMs Q==; X-CSE-ConnectionGUID: /Rhv68EaR1ylXVQxHeXpOg== X-CSE-MsgGUID: J1nGETMFR+qTd5wO56qMCw== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255542" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255542" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:55 -0700 X-CSE-ConnectionGUID: NCV2v2eaS4qHMGcviWg6bA== X-CSE-MsgGUID: 92vUpO1cRPuxAetXkvVoxQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554715" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:53 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 06/15] wifi: iwlwifi: pcie: remove 'ent' argument from alloc Date: Fri, 2 May 2025 15:56:22 +0300 Message-Id: <20250502155404.0351805072bc.Id309b38817edc116bf9a921608a93b7734f21b05@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg The alloc function iwl_trans_pcie_alloc() doesn't use the 'ent' argument, so remove it. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 2 +- drivers/net/wireless/intel/iwlwifi/pcie/internal.h | 1 - drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 6 +++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 618b6b9fefa7..4c2786655f7d 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -1422,7 +1422,7 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) /* make sure trans is the first element in iwl_cfg */ BUILD_BUG_ON(offsetof(struct iwl_cfg, trans)); - iwl_trans = iwl_trans_pcie_alloc(pdev, ent, trans); + iwl_trans = iwl_trans_pcie_alloc(pdev, trans); if (IS_ERR(iwl_trans)) return PTR_ERR(iwl_trans); diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/internal.h b/drivers/net/wireless/intel/iwlwifi/pcie/internal.h index 390e447b452c..c0a670994ce7 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/internal.h +++ b/drivers/net/wireless/intel/iwlwifi/pcie/internal.h @@ -553,7 +553,6 @@ iwl_trans_pcie_get_trans(struct iwl_trans_pcie *trans_pcie) */ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, - const struct pci_device_id *ent, const struct iwl_cfg_trans_params *cfg_trans); void iwl_trans_pcie_free(struct iwl_trans *trans); void iwl_trans_pcie_free_pnvm_dram_regions(struct iwl_dram_regions *dram_regions, diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index b0c145f0322c..2a6b9f80360d 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -3797,9 +3797,9 @@ void iwl_trans_pcie_sync_nmi(struct iwl_trans *trans) iwl_trans_sync_nmi_with_addr(trans, inta_addr, sw_err_bit); } -struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev, - const struct pci_device_id *ent, - const struct iwl_cfg_trans_params *cfg_trans) +struct iwl_trans * +iwl_trans_pcie_alloc(struct pci_dev *pdev, + const struct iwl_cfg_trans_params *cfg_trans) { struct iwl_trans_pcie *trans_pcie, **priv; struct iwl_trans *trans; From patchwork Fri May 2 12:56:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886929 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B5D7A253B7C for ; Fri, 2 May 2025 12:56:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190618; cv=none; b=NgKO45XwpIbApFmO4KKzMOno3oWbdS8GQDS1qd2/Rs6SG4Ml91JAvulL/V2NYu3IKz+wKzck4Itv/zSyak6dA0unjMEyFLVjDzjFpUJxsctUU0Se8UQzp4uigzSgyvQOEXYI/mokdyEJXMO1jXJdaazn9aur4dKntZ8fSMsecBM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190618; c=relaxed/simple; bh=A0sQ6Vwg6ba0XdUk10/INsEpbG6D4q0BJiPscpxnLcA=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=JWhSyYH2nTuupFsmK8GtitPBGZ11BzLBO3cHeL0fFjIPsZbkDASx5EkmKUv5MMHM2FPPppQg/zu9KrLst14qBH4Oc6WHsy5ENAEQY8ueBRrJbFQ6faka2bZHRwqHM/JCtGpbP/QwZaBHkAhvdOI6z+3MYaMooezQjXddPVZNPps= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=HVqF3gVo; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="HVqF3gVo" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190617; x=1777726617; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=A0sQ6Vwg6ba0XdUk10/INsEpbG6D4q0BJiPscpxnLcA=; b=HVqF3gVoKiKVRbrZlh9a8RyG4V6A/Wxk5sSC+8d4G3ElDP/ySlMDJLDM 38LSFW4taL2K8C+lgbQ6NBJrVeNdpWU1b0jO2LS2jvuQPl82U8n10x4WA 3jn5yPw6vhWL9A1SSUGpA0bVnA9nLDkn+9xxWnPmZ1EYGlvG2DMuItS5K bvslu2SQ+Hiwb7SHKwuTEojimG92GM7FSzoGqwMbMKpiIXgVhEqSjO4Sc ekn3xIw9AJyyaHXhU0HlhDxdovl/YT/iVzYHV48B8a8Mus7u0KsnX/CUV h0cl2anOD7IMXaKMhWVWCO1R0MHU9ytAJFErx36hvltLRVRW69ERLPkeq A==; X-CSE-ConnectionGUID: 7SJQbjECQFCxTMkmNI3Y0w== X-CSE-MsgGUID: Em1mtMNITbyZWYQ/N/DZGQ== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255545" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255545" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:57 -0700 X-CSE-ConnectionGUID: QGYpnkQaQ5WMPUpHviTkxg== X-CSE-MsgGUID: 0jllJMkgRfmB0dDCQjcvpw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554728" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:55 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 07/15] wifi: iwlwifi: cfg: minor fixes for Sc Date: Fri, 2 May 2025 15:56:23 +0300 Message-Id: <20250502155404.b313d54b8809.Ia975b6d5460996f2a2761dd3d0fef4a56f1f3e24@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Remove the erroneously named IWL_DEVICE_BZ_COMMON macro from the Sc file and fix some indentation. Also bump the minimum FW version since it's not released yet anyway, right now this is mostly to make the config different from iwl_bz_cfg which would otherwise be the same with the upcoming transport config cleanups. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/cfg/sc.c | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c index 800b6ffec4af..99955fc9331d 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c @@ -13,7 +13,7 @@ #define IWL_SC_UCODE_API_MAX 98 /* Lowest firmware API version supported */ -#define IWL_SC_UCODE_API_MIN 93 +#define IWL_SC_UCODE_API_MIN 98 /* NVM versions */ #define IWL_SC_NVM_VERSION 0x0a1d @@ -55,23 +55,23 @@ static const struct iwl_base_params iwl_sc_base_params = { .pcie_l1_allowed = true, }; -#define IWL_DEVICE_BZ_COMMON \ - .ucode_api_max = IWL_SC_UCODE_API_MAX, \ - .ucode_api_min = IWL_SC_UCODE_API_MIN, \ +#define IWL_DEVICE_SC \ + .ucode_api_max = IWL_SC_UCODE_API_MAX, \ + .ucode_api_min = IWL_SC_UCODE_API_MIN, \ .led_mode = IWL_LED_RF_STATE, \ .nvm_hw_section_num = 10, \ .non_shared_ant = ANT_B, \ .dccm_offset = IWL_SC_DCCM_OFFSET, \ .dccm_len = IWL_SC_DCCM_LEN, \ .dccm2_offset = IWL_SC_DCCM2_OFFSET, \ - .dccm2_len = IWL_SC_DCCM2_LEN, \ + .dccm2_len = IWL_SC_DCCM2_LEN, \ .smem_offset = IWL_SC_SMEM_OFFSET, \ .smem_len = IWL_SC_SMEM_LEN, \ .apmg_not_supported = true, \ .trans.mq_rx_supported = true, \ .vht_mu_mimo_supported = true, \ .mac_addr_from_csr = 0x30, \ - .nvm_ver = IWL_SC_NVM_VERSION, \ + .nvm_ver = IWL_SC_NVM_VERSION, \ .trans.rf_id = true, \ .trans.gen2 = true, \ .nvm_type = IWL_NVM_EXT, \ @@ -114,10 +114,7 @@ static const struct iwl_base_params iwl_sc_base_params = { .addr = DBGI_SRAM_FIFO_POINTERS, \ .mask = DBGI_SRAM_FIFO_POINTERS_WR_PTR_MSK, \ }, \ - } - -#define IWL_DEVICE_SC \ - IWL_DEVICE_BZ_COMMON, \ + }, \ .uhb_supported = true, \ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \ .num_rbds = IWL_NUM_RBDS_SC_EHT, \ From patchwork Fri May 2 12:56:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886927 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D6F3A253B7C for ; Fri, 2 May 2025 12:56:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190625; cv=none; b=H6O69WtVhQUQE4tS4ViJiaL+/DzOhRh8TifP9mfbm0ECMzZQs3rcRFKp91PWc2FDMYlF7/9sygSqD3lLG5Oy9NVpuH4DxIH+HP3OMl78POm7RyYIjZzPNhi0lMfU9LNuEKVyIkQqDrC7h+9W+DIV5mAJas2d4UQ6bacTnQJX/yg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190625; c=relaxed/simple; bh=VqlCUXHe9TRDmo3wP7Ke4IPsgZM64Vvi+dOksN5QgB4=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=crFxi4RVSK7N9MSh/5zkGzoLAUB6wwdaF04UigvSDExLgTT0jsQnZh5aVd7e9km0L4gjL+iv/S36n5DnvBzcI1VCiDH0oBOHXK6sC12f/OtkpLn3V5tbj/H46dUi01g8Xe/yjXlBG3N6e1WOsvHXkgur9upOo146BhNPB4VuYgY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=WuzpWpov; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="WuzpWpov" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190620; x=1777726620; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=VqlCUXHe9TRDmo3wP7Ke4IPsgZM64Vvi+dOksN5QgB4=; b=WuzpWpovWHH35eoY3rRdp8+8K8/5yQK2qrpxU8Y0Ob3TUFqXkl+Xz0LG kzr0/AAhzhROnwyKQjxxjAMO/iKIp4u7/w3JZ3xhHPlfdFCx6yPtDqPdX FRDNynC1fYW+gfqxxr6737eNpVasndO6eXJ1j1stAtDdB/bwT1FRqcflm mrUdlB6Rfn7cD01vQdQKDCQcFtJ/yyGmlVBxr5CY3QA3GZE9lEUTuLn0a t8bRjqh0duRlqc5/tgtfZHAlS81TM5z4BbHo0MKgIKnoT2HHt8NADcHxr kDfF/h3QIsCWxOCbbGLtZ5nnD8YephrmYf8gMohuTlPtHqbqHysby4ycV A==; X-CSE-ConnectionGUID: RRsV5YIyS9CPZe87oEUVCw== X-CSE-MsgGUID: otWUt1pNRZ69e/R1rB0qYw== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255547" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255547" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:59 -0700 X-CSE-ConnectionGUID: F+Pfk4ShSBOx96RRqYMZNg== X-CSE-MsgGUID: wNIMpD5mQhO1wzuUKC3W8Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554733" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:57 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 08/15] wifi: iwlwifi: cfg: finish config split Date: Fri, 2 May 2025 15:56:24 +0300 Message-Id: <20250502155404.e03f65c0f693.I076a997f800db455b575008f9488b151738ad7ec@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg A long time ago, when transport vs. device configs were introduced, we wanted to eventually have a list of PCI IDs and a separate list of devices, but for simplicity embedded the transport config in the whole config, and it all got confusing. Finish splitting that out. Doing so requires having more IWL_DEV_INFO() entries, but the whole trans/cfg aliasing goes away and the code becomes a lot simpler. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/cfg/1000.c | 23 +- drivers/net/wireless/intel/iwlwifi/cfg/2000.c | 48 +- .../net/wireless/intel/iwlwifi/cfg/22000.c | 5 - drivers/net/wireless/intel/iwlwifi/cfg/5000.c | 45 +- drivers/net/wireless/intel/iwlwifi/cfg/6000.c | 153 +- drivers/net/wireless/intel/iwlwifi/cfg/7000.c | 123 +- drivers/net/wireless/intel/iwlwifi/cfg/8000.c | 48 +- .../net/wireless/intel/iwlwifi/cfg/ax210.c | 26 - drivers/net/wireless/intel/iwlwifi/cfg/bz.c | 6 - drivers/net/wireless/intel/iwlwifi/cfg/dr.c | 6 - drivers/net/wireless/intel/iwlwifi/cfg/sc.c | 6 - .../net/wireless/intel/iwlwifi/iwl-config.h | 136 +- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 1634 ++++++++++++----- .../wireless/intel/iwlwifi/tests/devinfo.c | 6 +- 14 files changed, 1471 insertions(+), 794 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/1000.c b/drivers/net/wireless/intel/iwlwifi/cfg/1000.c index f172ffd2a841..20daa503d643 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/1000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/1000.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. - * Copyright(c) 2018 - 2020, 2023 Intel Corporation + * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation *****************************************************************************/ #include @@ -60,54 +60,59 @@ static const struct iwl_eeprom_params iwl1000_eeprom_params = { } }; +const struct iwl_cfg_trans_params iwl1000_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_1000, + .base_params = &iwl1000_base_params, +}; + #define IWL_DEVICE_1000 \ .fw_name_pre = IWL1000_FW_PRE, \ .ucode_api_max = IWL1000_UCODE_API_MAX, \ .ucode_api_min = IWL1000_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_1000, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_1000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \ - .trans.base_params = &iwl1000_base_params, \ .eeprom_params = &iwl1000_eeprom_params, \ .led_mode = IWL_LED_BLINK const struct iwl_cfg iwl1000_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 1000 BGN", IWL_DEVICE_1000, .ht_params = &iwl1000_ht_params, }; +const char iwl1000_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 1000 BGN"; + const struct iwl_cfg iwl1000_bg_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 1000 BG", IWL_DEVICE_1000, }; +const char iwl1000_bg_name[] = "Intel(R) Centrino(R) Wireless-N 1000 BG"; + #define IWL_DEVICE_100 \ .fw_name_pre = IWL100_FW_PRE, \ .ucode_api_max = IWL100_UCODE_API_MAX, \ .ucode_api_min = IWL100_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_100, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_1000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_1000_TX_POWER_VERSION, \ - .trans.base_params = &iwl1000_base_params, \ .eeprom_params = &iwl1000_eeprom_params, \ .led_mode = IWL_LED_RF_STATE, \ .rx_with_siso_diversity = true const struct iwl_cfg iwl100_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 100 BGN", IWL_DEVICE_100, .ht_params = &iwl1000_ht_params, }; +const char iwl100_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 100 BGN"; + const struct iwl_cfg iwl100_bg_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 100 BG", IWL_DEVICE_100, }; +const char iwl100_bg_name[] = "Intel(R) Centrino(R) Wireless-N 100 BG"; + MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/2000.c b/drivers/net/wireless/intel/iwlwifi/cfg/2000.c index 6f3f26da0ad5..22656d6ca8ee 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/2000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/2000.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. - * Copyright(c) 2018 - 2020, 2023 Intel Corporation + * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation *****************************************************************************/ #include @@ -86,97 +86,103 @@ static const struct iwl_eeprom_params iwl20x0_eeprom_params = { .enhanced_txpower = true, }; +const struct iwl_cfg_trans_params iwl2000_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_2000, + .base_params = &iwl2000_base_params, +}; + #define IWL_DEVICE_2000 \ .fw_name_pre = IWL2000_FW_PRE, \ .ucode_api_max = IWL2000_UCODE_API_MAX, \ .ucode_api_min = IWL2000_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_2000, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ - .trans.base_params = &iwl2000_base_params, \ .eeprom_params = &iwl20x0_eeprom_params, \ .led_mode = IWL_LED_RF_STATE const struct iwl_cfg iwl2000_2bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 2200 BGN", IWL_DEVICE_2000, .ht_params = &iwl2000_ht_params, }; -const struct iwl_cfg iwl2000_2bgn_d_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 2200D BGN", - IWL_DEVICE_2000, - .ht_params = &iwl2000_ht_params, +const char iwl2000_2bgn_name[] = "Intel(R) Centrino(R) Wireless-N 2200 BGN"; +const char iwl2000_2bgn_d_name[] = "Intel(R) Centrino(R) Wireless-N 2200D BGN"; + +const struct iwl_cfg_trans_params iwl2030_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_2030, + .base_params = &iwl2030_base_params, }; #define IWL_DEVICE_2030 \ .fw_name_pre = IWL2030_FW_PRE, \ .ucode_api_max = IWL2030_UCODE_API_MAX, \ .ucode_api_min = IWL2030_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_2030, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ - .trans.base_params = &iwl2030_base_params, \ .eeprom_params = &iwl20x0_eeprom_params, \ .led_mode = IWL_LED_RF_STATE const struct iwl_cfg iwl2030_2bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 2230 BGN", IWL_DEVICE_2030, .ht_params = &iwl2000_ht_params, }; +const char iwl2030_2bgn_name[] = "Intel(R) Centrino(R) Wireless-N 2230 BGN"; + +const struct iwl_cfg_trans_params iwl105_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_105, + .base_params = &iwl2000_base_params, +}; + #define IWL_DEVICE_105 \ .fw_name_pre = IWL105_FW_PRE, \ .ucode_api_max = IWL105_UCODE_API_MAX, \ .ucode_api_min = IWL105_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_105, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ - .trans.base_params = &iwl2000_base_params, \ .eeprom_params = &iwl20x0_eeprom_params, \ .led_mode = IWL_LED_RF_STATE, \ .rx_with_siso_diversity = true const struct iwl_cfg iwl105_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 105 BGN", IWL_DEVICE_105, .ht_params = &iwl2000_ht_params, }; -const struct iwl_cfg iwl105_bgn_d_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 105D BGN", - IWL_DEVICE_105, - .ht_params = &iwl2000_ht_params, +const char iwl105_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 105 BGN"; +const char iwl105_bgn_d_name[] = "Intel(R) Centrino(R) Wireless-N 105D BGN"; + +const struct iwl_cfg_trans_params iwl135_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_135, + .base_params = &iwl2030_base_params, }; #define IWL_DEVICE_135 \ .fw_name_pre = IWL135_FW_PRE, \ .ucode_api_max = IWL135_UCODE_API_MAX, \ .ucode_api_min = IWL135_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_135, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_2000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_2000_TX_POWER_VERSION, \ - .trans.base_params = &iwl2030_base_params, \ .eeprom_params = &iwl20x0_eeprom_params, \ .led_mode = IWL_LED_RF_STATE, \ .rx_with_siso_diversity = true const struct iwl_cfg iwl135_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 135 BGN", IWL_DEVICE_135, .ht_params = &iwl2000_ht_params, }; +const char iwl135_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 135 BGN"; + MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_MAX)); MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c index 59d0fa2193f5..21d5a02933a6 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/22000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/22000.c @@ -81,13 +81,10 @@ const struct iwl_ht_params iwl_22000_ht_params = { .smem_len = IWL_22000_SMEM_LEN, \ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \ .apmg_not_supported = true, \ - .trans.mq_rx_supported = true, \ .vht_mu_mimo_supported = true, \ .mac_addr_from_csr = 0x380, \ .ht_params = &iwl_22000_ht_params, \ .nvm_ver = IWL_22000_NVM_VERSION, \ - .trans.rf_id = true, \ - .trans.gen2 = true, \ .nvm_type = IWL_NVM_EXT, \ .dbgc_supported = true, \ .min_umac_error_event_table = 0x400000, \ @@ -107,8 +104,6 @@ const struct iwl_ht_params iwl_22000_ht_params = { #define IWL_DEVICE_22500 \ IWL_DEVICE_22000_COMMON, \ .ucode_api_max = IWL_22000_UCODE_API_MAX, \ - .trans.device_family = IWL_DEVICE_FAMILY_22000, \ - .trans.base_params = &iwl_22000_base_params, \ .gp2_reg_addr = 0xa02c68, \ .mon_dram_regs = { \ .write_ptr = { \ diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/5000.c b/drivers/net/wireless/intel/iwlwifi/cfg/5000.c index de7ede59a994..36909f6323db 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/5000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/5000.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Copyright(c) 2007 - 2014 Intel Corporation. All rights reserved. - * Copyright(c) 2018 - 2020, 2023 Intel Corporation + * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation *****************************************************************************/ #include @@ -58,21 +58,23 @@ static const struct iwl_eeprom_params iwl5000_eeprom_params = { }, }; +const struct iwl_cfg_trans_params iwl5000_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_5000, + .base_params = &iwl5000_base_params, +}; + #define IWL_DEVICE_5000 \ .fw_name_pre = IWL5000_FW_PRE, \ .ucode_api_max = IWL5000_UCODE_API_MAX, \ .ucode_api_min = IWL5000_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_5000, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_5000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_5000_TX_POWER_VERSION, \ - .trans.base_params = &iwl5000_base_params, \ .eeprom_params = &iwl5000_eeprom_params, \ .led_mode = IWL_LED_BLINK const struct iwl_cfg iwl5300_agn_cfg = { - .name = "Intel(R) Ultimate N WiFi Link 5300 AGN", IWL_DEVICE_5000, /* at least EEPROM 0x11A has wrong info */ .valid_tx_ant = ANT_ABC, /* .cfg overwrite */ @@ -80,71 +82,72 @@ const struct iwl_cfg iwl5300_agn_cfg = { .ht_params = &iwl5000_ht_params, }; -const struct iwl_cfg iwl5100_bgn_cfg = { - .name = "Intel(R) WiFi Link 5100 BGN", +const char iwl5300_agn_name[] = "Intel(R) Ultimate N WiFi Link 5300 AGN"; + +const struct iwl_cfg iwl5100_n_cfg = { IWL_DEVICE_5000, .valid_tx_ant = ANT_B, /* .cfg overwrite */ .valid_rx_ant = ANT_AB, /* .cfg overwrite */ .ht_params = &iwl5000_ht_params, }; +const char iwl5100_bgn_name[] = "Intel(R) WiFi Link 5100 BGN"; + const struct iwl_cfg iwl5100_abg_cfg = { - .name = "Intel(R) WiFi Link 5100 ABG", IWL_DEVICE_5000, .valid_tx_ant = ANT_B, /* .cfg overwrite */ .valid_rx_ant = ANT_AB, /* .cfg overwrite */ }; -const struct iwl_cfg iwl5100_agn_cfg = { - .name = "Intel(R) WiFi Link 5100 AGN", - IWL_DEVICE_5000, - .valid_tx_ant = ANT_B, /* .cfg overwrite */ - .valid_rx_ant = ANT_AB, /* .cfg overwrite */ - .ht_params = &iwl5000_ht_params, -}; +const char iwl5100_abg_name[] = "Intel(R) WiFi Link 5100 ABG"; +const char iwl5100_agn_name[] = "Intel(R) WiFi Link 5100 AGN"; const struct iwl_cfg iwl5350_agn_cfg = { - .name = "Intel(R) WiMAX/WiFi Link 5350 AGN", .fw_name_pre = IWL5000_FW_PRE, .ucode_api_max = IWL5000_UCODE_API_MAX, .ucode_api_min = IWL5000_UCODE_API_MIN, - .trans.device_family = IWL_DEVICE_FAMILY_5000, .max_inst_size = IWLAGN_RTC_INST_SIZE, .max_data_size = IWLAGN_RTC_DATA_SIZE, .nvm_ver = EEPROM_5050_EEPROM_VERSION, .nvm_calib_ver = EEPROM_5050_TX_POWER_VERSION, - .trans.base_params = &iwl5000_base_params, .eeprom_params = &iwl5000_eeprom_params, .ht_params = &iwl5000_ht_params, .led_mode = IWL_LED_BLINK, .internal_wimax_coex = true, }; +const char iwl5350_agn_name[] = "Intel(R) WiMAX/WiFi Link 5350 AGN"; + +const struct iwl_cfg_trans_params iwl5150_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_5150, + .base_params = &iwl5000_base_params, +}; + #define IWL_DEVICE_5150 \ .fw_name_pre = IWL5150_FW_PRE, \ .ucode_api_max = IWL5150_UCODE_API_MAX, \ .ucode_api_min = IWL5150_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_5150, \ .max_inst_size = IWLAGN_RTC_INST_SIZE, \ .max_data_size = IWLAGN_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_5050_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_5050_TX_POWER_VERSION, \ - .trans.base_params = &iwl5000_base_params, \ .eeprom_params = &iwl5000_eeprom_params, \ .led_mode = IWL_LED_BLINK, \ .internal_wimax_coex = true const struct iwl_cfg iwl5150_agn_cfg = { - .name = "Intel(R) WiMAX/WiFi Link 5150 AGN", IWL_DEVICE_5150, .ht_params = &iwl5000_ht_params, }; +const char iwl5150_agn_name[] = "Intel(R) WiMAX/WiFi Link 5150 AGN"; + const struct iwl_cfg iwl5150_abg_cfg = { - .name = "Intel(R) WiMAX/WiFi Link 5150 ABG", IWL_DEVICE_5150, }; +const char iwl5150_abg_name[] = "Intel(R) WiMAX/WiFi Link 5150 ABG"; + MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/6000.c b/drivers/net/wireless/intel/iwlwifi/cfg/6000.c index f013cf420569..09a68712114f 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/6000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/6000.c @@ -2,7 +2,7 @@ /****************************************************************************** * * Copyright(c) 2008 - 2014 Intel Corporation. All rights reserved. - * Copyright(c) 2018 - 2020, 2023 Intel Corporation + * Copyright(c) 2018 - 2020, 2023, 2025 Intel Corporation *****************************************************************************/ #include @@ -107,143 +107,112 @@ static const struct iwl_eeprom_params iwl6000_eeprom_params = { .enhanced_txpower = true, }; +const struct iwl_cfg_trans_params iwl6005_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_6005, + .base_params = &iwl6000_g2_base_params, +}; + #define IWL_DEVICE_6005 \ .fw_name_pre = IWL6005_FW_PRE, \ .ucode_api_max = IWL6000G2_UCODE_API_MAX, \ .ucode_api_min = IWL6000G2_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_6005, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_6005_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_6005_TX_POWER_VERSION, \ - .trans.base_params = &iwl6000_g2_base_params, \ .eeprom_params = &iwl6000_eeprom_params, \ .led_mode = IWL_LED_RF_STATE -const struct iwl_cfg iwl6005_2agn_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6205 AGN", +const struct iwl_cfg iwl6005_n_cfg = { IWL_DEVICE_6005, .ht_params = &iwl6000_ht_params, }; -const struct iwl_cfg iwl6005_2abg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6205 ABG", - IWL_DEVICE_6005, -}; - -const struct iwl_cfg iwl6005_2bg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6205 BG", - IWL_DEVICE_6005, -}; - -const struct iwl_cfg iwl6005_2agn_sff_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6205S AGN", - IWL_DEVICE_6005, - .ht_params = &iwl6000_ht_params, -}; +const char iwl6005_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6205 AGN"; +const char iwl6005_2agn_sff_name[] = "Intel(R) Centrino(R) Advanced-N 6205S AGN"; +const char iwl6005_2agn_d_name[] = "Intel(R) Centrino(R) Advanced-N 6205D AGN"; +const char iwl6005_2agn_mow1_name[] = "Intel(R) Centrino(R) Advanced-N 6206 AGN"; +const char iwl6005_2agn_mow2_name[] = "Intel(R) Centrino(R) Advanced-N 6207 AGN"; -const struct iwl_cfg iwl6005_2agn_d_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6205D AGN", +const struct iwl_cfg iwl6005_non_n_cfg = { IWL_DEVICE_6005, - .ht_params = &iwl6000_ht_params, }; -const struct iwl_cfg iwl6005_2agn_mow1_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6206 AGN", - IWL_DEVICE_6005, - .ht_params = &iwl6000_ht_params, -}; +const char iwl6005_2abg_name[] = "Intel(R) Centrino(R) Advanced-N 6205 ABG"; +const char iwl6005_2bg_name[] = "Intel(R) Centrino(R) Advanced-N 6205 BG"; -const struct iwl_cfg iwl6005_2agn_mow2_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6207 AGN", - IWL_DEVICE_6005, - .ht_params = &iwl6000_ht_params, +const struct iwl_cfg_trans_params iwl6030_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_6030, + .base_params = &iwl6000_g2_base_params, }; #define IWL_DEVICE_6030 \ .fw_name_pre = IWL6030_FW_PRE, \ .ucode_api_max = IWL6000G2_UCODE_API_MAX, \ .ucode_api_min = IWL6000G2_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_6030, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_6030_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_6030_TX_POWER_VERSION, \ - .trans.base_params = &iwl6000_g2_base_params, \ .eeprom_params = &iwl6000_eeprom_params, \ .led_mode = IWL_LED_RF_STATE -const struct iwl_cfg iwl6030_2agn_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6230 AGN", +const struct iwl_cfg iwl6030_n_cfg = { IWL_DEVICE_6030, .ht_params = &iwl6000_ht_params, }; -const struct iwl_cfg iwl6030_2abg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6230 ABG", - IWL_DEVICE_6030, -}; +const char iwl6030_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6230 AGN"; +const char iwl6030_2bgn_name[] = "Intel(R) Centrino(R) Advanced-N 6230 BGN"; +const char iwl1030_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 1030 BGN"; +const char iwl1030_bg_name[] = "Intel(R) Centrino(R) Wireless-N 1030 BG"; -const struct iwl_cfg iwl6030_2bgn_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6230 BGN", +const struct iwl_cfg iwl6030_non_n_cfg = { IWL_DEVICE_6030, - .ht_params = &iwl6000_ht_params, }; -const struct iwl_cfg iwl6030_2bg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6230 BG", - IWL_DEVICE_6030, -}; +const char iwl6030_2abg_name[] = "Intel(R) Centrino(R) Advanced-N 6230 ABG"; +const char iwl6030_2bg_name[] = "Intel(R) Centrino(R) Advanced-N 6230 BG"; #define IWL_DEVICE_6035 \ .fw_name_pre = IWL6030_FW_PRE, \ .ucode_api_max = IWL6035_UCODE_API_MAX, \ .ucode_api_min = IWL6035_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_6030, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_6030_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_6030_TX_POWER_VERSION, \ - .trans.base_params = &iwl6000_g2_base_params, \ .eeprom_params = &iwl6000_eeprom_params, \ .led_mode = IWL_LED_RF_STATE const struct iwl_cfg iwl6035_2agn_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6235 AGN", - IWL_DEVICE_6035, - .ht_params = &iwl6000_ht_params, -}; - -const struct iwl_cfg iwl6035_2agn_sff_cfg = { - .name = "Intel(R) Centrino(R) Ultimate-N 6235 AGN", IWL_DEVICE_6035, .ht_params = &iwl6000_ht_params, }; -const struct iwl_cfg iwl1030_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 1030 BGN", - IWL_DEVICE_6030, - .ht_params = &iwl6000_ht_params, -}; - -const struct iwl_cfg iwl1030_bg_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 1030 BG", - IWL_DEVICE_6030, -}; +const char iwl6035_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6235 AGN"; +const char iwl6035_2agn_sff_name[] = "Intel(R) Centrino(R) Ultimate-N 6235 AGN"; const struct iwl_cfg iwl130_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 130 BGN", IWL_DEVICE_6030, .ht_params = &iwl6000_ht_params, .rx_with_siso_diversity = true, }; +const char iwl130_bgn_name[] = "Intel(R) Centrino(R) Wireless-N 130 BGN"; + const struct iwl_cfg iwl130_bg_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N 130 BG", IWL_DEVICE_6030, .rx_with_siso_diversity = true, }; +const char iwl130_bg_name[] = "Intel(R) Centrino(R) Wireless-N 130 BG"; + +const struct iwl_cfg_trans_params iwl6000i_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_6000i, + .base_params = &iwl6000_base_params, +}; + /* * "i": Internal configuration, use internal Power Amplifier */ @@ -251,101 +220,111 @@ const struct iwl_cfg iwl130_bg_cfg = { .fw_name_pre = IWL6000_FW_PRE, \ .ucode_api_max = IWL6000_UCODE_API_MAX, \ .ucode_api_min = IWL6000_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_6000i, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .valid_tx_ant = ANT_BC, /* .cfg overwrite */ \ .valid_rx_ant = ANT_BC, /* .cfg overwrite */ \ .nvm_ver = EEPROM_6000_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_6000_TX_POWER_VERSION, \ - .trans.base_params = &iwl6000_base_params, \ .eeprom_params = &iwl6000_eeprom_params, \ .led_mode = IWL_LED_BLINK const struct iwl_cfg iwl6000i_2agn_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6200 AGN", IWL_DEVICE_6000i, .ht_params = &iwl6000_ht_params, }; -const struct iwl_cfg iwl6000i_2abg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6200 ABG", +const char iwl6000i_2agn_name[] = "Intel(R) Centrino(R) Advanced-N 6200 AGN"; + +const struct iwl_cfg iwl6000i_non_n_cfg = { IWL_DEVICE_6000i, }; -const struct iwl_cfg iwl6000i_2bg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N 6200 BG", - IWL_DEVICE_6000i, +const char iwl6000i_2abg_name[] = "Intel(R) Centrino(R) Advanced-N 6200 ABG"; +const char iwl6000i_2bg_name[] = "Intel(R) Centrino(R) Advanced-N 6200 BG"; + +const struct iwl_cfg_trans_params iwl6050_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_6050, + .base_params = &iwl6050_base_params, }; #define IWL_DEVICE_6050 \ .fw_name_pre = IWL6050_FW_PRE, \ .ucode_api_max = IWL6050_UCODE_API_MAX, \ .ucode_api_min = IWL6050_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_6050, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .valid_tx_ant = ANT_AB, /* .cfg overwrite */ \ .valid_rx_ant = ANT_AB, /* .cfg overwrite */ \ .nvm_ver = EEPROM_6050_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_6050_TX_POWER_VERSION, \ - .trans.base_params = &iwl6050_base_params, \ .eeprom_params = &iwl6000_eeprom_params, \ .led_mode = IWL_LED_BLINK, \ .internal_wimax_coex = true const struct iwl_cfg iwl6050_2agn_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN", IWL_DEVICE_6050, .ht_params = &iwl6000_ht_params, }; +const char iwl6050_2agn_name[] = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 AGN"; + const struct iwl_cfg iwl6050_2abg_cfg = { - .name = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG", IWL_DEVICE_6050, }; +const char iwl6050_2abg_name[] = "Intel(R) Centrino(R) Advanced-N + WiMAX 6250 ABG"; + +const struct iwl_cfg_trans_params iwl6150_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_6150, + .base_params = &iwl6050_base_params, +}; + #define IWL_DEVICE_6150 \ .fw_name_pre = IWL6050_FW_PRE, \ .ucode_api_max = IWL6050_UCODE_API_MAX, \ .ucode_api_min = IWL6050_UCODE_API_MIN, \ - .trans.device_family = IWL_DEVICE_FAMILY_6150, \ .max_inst_size = IWL60_RTC_INST_SIZE, \ .max_data_size = IWL60_RTC_DATA_SIZE, \ .nvm_ver = EEPROM_6150_EEPROM_VERSION, \ .nvm_calib_ver = EEPROM_6150_TX_POWER_VERSION, \ - .trans.base_params = &iwl6050_base_params, \ .eeprom_params = &iwl6000_eeprom_params, \ .led_mode = IWL_LED_BLINK, \ .internal_wimax_coex = true const struct iwl_cfg iwl6150_bgn_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BGN", IWL_DEVICE_6150, .ht_params = &iwl6000_ht_params, }; +const char iwl6150_bgn_name[] = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BGN"; + const struct iwl_cfg iwl6150_bg_cfg = { - .name = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BG", IWL_DEVICE_6150, }; +const char iwl6150_bg_name[] = "Intel(R) Centrino(R) Wireless-N + WiMAX 6150 BG"; + +const struct iwl_cfg_trans_params iwl6000_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_6000, + .base_params = &iwl6000_base_params, +}; + const struct iwl_cfg iwl6000_3agn_cfg = { - .name = "Intel(R) Centrino(R) Ultimate-N 6300 AGN", .fw_name_pre = IWL6000_FW_PRE, .ucode_api_max = IWL6000_UCODE_API_MAX, .ucode_api_min = IWL6000_UCODE_API_MIN, - .trans.device_family = IWL_DEVICE_FAMILY_6000, .max_inst_size = IWL60_RTC_INST_SIZE, .max_data_size = IWL60_RTC_DATA_SIZE, .nvm_ver = EEPROM_6000_EEPROM_VERSION, .nvm_calib_ver = EEPROM_6000_TX_POWER_VERSION, - .trans.base_params = &iwl6000_base_params, .eeprom_params = &iwl6000_eeprom_params, .ht_params = &iwl6000_ht_params, .led_mode = IWL_LED_BLINK, }; +const char iwl6000_3agn_name[] = "Intel(R) Centrino(R) Ultimate-N 6300 AGN"; + MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/7000.c b/drivers/net/wireless/intel/iwlwifi/cfg/7000.c index 4e2afdedf4c6..f81036e241b5 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/7000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/7000.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2012-2014, 2018-2020, 2023 Intel Corporation + * Copyright (C) 2012-2014, 2018-2020, 2023, 2025 Intel Corporation * Copyright (C) 2013-2014 Intel Mobile Communications GmbH * Copyright (C) 2015 Intel Deutschland GmbH */ @@ -89,9 +89,12 @@ static const struct iwl_ht_params iwl7000_ht_params = { .ht40_bands = BIT(NL80211_BAND_2GHZ) | BIT(NL80211_BAND_5GHZ), }; +const struct iwl_cfg_trans_params iwl7000_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_7000, + .base_params = &iwl7000_base_params, +}; + #define IWL_DEVICE_7000_COMMON \ - .trans.device_family = IWL_DEVICE_FAMILY_7000, \ - .trans.base_params = &iwl7000_base_params, \ .led_mode = IWL_LED_RF_STATE, \ .nvm_hw_section_num = 0, \ .non_shared_ant = ANT_A, \ @@ -117,8 +120,22 @@ static const struct iwl_ht_params iwl7000_ht_params = { .ucode_api_max = IWL7265D_UCODE_API_MAX, \ .ucode_api_min = IWL7265D_UCODE_API_MIN -const struct iwl_cfg iwl7260_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 7260", +const char iwl7260_2ac_name[] = "Intel(R) Dual Band Wireless AC 7260"; +const char iwl7260_2n_name[] = "Intel(R) Dual Band Wireless N 7260"; +const char iwl7260_n_name[] = "Intel(R) Wireless N 7260"; +const char iwl3160_2ac_name[] = "Intel(R) Dual Band Wireless AC 3160"; +const char iwl3160_2n_name[] = "Intel(R) Dual Band Wireless N 3160"; +const char iwl3160_n_name[] = "Intel(R) Wireless N 3160"; +const char iwl3165_2ac_name[] = "Intel(R) Dual Band Wireless AC 3165"; +const char iwl3168_2ac_name[] = "Intel(R) Dual Band Wireless AC 3168"; +const char iwl7265_2ac_name[] = "Intel(R) Dual Band Wireless AC 7265"; +const char iwl7265_2n_name[] = "Intel(R) Dual Band Wireless N 7265"; +const char iwl7265_n_name[] = "Intel(R) Wireless N 7265"; +const char iwl7265d_2ac_name[] = "Intel(R) Dual Band Wireless AC 7265"; +const char iwl7265d_2n_name[] = "Intel(R) Dual Band Wireless N 7265"; +const char iwl7265d_n_name[] = "Intel(R) Wireless N 7265"; + +const struct iwl_cfg iwl7260_cfg = { .fw_name_pre = IWL7260_FW_PRE, IWL_DEVICE_7000, .ht_params = &iwl7000_ht_params, @@ -128,8 +145,7 @@ const struct iwl_cfg iwl7260_2ac_cfg = { .dccm_len = IWL7260_DCCM_LEN, }; -const struct iwl_cfg iwl7260_2ac_cfg_high_temp = { - .name = "Intel(R) Dual Band Wireless AC 7260", +const struct iwl_cfg iwl7260_high_temp_cfg = { .fw_name_pre = IWL7260_FW_PRE, IWL_DEVICE_7000, .ht_params = &iwl7000_ht_params, @@ -141,50 +157,7 @@ const struct iwl_cfg iwl7260_2ac_cfg_high_temp = { .thermal_params = &iwl7000_high_temp_tt_params, }; -const struct iwl_cfg iwl7260_2n_cfg = { - .name = "Intel(R) Dual Band Wireless N 7260", - .fw_name_pre = IWL7260_FW_PRE, - IWL_DEVICE_7000, - .ht_params = &iwl7000_ht_params, - .nvm_ver = IWL7260_NVM_VERSION, - .host_interrupt_operation_mode = true, - .lp_xtal_workaround = true, - .dccm_len = IWL7260_DCCM_LEN, -}; - -const struct iwl_cfg iwl7260_n_cfg = { - .name = "Intel(R) Wireless N 7260", - .fw_name_pre = IWL7260_FW_PRE, - IWL_DEVICE_7000, - .ht_params = &iwl7000_ht_params, - .nvm_ver = IWL7260_NVM_VERSION, - .host_interrupt_operation_mode = true, - .lp_xtal_workaround = true, - .dccm_len = IWL7260_DCCM_LEN, -}; - -const struct iwl_cfg iwl3160_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 3160", - .fw_name_pre = IWL3160_FW_PRE, - IWL_DEVICE_7000, - .ht_params = &iwl7000_ht_params, - .nvm_ver = IWL3160_NVM_VERSION, - .host_interrupt_operation_mode = true, - .dccm_len = IWL3160_DCCM_LEN, -}; - -const struct iwl_cfg iwl3160_2n_cfg = { - .name = "Intel(R) Dual Band Wireless N 3160", - .fw_name_pre = IWL3160_FW_PRE, - IWL_DEVICE_7000, - .ht_params = &iwl7000_ht_params, - .nvm_ver = IWL3160_NVM_VERSION, - .host_interrupt_operation_mode = true, - .dccm_len = IWL3160_DCCM_LEN, -}; - -const struct iwl_cfg iwl3160_n_cfg = { - .name = "Intel(R) Wireless N 3160", +const struct iwl_cfg iwl3160_cfg = { .fw_name_pre = IWL3160_FW_PRE, IWL_DEVICE_7000, .ht_params = &iwl7000_ht_params, @@ -211,7 +184,6 @@ static const struct iwl_ht_params iwl7265_ht_params = { }; const struct iwl_cfg iwl3165_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 3165", .fw_name_pre = IWL7265D_FW_PRE, IWL_DEVICE_7005D, .ht_params = &iwl7000_ht_params, @@ -221,7 +193,6 @@ const struct iwl_cfg iwl3165_2ac_cfg = { }; const struct iwl_cfg iwl3168_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 3168", .fw_name_pre = IWL3168_FW_PRE, IWL_DEVICE_3008, .ht_params = &iwl7000_ht_params, @@ -231,28 +202,7 @@ const struct iwl_cfg iwl3168_2ac_cfg = { .nvm_type = IWL_NVM_SDP, }; -const struct iwl_cfg iwl7265_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 7265", - .fw_name_pre = IWL7265_FW_PRE, - IWL_DEVICE_7005, - .ht_params = &iwl7265_ht_params, - .nvm_ver = IWL7265_NVM_VERSION, - .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, - .dccm_len = IWL7265_DCCM_LEN, -}; - -const struct iwl_cfg iwl7265_2n_cfg = { - .name = "Intel(R) Dual Band Wireless N 7265", - .fw_name_pre = IWL7265_FW_PRE, - IWL_DEVICE_7005, - .ht_params = &iwl7265_ht_params, - .nvm_ver = IWL7265_NVM_VERSION, - .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, - .dccm_len = IWL7265_DCCM_LEN, -}; - -const struct iwl_cfg iwl7265_n_cfg = { - .name = "Intel(R) Wireless N 7265", +const struct iwl_cfg iwl7265_cfg = { .fw_name_pre = IWL7265_FW_PRE, IWL_DEVICE_7005, .ht_params = &iwl7265_ht_params, @@ -261,28 +211,7 @@ const struct iwl_cfg iwl7265_n_cfg = { .dccm_len = IWL7265_DCCM_LEN, }; -const struct iwl_cfg iwl7265d_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 7265", - .fw_name_pre = IWL7265D_FW_PRE, - IWL_DEVICE_7005D, - .ht_params = &iwl7265_ht_params, - .nvm_ver = IWL7265D_NVM_VERSION, - .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, - .dccm_len = IWL7265_DCCM_LEN, -}; - -const struct iwl_cfg iwl7265d_2n_cfg = { - .name = "Intel(R) Dual Band Wireless N 7265", - .fw_name_pre = IWL7265D_FW_PRE, - IWL_DEVICE_7005D, - .ht_params = &iwl7265_ht_params, - .nvm_ver = IWL7265D_NVM_VERSION, - .pwr_tx_backoffs = iwl7265_pwr_tx_backoffs, - .dccm_len = IWL7265_DCCM_LEN, -}; - -const struct iwl_cfg iwl7265d_n_cfg = { - .name = "Intel(R) Wireless N 7265", +const struct iwl_cfg iwl7265d_cfg = { .fw_name_pre = IWL7265D_FW_PRE, IWL_DEVICE_7005D, .ht_params = &iwl7265_ht_params, diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/8000.c b/drivers/net/wireless/intel/iwlwifi/cfg/8000.c index d09cf8d7dc01..7f6f6a9ea615 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/8000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/8000.c @@ -1,6 +1,6 @@ // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause /* - * Copyright (C) 2014, 2018-2020, 2023 Intel Corporation + * Copyright (C) 2014, 2018-2020, 2023, 2025 Intel Corporation * Copyright (C) 2014-2015 Intel Mobile Communications GmbH * Copyright (C) 2016 Intel Deutschland GmbH */ @@ -76,9 +76,12 @@ static const struct iwl_tt_params iwl8000_tt_params = { .support_tx_backoff = true, }; +const struct iwl_cfg_trans_params iwl8000_trans_cfg = { + .device_family = IWL_DEVICE_FAMILY_8000, + .base_params = &iwl8000_base_params, +}; + #define IWL_DEVICE_8000_COMMON \ - .trans.device_family = IWL_DEVICE_FAMILY_8000, \ - .trans.base_params = &iwl8000_base_params, \ .led_mode = IWL_LED_RF_STATE, \ .nvm_hw_section_num = 10, \ .features = NETIF_F_RXCSUM, \ @@ -96,11 +99,6 @@ static const struct iwl_tt_params iwl8000_tt_params = { .dbgc_supported = true, \ .min_umac_error_event_table = 0x800000 -#define IWL_DEVICE_8000 \ - IWL_DEVICE_8000_COMMON, \ - .ucode_api_max = IWL8000_UCODE_API_MAX, \ - .ucode_api_min = IWL8000_UCODE_API_MIN \ - #define IWL_DEVICE_8260 \ IWL_DEVICE_8000_COMMON, \ .ucode_api_max = IWL8000_UCODE_API_MAX, \ @@ -111,23 +109,20 @@ static const struct iwl_tt_params iwl8000_tt_params = { .ucode_api_max = IWL8265_UCODE_API_MAX, \ .ucode_api_min = IWL8265_UCODE_API_MIN \ -const struct iwl_cfg iwl8260_2n_cfg = { - .name = "Intel(R) Dual Band Wireless N 8260", - .fw_name_pre = IWL8000_FW_PRE, - IWL_DEVICE_8260, - .ht_params = &iwl8000_ht_params, - .nvm_ver = IWL8000_NVM_VERSION, -}; +const char iwl8260_2n_name[] = "Intel(R) Dual Band Wireless N 8260"; +const char iwl8260_2ac_name[] = "Intel(R) Dual Band Wireless AC 8260"; +const char iwl8265_2ac_name[] = "Intel(R) Dual Band Wireless AC 8265"; +const char iwl8275_2ac_name[] = "Intel(R) Dual Band Wireless AC 8275"; +const char iwl4165_2ac_name[] = "Intel(R) Dual Band Wireless AC 4165"; -const struct iwl_cfg iwl8260_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 8260", +const struct iwl_cfg iwl8260_cfg = { .fw_name_pre = IWL8000_FW_PRE, IWL_DEVICE_8260, .ht_params = &iwl8000_ht_params, .nvm_ver = IWL8000_NVM_VERSION, }; -const struct iwl_cfg iwl8265_2ac_cfg = { +const struct iwl_cfg iwl8265_cfg = { .name = "Intel(R) Dual Band Wireless AC 8265", .fw_name_pre = IWL8265_FW_PRE, IWL_DEVICE_8265, @@ -136,22 +131,5 @@ const struct iwl_cfg iwl8265_2ac_cfg = { .vht_mu_mimo_supported = true, }; -const struct iwl_cfg iwl8275_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 8275", - .fw_name_pre = IWL8265_FW_PRE, - IWL_DEVICE_8265, - .ht_params = &iwl8000_ht_params, - .nvm_ver = IWL8000_NVM_VERSION, - .vht_mu_mimo_supported = true, -}; - -const struct iwl_cfg iwl4165_2ac_cfg = { - .name = "Intel(R) Dual Band Wireless AC 4165", - .fw_name_pre = IWL8000_FW_PRE, - IWL_DEVICE_8000, - .ht_params = &iwl8000_ht_params, - .nvm_ver = IWL8000_NVM_VERSION, -}; - MODULE_FIRMWARE(IWL8000_MODULE_FIRMWARE(IWL8000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL8265_MODULE_FIRMWARE(IWL8265_UCODE_API_MAX)); diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index 40244bdcad6f..610dbbaee26f 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -72,13 +72,10 @@ static const struct iwl_base_params iwl_ax210_base_params = { .smem_len = IWL_AX210_SMEM_LEN, \ .features = IWL_TX_CSUM_NETIF_FLAGS | NETIF_F_RXCSUM, \ .apmg_not_supported = true, \ - .trans.mq_rx_supported = true, \ .vht_mu_mimo_supported = true, \ .mac_addr_from_csr = 0x380, \ .ht_params = &iwl_22000_ht_params, \ .nvm_ver = IWL_AX210_NVM_VERSION, \ - .trans.rf_id = true, \ - .trans.gen2 = true, \ .nvm_type = IWL_NVM_EXT, \ .dbgc_supported = true, \ .min_umac_error_event_table = 0x400000, \ @@ -98,9 +95,6 @@ static const struct iwl_base_params iwl_ax210_base_params = { #define IWL_DEVICE_AX210 \ IWL_DEVICE_AX210_COMMON, \ .ucode_api_max = IWL_AX210_UCODE_API_MAX, \ - .trans.umac_prph_offset = 0x300000, \ - .trans.device_family = IWL_DEVICE_FAMILY_AX210, \ - .trans.base_params = &iwl_ax210_base_params, \ .min_txq_size = 128, \ .gp2_reg_addr = 0xd02c68, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_HE, \ @@ -218,16 +212,6 @@ const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = { .num_rbds = IWL_NUM_RBDS_AX210_HE, }; -const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0_long = { - .name = iwl_ax211_name, - .fw_name_pre = IWL_SO_A_GF_A_FW_PRE, - .uhb_supported = true, - IWL_DEVICE_AX210, - .num_rbds = IWL_NUM_RBDS_AX210_HE, - .trans.xtal_latency = 12000, - .trans.low_latency_xtal = true, -}; - const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = { .name = "Intel(R) Wi-Fi 6 AX210 160MHz", .fw_name_pre = IWL_TY_A_GF_A_FW_PRE, @@ -244,16 +228,6 @@ const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = { .num_rbds = IWL_NUM_RBDS_AX210_HE, }; -const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0_long = { - .name = iwl_ax411_name, - .fw_name_pre = IWL_SO_A_GF4_A_FW_PRE, - .uhb_supported = true, - IWL_DEVICE_AX210, - .num_rbds = IWL_NUM_RBDS_AX210_HE, - .trans.xtal_latency = 12000, - .trans.low_latency_xtal = true, -}; - const struct iwl_cfg iwl_cfg_ma = { .uhb_supported = true, IWL_DEVICE_AX210, diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c index abd4bfd2a812..cc405a4b21a9 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/bz.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/bz.c @@ -75,12 +75,9 @@ const struct iwl_ht_params iwl_bz_ht_params = { .smem_offset = IWL_BZ_SMEM_OFFSET, \ .smem_len = IWL_BZ_SMEM_LEN, \ .apmg_not_supported = true, \ - .trans.mq_rx_supported = true, \ .vht_mu_mimo_supported = true, \ .mac_addr_from_csr = 0x30, \ .nvm_ver = IWL_BZ_NVM_VERSION, \ - .trans.rf_id = true, \ - .trans.gen2 = true, \ .nvm_type = IWL_NVM_EXT, \ .dbgc_supported = true, \ .min_umac_error_event_table = 0xD0000, \ @@ -96,9 +93,6 @@ const struct iwl_ht_params iwl_bz_ht_params = { .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \ }, \ }, \ - .trans.umac_prph_offset = 0x300000, \ - .trans.device_family = IWL_DEVICE_FAMILY_BZ, \ - .trans.base_params = &iwl_bz_base_params, \ .min_txq_size = 128, \ .gp2_reg_addr = 0xd02c68, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \ diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/dr.c b/drivers/net/wireless/intel/iwlwifi/cfg/dr.c index 8bbeb2a1f691..7211c6376b99 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/dr.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/dr.c @@ -61,12 +61,9 @@ static const struct iwl_base_params iwl_dr_base_params = { .smem_offset = IWL_DR_SMEM_OFFSET, \ .smem_len = IWL_DR_SMEM_LEN, \ .apmg_not_supported = true, \ - .trans.mq_rx_supported = true, \ .vht_mu_mimo_supported = true, \ .mac_addr_from_csr = 0x30, \ .nvm_ver = IWL_DR_NVM_VERSION, \ - .trans.rf_id = true, \ - .trans.gen2 = true, \ .nvm_type = IWL_NVM_EXT, \ .dbgc_supported = true, \ .min_umac_error_event_table = 0xD0000, \ @@ -82,9 +79,6 @@ static const struct iwl_base_params iwl_dr_base_params = { .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \ }, \ }, \ - .trans.umac_prph_offset = 0x300000, \ - .trans.device_family = IWL_DEVICE_FAMILY_DR, \ - .trans.base_params = &iwl_dr_base_params, \ .min_txq_size = 128, \ .gp2_reg_addr = 0xd02c68, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \ diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c index 99955fc9331d..033cbf4d1a0d 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/sc.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/sc.c @@ -68,12 +68,9 @@ static const struct iwl_base_params iwl_sc_base_params = { .smem_offset = IWL_SC_SMEM_OFFSET, \ .smem_len = IWL_SC_SMEM_LEN, \ .apmg_not_supported = true, \ - .trans.mq_rx_supported = true, \ .vht_mu_mimo_supported = true, \ .mac_addr_from_csr = 0x30, \ .nvm_ver = IWL_SC_NVM_VERSION, \ - .trans.rf_id = true, \ - .trans.gen2 = true, \ .nvm_type = IWL_NVM_EXT, \ .dbgc_supported = true, \ .min_umac_error_event_table = 0xD0000, \ @@ -89,9 +86,6 @@ static const struct iwl_base_params iwl_sc_base_params = { .mask = LDBG_M2S_BUF_WRAP_CNT_VAL_MSK, \ }, \ }, \ - .trans.umac_prph_offset = 0x300000, \ - .trans.device_family = IWL_DEVICE_FAMILY_SC, \ - .trans.base_params = &iwl_sc_base_params, \ .min_txq_size = 128, \ .gp2_reg_addr = 0xd02c68, \ .min_ba_txq_size = IWL_DEFAULT_QUEUE_SIZE_EHT, \ diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index f8044af3b0f2..e8fc51fae61d 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -305,11 +305,8 @@ struct iwl_fw_mon_regs { struct iwl_fw_mon_reg cur_frag; }; -#define TRANS_CFG_MARKER BIT(0) - /** * struct iwl_cfg - * @trans: the trans-specific configuration part * @name: Official name of the device * @fw_name_pre: Firmware filename prefix. The api version and extension * (.ucode) will be added to filename before loading from disk. The @@ -360,7 +357,6 @@ struct iwl_fw_mon_regs { * and/or the uCode API version instead. */ struct iwl_cfg { - struct iwl_cfg_trans_params trans; /* params specific to an individual device within a device family */ const char *name; const char *fw_name_pre; @@ -491,6 +487,21 @@ extern const struct pci_device_id iwl_hw_card_ids[]; /* * This list declares the config structures for all devices. */ +extern const struct iwl_cfg_trans_params iwl1000_trans_cfg; +extern const struct iwl_cfg_trans_params iwl5000_trans_cfg; +extern const struct iwl_cfg_trans_params iwl2000_trans_cfg; +extern const struct iwl_cfg_trans_params iwl2030_trans_cfg; +extern const struct iwl_cfg_trans_params iwl105_trans_cfg; +extern const struct iwl_cfg_trans_params iwl135_trans_cfg; +extern const struct iwl_cfg_trans_params iwl5150_trans_cfg; +extern const struct iwl_cfg_trans_params iwl6005_trans_cfg; +extern const struct iwl_cfg_trans_params iwl6030_trans_cfg; +extern const struct iwl_cfg_trans_params iwl6000i_trans_cfg; +extern const struct iwl_cfg_trans_params iwl6050_trans_cfg; +extern const struct iwl_cfg_trans_params iwl6150_trans_cfg; +extern const struct iwl_cfg_trans_params iwl6000_trans_cfg; +extern const struct iwl_cfg_trans_params iwl7000_trans_cfg; +extern const struct iwl_cfg_trans_params iwl8000_trans_cfg; extern const struct iwl_cfg_trans_params iwl9000_trans_cfg; extern const struct iwl_cfg_trans_params iwl9560_trans_cfg; extern const struct iwl_cfg_trans_params iwl9560_long_latency_trans_cfg; @@ -508,6 +519,68 @@ extern const struct iwl_cfg_trans_params iwl_gl_trans_cfg; extern const struct iwl_cfg_trans_params iwl_sc_trans_cfg; extern const struct iwl_cfg_trans_params iwl_dr_trans_cfg; extern const struct iwl_cfg_trans_params iwl_br_trans_cfg; + +extern const char iwl1000_bgn_name[]; +extern const char iwl1000_bg_name[]; +extern const char iwl100_bgn_name[]; +extern const char iwl100_bg_name[]; +extern const char iwl2000_2bgn_name[]; +extern const char iwl2000_2bgn_d_name[]; +extern const char iwl2030_2bgn_name[]; +extern const char iwl105_bgn_name[]; +extern const char iwl105_bgn_d_name[]; +extern const char iwl135_bgn_name[]; +extern const char iwl5300_agn_name[]; +extern const char iwl5100_bgn_name[]; +extern const char iwl5100_abg_name[]; +extern const char iwl5100_agn_name[]; +extern const char iwl5350_agn_name[]; +extern const char iwl5150_agn_name[]; +extern const char iwl5150_abg_name[]; +extern const char iwl6005_2agn_name[]; +extern const char iwl6005_2abg_name[]; +extern const char iwl6005_2bg_name[]; +extern const char iwl6005_2agn_sff_name[]; +extern const char iwl6005_2agn_d_name[]; +extern const char iwl6005_2agn_mow1_name[]; +extern const char iwl6005_2agn_mow2_name[]; +extern const char iwl6030_2agn_name[]; +extern const char iwl6030_2abg_name[]; +extern const char iwl6030_2bgn_name[]; +extern const char iwl6030_2bg_name[]; +extern const char iwl6035_2agn_name[]; +extern const char iwl6035_2agn_sff_name[]; +extern const char iwl1030_bgn_name[]; +extern const char iwl1030_bg_name[]; +extern const char iwl130_bgn_name[]; +extern const char iwl130_bg_name[]; +extern const char iwl6000i_2agn_name[]; +extern const char iwl6000i_2abg_name[]; +extern const char iwl6000i_2bg_name[]; +extern const char iwl6050_2agn_name[]; +extern const char iwl6050_2abg_name[]; +extern const char iwl6150_bgn_name[]; +extern const char iwl6150_bg_name[]; +extern const char iwl6000_3agn_name[]; +extern const char iwl7260_2ac_name[]; +extern const char iwl7260_2n_name[]; +extern const char iwl7260_n_name[]; +extern const char iwl3160_2ac_name[]; +extern const char iwl3160_2n_name[]; +extern const char iwl3160_n_name[]; +extern const char iwl3165_2ac_name[]; +extern const char iwl3168_2ac_name[]; +extern const char iwl7265_2ac_name[]; +extern const char iwl7265_2n_name[]; +extern const char iwl7265_n_name[]; +extern const char iwl7265d_2ac_name[]; +extern const char iwl7265d_2n_name[]; +extern const char iwl7265d_n_name[]; +extern const char iwl8260_2n_name[]; +extern const char iwl8260_2ac_name[]; +extern const char iwl8265_2ac_name[]; +extern const char iwl8275_2ac_name[]; +extern const char iwl4165_2ac_name[]; extern const char iwl9162_name[]; extern const char iwl9260_name[]; extern const char iwl9260_1_name[]; @@ -553,28 +626,18 @@ extern const char iwl_dr_name[]; extern const char iwl_br_name[]; #if IS_ENABLED(CONFIG_IWLDVM) extern const struct iwl_cfg iwl5300_agn_cfg; -extern const struct iwl_cfg iwl5100_agn_cfg; extern const struct iwl_cfg iwl5350_agn_cfg; -extern const struct iwl_cfg iwl5100_bgn_cfg; +extern const struct iwl_cfg iwl5100_n_cfg; extern const struct iwl_cfg iwl5100_abg_cfg; extern const struct iwl_cfg iwl5150_agn_cfg; extern const struct iwl_cfg iwl5150_abg_cfg; -extern const struct iwl_cfg iwl6005_2agn_cfg; -extern const struct iwl_cfg iwl6005_2abg_cfg; -extern const struct iwl_cfg iwl6005_2bg_cfg; -extern const struct iwl_cfg iwl6005_2agn_sff_cfg; -extern const struct iwl_cfg iwl6005_2agn_d_cfg; -extern const struct iwl_cfg iwl6005_2agn_mow1_cfg; -extern const struct iwl_cfg iwl6005_2agn_mow2_cfg; -extern const struct iwl_cfg iwl1030_bgn_cfg; -extern const struct iwl_cfg iwl1030_bg_cfg; -extern const struct iwl_cfg iwl6030_2agn_cfg; -extern const struct iwl_cfg iwl6030_2abg_cfg; -extern const struct iwl_cfg iwl6030_2bgn_cfg; -extern const struct iwl_cfg iwl6030_2bg_cfg; +extern const struct iwl_cfg iwl6005_non_n_cfg; +extern const struct iwl_cfg iwl6005_n_cfg; +extern const struct iwl_cfg iwl6030_n_cfg; +extern const struct iwl_cfg iwl6030_non_n_cfg; extern const struct iwl_cfg iwl6000i_2agn_cfg; -extern const struct iwl_cfg iwl6000i_2abg_cfg; -extern const struct iwl_cfg iwl6000i_2bg_cfg; +extern const struct iwl_cfg iwl6000i_non_n_cfg; +extern const struct iwl_cfg iwl6000i_non_n_cfg; extern const struct iwl_cfg iwl6000_3agn_cfg; extern const struct iwl_cfg iwl6050_2agn_cfg; extern const struct iwl_cfg iwl6050_2abg_cfg; @@ -587,36 +650,23 @@ extern const struct iwl_cfg iwl100_bg_cfg; extern const struct iwl_cfg iwl130_bgn_cfg; extern const struct iwl_cfg iwl130_bg_cfg; extern const struct iwl_cfg iwl2000_2bgn_cfg; -extern const struct iwl_cfg iwl2000_2bgn_d_cfg; extern const struct iwl_cfg iwl2030_2bgn_cfg; extern const struct iwl_cfg iwl6035_2agn_cfg; -extern const struct iwl_cfg iwl6035_2agn_sff_cfg; extern const struct iwl_cfg iwl105_bgn_cfg; -extern const struct iwl_cfg iwl105_bgn_d_cfg; extern const struct iwl_cfg iwl135_bgn_cfg; #endif /* CONFIG_IWLDVM */ #if IS_ENABLED(CONFIG_IWLMVM) extern const struct iwl_ht_params iwl_22000_ht_params; -extern const struct iwl_cfg iwl7260_2ac_cfg; -extern const struct iwl_cfg iwl7260_2ac_cfg_high_temp; -extern const struct iwl_cfg iwl7260_2n_cfg; -extern const struct iwl_cfg iwl7260_n_cfg; -extern const struct iwl_cfg iwl3160_2ac_cfg; -extern const struct iwl_cfg iwl3160_2n_cfg; -extern const struct iwl_cfg iwl3160_n_cfg; + +extern const struct iwl_cfg iwl7260_cfg; +extern const struct iwl_cfg iwl7260_high_temp_cfg; +extern const struct iwl_cfg iwl3160_cfg; extern const struct iwl_cfg iwl3165_2ac_cfg; extern const struct iwl_cfg iwl3168_2ac_cfg; -extern const struct iwl_cfg iwl7265_2ac_cfg; -extern const struct iwl_cfg iwl7265_2n_cfg; -extern const struct iwl_cfg iwl7265_n_cfg; -extern const struct iwl_cfg iwl7265d_2ac_cfg; -extern const struct iwl_cfg iwl7265d_2n_cfg; -extern const struct iwl_cfg iwl7265d_n_cfg; -extern const struct iwl_cfg iwl8260_2n_cfg; -extern const struct iwl_cfg iwl8260_2ac_cfg; -extern const struct iwl_cfg iwl8265_2ac_cfg; -extern const struct iwl_cfg iwl8275_2ac_cfg; -extern const struct iwl_cfg iwl4165_2ac_cfg; +extern const struct iwl_cfg iwl7265_cfg; +extern const struct iwl_cfg iwl7265d_cfg; +extern const struct iwl_cfg iwl8260_cfg; +extern const struct iwl_cfg iwl8265_cfg; extern const struct iwl_cfg iwl9260_2ac_cfg; extern const struct iwl_cfg iwl9260_2ac_cfg_80mhz; extern const struct iwl_cfg iwl9560_qu_jf_cfg; @@ -632,10 +682,8 @@ extern const struct iwl_cfg iwl_ax200_cfg_cc; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0; extern const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz; extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0; -extern const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0_long; extern const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0; extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0; -extern const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0_long; extern const struct iwl_cfg iwl_cfg_ma; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 4c2786655f7d..55f07c68339c 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -20,11 +20,10 @@ #define _IS_A(cfg, _struct) __builtin_types_compatible_p(typeof(cfg), \ struct _struct) extern int _invalid_type; -#define _TRANS_CFG_MARKER(cfg) \ +#define _TRANS_CFG_CHECK(cfg) \ (__builtin_choose_expr(_IS_A(cfg, iwl_cfg_trans_params), \ - TRANS_CFG_MARKER, \ - __builtin_choose_expr(_IS_A(cfg, iwl_cfg), 0, _invalid_type))) -#define _ASSIGN_CFG(cfg) (_TRANS_CFG_MARKER(cfg) + (kernel_ulong_t)&(cfg)) + 0, _invalid_type)) +#define _ASSIGN_CFG(cfg) (_TRANS_CFG_CHECK(cfg) + (kernel_ulong_t)&(cfg)) #define IWL_PCI_DEVICE(dev, subdev, cfg) \ .vendor = PCI_VENDOR_ID_INTEL, .device = (dev), \ @@ -34,434 +33,434 @@ extern int _invalid_type; /* Hardware specific file defines the PCI IDs table for that hardware module */ VISIBLE_IF_IWLWIFI_KUNIT const struct pci_device_id iwl_hw_card_ids[] = { #if IS_ENABLED(CONFIG_IWLDVM) - {IWL_PCI_DEVICE(0x4232, 0x1201, iwl5100_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1301, iwl5100_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1204, iwl5100_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1304, iwl5100_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1205, iwl5100_bgn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1305, iwl5100_bgn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1206, iwl5100_abg_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1306, iwl5100_abg_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1221, iwl5100_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1321, iwl5100_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1224, iwl5100_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1324, iwl5100_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1225, iwl5100_bgn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1325, iwl5100_bgn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1226, iwl5100_abg_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4232, 0x1326, iwl5100_abg_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1211, iwl5100_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1311, iwl5100_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1214, iwl5100_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1314, iwl5100_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1215, iwl5100_bgn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1315, iwl5100_bgn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1216, iwl5100_abg_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4237, 0x1316, iwl5100_abg_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1201, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1301, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1204, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1304, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1205, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1305, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1206, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1306, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1221, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1321, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1224, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1324, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1225, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1325, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1226, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4232, 0x1326, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1211, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1311, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1214, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1314, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1215, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1315, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1216, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4237, 0x1316, iwl5000_trans_cfg)}, /* Half Mini Card */ /* 5300 Series WiFi */ - {IWL_PCI_DEVICE(0x4235, 0x1021, iwl5300_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1121, iwl5300_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1024, iwl5300_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1124, iwl5300_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1001, iwl5300_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1101, iwl5300_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1004, iwl5300_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4235, 0x1104, iwl5300_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4236, 0x1011, iwl5300_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4236, 0x1111, iwl5300_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x4236, 0x1014, iwl5300_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x4236, 0x1114, iwl5300_agn_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1021, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1121, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1024, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1124, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1001, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1101, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1004, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4235, 0x1104, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4236, 0x1011, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4236, 0x1111, iwl5000_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x4236, 0x1014, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x4236, 0x1114, iwl5000_trans_cfg)}, /* Half Mini Card */ /* 5350 Series WiFi/WiMax */ - {IWL_PCI_DEVICE(0x423A, 0x1001, iwl5350_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423A, 0x1021, iwl5350_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423B, 0x1011, iwl5350_agn_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423A, 0x1001, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423A, 0x1021, iwl5000_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423B, 0x1011, iwl5000_trans_cfg)}, /* Mini Card */ /* 5150 Series Wifi/WiMax */ - {IWL_PCI_DEVICE(0x423C, 0x1201, iwl5150_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423C, 0x1301, iwl5150_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x423C, 0x1206, iwl5150_abg_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423C, 0x1306, iwl5150_abg_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x423C, 0x1221, iwl5150_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423C, 0x1321, iwl5150_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x423C, 0x1326, iwl5150_abg_cfg)}, /* Half Mini Card */ - - {IWL_PCI_DEVICE(0x423D, 0x1211, iwl5150_agn_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423D, 0x1311, iwl5150_agn_cfg)}, /* Half Mini Card */ - {IWL_PCI_DEVICE(0x423D, 0x1216, iwl5150_abg_cfg)}, /* Mini Card */ - {IWL_PCI_DEVICE(0x423D, 0x1316, iwl5150_abg_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1201, iwl5150_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1301, iwl5150_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1206, iwl5150_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1306, iwl5150_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1221, iwl5150_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1321, iwl5150_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x423C, 0x1326, iwl5150_trans_cfg)}, /* Half Mini Card */ + + {IWL_PCI_DEVICE(0x423D, 0x1211, iwl5150_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423D, 0x1311, iwl5150_trans_cfg)}, /* Half Mini Card */ + {IWL_PCI_DEVICE(0x423D, 0x1216, iwl5150_trans_cfg)}, /* Mini Card */ + {IWL_PCI_DEVICE(0x423D, 0x1316, iwl5150_trans_cfg)}, /* Half Mini Card */ /* 6x00 Series */ - {IWL_PCI_DEVICE(0x422B, 0x1101, iwl6000_3agn_cfg)}, - {IWL_PCI_DEVICE(0x422B, 0x1108, iwl6000_3agn_cfg)}, - {IWL_PCI_DEVICE(0x422B, 0x1121, iwl6000_3agn_cfg)}, - {IWL_PCI_DEVICE(0x422B, 0x1128, iwl6000_3agn_cfg)}, - {IWL_PCI_DEVICE(0x422C, 0x1301, iwl6000i_2agn_cfg)}, - {IWL_PCI_DEVICE(0x422C, 0x1306, iwl6000i_2abg_cfg)}, - {IWL_PCI_DEVICE(0x422C, 0x1307, iwl6000i_2bg_cfg)}, - {IWL_PCI_DEVICE(0x422C, 0x1321, iwl6000i_2agn_cfg)}, - {IWL_PCI_DEVICE(0x422C, 0x1326, iwl6000i_2abg_cfg)}, - {IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_3agn_cfg)}, - {IWL_PCI_DEVICE(0x4238, 0x1118, iwl6000_3agn_cfg)}, - {IWL_PCI_DEVICE(0x4239, 0x1311, iwl6000i_2agn_cfg)}, - {IWL_PCI_DEVICE(0x4239, 0x1316, iwl6000i_2abg_cfg)}, + {IWL_PCI_DEVICE(0x422B, 0x1101, iwl6000_trans_cfg)}, + {IWL_PCI_DEVICE(0x422B, 0x1108, iwl6000_trans_cfg)}, + {IWL_PCI_DEVICE(0x422B, 0x1121, iwl6000_trans_cfg)}, + {IWL_PCI_DEVICE(0x422B, 0x1128, iwl6000_trans_cfg)}, + {IWL_PCI_DEVICE(0x422C, 0x1301, iwl6000i_trans_cfg)}, + {IWL_PCI_DEVICE(0x422C, 0x1306, iwl6000i_trans_cfg)}, + {IWL_PCI_DEVICE(0x422C, 0x1307, iwl6000i_trans_cfg)}, + {IWL_PCI_DEVICE(0x422C, 0x1321, iwl6000i_trans_cfg)}, + {IWL_PCI_DEVICE(0x422C, 0x1326, iwl6000i_trans_cfg)}, + {IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_trans_cfg)}, + {IWL_PCI_DEVICE(0x4238, 0x1118, iwl6000_trans_cfg)}, + {IWL_PCI_DEVICE(0x4239, 0x1311, iwl6000i_trans_cfg)}, + {IWL_PCI_DEVICE(0x4239, 0x1316, iwl6000i_trans_cfg)}, /* 6x05 Series */ - {IWL_PCI_DEVICE(0x0082, 0x1301, iwl6005_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1306, iwl6005_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1307, iwl6005_2bg_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1308, iwl6005_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1321, iwl6005_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1326, iwl6005_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1328, iwl6005_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0085, 0x1318, iwl6005_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0085, 0x1316, iwl6005_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0xC020, iwl6005_2agn_sff_cfg)}, - {IWL_PCI_DEVICE(0x0085, 0xC220, iwl6005_2agn_sff_cfg)}, - {IWL_PCI_DEVICE(0x0085, 0xC228, iwl6005_2agn_sff_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x4820, iwl6005_2agn_d_cfg)}, - {IWL_PCI_DEVICE(0x0082, 0x1304, iwl6005_2agn_mow1_cfg)},/* low 5GHz active */ - {IWL_PCI_DEVICE(0x0082, 0x1305, iwl6005_2agn_mow2_cfg)},/* high 5GHz active */ + {IWL_PCI_DEVICE(0x0082, 0x1301, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1306, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1307, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1308, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1321, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1326, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1328, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0x1318, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0x1316, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0xC020, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0xC220, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0xC228, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x4820, iwl6005_trans_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1304, iwl6005_trans_cfg)},/* low 5GHz active */ + {IWL_PCI_DEVICE(0x0082, 0x1305, iwl6005_trans_cfg)},/* high 5GHz active */ /* 6x30 Series */ - {IWL_PCI_DEVICE(0x008A, 0x5305, iwl1030_bgn_cfg)}, - {IWL_PCI_DEVICE(0x008A, 0x5307, iwl1030_bg_cfg)}, - {IWL_PCI_DEVICE(0x008A, 0x5325, iwl1030_bgn_cfg)}, - {IWL_PCI_DEVICE(0x008A, 0x5327, iwl1030_bg_cfg)}, - {IWL_PCI_DEVICE(0x008B, 0x5315, iwl1030_bgn_cfg)}, - {IWL_PCI_DEVICE(0x008B, 0x5317, iwl1030_bg_cfg)}, - {IWL_PCI_DEVICE(0x0090, 0x5211, iwl6030_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0090, 0x5215, iwl6030_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0090, 0x5216, iwl6030_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5201, iwl6030_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5205, iwl6030_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5206, iwl6030_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5207, iwl6030_2bg_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5221, iwl6030_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5225, iwl6030_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0091, 0x5226, iwl6030_2abg_cfg)}, + {IWL_PCI_DEVICE(0x008A, 0x5305, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x008A, 0x5307, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x008A, 0x5325, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x008A, 0x5327, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x008B, 0x5315, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x008B, 0x5317, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0090, 0x5211, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0090, 0x5215, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0090, 0x5216, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5201, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5205, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5206, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5207, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5221, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5225, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0091, 0x5226, iwl6030_trans_cfg)}, /* 6x50 WiFi/WiMax Series */ - {IWL_PCI_DEVICE(0x0087, 0x1301, iwl6050_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0087, 0x1306, iwl6050_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0087, 0x1321, iwl6050_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0087, 0x1326, iwl6050_2abg_cfg)}, - {IWL_PCI_DEVICE(0x0089, 0x1311, iwl6050_2agn_cfg)}, - {IWL_PCI_DEVICE(0x0089, 0x1316, iwl6050_2abg_cfg)}, + {IWL_PCI_DEVICE(0x0087, 0x1301, iwl6050_trans_cfg)}, + {IWL_PCI_DEVICE(0x0087, 0x1306, iwl6050_trans_cfg)}, + {IWL_PCI_DEVICE(0x0087, 0x1321, iwl6050_trans_cfg)}, + {IWL_PCI_DEVICE(0x0087, 0x1326, iwl6050_trans_cfg)}, + {IWL_PCI_DEVICE(0x0089, 0x1311, iwl6050_trans_cfg)}, + {IWL_PCI_DEVICE(0x0089, 0x1316, iwl6050_trans_cfg)}, /* 6150 WiFi/WiMax Series */ - {IWL_PCI_DEVICE(0x0885, 0x1305, iwl6150_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0885, 0x1307, iwl6150_bg_cfg)}, - {IWL_PCI_DEVICE(0x0885, 0x1325, iwl6150_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0885, 0x1327, iwl6150_bg_cfg)}, - {IWL_PCI_DEVICE(0x0886, 0x1315, iwl6150_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0886, 0x1317, iwl6150_bg_cfg)}, + {IWL_PCI_DEVICE(0x0885, 0x1305, iwl6150_trans_cfg)}, + {IWL_PCI_DEVICE(0x0885, 0x1307, iwl6150_trans_cfg)}, + {IWL_PCI_DEVICE(0x0885, 0x1325, iwl6150_trans_cfg)}, + {IWL_PCI_DEVICE(0x0885, 0x1327, iwl6150_trans_cfg)}, + {IWL_PCI_DEVICE(0x0886, 0x1315, iwl6150_trans_cfg)}, + {IWL_PCI_DEVICE(0x0886, 0x1317, iwl6150_trans_cfg)}, /* 1000 Series WiFi */ - {IWL_PCI_DEVICE(0x0083, 0x1205, iwl1000_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1305, iwl1000_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1225, iwl1000_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1325, iwl1000_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0084, 0x1215, iwl1000_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0084, 0x1315, iwl1000_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1206, iwl1000_bg_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1306, iwl1000_bg_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1226, iwl1000_bg_cfg)}, - {IWL_PCI_DEVICE(0x0083, 0x1326, iwl1000_bg_cfg)}, - {IWL_PCI_DEVICE(0x0084, 0x1216, iwl1000_bg_cfg)}, - {IWL_PCI_DEVICE(0x0084, 0x1316, iwl1000_bg_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1205, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1305, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1225, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1325, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0084, 0x1215, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0084, 0x1315, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1206, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1306, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1226, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0083, 0x1326, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0084, 0x1216, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0084, 0x1316, iwl1000_trans_cfg)}, /* 100 Series WiFi */ - {IWL_PCI_DEVICE(0x08AE, 0x1005, iwl100_bgn_cfg)}, - {IWL_PCI_DEVICE(0x08AE, 0x1007, iwl100_bg_cfg)}, - {IWL_PCI_DEVICE(0x08AF, 0x1015, iwl100_bgn_cfg)}, - {IWL_PCI_DEVICE(0x08AF, 0x1017, iwl100_bg_cfg)}, - {IWL_PCI_DEVICE(0x08AE, 0x1025, iwl100_bgn_cfg)}, - {IWL_PCI_DEVICE(0x08AE, 0x1027, iwl100_bg_cfg)}, + {IWL_PCI_DEVICE(0x08AE, 0x1005, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08AE, 0x1007, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08AF, 0x1015, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08AF, 0x1017, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08AE, 0x1025, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08AE, 0x1027, iwl1000_trans_cfg)}, /* 130 Series WiFi */ - {IWL_PCI_DEVICE(0x0896, 0x5005, iwl130_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0896, 0x5007, iwl130_bg_cfg)}, - {IWL_PCI_DEVICE(0x0897, 0x5015, iwl130_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0897, 0x5017, iwl130_bg_cfg)}, - {IWL_PCI_DEVICE(0x0896, 0x5025, iwl130_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0896, 0x5027, iwl130_bg_cfg)}, + {IWL_PCI_DEVICE(0x0896, 0x5005, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0896, 0x5007, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0897, 0x5015, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0897, 0x5017, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0896, 0x5025, iwl1000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0896, 0x5027, iwl1000_trans_cfg)}, /* 2x00 Series */ - {IWL_PCI_DEVICE(0x0890, 0x4022, iwl2000_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0891, 0x4222, iwl2000_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0890, 0x4422, iwl2000_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0890, 0x4822, iwl2000_2bgn_d_cfg)}, + {IWL_PCI_DEVICE(0x0890, 0x4022, iwl2000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0891, 0x4222, iwl2000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0890, 0x4422, iwl2000_trans_cfg)}, + {IWL_PCI_DEVICE(0x0890, 0x4822, iwl2000_trans_cfg)}, /* 2x30 Series */ - {IWL_PCI_DEVICE(0x0887, 0x4062, iwl2030_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0888, 0x4262, iwl2030_2bgn_cfg)}, - {IWL_PCI_DEVICE(0x0887, 0x4462, iwl2030_2bgn_cfg)}, + {IWL_PCI_DEVICE(0x0887, 0x4062, iwl2030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0888, 0x4262, iwl2030_trans_cfg)}, + {IWL_PCI_DEVICE(0x0887, 0x4462, iwl2030_trans_cfg)}, /* 6x35 Series */ - {IWL_PCI_DEVICE(0x088E, 0x4060, iwl6035_2agn_cfg)}, - {IWL_PCI_DEVICE(0x088E, 0x406A, iwl6035_2agn_sff_cfg)}, - {IWL_PCI_DEVICE(0x088F, 0x4260, iwl6035_2agn_cfg)}, - {IWL_PCI_DEVICE(0x088F, 0x426A, iwl6035_2agn_sff_cfg)}, - {IWL_PCI_DEVICE(0x088E, 0x4460, iwl6035_2agn_cfg)}, - {IWL_PCI_DEVICE(0x088E, 0x446A, iwl6035_2agn_sff_cfg)}, - {IWL_PCI_DEVICE(0x088E, 0x4860, iwl6035_2agn_cfg)}, - {IWL_PCI_DEVICE(0x088F, 0x5260, iwl6035_2agn_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x4060, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x406A, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088F, 0x4260, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088F, 0x426A, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x4460, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x446A, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x4860, iwl6030_trans_cfg)}, + {IWL_PCI_DEVICE(0x088F, 0x5260, iwl6030_trans_cfg)}, /* 105 Series */ - {IWL_PCI_DEVICE(0x0894, 0x0022, iwl105_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0895, 0x0222, iwl105_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0894, 0x0422, iwl105_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0894, 0x0822, iwl105_bgn_d_cfg)}, + {IWL_PCI_DEVICE(0x0894, 0x0022, iwl105_trans_cfg)}, + {IWL_PCI_DEVICE(0x0895, 0x0222, iwl105_trans_cfg)}, + {IWL_PCI_DEVICE(0x0894, 0x0422, iwl105_trans_cfg)}, + {IWL_PCI_DEVICE(0x0894, 0x0822, iwl105_trans_cfg)}, /* 135 Series */ - {IWL_PCI_DEVICE(0x0892, 0x0062, iwl135_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0893, 0x0262, iwl135_bgn_cfg)}, - {IWL_PCI_DEVICE(0x0892, 0x0462, iwl135_bgn_cfg)}, + {IWL_PCI_DEVICE(0x0892, 0x0062, iwl135_trans_cfg)}, + {IWL_PCI_DEVICE(0x0893, 0x0262, iwl135_trans_cfg)}, + {IWL_PCI_DEVICE(0x0892, 0x0462, iwl135_trans_cfg)}, #endif /* CONFIG_IWLDVM */ #if IS_ENABLED(CONFIG_IWLMVM) /* 7260 Series */ - {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4C60, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4C70, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7260_2ac_cfg_high_temp)}, - {IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7260_2ac_cfg_high_temp)}, - {IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7260_2ac_cfg_high_temp)}, - {IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xCC70, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xCC60, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7260_n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7260_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4C60, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4C70, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5072, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5170, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5770, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xCC70, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xCC60, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7000_trans_cfg)}, /* 3160 Series */ - {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0072, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0170, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0172, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0060, iwl3160_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0062, iwl3160_n_cfg)}, - {IWL_PCI_DEVICE(0x08B4, 0x0270, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B4, 0x0272, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0470, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x0472, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B4, 0x0370, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8070, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8072, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8170, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8172, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8060, iwl3160_2n_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8062, iwl3160_n_cfg)}, - {IWL_PCI_DEVICE(0x08B4, 0x8270, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B4, 0x8370, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B4, 0x8272, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8470, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x8570, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x1070, iwl3160_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B3, 0x1170, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0072, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0170, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0172, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0060, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0062, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x0270, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x0272, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0470, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0472, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x0370, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8070, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8072, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8170, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8172, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8060, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8062, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x8270, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x8370, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x8272, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8470, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8570, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x1070, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x1170, iwl7000_trans_cfg)}, /* 3165 Series */ - {IWL_PCI_DEVICE(0x3165, 0x4010, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3165, 0x4012, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3166, 0x4212, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3165, 0x4410, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3165, 0x4510, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3165, 0x4110, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3166, 0x4310, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3166, 0x4210, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3165, 0x8010, iwl3165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x3165, 0x8110, iwl3165_2ac_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x4010, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x4012, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3166, 0x4212, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x4410, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x4510, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x4110, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3166, 0x4310, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3166, 0x4210, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x8010, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x3165, 0x8110, iwl7000_trans_cfg)}, /* 3168 Series */ - {IWL_PCI_DEVICE(0x24FB, 0x2010, iwl3168_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FB, 0x2110, iwl3168_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FB, 0x2050, iwl3168_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FB, 0x2150, iwl3168_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FB, 0x0000, iwl3168_2ac_cfg)}, + {IWL_PCI_DEVICE(0x24FB, 0x2010, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FB, 0x2110, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FB, 0x2050, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FB, 0x2150, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FB, 0x0000, iwl7000_trans_cfg)}, /* 7265 Series */ - {IWL_PCI_DEVICE(0x095A, 0x5010, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5110, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5100, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5310, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5302, iwl7265_n_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5210, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5C10, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5012, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5412, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5410, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5510, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5400, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x1010, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5000, iwl7265_2n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7265_2n_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5200, iwl7265_2n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5002, iwl7265_n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5102, iwl7265_n_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5202, iwl7265_n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9010, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9012, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x900A, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9110, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9112, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x9210, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x9200, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9510, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x9310, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9410, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5020, iwl7265_2n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x502A, iwl7265_2n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5420, iwl7265_2n_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5090, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5190, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5590, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5290, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5490, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x5F10, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x5212, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095B, 0x520A, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9000, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9400, iwl7265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x095A, 0x9E10, iwl7265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5010, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5110, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5100, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5310, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5302, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5210, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5C10, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5012, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5412, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5410, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5510, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5400, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x1010, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5000, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x500A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5200, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5002, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5102, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5202, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9010, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9012, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x900A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9110, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9112, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x9210, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x9200, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9510, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x9310, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9410, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5020, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x502A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5420, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5090, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5190, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5590, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5290, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5490, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x5F10, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x5212, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095B, 0x520A, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9000, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9400, iwl7000_trans_cfg)}, + {IWL_PCI_DEVICE(0x095A, 0x9E10, iwl7000_trans_cfg)}, /* 8000 Series */ - {IWL_PCI_DEVICE(0x24F3, 0x0010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x10B0, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0130, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1130, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0132, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1132, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0110, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x01F0, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0012, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1012, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1110, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0050, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0250, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1050, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0150, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x1150, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F4, 0x0030, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F4, 0x1030, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xC010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xC110, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xD010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xC050, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xD050, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xD0B0, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0xB0B0, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x8010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x8110, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x9010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x9110, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F4, 0x8030, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F4, 0x9030, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F4, 0xC030, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F4, 0xD030, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x8130, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x9130, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x8132, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x9132, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x8050, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x8150, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x9050, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x9150, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0004, iwl8260_2n_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0044, iwl8260_2n_cfg)}, - {IWL_PCI_DEVICE(0x24F5, 0x0010, iwl4165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F6, 0x0030, iwl4165_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0810, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0910, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0850, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0950, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24F3, 0x4010, iwl8260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x1130, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0130, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x10D0, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0910, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0930, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0950, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0850, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x1014, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x3E02, iwl8275_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x3E01, iwl8275_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x1012, iwl8275_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0012, iwl8275_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x0014, iwl8265_2ac_cfg)}, - {IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8265_2ac_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x10B0, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0132, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1132, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x01F0, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0012, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1012, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0250, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0150, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x1150, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F4, 0x0030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F4, 0x1030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xC010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xC110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xD010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xC050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xD050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xD0B0, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0xB0B0, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x8010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x8110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x9010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x9110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F4, 0x8030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F4, 0x9030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F4, 0xC030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F4, 0xD030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x8130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x9130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x8132, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x9132, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x8050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x8150, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x9050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x9150, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0004, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0044, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F5, 0x0010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F6, 0x0030, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0810, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0910, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0850, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0950, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0930, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x0000, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24F3, 0x4010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x10D0, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0150, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x9010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x8110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x8050, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x8010, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0810, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x9110, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x8130, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0910, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0930, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0950, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0850, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1014, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x3E02, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x3E01, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x1012, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0012, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x0014, iwl8000_trans_cfg)}, + {IWL_PCI_DEVICE(0x24FD, 0x9074, iwl8000_trans_cfg)}, /* 9000 Series */ {IWL_PCI_DEVICE(0x2526, PCI_ANY_ID, iwl9000_trans_cfg)}, @@ -583,7 +582,816 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); #define BW_LIMITED .bw_limit = 1 VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { +#if IS_ENABLED(CONFIG_IWLDVM) + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1201)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1301)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1204)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1304)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, + DEVICE(0x4232), SUBDEV(0x1205)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, + DEVICE(0x4232), SUBDEV(0x1305)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, + DEVICE(0x4232), SUBDEV(0x1206)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, + DEVICE(0x4232), SUBDEV(0x1306)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1221)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1321)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1224)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4232), SUBDEV(0x1324)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, + DEVICE(0x4232), SUBDEV(0x1225)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, + DEVICE(0x4232), SUBDEV(0x1325)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, + DEVICE(0x4232), SUBDEV(0x1226)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, + DEVICE(0x4232), SUBDEV(0x1326)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4237), SUBDEV(0x1211)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4237), SUBDEV(0x1311)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4237), SUBDEV(0x1214)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, + DEVICE(0x4237), SUBDEV(0x1314)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, + DEVICE(0x4237), SUBDEV(0x1215)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, + DEVICE(0x4237), SUBDEV(0x1315)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, + DEVICE(0x4237), SUBDEV(0x1216)), /* Mini Card */ + IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, + DEVICE(0x4237), SUBDEV(0x1316)), /* Half Mini Card */ + +/* 5300 Series WiFi */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1021)), /* Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1121)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1024)), /* Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1124)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1001)), /* Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1101)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1004)), /* Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4235), SUBDEV(0x1104)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4236), SUBDEV(0x1011)), /* Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4236), SUBDEV(0x1111)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4236), SUBDEV(0x1014)), /* Mini Card */ + IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, + DEVICE(0x4236), SUBDEV(0x1114)), /* Half Mini Card */ + +/* 5350 Series WiFi/WiMax */ + IWL_DEV_INFO(iwl5350_agn_cfg, iwl5350_agn_name, + DEVICE(0x423A), SUBDEV(0x1001)), /* Mini Card */ + IWL_DEV_INFO(iwl5350_agn_cfg, iwl5350_agn_name, + DEVICE(0x423A), SUBDEV(0x1021)), /* Mini Card */ + IWL_DEV_INFO(iwl5350_agn_cfg, iwl5350_agn_name, + DEVICE(0x423B), SUBDEV(0x1011)), /* Mini Card */ + +/* 5150 Series Wifi/WiMax */ + IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, + DEVICE(0x423C), SUBDEV(0x1201)), /* Mini Card */ + IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, + DEVICE(0x423C), SUBDEV(0x1301)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, + DEVICE(0x423C), SUBDEV(0x1206)), /* Mini Card */ + IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, + DEVICE(0x423C), SUBDEV(0x1306)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, + DEVICE(0x423C), SUBDEV(0x1221)), /* Mini Card */ + IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, + DEVICE(0x423C), SUBDEV(0x1321)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, + DEVICE(0x423C), SUBDEV(0x1326)), /* Half Mini Card */ + + IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, + DEVICE(0x423D), SUBDEV(0x1211)), /* Mini Card */ + IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, + DEVICE(0x423D), SUBDEV(0x1311)), /* Half Mini Card */ + IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, + DEVICE(0x423D), SUBDEV(0x1216)), /* Mini Card */ + IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, + DEVICE(0x423D), SUBDEV(0x1316)), /* Half Mini Card */ + +/* 6x00 Series */ + IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, + DEVICE(0x422B), SUBDEV(0x1101)), + IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, + DEVICE(0x422B), SUBDEV(0x1108)), + IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, + DEVICE(0x422B), SUBDEV(0x1121)), + IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, + DEVICE(0x422B), SUBDEV(0x1128)), + IWL_DEV_INFO(iwl6000i_2agn_cfg, iwl6000i_2agn_name, + DEVICE(0x422C), SUBDEV(0x1301)), + IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2abg_name, + DEVICE(0x422C), SUBDEV(0x1306)), + IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2bg_name, + DEVICE(0x422C), SUBDEV(0x1307)), + IWL_DEV_INFO(iwl6000i_2agn_cfg, iwl6000i_2agn_name, + DEVICE(0x422C), SUBDEV(0x1321)), + IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2abg_name, + DEVICE(0x422C), SUBDEV(0x1326)), + IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, + DEVICE(0x4238), SUBDEV(0x1111)), + IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, + DEVICE(0x4238), SUBDEV(0x1118)), + IWL_DEV_INFO(iwl6000i_2agn_cfg, iwl6000i_2agn_name, + DEVICE(0x4239), SUBDEV(0x1311)), + IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2abg_name, + DEVICE(0x4239), SUBDEV(0x1316)), + +/* 6x05 Series */ + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, + DEVICE(0x0082), SUBDEV(0x1301)), + IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2abg_name, + DEVICE(0x0082), SUBDEV(0x1306)), + IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2bg_name, + DEVICE(0x0082), SUBDEV(0x1307)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, + DEVICE(0x0082), SUBDEV(0x1308)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, + DEVICE(0x0082), SUBDEV(0x1321)), + IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2abg_name, + DEVICE(0x0082), SUBDEV(0x1326)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, + DEVICE(0x0082), SUBDEV(0x1328)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, + DEVICE(0x0085), SUBDEV(0x1311)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, + DEVICE(0x0085), SUBDEV(0x1318)), + IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2abg_name, + DEVICE(0x0085), SUBDEV(0x1316)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_sff_name, + DEVICE(0x0082), SUBDEV(0xC020)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_sff_name, + DEVICE(0x0085), SUBDEV(0xC220)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_sff_name, + DEVICE(0x0085), SUBDEV(0xC228)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_d_name, + DEVICE(0x0082), SUBDEV(0x4820)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_mow1_name, + DEVICE(0x0082), SUBDEV(0x1304)),/* low 5GHz active */ + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_mow2_name, + DEVICE(0x0082), SUBDEV(0x1305)),/* high 5GHz active */ + +/* 6x30 Series */ + IWL_DEV_INFO(iwl6030_n_cfg, iwl1030_bgn_name, + DEVICE(0x008A), SUBDEV(0x5305)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl1030_bg_name, + DEVICE(0x008A), SUBDEV(0x5307)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl1030_bgn_name, + DEVICE(0x008A), SUBDEV(0x5325)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl1030_bg_name, + DEVICE(0x008A), SUBDEV(0x5327)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl1030_bgn_name, + DEVICE(0x008B), SUBDEV(0x5315)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl1030_bg_name, + DEVICE(0x008B), SUBDEV(0x5317)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2agn_name, + DEVICE(0x0090), SUBDEV(0x5211)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2bgn_name, + DEVICE(0x0090), SUBDEV(0x5215)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2abg_name, + DEVICE(0x0090), SUBDEV(0x5216)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2agn_name, + DEVICE(0x0091), SUBDEV(0x5201)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2bgn_name, + DEVICE(0x0091), SUBDEV(0x5205)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2abg_name, + DEVICE(0x0091), SUBDEV(0x5206)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2bg_name, + DEVICE(0x0091), SUBDEV(0x5207)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2agn_name, + DEVICE(0x0091), SUBDEV(0x5221)), + IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2bgn_name, + DEVICE(0x0091), SUBDEV(0x5225)), + IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2abg_name, + DEVICE(0x0091), SUBDEV(0x5226)), + +/* 6x50 WiFi/WiMax Series */ + IWL_DEV_INFO(iwl6050_2agn_cfg, iwl6050_2agn_name, + DEVICE(0x0087), SUBDEV(0x1301)), + IWL_DEV_INFO(iwl6050_2abg_cfg, iwl6050_2abg_name, + DEVICE(0x0087), SUBDEV(0x1306)), + IWL_DEV_INFO(iwl6050_2agn_cfg, iwl6050_2agn_name, + DEVICE(0x0087), SUBDEV(0x1321)), + IWL_DEV_INFO(iwl6050_2abg_cfg, iwl6050_2abg_name, + DEVICE(0x0087), SUBDEV(0x1326)), + IWL_DEV_INFO(iwl6050_2agn_cfg, iwl6050_2agn_name, + DEVICE(0x0089), SUBDEV(0x1311)), + IWL_DEV_INFO(iwl6050_2abg_cfg, iwl6050_2abg_name, + DEVICE(0x0089), SUBDEV(0x1316)), + +/* 6150 WiFi/WiMax Series */ + IWL_DEV_INFO(iwl6150_bgn_cfg, iwl6150_bgn_name, + DEVICE(0x0885), SUBDEV(0x1305)), + IWL_DEV_INFO(iwl6150_bg_cfg, iwl6150_bg_name, + DEVICE(0x0885), SUBDEV(0x1307)), + IWL_DEV_INFO(iwl6150_bgn_cfg, iwl6150_bgn_name, + DEVICE(0x0885), SUBDEV(0x1325)), + IWL_DEV_INFO(iwl6150_bg_cfg, iwl6150_bg_name, + DEVICE(0x0885), SUBDEV(0x1327)), + IWL_DEV_INFO(iwl6150_bgn_cfg, iwl6150_bgn_name, + DEVICE(0x0886), SUBDEV(0x1315)), + IWL_DEV_INFO(iwl6150_bg_cfg, iwl6150_bg_name, + DEVICE(0x0886), SUBDEV(0x1317)), + +/* 1000 Series WiFi */ + IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, + DEVICE(0x0083), SUBDEV(0x1205)), + IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, + DEVICE(0x0083), SUBDEV(0x1305)), + IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, + DEVICE(0x0083), SUBDEV(0x1225)), + IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, + DEVICE(0x0083), SUBDEV(0x1325)), + IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, + DEVICE(0x0084), SUBDEV(0x1215)), + IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, + DEVICE(0x0084), SUBDEV(0x1315)), + IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, + DEVICE(0x0083), SUBDEV(0x1206)), + IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, + DEVICE(0x0083), SUBDEV(0x1306)), + IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, + DEVICE(0x0083), SUBDEV(0x1226)), + IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, + DEVICE(0x0083), SUBDEV(0x1326)), + IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, + DEVICE(0x0084), SUBDEV(0x1216)), + IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, + DEVICE(0x0084), SUBDEV(0x1316)), + +/* 100 Series WiFi */ + IWL_DEV_INFO(iwl100_bgn_cfg, iwl100_bgn_name, + DEVICE(0x08AE), SUBDEV(0x1005)), + IWL_DEV_INFO(iwl100_bg_cfg, iwl100_bg_name, + DEVICE(0x08AE), SUBDEV(0x1007)), + IWL_DEV_INFO(iwl100_bgn_cfg, iwl100_bgn_name, + DEVICE(0x08AF), SUBDEV(0x1015)), + IWL_DEV_INFO(iwl100_bg_cfg, iwl100_bg_name, + DEVICE(0x08AF), SUBDEV(0x1017)), + IWL_DEV_INFO(iwl100_bgn_cfg, iwl100_bgn_name, + DEVICE(0x08AE), SUBDEV(0x1025)), + IWL_DEV_INFO(iwl100_bg_cfg, iwl100_bg_name, + DEVICE(0x08AE), SUBDEV(0x1027)), + +/* 130 Series WiFi */ + IWL_DEV_INFO(iwl130_bgn_cfg, iwl130_bgn_name, + DEVICE(0x0896), SUBDEV(0x5005)), + IWL_DEV_INFO(iwl130_bg_cfg, iwl130_bg_name, + DEVICE(0x0896), SUBDEV(0x5007)), + IWL_DEV_INFO(iwl130_bgn_cfg, iwl130_bgn_name, + DEVICE(0x0897), SUBDEV(0x5015)), + IWL_DEV_INFO(iwl130_bg_cfg, iwl130_bg_name, + DEVICE(0x0897), SUBDEV(0x5017)), + IWL_DEV_INFO(iwl130_bgn_cfg, iwl130_bgn_name, + DEVICE(0x0896), SUBDEV(0x5025)), + IWL_DEV_INFO(iwl130_bg_cfg, iwl130_bg_name, + DEVICE(0x0896), SUBDEV(0x5027)), + +/* 2x00 Series */ + IWL_DEV_INFO(iwl2000_2bgn_cfg, iwl2000_2bgn_name, + DEVICE(0x0890), SUBDEV(0x4022)), + IWL_DEV_INFO(iwl2000_2bgn_cfg, iwl2000_2bgn_name, + DEVICE(0x0891), SUBDEV(0x4222)), + IWL_DEV_INFO(iwl2000_2bgn_cfg, iwl2000_2bgn_name, + DEVICE(0x0890), SUBDEV(0x4422)), + IWL_DEV_INFO(iwl2000_2bgn_cfg, iwl2000_2bgn_d_name, + DEVICE(0x0890), SUBDEV(0x4822)), + +/* 2x30 Series */ + IWL_DEV_INFO(iwl2030_2bgn_cfg, iwl2030_2bgn_name, + DEVICE(0x0887), SUBDEV(0x4062)), + IWL_DEV_INFO(iwl2030_2bgn_cfg, iwl2030_2bgn_name, + DEVICE(0x0888), SUBDEV(0x4262)), + IWL_DEV_INFO(iwl2030_2bgn_cfg, iwl2030_2bgn_name, + DEVICE(0x0887), SUBDEV(0x4462)), + +/* 6x35 Series */ + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, + DEVICE(0x088E), SUBDEV(0x4060)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_sff_name, + DEVICE(0x088E), SUBDEV(0x406A)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, + DEVICE(0x088F), SUBDEV(0x4260)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_sff_name, + DEVICE(0x088F), SUBDEV(0x426A)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, + DEVICE(0x088E), SUBDEV(0x4460)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_sff_name, + DEVICE(0x088E), SUBDEV(0x446A)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, + DEVICE(0x088E), SUBDEV(0x4860)), + IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, + DEVICE(0x088F), SUBDEV(0x5260)), + +/* 105 Series */ + IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, + DEVICE(0x0894), SUBDEV(0x0022)), + IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, + DEVICE(0x0895), SUBDEV(0x0222)), + IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, + DEVICE(0x0894), SUBDEV(0x0422)), + IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, + DEVICE(0x0894), SUBDEV(0x0822)), + +/* 135 Series */ + IWL_DEV_INFO(iwl135_bgn_cfg, iwl135_bgn_name, + DEVICE(0x0892), SUBDEV(0x0062)), + IWL_DEV_INFO(iwl135_bgn_cfg, iwl135_bgn_name, + DEVICE(0x0893), SUBDEV(0x0262)), + IWL_DEV_INFO(iwl135_bgn_cfg, iwl135_bgn_name, + DEVICE(0x0892), SUBDEV(0x0462)), +#endif /* CONFIG_IWLDVM */ + #if IS_ENABLED(CONFIG_IWLMVM) +/* 7260 Series */ + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4070)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4072)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4170)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4C60)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4C70)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x4060)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x406A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x4160)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0x4062)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0x4162)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0x4270)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0x4272)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x4260)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x426A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B2), SUBDEV(0x4262)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4470)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4472)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x4460)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x446A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0x4462)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4870)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x486E)), + IWL_DEV_INFO(iwl7260_high_temp_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4A70)), + IWL_DEV_INFO(iwl7260_high_temp_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4A6E)), + IWL_DEV_INFO(iwl7260_high_temp_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4A6C)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x4570)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x4560)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0x4370)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x4360)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x5070)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x5072)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x5170)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0x5770)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x4020)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x402A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x4220)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0x4420)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC070)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC072)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC170)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC060)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC06A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC160)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0xC062)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0xC162)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC770)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC760)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0xC270)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xCC70)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xCC60)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0xC272)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0xC260)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B2), SUBDEV(0xC26A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B2), SUBDEV(0xC262)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC470)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC472)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC460)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0xC462)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B1), SUBDEV(0xC570)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC560)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0xC370)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC360)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC020)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC02A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0xC220)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC420)), + +/* 3160 Series */ + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x0070)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x0072)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x0170)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x0172)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2n_name, + DEVICE(0x08B3), SUBDEV(0x0060)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_n_name, + DEVICE(0x08B3), SUBDEV(0x0062)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B4), SUBDEV(0x0270)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B4), SUBDEV(0x0272)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x0470)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x0472)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B4), SUBDEV(0x0370)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x8070)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x8072)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x8170)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x8172)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2n_name, + DEVICE(0x08B3), SUBDEV(0x8060)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_n_name, + DEVICE(0x08B3), SUBDEV(0x8062)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B4), SUBDEV(0x8270)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B4), SUBDEV(0x8370)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B4), SUBDEV(0x8272)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x8470)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x8570)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x1070)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, + DEVICE(0x08B3), SUBDEV(0x1170)), + +/* 3165 Series */ + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x4010)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x4012)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3166), SUBDEV(0x4212)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x4410)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x4510)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x4110)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3166), SUBDEV(0x4310)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3166), SUBDEV(0x4210)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x8010)), + IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, + DEVICE(0x3165), SUBDEV(0x8110)), + +/* 3168 Series */ + IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, + DEVICE(0x24FB), SUBDEV(0x2010)), + IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, + DEVICE(0x24FB), SUBDEV(0x2110)), + IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, + DEVICE(0x24FB), SUBDEV(0x2050)), + IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, + DEVICE(0x24FB), SUBDEV(0x2150)), + IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, + DEVICE(0x24FB), SUBDEV(0x0000)), + +/* 7265 Series */ + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5010)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5110)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5100)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x5310)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, + DEVICE(0x095B), SUBDEV(0x5302)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x5210)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5C10)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5012)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5412)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5410)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5510)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5400)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x1010)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5000)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x500A)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095B), SUBDEV(0x5200)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, + DEVICE(0x095A), SUBDEV(0x5002)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, + DEVICE(0x095A), SUBDEV(0x5102)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, + DEVICE(0x095B), SUBDEV(0x5202)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9010)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9012)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x900A)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9110)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9112)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x9210)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x9200)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9510)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x9310)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9410)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5020)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x502A)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095A), SUBDEV(0x5420)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5090)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5190)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5590)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x5290)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5490)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x5F10)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x5212)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095B), SUBDEV(0x520A)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9000)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9400)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, + DEVICE(0x095A), SUBDEV(0x9E10)), + +/* 8000 Series */ + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0010)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1010)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x10B0)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0130)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1130)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0132)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1132)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0110)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x01F0)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0012)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1012)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1110)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0050)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0250)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1050)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0150)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x1150)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F4), SUBDEV(0x0030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F4), SUBDEV(0x1030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xC010)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xC110)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xD010)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xC050)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xD050)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xD0B0)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0xB0B0)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x8010)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x8110)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x9010)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x9110)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F4), SUBDEV(0x8030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F4), SUBDEV(0x9030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F4), SUBDEV(0xC030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F4), SUBDEV(0xD030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x8130)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x9130)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x8132)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x9132)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x8050)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x8150)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x9050)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x9150)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2n_name, + DEVICE(0x24F3), SUBDEV(0x0004)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2n_name, + DEVICE(0x24F3), SUBDEV(0x0044)), + IWL_DEV_INFO(iwl8260_cfg, iwl4165_2ac_name, + DEVICE(0x24F5), SUBDEV(0x0010)), + IWL_DEV_INFO(iwl8260_cfg, iwl4165_2ac_name, + DEVICE(0x24F6), SUBDEV(0x0030)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0810)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0910)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0850)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0950)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0930)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24F3), SUBDEV(0x0000)), + IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, + DEVICE(0x24F3), SUBDEV(0x4010)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0010)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0110)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x1110)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x1130)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0130)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x1010)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x10D0)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0050)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0150)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x9010)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x8110)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x8050)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x8010)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0810)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x9110)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x8130)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0910)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0930)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0950)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0850)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x1014)), + IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, + DEVICE(0x24FD), SUBDEV(0x3E02)), + IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, + DEVICE(0x24FD), SUBDEV(0x3E01)), + IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, + DEVICE(0x24FD), SUBDEV(0x1012)), + IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0012)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x0014)), + IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, + DEVICE(0x24FD), SUBDEV(0x9074)), /* 9000 */ IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_killer_1550_name, DEVICE(0x2526), SUBDEV(0x1550)), @@ -808,17 +1616,17 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x2725), SUBDEV(0x1673)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675x_name, DEVICE(0x2725), SUBDEV(0x1674)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, DEVICE(0x7A70), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, DEVICE(0x7A70), SUBDEV(0x0098)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0_long, NULL, + IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, NULL, DEVICE(0x7A70), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, DEVICE(0x7A70), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, DEVICE(0x7A70), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0_long, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, DEVICE(0x7A70), SUBDEV(0x0A10)), IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, DEVICE(0x7AF0), SUBDEV(0x0090)), @@ -1402,25 +2210,12 @@ static void iwl_pcie_check_me_status(struct iwl_trans *trans) static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) { const struct iwl_cfg_trans_params *trans; - const struct iwl_cfg *cfg_7265d __maybe_unused = NULL; const struct iwl_dev_info *dev_info; struct iwl_trans *iwl_trans; struct iwl_trans_pcie *trans_pcie; int ret; - const struct iwl_cfg *cfg; - - trans = (void *)(ent->driver_data & ~TRANS_CFG_MARKER); - - /* - * This is needed for backwards compatibility with the old - * tables, so we don't need to change all the config structs - * at the same time. The cfg is used to compare with the old - * full cfg structs. - */ - cfg = (void *)(ent->driver_data & ~TRANS_CFG_MARKER); - /* make sure trans is the first element in iwl_cfg */ - BUILD_BUG_ON(offsetof(struct iwl_cfg, trans)); + trans = (void *)ent->driver_data; iwl_trans = iwl_trans_pcie_alloc(pdev, trans); if (IS_ERR(iwl_trans)) @@ -1494,29 +2289,16 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) * all the parameters that the transport uses must, until that is * changed, be identical to the ones in the 7265D configuration. */ - if (cfg == &iwl7265_2ac_cfg) - cfg_7265d = &iwl7265d_2ac_cfg; - else if (cfg == &iwl7265_2n_cfg) - cfg_7265d = &iwl7265d_2n_cfg; - else if (cfg == &iwl7265_n_cfg) - cfg_7265d = &iwl7265d_n_cfg; - if (cfg_7265d && + if (iwl_trans->cfg == &iwl7265_cfg && (iwl_trans->hw_rev & CSR_HW_REV_TYPE_MSK) == CSR_HW_REV_TYPE_7265D) - iwl_trans->cfg = cfg_7265d; + iwl_trans->cfg = &iwl7265d_cfg; #endif - /* - * If we didn't set the cfg yet, the PCI ID table entry should have - * been a full config - if yes, use it, otherwise fail. - */ if (!iwl_trans->cfg) { - if (ent->driver_data & TRANS_CFG_MARKER) { - pr_err("No config found for 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); - ret = -EINVAL; - goto out_free_trans; - } - iwl_trans->cfg = cfg; + pr_err("No config found for 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); + ret = -EINVAL; + goto out_free_trans; } /* if we don't have a name yet, copy name from the old cfg */ diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index 0da5e255b063..15bf1aba83c0 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -175,11 +175,7 @@ static void devinfo_no_trans_cfg_dups(struct kunit *test) struct iwl_cfg_trans_params *cfg; bool found = false; - if (!(iwl_hw_card_ids[i].driver_data & TRANS_CFG_MARKER)) - continue; - - cfg = (void *)(iwl_hw_card_ids[i].driver_data & - ~TRANS_CFG_MARKER); + cfg = (void *)iwl_hw_card_ids[i].driver_data; for (int j = 0; j < p; j++) { if (cfgs[j] == cfg) { From patchwork Fri May 2 12:56:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887150 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id F3A4B25485D for ; Fri, 2 May 2025 12:56:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190621; cv=none; b=ZD//rZa6ti/x3Urk4es+W06lqQIsTcuFA1kxwppf0mb+VSRLww5HAHQnvMOPAA/Np7ZJIcp355+MQbe36JSMykfx49DQDVWH5VczOPWX2Q/KCMrurvepcZo4YWqPjmgsxYmjvG42+HLHemgFLc3PyMpd/XifQ/T2FWxSjw7yVc0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190621; c=relaxed/simple; bh=rfpxCHc8EqIVhIjW1jLtIFyScK3WroJcGrpM2HwAHZg=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=LZCeAr7WfCQr6PzIPOLIijFeITrG7Bo5Go2tNvi5Ar18PnLCwt4XgMkXkT5J9O4bHR3Cq/l4FGOBwiCCZknEjeS2zRv4au2x6MIRj6lQmhS7Z7Q2FoHIvkR9vk9V4iEoSgAJkOfV1cb9/P/GxAmnmbdtzPRbVa9JnnctVQPTyZI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=T6YAOw29; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="T6YAOw29" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190621; x=1777726621; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=rfpxCHc8EqIVhIjW1jLtIFyScK3WroJcGrpM2HwAHZg=; b=T6YAOw29zgF1NV2c8yINcQpUoIdiwU0VqdgfuAXCiNdlHq8W2XGe/Ph/ muBlOs+lRJAFdpBLSq2rT+eNEz4WxR0nIgYNv8Dzz+zSS1EqArVUyqt9s wdTSZLhma5QNH5B1pCjL/EWM/eAQPpXAsct6YX9BtGIgrNkE1FGv0kYp5 fJKu5REkV2h9+tBitWuw7KIgE8c86cV21dTAJsVLoFMwKM9QcxxU/bku6 SOOAK3Uj8fVvUfV6tfsUkhx7QGZAlJJEN8HqAQIm1ynepFVz0pf5u40fW Vt6i8Chje6XFRDr+83XQlFHKGYoVzmp7MpToWPdJMmfvTvvfN1hY7OyO8 g==; X-CSE-ConnectionGUID: PyrxF++kRGqMuJXhGZlzOQ== X-CSE-MsgGUID: uUDQ1IWVRjW/0E/OIxNjMA== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255552" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255552" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:00 -0700 X-CSE-ConnectionGUID: AU0eiFccQKSwjyWNwDHJVg== X-CSE-MsgGUID: 9lSzhxddTUqL9s6VyI/ZVw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554736" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:56:58 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 09/15] wifi: iwlwifi: cfg: move all names out of configs Date: Fri, 2 May 2025 15:56:25 +0300 Message-Id: <20250502155404.1538369bffde.Id430ff71f57cbb37c19ecc5b41c831e5ba9b0695@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Move all the names into dev info structs and remove the pointer from the configs. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/cfg/8000.c | 1 - .../net/wireless/intel/iwlwifi/cfg/ax210.c | 6 +-- .../net/wireless/intel/iwlwifi/iwl-config.h | 3 +- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 52 +++++++++---------- .../wireless/intel/iwlwifi/tests/devinfo.c | 10 +--- 5 files changed, 29 insertions(+), 43 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/8000.c b/drivers/net/wireless/intel/iwlwifi/cfg/8000.c index 7f6f6a9ea615..9a1623091af7 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/8000.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/8000.c @@ -123,7 +123,6 @@ const struct iwl_cfg iwl8260_cfg = { }; const struct iwl_cfg iwl8265_cfg = { - .name = "Intel(R) Dual Band Wireless AC 8265", .fw_name_pre = IWL8265_FW_PRE, IWL_DEVICE_8265, .ht_params = &iwl8000_ht_params, diff --git a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c index 610dbbaee26f..6f081aaa5c57 100644 --- a/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c +++ b/drivers/net/wireless/intel/iwlwifi/cfg/ax210.c @@ -191,7 +191,6 @@ const char iwl_ax411_killer_1690i_name[] = "Killer(R) Wi-Fi 6E AX1690i 160MHz Wireless Network Adapter (411NGW)"; const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0 = { - .name = "Intel(R) Wireless-AC 9560 160MHz", .fw_name_pre = IWL_SO_A_JF_B_FW_PRE, IWL_DEVICE_AX210, .num_rbds = IWL_NUM_RBDS_NON_HE, @@ -205,15 +204,15 @@ const struct iwl_cfg iwlax210_2ax_cfg_so_jf_b0_80mhz = { }; const struct iwl_cfg iwlax211_2ax_cfg_so_gf_a0 = { - .name = iwl_ax211_name, .fw_name_pre = IWL_SO_A_GF_A_FW_PRE, .uhb_supported = true, IWL_DEVICE_AX210, .num_rbds = IWL_NUM_RBDS_AX210_HE, }; +const char iwl_ax210_name[] = "Intel(R) Wi-Fi 6 AX210 160MHz"; + const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = { - .name = "Intel(R) Wi-Fi 6 AX210 160MHz", .fw_name_pre = IWL_TY_A_GF_A_FW_PRE, .uhb_supported = true, IWL_DEVICE_AX210, @@ -221,7 +220,6 @@ const struct iwl_cfg iwlax210_2ax_cfg_ty_gf_a0 = { }; const struct iwl_cfg iwlax411_2ax_cfg_so_gf4_a0 = { - .name = iwl_ax411_name, .fw_name_pre = IWL_SO_A_GF4_A_FW_PRE, .uhb_supported = true, IWL_DEVICE_AX210, diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index e8fc51fae61d..cded707223fe 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -307,7 +307,6 @@ struct iwl_fw_mon_regs { /** * struct iwl_cfg - * @name: Official name of the device * @fw_name_pre: Firmware filename prefix. The api version and extension * (.ucode) will be added to filename before loading from disk. The * filename is constructed as -.ucode. @@ -358,7 +357,6 @@ struct iwl_fw_mon_regs { */ struct iwl_cfg { /* params specific to an individual device within a device family */ - const char *name; const char *fw_name_pre; /* params likely to change within a device family */ const struct iwl_ht_params *ht_params; @@ -613,6 +611,7 @@ extern const char iwl_ax211_killer_1675s_name[]; extern const char iwl_ax211_killer_1675i_name[]; extern const char iwl_ax411_killer_1690s_name[]; extern const char iwl_ax411_killer_1690i_name[]; +extern const char iwl_ax210_name[]; extern const char iwl_ax211_name[]; extern const char iwl_ax231_name[]; extern const char iwl_ax411_name[]; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 55f07c68339c..0165c06fd7aa 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -1588,57 +1588,57 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x4DF0), SUBDEV(0x6074)), /* So with HR */ - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x2725), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x2020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0024)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0xE020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0xE024)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x4020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x6020)), - IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, NULL, + IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_name, DEVICE(0x2725), SUBDEV(0x6024)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675w_name, DEVICE(0x2725), SUBDEV(0x1673)), IWL_DEV_INFO(iwlax210_2ax_cfg_ty_gf_a0, iwl_ax210_killer_1675x_name, DEVICE(0x2725), SUBDEV(0x1674)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0098)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, NULL, + IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, DEVICE(0x7A70), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7A70), SUBDEV(0x0A10)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0090)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0098)), - IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, NULL, + IWL_DEV_INFO(iwlax411_2ax_cfg_so_gf4_a0, iwl_ax411_name, DEVICE(0x7AF0), SUBDEV(0x00B0)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0310)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0510)), - IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, NULL, + IWL_DEV_INFO(iwlax211_2ax_cfg_so_gf_a0, iwl_ax211_name, DEVICE(0x7AF0), SUBDEV(0x0A10)), /* So with JF */ @@ -2301,10 +2301,6 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) goto out_free_trans; } - /* if we don't have a name yet, copy name from the old cfg */ - if (!iwl_trans->name) - iwl_trans->name = iwl_trans->cfg->name; - IWL_INFO(iwl_trans, "Detected %s\n", iwl_trans->name); if (iwl_trans->trans_cfg->mq_rx_supported) { diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index 15bf1aba83c0..1e339284d2c7 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -54,7 +54,7 @@ static void devinfo_names(struct kunit *test) for (idx = 0; idx < iwl_dev_info_table_size; idx++) { const struct iwl_dev_info *di = &iwl_dev_info_table[idx]; - KUNIT_ASSERT_TRUE(test, di->name || di->cfg->name); + KUNIT_ASSERT_TRUE(test, di->name); } } @@ -88,14 +88,9 @@ static void devinfo_no_cfg_dups(struct kunit *test) for (int i = 0; i < p; i++) { struct iwl_cfg cfg_i = *cfgs[i]; - /* null out the names since we can handle them differently */ - cfg_i.name = NULL; - for (int j = 0; j < i; j++) { struct iwl_cfg cfg_j = *cfgs[j]; - cfg_j.name = NULL; - KUNIT_EXPECT_NE_MSG(test, memcmp(&cfg_i, &cfg_j, sizeof(cfg_i)), 0, "identical configs: %ps and %ps\n", @@ -126,9 +121,8 @@ static void devinfo_check_killer_subdev(struct kunit *test) { for (int i = 0; i < iwl_dev_info_table_size; i++) { const struct iwl_dev_info *di = &iwl_dev_info_table[i]; - const char *name = di->name ?: di->cfg->name; - if (!strstr(name, "Killer")) + if (!strstr(di->name, "Killer")) continue; KUNIT_EXPECT_NE(test, di->subdevice, (u16)IWL_CFG_ANY); From patchwork Fri May 2 12:56:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886928 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AE17B23C516 for ; Fri, 2 May 2025 12:57:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190623; cv=none; b=EPQU00bKmwNQnJLctHJLd0eGsJe50GE1xRGJxRLTqAc+GS/QFItiDujO5VqKkP5Ix7IAOplEU5M7MT4e7CKj6R7wftrXis2ldzG28/e43hCIhThX42osybsgOk6bWS6pAiBfduXEFbtY84fMDbM7rPqUdoDTOj5cn02XnRpiCXA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190623; c=relaxed/simple; bh=UlqACQsmHlkHmePiqPYFYO66BBp2TY5bX6+dyYwGo1w=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aN0SNsvsbdiCOogqoKanW5Y+NeNuZgchHZElzuNEEnZUy9Z5MW7X+IF9MU1hWK8tNcpJlbFQFvr9hjz1EJ8kDvVzwbc1i3aoQ+RTXt6tuW201P1MsnppMwBrkMB699JIop376VP/Zma9lHNmSM6rK07yOHgSVxefj+qiRHTdSUs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=a9Ww/6Xj; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="a9Ww/6Xj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190622; x=1777726622; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=UlqACQsmHlkHmePiqPYFYO66BBp2TY5bX6+dyYwGo1w=; b=a9Ww/6XjdV34w8J8DsHJtURC+qJmmWwmQYeTkc80/1H40yltLVwCxZfb PoRASwZqki5v3z5k5bc9u8WoXb/GWBv426antF0mdWgqjfoIi5JRAhPwL +qMPW0mJWTI/CLCp/BTb07iVSAsCXfWeWz4aMJ79LlhS07q+TF8EBfzMP kHqGmhJDtHbjYJH9t34rjUQs2IhmajoIuyrlVK7PD1TcgD0Aa+kLmTP0e 3IU/yVKEQ8Li+oxqidT7uW+tvwBWzGp3/nACs5Ni+Hzd0rr3x8YQz9hSV 0+otrZotXVWQHOo3VTF01q4WK2VZlxpfGs6R7GqiD5OEFupjiTTRfWc+Y w==; X-CSE-ConnectionGUID: Kr7tZtVBQXaLLG/8xqndSg== X-CSE-MsgGUID: U92zeKlnRLWO04JJ1E7Q4w== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255557" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255557" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:02 -0700 X-CSE-ConnectionGUID: TTl3RAJxT3GoPDDf/leE1A== X-CSE-MsgGUID: xCLUdTuLStWhWWcTP/rUoA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554739" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:00 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 10/15] wifi: iwlwifi: tests: check for duplicate name strings Date: Fri, 2 May 2025 15:56:26 +0300 Message-Id: <20250502155404.9adf2790122e.Ia85152c072c7944f0b80e819cf59a51d6adeb49a@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg We don't need the same name multiple times in the binary, add a check for that. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../wireless/intel/iwlwifi/tests/devinfo.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c index 1e339284d2c7..575327cd3c92 100644 --- a/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c +++ b/drivers/net/wireless/intel/iwlwifi/tests/devinfo.c @@ -99,6 +99,24 @@ static void devinfo_no_cfg_dups(struct kunit *test) } } +static void devinfo_no_name_dups(struct kunit *test) +{ + for (int i = 0; i < iwl_dev_info_table_size; i++) { + for (int j = 0; j < i; j++) { + if (iwl_dev_info_table[i].name == iwl_dev_info_table[j].name) + continue; + + KUNIT_EXPECT_NE_MSG(test, + strcmp(iwl_dev_info_table[i].name, + iwl_dev_info_table[j].name), + 0, + "name dup: %ps/%ps", + iwl_dev_info_table[i].name, + iwl_dev_info_table[j].name); + } + } +} + static void devinfo_check_subdev_match(struct kunit *test) { for (int i = 0; i < iwl_dev_info_table_size; i++) { @@ -198,6 +216,7 @@ static struct kunit_case devinfo_test_cases[] = { KUNIT_CASE(devinfo_table_order), KUNIT_CASE(devinfo_names), KUNIT_CASE(devinfo_no_cfg_dups), + KUNIT_CASE(devinfo_no_name_dups), KUNIT_CASE(devinfo_check_subdev_match), KUNIT_CASE(devinfo_check_killer_subdev), KUNIT_CASE(devinfo_pci_ids), From patchwork Fri May 2 12:56:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887149 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ED26425485D for ; Fri, 2 May 2025 12:57:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190624; cv=none; b=WJB99bO+D8jrDjei06uZ7YyKqpSVyR80+DsKoMrcoh5Zn/zz1y0ypLp+c/aq782b+g18wC6/wduRYhr1YSmxOPDG7RvqsnfQ+OpesdLZ6gQaJjyrjb/WsBdfL5rRLzZ/HIcmUT9O//bGNyq2uD/eFVW+gohi4xMCPxSHTWxqIRU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190624; c=relaxed/simple; bh=KOgS4LMxJb0xCWdMToRHWEW3yalt8h0ud9F2VmCtKIQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=VcbLAtRBIgB8yNy0V0Dr5kN218IU6CZb6F3UX+8nDejeqPWlFpgk2VJxgk7tuMFe/hfc+qp4WwUBPGt6VCiRZ+hbmiVsTdF3pgisaMEOan9Y/fIvWNm48Sc3HKaaIrlrBrFx0FXCAvPrR35xMMFFvzw1PL8wFfYOh9D5Srb95FQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=YmKS9WkG; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="YmKS9WkG" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190624; x=1777726624; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=KOgS4LMxJb0xCWdMToRHWEW3yalt8h0ud9F2VmCtKIQ=; b=YmKS9WkGOpE0cvw7FE/hIqm7wtsJ0qs9VvNFeyHFvBr+Gub9+U1LdnE0 9XgQgf2psdFnKs9KUI8wB2Tiig/e9WpeiCa4Iykf8598YnW5Umdr91XKl 0ee2HP0LXh+wb0eKv6XJREMgS9yf1ViuMqubzBdycd/5ihT3lgo4V7nAX ZsQLTAA24KAZvrg28gPH+jGODOuZVcTsDsAk4REJ/2YoUzfZ1YF+Qv8bT MTycN8UiD24AIsp+ab5NDJoHy8spy6nvEKjTYvFtOxEhUzfURO9MB6mjw 4vICfYSc/28ykrh4uCMhqmgwTFIbSuZNAW0vpXjSowXDzDx4eyYksS9tB A==; X-CSE-ConnectionGUID: mrpj9/j4TC2jsmg0tEwUfg== X-CSE-MsgGUID: B1Y5yinQRfC6iF+WCFKVdQ== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255558" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255558" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:03 -0700 X-CSE-ConnectionGUID: uW6E3ILQTX6/i2DKHRriIg== X-CSE-MsgGUID: bL4TQi8/TDODDbGaGmM4Pw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554748" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:02 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 11/15] wifi: iwlwifi: cfg: reduce mac_type to u8 Date: Fri, 2 May 2025 15:56:27 +0300 Message-Id: <20250502155404.c17d56f4ae0f.I487c8df18aa33c46aa6813bf5aebb5a23da67600@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg In theory, this should be 12 bits, but in practice all the values we use now fit into 8 bits, so change the mac_type to make room in struct iwl_dev_info. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/iwl-config.h | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index cded707223fe..4b43f561bd12 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -459,8 +459,8 @@ struct iwl_cfg { struct iwl_dev_info { u16 device; u16 subdevice; - u16 mac_type; u16 rf_type; + u8 mac_type; u8 bw_limit; u8 mac_step; u8 rf_step; @@ -477,7 +477,7 @@ extern const struct iwl_dev_info iwl_dev_info_table[]; extern const unsigned int iwl_dev_info_table_size; 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 mac_type, u8 mac_step, u16 rf_type, u8 cdb, u8 jacket, u8 rf_id, u8 bw_limit, u8 cores, u8 rf_step); extern const struct pci_device_id iwl_hw_card_ids[]; #endif diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 0165c06fd7aa..449ed4b02a5f 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -2103,7 +2103,7 @@ static int map_crf_id(struct iwl_trans *iwl_trans) VISIBLE_IF_IWLWIFI_KUNIT 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 mac_type, u8 mac_step, u16 rf_type, u8 cdb, u8 jacket, u8 rf_id, u8 bw_limit, u8 cores, u8 rf_step) { int num_devices = ARRAY_SIZE(iwl_dev_info_table); @@ -2123,7 +2123,7 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device, dev_info->subdevice != subsystem_device) continue; - if (dev_info->mac_type != (u16)IWL_CFG_ANY && + if (dev_info->mac_type != (u8)IWL_CFG_ANY && dev_info->mac_type != mac_type) continue; From patchwork Fri May 2 12:56:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887148 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7C54623C516 for ; Fri, 2 May 2025 12:57:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190627; cv=none; b=TL21AgLpstNXaamSXpYb3HWOnX6pRB3Baf27jH1njObAjlRVAP8P7RbLdgKU5RuWXHoNCNDZ0HSkt5or4g9SHLbJOD/SZvkCRsVkNIQVADbwsLng8UN1swwA0TmVeJ2UX4D0XviwuZ3oS/e4ohNHp4ssf3dvPJdtx9JCWLiglPE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190627; c=relaxed/simple; bh=6nyqyOE6tvVxangPrk4TDrJ0nICwrws93hRyEKLxNag=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=qWzpoJmbCYG27I1wDqerQkDhuNUixM5Sgxxfb6Tvey6qnw1os3xRF/gA9zAoGnKaVqLGGK1DA6zMaBKiYtwycICnmmaDGV3EEwAHWkel8FBMf5yYWIb32lngnLzrUP14pOedEuaoAg/HG+2cHiaLuJHNEMb139ftIFV99zuvCZE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=RIGYJP4S; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="RIGYJP4S" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190625; x=1777726625; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=6nyqyOE6tvVxangPrk4TDrJ0nICwrws93hRyEKLxNag=; b=RIGYJP4SMxUnVuALEHYjc5SIjswL3RVJQLi/GUYBGn3+uLO4xbwMowIy MBQfmUjYcDdHtitwvb1gN7smyGkx640/FYn+uUqNKCLyizuWuBZYHhrP3 1Ml7VTzowkA04HjGBcQ+K3aKjMwE/rfYJdqEQUZnDmcRaxScKtUYoR7fB J8ZS76YmMlKNVjbf9OjRr/RYfbbe85b/KRbp7zq9/ETLvCaFY5JUP9PZc naHl9YLpmTrhQtbTpDljrO8PBPL1m+Vtg/dCAgjDFjJVVExi8DlrasYJX 3NlPAcZ6xc+p+wwqgxnVpK9NOT2PVGcmYeLWOY23+TJZm0bUEc7H21bT2 w==; X-CSE-ConnectionGUID: Lj+0kd4pTb65B+SphAsO/g== X-CSE-MsgGUID: zBleyPzSSKq2P+gBVFPf3w== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255563" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255563" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:05 -0700 X-CSE-ConnectionGUID: /9WQiVz3TQunqyKpbBAIZA== X-CSE-MsgGUID: /J1afgFGTQCyfmRo2hkqig== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554752" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:03 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg Subject: [PATCH iwlwifi-next 12/15] wifi: iwlwifi: cfg: remove unnecessary configs Date: Fri, 2 May 2025 15:56:28 +0300 Message-Id: <20250502155404.689f9b335cbe.I66f1344b6ac7aa3665696637c97fa843c2307423@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg Since there are two bytes hole in struct iwl_dev_info, add a subdev_mask to match with. Also, since the PCI IDs list needs to match first, and the dev-info list is matched from the bottom up, remove unnecessary entries. With this, even though there are new entries from previous changes, the overall size is slightly reduced. Signed-off-by: Johannes Berg Signed-off-by: Miri Korenblit --- .../net/wireless/intel/iwlwifi/iwl-config.h | 1 + drivers/net/wireless/intel/iwlwifi/pcie/drv.c | 669 +++--------------- 2 files changed, 111 insertions(+), 559 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-config.h b/drivers/net/wireless/intel/iwlwifi/iwl-config.h index 4b43f561bd12..fe701410a44f 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-config.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-config.h @@ -459,6 +459,7 @@ struct iwl_cfg { struct iwl_dev_info { u16 device; u16 subdevice; + u16 subdevice_mask; u16 rf_type; u8 mac_type; u8 bw_limit; diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c index 449ed4b02a5f..6bb7de8c43fe 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/drv.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/drv.c @@ -554,6 +554,7 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); .name = _name, \ .device = IWL_CFG_ANY, \ .subdevice = IWL_CFG_ANY, \ + .subdevice_mask = ~0, \ .mac_type = IWL_CFG_ANY, \ .mac_step = IWL_CFG_ANY, \ .rf_type = IWL_CFG_ANY, \ @@ -570,6 +571,9 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); #define DEVICE(n) .device = (n) #define SUBDEV(n) .subdevice = (n) +#define SUBDEV_MASKED(v, m) \ + .subdevice = (v), \ + .subdevice_mask = (m) #define MAC_TYPE(n) .mac_type = IWL_CFG_MAC_TYPE_##n #define MAC_STEP(n) .mac_step = SILICON_##n##_STEP #define RF_TYPE(n) .rf_type = IWL_CFG_RF_TYPE_##n @@ -584,132 +588,60 @@ EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_hw_card_ids); VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { #if IS_ENABLED(CONFIG_IWLDVM) IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1201)), /* Mini Card */ + DEVICE(0x4232), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1301)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1204)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1304)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, - DEVICE(0x4232), SUBDEV(0x1205)), /* Mini Card */ + DEVICE(0x4232), SUBDEV_MASKED(0x4, 0xF)), IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, - DEVICE(0x4232), SUBDEV(0x1305)), /* Half Mini Card */ + DEVICE(0x4232), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, - DEVICE(0x4232), SUBDEV(0x1206)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, - DEVICE(0x4232), SUBDEV(0x1306)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1221)), /* Mini Card */ + DEVICE(0x4232), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1321)), /* Half Mini Card */ + DEVICE(0x4237), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1224)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4232), SUBDEV(0x1324)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, - DEVICE(0x4232), SUBDEV(0x1225)), /* Mini Card */ + DEVICE(0x4237), SUBDEV_MASKED(0x4, 0xF)), IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, - DEVICE(0x4232), SUBDEV(0x1325)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, - DEVICE(0x4232), SUBDEV(0x1226)), /* Mini Card */ + DEVICE(0x4237), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, - DEVICE(0x4232), SUBDEV(0x1326)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4237), SUBDEV(0x1211)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4237), SUBDEV(0x1311)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4237), SUBDEV(0x1214)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_agn_name, - DEVICE(0x4237), SUBDEV(0x1314)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, - DEVICE(0x4237), SUBDEV(0x1215)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_n_cfg, iwl5100_bgn_name, - DEVICE(0x4237), SUBDEV(0x1315)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, - DEVICE(0x4237), SUBDEV(0x1216)), /* Mini Card */ - IWL_DEV_INFO(iwl5100_abg_cfg, iwl5100_abg_name, - DEVICE(0x4237), SUBDEV(0x1316)), /* Half Mini Card */ + DEVICE(0x4237), SUBDEV_MASKED(0x6, 0xF)), /* 5300 Series WiFi */ IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1021)), /* Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1121)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1024)), /* Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1124)), /* Half Mini Card */ + DEVICE(0x4235), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1001)), /* Mini Card */ + DEVICE(0x4235), SUBDEV_MASKED(0x4, 0xF)), IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1101)), /* Half Mini Card */ + DEVICE(0x4236), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1004)), /* Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4235), SUBDEV(0x1104)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4236), SUBDEV(0x1011)), /* Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4236), SUBDEV(0x1111)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4236), SUBDEV(0x1014)), /* Mini Card */ - IWL_DEV_INFO(iwl5300_agn_cfg, iwl5300_agn_name, - DEVICE(0x4236), SUBDEV(0x1114)), /* Half Mini Card */ + DEVICE(0x4236), SUBDEV_MASKED(0x4, 0xF)), /* 5350 Series WiFi/WiMax */ IWL_DEV_INFO(iwl5350_agn_cfg, iwl5350_agn_name, - DEVICE(0x423A), SUBDEV(0x1001)), /* Mini Card */ + DEVICE(0x423A)), IWL_DEV_INFO(iwl5350_agn_cfg, iwl5350_agn_name, - DEVICE(0x423A), SUBDEV(0x1021)), /* Mini Card */ - IWL_DEV_INFO(iwl5350_agn_cfg, iwl5350_agn_name, - DEVICE(0x423B), SUBDEV(0x1011)), /* Mini Card */ + DEVICE(0x423B)), /* 5150 Series Wifi/WiMax */ IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, - DEVICE(0x423C), SUBDEV(0x1201)), /* Mini Card */ - IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, - DEVICE(0x423C), SUBDEV(0x1301)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, - DEVICE(0x423C), SUBDEV(0x1206)), /* Mini Card */ + DEVICE(0x423C), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, - DEVICE(0x423C), SUBDEV(0x1306)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, - DEVICE(0x423C), SUBDEV(0x1221)), /* Mini Card */ - IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, - DEVICE(0x423C), SUBDEV(0x1321)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, - DEVICE(0x423C), SUBDEV(0x1326)), /* Half Mini Card */ + DEVICE(0x423C), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, - DEVICE(0x423D), SUBDEV(0x1211)), /* Mini Card */ - IWL_DEV_INFO(iwl5150_agn_cfg, iwl5150_agn_name, - DEVICE(0x423D), SUBDEV(0x1311)), /* Half Mini Card */ - IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, - DEVICE(0x423D), SUBDEV(0x1216)), /* Mini Card */ + DEVICE(0x423D), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl5150_abg_cfg, iwl5150_abg_name, - DEVICE(0x423D), SUBDEV(0x1316)), /* Half Mini Card */ + DEVICE(0x423D), SUBDEV_MASKED(0x6, 0xF)), /* 6x00 Series */ IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, - DEVICE(0x422B), SUBDEV(0x1101)), - IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, - DEVICE(0x422B), SUBDEV(0x1108)), - IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, - DEVICE(0x422B), SUBDEV(0x1121)), + DEVICE(0x422B), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, - DEVICE(0x422B), SUBDEV(0x1128)), + DEVICE(0x422B), SUBDEV_MASKED(0x8, 0xF)), IWL_DEV_INFO(iwl6000i_2agn_cfg, iwl6000i_2agn_name, - DEVICE(0x422C), SUBDEV(0x1301)), + DEVICE(0x422C), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2abg_name, - DEVICE(0x422C), SUBDEV(0x1306)), + DEVICE(0x422C), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2bg_name, - DEVICE(0x422C), SUBDEV(0x1307)), - IWL_DEV_INFO(iwl6000i_2agn_cfg, iwl6000i_2agn_name, - DEVICE(0x422C), SUBDEV(0x1321)), - IWL_DEV_INFO(iwl6000i_non_n_cfg, iwl6000i_2abg_name, - DEVICE(0x422C), SUBDEV(0x1326)), + DEVICE(0x422C), SUBDEV_MASKED(0x7, 0xF)), IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, DEVICE(0x4238), SUBDEV(0x1111)), IWL_DEV_INFO(iwl6000_3agn_cfg, iwl6000_3agn_name, @@ -721,31 +653,23 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* 6x05 Series */ IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, - DEVICE(0x0082), SUBDEV(0x1301)), + DEVICE(0x0082), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2abg_name, - DEVICE(0x0082), SUBDEV(0x1306)), + DEVICE(0x0082), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2bg_name, - DEVICE(0x0082), SUBDEV(0x1307)), + DEVICE(0x0082), SUBDEV_MASKED(0x7, 0xF)), IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, - DEVICE(0x0082), SUBDEV(0x1308)), - IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, - DEVICE(0x0082), SUBDEV(0x1321)), - IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2abg_name, - DEVICE(0x0082), SUBDEV(0x1326)), - IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, - DEVICE(0x0082), SUBDEV(0x1328)), + DEVICE(0x0082), SUBDEV_MASKED(0x8, 0xF)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, - DEVICE(0x0085), SUBDEV(0x1311)), + DEVICE(0x0085), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_name, - DEVICE(0x0085), SUBDEV(0x1318)), + DEVICE(0x0085), SUBDEV_MASKED(0x8, 0xF)), IWL_DEV_INFO(iwl6005_non_n_cfg, iwl6005_2abg_name, - DEVICE(0x0085), SUBDEV(0x1316)), - IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_sff_name, - DEVICE(0x0082), SUBDEV(0xC020)), - IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_sff_name, - DEVICE(0x0085), SUBDEV(0xC220)), + DEVICE(0x0085), SUBDEV_MASKED(0x6, 0xF)), + IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_sff_name, - DEVICE(0x0085), SUBDEV(0xC228)), + DEVICE(0x0082), SUBDEV_MASKED(0xC000, 0xFFFF)), IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_d_name, DEVICE(0x0082), SUBDEV(0x4820)), IWL_DEV_INFO(iwl6005_n_cfg, iwl6005_2agn_mow1_name, @@ -755,13 +679,9 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* 6x30 Series */ IWL_DEV_INFO(iwl6030_n_cfg, iwl1030_bgn_name, - DEVICE(0x008A), SUBDEV(0x5305)), + DEVICE(0x008A), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl6030_non_n_cfg, iwl1030_bg_name, - DEVICE(0x008A), SUBDEV(0x5307)), - IWL_DEV_INFO(iwl6030_n_cfg, iwl1030_bgn_name, - DEVICE(0x008A), SUBDEV(0x5325)), - IWL_DEV_INFO(iwl6030_non_n_cfg, iwl1030_bg_name, - DEVICE(0x008A), SUBDEV(0x5327)), + DEVICE(0x008A), SUBDEV_MASKED(0x7, 0xF)), IWL_DEV_INFO(iwl6030_n_cfg, iwl1030_bgn_name, DEVICE(0x008B), SUBDEV(0x5315)), IWL_DEV_INFO(iwl6030_non_n_cfg, iwl1030_bg_name, @@ -773,29 +693,19 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2abg_name, DEVICE(0x0090), SUBDEV(0x5216)), IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2agn_name, - DEVICE(0x0091), SUBDEV(0x5201)), + DEVICE(0x0091), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2bgn_name, - DEVICE(0x0091), SUBDEV(0x5205)), + DEVICE(0x0091), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2abg_name, - DEVICE(0x0091), SUBDEV(0x5206)), + DEVICE(0x0091), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2bg_name, DEVICE(0x0091), SUBDEV(0x5207)), - IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2agn_name, - DEVICE(0x0091), SUBDEV(0x5221)), - IWL_DEV_INFO(iwl6030_n_cfg, iwl6030_2bgn_name, - DEVICE(0x0091), SUBDEV(0x5225)), - IWL_DEV_INFO(iwl6030_non_n_cfg, iwl6030_2abg_name, - DEVICE(0x0091), SUBDEV(0x5226)), /* 6x50 WiFi/WiMax Series */ IWL_DEV_INFO(iwl6050_2agn_cfg, iwl6050_2agn_name, - DEVICE(0x0087), SUBDEV(0x1301)), + DEVICE(0x0087), SUBDEV_MASKED(0x1, 0xF)), IWL_DEV_INFO(iwl6050_2abg_cfg, iwl6050_2abg_name, - DEVICE(0x0087), SUBDEV(0x1306)), - IWL_DEV_INFO(iwl6050_2agn_cfg, iwl6050_2agn_name, - DEVICE(0x0087), SUBDEV(0x1321)), - IWL_DEV_INFO(iwl6050_2abg_cfg, iwl6050_2abg_name, - DEVICE(0x0087), SUBDEV(0x1326)), + DEVICE(0x0087), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl6050_2agn_cfg, iwl6050_2agn_name, DEVICE(0x0089), SUBDEV(0x1311)), IWL_DEV_INFO(iwl6050_2abg_cfg, iwl6050_2abg_name, @@ -803,13 +713,9 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* 6150 WiFi/WiMax Series */ IWL_DEV_INFO(iwl6150_bgn_cfg, iwl6150_bgn_name, - DEVICE(0x0885), SUBDEV(0x1305)), + DEVICE(0x0885), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl6150_bg_cfg, iwl6150_bg_name, - DEVICE(0x0885), SUBDEV(0x1307)), - IWL_DEV_INFO(iwl6150_bgn_cfg, iwl6150_bgn_name, - DEVICE(0x0885), SUBDEV(0x1325)), - IWL_DEV_INFO(iwl6150_bg_cfg, iwl6150_bg_name, - DEVICE(0x0885), SUBDEV(0x1327)), + DEVICE(0x0885), SUBDEV_MASKED(0x7, 0xF)), IWL_DEV_INFO(iwl6150_bgn_cfg, iwl6150_bgn_name, DEVICE(0x0886), SUBDEV(0x1315)), IWL_DEV_INFO(iwl6150_bg_cfg, iwl6150_bg_name, @@ -817,25 +723,9 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* 1000 Series WiFi */ IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, - DEVICE(0x0083), SUBDEV(0x1205)), - IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, - DEVICE(0x0083), SUBDEV(0x1305)), - IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, - DEVICE(0x0083), SUBDEV(0x1225)), - IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, - DEVICE(0x0083), SUBDEV(0x1325)), - IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, - DEVICE(0x0084), SUBDEV(0x1215)), - IWL_DEV_INFO(iwl1000_bgn_cfg, iwl1000_bgn_name, - DEVICE(0x0084), SUBDEV(0x1315)), + DEVICE(0x0083), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, - DEVICE(0x0083), SUBDEV(0x1206)), - IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, - DEVICE(0x0083), SUBDEV(0x1306)), - IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, - DEVICE(0x0083), SUBDEV(0x1226)), - IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, - DEVICE(0x0083), SUBDEV(0x1326)), + DEVICE(0x0083), SUBDEV_MASKED(0x6, 0xF)), IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, DEVICE(0x0084), SUBDEV(0x1216)), IWL_DEV_INFO(iwl1000_bg_cfg, iwl1000_bg_name, @@ -843,31 +733,23 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* 100 Series WiFi */ IWL_DEV_INFO(iwl100_bgn_cfg, iwl100_bgn_name, - DEVICE(0x08AE), SUBDEV(0x1005)), + DEVICE(0x08AE), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl100_bg_cfg, iwl100_bg_name, - DEVICE(0x08AE), SUBDEV(0x1007)), + DEVICE(0x08AE), SUBDEV_MASKED(0x7, 0xF)), IWL_DEV_INFO(iwl100_bgn_cfg, iwl100_bgn_name, DEVICE(0x08AF), SUBDEV(0x1015)), IWL_DEV_INFO(iwl100_bg_cfg, iwl100_bg_name, DEVICE(0x08AF), SUBDEV(0x1017)), - IWL_DEV_INFO(iwl100_bgn_cfg, iwl100_bgn_name, - DEVICE(0x08AE), SUBDEV(0x1025)), - IWL_DEV_INFO(iwl100_bg_cfg, iwl100_bg_name, - DEVICE(0x08AE), SUBDEV(0x1027)), /* 130 Series WiFi */ IWL_DEV_INFO(iwl130_bgn_cfg, iwl130_bgn_name, - DEVICE(0x0896), SUBDEV(0x5005)), + DEVICE(0x0896), SUBDEV_MASKED(0x5, 0xF)), IWL_DEV_INFO(iwl130_bg_cfg, iwl130_bg_name, - DEVICE(0x0896), SUBDEV(0x5007)), + DEVICE(0x0896), SUBDEV_MASKED(0x7, 0xF)), IWL_DEV_INFO(iwl130_bgn_cfg, iwl130_bgn_name, DEVICE(0x0897), SUBDEV(0x5015)), IWL_DEV_INFO(iwl130_bg_cfg, iwl130_bg_name, DEVICE(0x0897), SUBDEV(0x5017)), - IWL_DEV_INFO(iwl130_bgn_cfg, iwl130_bgn_name, - DEVICE(0x0896), SUBDEV(0x5025)), - IWL_DEV_INFO(iwl130_bg_cfg, iwl130_bg_name, - DEVICE(0x0896), SUBDEV(0x5027)), /* 2x00 Series */ IWL_DEV_INFO(iwl2000_2bgn_cfg, iwl2000_2bgn_name, @@ -881,61 +763,37 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { /* 2x30 Series */ IWL_DEV_INFO(iwl2030_2bgn_cfg, iwl2030_2bgn_name, - DEVICE(0x0887), SUBDEV(0x4062)), + DEVICE(0x0887)), IWL_DEV_INFO(iwl2030_2bgn_cfg, iwl2030_2bgn_name, DEVICE(0x0888), SUBDEV(0x4262)), - IWL_DEV_INFO(iwl2030_2bgn_cfg, iwl2030_2bgn_name, - DEVICE(0x0887), SUBDEV(0x4462)), /* 6x35 Series */ IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, - DEVICE(0x088E), SUBDEV(0x4060)), - IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_sff_name, - DEVICE(0x088E), SUBDEV(0x406A)), - IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, - DEVICE(0x088F), SUBDEV(0x4260)), + DEVICE(0x088E), SUBDEV_MASKED(0x0, 0xF)), IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_sff_name, - DEVICE(0x088F), SUBDEV(0x426A)), + DEVICE(0x088E), SUBDEV_MASKED(0xA, 0xF)), IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, - DEVICE(0x088E), SUBDEV(0x4460)), + DEVICE(0x088F), SUBDEV_MASKED(0x0, 0xF)), IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_sff_name, - DEVICE(0x088E), SUBDEV(0x446A)), - IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, - DEVICE(0x088E), SUBDEV(0x4860)), - IWL_DEV_INFO(iwl6035_2agn_cfg, iwl6035_2agn_name, - DEVICE(0x088F), SUBDEV(0x5260)), + DEVICE(0x088F), SUBDEV_MASKED(0xA, 0xF)), /* 105 Series */ IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, - DEVICE(0x0894), SUBDEV(0x0022)), + DEVICE(0x0894)), IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, DEVICE(0x0895), SUBDEV(0x0222)), - IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, - DEVICE(0x0894), SUBDEV(0x0422)), - IWL_DEV_INFO(iwl105_bgn_cfg, iwl105_bgn_name, - DEVICE(0x0894), SUBDEV(0x0822)), /* 135 Series */ IWL_DEV_INFO(iwl135_bgn_cfg, iwl135_bgn_name, - DEVICE(0x0892), SUBDEV(0x0062)), + DEVICE(0x0892)), IWL_DEV_INFO(iwl135_bgn_cfg, iwl135_bgn_name, DEVICE(0x0893), SUBDEV(0x0262)), - IWL_DEV_INFO(iwl135_bgn_cfg, iwl135_bgn_name, - DEVICE(0x0892), SUBDEV(0x0462)), #endif /* CONFIG_IWLDVM */ #if IS_ENABLED(CONFIG_IWLMVM) /* 7260 Series */ IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4070)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4072)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4170)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4C60)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4C70)), + DEVICE(0x08B1)), // unlisted ones fall through to here IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x4060)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, @@ -946,66 +804,26 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x08B1), SUBDEV(0x4062)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, DEVICE(0x08B1), SUBDEV(0x4162)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B2), SUBDEV(0x4270)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B2), SUBDEV(0x4272)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B2), SUBDEV(0x4260)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B2), SUBDEV(0x426A)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, - DEVICE(0x08B2), SUBDEV(0x4262)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4470)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4472)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x4460)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x446A)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, DEVICE(0x08B1), SUBDEV(0x4462)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4870)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x486E)), IWL_DEV_INFO(iwl7260_high_temp_cfg, iwl7260_2ac_name, DEVICE(0x08B1), SUBDEV(0x4A70)), IWL_DEV_INFO(iwl7260_high_temp_cfg, iwl7260_2ac_name, DEVICE(0x08B1), SUBDEV(0x4A6E)), IWL_DEV_INFO(iwl7260_high_temp_cfg, iwl7260_2ac_name, DEVICE(0x08B1), SUBDEV(0x4A6C)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x4570)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x4560)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B2), SUBDEV(0x4370)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B2), SUBDEV(0x4360)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x5070)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x5072)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x5170)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0x5770)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x4020)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x402A)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B2), SUBDEV(0x4220)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0x4420)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC070)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC072)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC170)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0xC060)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, @@ -1016,16 +834,40 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x08B1), SUBDEV(0xC062)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, DEVICE(0x08B1), SUBDEV(0xC162)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC770)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B1), SUBDEV(0xC760)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC460)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B1), SUBDEV(0xC462)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC560)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC360)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC020)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC02A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B1), SUBDEV(0xC420)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B2), SUBDEV(0xC270)), + DEVICE(0x08B2), SUBDEV(0x4270)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xCC70)), + DEVICE(0x08B2), SUBDEV(0x4272)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x4260)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x426A)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, + DEVICE(0x08B2), SUBDEV(0x4262)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xCC60)), + DEVICE(0x08B2), SUBDEV(0x4370)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x4360)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, + DEVICE(0x08B2), SUBDEV(0x4220)), + IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, + DEVICE(0x08B2), SUBDEV(0xC270)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, DEVICE(0x08B2), SUBDEV(0xC272)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, @@ -1034,352 +876,65 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x08B2), SUBDEV(0xC26A)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, DEVICE(0x08B2), SUBDEV(0xC262)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC470)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC472)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B1), SUBDEV(0xC460)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_n_name, - DEVICE(0x08B1), SUBDEV(0xC462)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, - DEVICE(0x08B1), SUBDEV(0xC570)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B1), SUBDEV(0xC560)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2ac_name, DEVICE(0x08B2), SUBDEV(0xC370)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B1), SUBDEV(0xC360)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B1), SUBDEV(0xC020)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B1), SUBDEV(0xC02A)), IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, DEVICE(0x08B2), SUBDEV(0xC220)), - IWL_DEV_INFO(iwl7260_cfg, iwl7260_2n_name, - DEVICE(0x08B1), SUBDEV(0xC420)), /* 3160 Series */ IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x0070)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x0072)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x0170)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x0172)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2n_name, - DEVICE(0x08B3), SUBDEV(0x0060)), + DEVICE(0x08B3)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_n_name, - DEVICE(0x08B3), SUBDEV(0x0062)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B4), SUBDEV(0x0270)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B4), SUBDEV(0x0272)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x0470)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x0472)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B4), SUBDEV(0x0370)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x8070)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x8072)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x8170)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x8172)), + DEVICE(0x08B3), SUBDEV_MASKED(0x62, 0xFF)), IWL_DEV_INFO(iwl3160_cfg, iwl3160_2n_name, - DEVICE(0x08B3), SUBDEV(0x8060)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_n_name, - DEVICE(0x08B3), SUBDEV(0x8062)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B4), SUBDEV(0x8270)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B4), SUBDEV(0x8370)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B4), SUBDEV(0x8272)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x8470)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x8570)), - IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x1070)), + DEVICE(0x08B3), SUBDEV_MASKED(0x60, 0xFF)), + IWL_DEV_INFO(iwl3160_cfg, iwl3160_2ac_name, - DEVICE(0x08B3), SUBDEV(0x1170)), + DEVICE(0x08B4)), /* 3165 Series */ IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x4010)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x4012)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3166), SUBDEV(0x4212)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x4410)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x4510)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x4110)), + DEVICE(0x3165)), IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3166), SUBDEV(0x4310)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3166), SUBDEV(0x4210)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x8010)), - IWL_DEV_INFO(iwl3165_2ac_cfg, iwl3165_2ac_name, - DEVICE(0x3165), SUBDEV(0x8110)), + DEVICE(0x3166)), /* 3168 Series */ IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, - DEVICE(0x24FB), SUBDEV(0x2010)), - IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, - DEVICE(0x24FB), SUBDEV(0x2110)), - IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, - DEVICE(0x24FB), SUBDEV(0x2050)), - IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, - DEVICE(0x24FB), SUBDEV(0x2150)), - IWL_DEV_INFO(iwl3168_2ac_cfg, iwl3168_2ac_name, - DEVICE(0x24FB), SUBDEV(0x0000)), + DEVICE(0x24FB)), /* 7265 Series */ IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5010)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5110)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5100)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x5310)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, - DEVICE(0x095B), SUBDEV(0x5302)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x5210)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5C10)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5012)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5412)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5410)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5510)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5400)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x1010)), + DEVICE(0x095A)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x5000)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x500A)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, - DEVICE(0x095B), SUBDEV(0x5200)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, DEVICE(0x095A), SUBDEV(0x5002)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, DEVICE(0x095A), SUBDEV(0x5102)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, - DEVICE(0x095B), SUBDEV(0x5202)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9010)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9012)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x900A)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9110)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9112)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x9210)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x9200)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9510)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x9310)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9410)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x5020)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x502A)), IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, DEVICE(0x095A), SUBDEV(0x5420)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5090)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5190)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5590)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x5290)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5490)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x5F10)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x5212)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095B), SUBDEV(0x520A)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9000)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9400)), - IWL_DEV_INFO(iwl7265_cfg, iwl7265_2ac_name, - DEVICE(0x095A), SUBDEV(0x9E10)), + DEVICE(0x095B)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, + DEVICE(0x095B), SUBDEV(0x5302)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_2n_name, + DEVICE(0x095B), SUBDEV(0x5200)), + IWL_DEV_INFO(iwl7265_cfg, iwl7265_n_name, + DEVICE(0x095B), SUBDEV(0x5202)), /* 8000 Series */ IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0010)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1010)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x10B0)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0130)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1130)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0132)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1132)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0110)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x01F0)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0012)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1012)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1110)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0050)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0250)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1050)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0150)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x1150)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F4), SUBDEV(0x0030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F4), SUBDEV(0x1030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xC010)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xC110)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xD010)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xC050)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xD050)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xD0B0)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0xB0B0)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x8010)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x8110)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x9010)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x9110)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F4), SUBDEV(0x8030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F4), SUBDEV(0x9030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F4), SUBDEV(0xC030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F4), SUBDEV(0xD030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x8130)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x9130)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x8132)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x9132)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x8050)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x8150)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x9050)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x9150)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2n_name, - DEVICE(0x24F3), SUBDEV(0x0004)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2n_name, - DEVICE(0x24F3), SUBDEV(0x0044)), - IWL_DEV_INFO(iwl8260_cfg, iwl4165_2ac_name, - DEVICE(0x24F5), SUBDEV(0x0010)), - IWL_DEV_INFO(iwl8260_cfg, iwl4165_2ac_name, - DEVICE(0x24F6), SUBDEV(0x0030)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0810)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0910)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0850)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0950)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0930)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24F3), SUBDEV(0x0000)), - IWL_DEV_INFO(iwl8260_cfg, iwl8260_2ac_name, - DEVICE(0x24F3), SUBDEV(0x4010)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0010)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0110)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x1110)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x1130)), + DEVICE(0x24F3)), IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0130)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x1010)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x10D0)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0050)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0150)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x9010)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x8110)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x8050)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x8010)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0810)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x9110)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x8130)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0910)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0930)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0950)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0850)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x1014)), + DEVICE(0x24FD)), IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, DEVICE(0x24FD), SUBDEV(0x3E02)), IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, @@ -1388,10 +943,6 @@ VISIBLE_IF_IWLWIFI_KUNIT const struct iwl_dev_info iwl_dev_info_table[] = { DEVICE(0x24FD), SUBDEV(0x1012)), IWL_DEV_INFO(iwl8265_cfg, iwl8275_2ac_name, DEVICE(0x24FD), SUBDEV(0x0012)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x0014)), - IWL_DEV_INFO(iwl8265_cfg, iwl8265_2ac_name, - DEVICE(0x24FD), SUBDEV(0x9074)), /* 9000 */ IWL_DEV_INFO(iwl9260_2ac_cfg, iwl9260_killer_1550_name, DEVICE(0x2526), SUBDEV(0x1550)), @@ -2120,7 +1671,7 @@ iwl_pci_find_dev_info(u16 device, u16 subsystem_device, continue; if (dev_info->subdevice != (u16)IWL_CFG_ANY && - dev_info->subdevice != subsystem_device) + dev_info->subdevice != (subsystem_device & dev_info->subdevice_mask)) continue; if (dev_info->mac_type != (u8)IWL_CFG_ANY && From patchwork Fri May 2 12:56:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886926 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7F148255E53 for ; Fri, 2 May 2025 12:57:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190628; cv=none; b=mjiFzLXeCaXqZsK1u1Na4HGWXiWJfhIBTIksqizJiQtozPR65LiWx6KFKKxONF+H65HpxJeqKj2ALXgMOJNE7fcmBN6fb2DB62CxK5vniQN4R2+C1wAKTy7QvKcgh95nb8/pP7OPXK/DtPxlwJmV9SJ0qqm8crDboE/u+89b460= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190628; c=relaxed/simple; bh=OuEWQJY0TVzuRVTr8kjhAYzirPnzeyukCqBa7/jQubk=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=FrNqSxi5mVeTfCu7BjcE3ZuZLcMu2nKDl5+IbpXZHZlQSSEnYpSjsEXm9AwzGTSkeDuXANJealVPIKFZi56lL7Gb6mg9G9IxnvCfk9VMYbz3Ow+QDT6vXGRHOfPhYbu/Z5HuB1O1IVGWRClRhmP1lgbbhC9S+GWzmFdG6secjjg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=hVfzi0Uj; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="hVfzi0Uj" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190627; x=1777726627; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=OuEWQJY0TVzuRVTr8kjhAYzirPnzeyukCqBa7/jQubk=; b=hVfzi0UjjSxNd8cY41tFsvTZQkaD/NMEvc3svUSKL95g2bOaHyCnhmEU XcMc9yKk6RT4cooRqJow5bHqUw486r66TY4a4bsv06IV44+9HUcNYjWLB bONmhrkakU1S66WR6OBbay3z45ptr9Wp/I8zct4sR13Z+7c8e7YQxL/Ey 2waKeJ7NkckXgeWSDpr9UVtl3e5a2L3Qv3JD7ctBrTemftscZ4MaYTz3H wGZu6vXPdhXGd9bKVHRWbqwLafXCl8iMfa5fnp8RP0mYN3+wEH7iatttr al/lu4GyApDDcVkMhwH0Jae8D4BYCZsM4/De98cRrP1zkR7YpimhsNXDW Q==; X-CSE-ConnectionGUID: iFg8P/mgQQi1hCfxkWANiQ== X-CSE-MsgGUID: f/7M3GbqTZ241dnM8i5Ezw== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255566" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255566" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:07 -0700 X-CSE-ConnectionGUID: Ehky+E/rTASXjQvYNJjDNw== X-CSE-MsgGUID: BLU/HN28SbCXEzli1N1Bfg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554762" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:05 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg , Emmanuel Grumbach , Yedidya Ben Shimol Subject: [PATCH iwlwifi-next 13/15] wifi: iwlwifi: pcie: don't call itself indirectly Date: Fri, 2 May 2025 15:56:29 +0300 Message-Id: <20250502155404.52db0b9fba15.I062e766ded86f61ec86104c28b84767f1c29ea78@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg There's no reason for pcie code to call itself indirectly, directly use the pcie functions instead. Signed-off-by: Johannes Berg Reviewed-by: Emmanuel Grumbach Reviewed-by: Yedidya Ben Shimol Signed-off-by: Miri Korenblit --- .../net/wireless/intel/iwlwifi/pcie/trans-gen2.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/trans.c | 4 ++-- drivers/net/wireless/intel/iwlwifi/pcie/tx.c | 13 +++++++------ 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c index abddaffcaaf0..bc19f082a8f5 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans-gen2.c @@ -81,7 +81,7 @@ static void iwl_pcie_gen2_apm_stop(struct iwl_trans *trans, bool op_mode_leave) /* Stop device's DMA activity */ iwl_pcie_apm_stop_master(trans); - iwl_trans_sw_reset(trans, false); + iwl_trans_pcie_sw_reset(trans, false); /* * Clear "initialization complete" bit to move adapter from @@ -200,7 +200,7 @@ static void _iwl_trans_pcie_gen2_stop_device(struct iwl_trans *trans) iwl_pcie_gen2_apm_stop(trans, false); /* re-take ownership to prevent other users from stealing the device */ - iwl_trans_sw_reset(trans, true); + iwl_trans_pcie_sw_reset(trans, true); /* * Upon stop, the IVAR table gets erased, so msi-x won't diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c index 2a6b9f80360d..904922581b42 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c @@ -3552,8 +3552,8 @@ iwl_trans_pcie_dump_monitor(struct iwl_trans *trans, trans->dbg.dest_tlv->base_shift; } - iwl_trans_read_mem(trans, base, fw_mon_data->data, - monitor_len / sizeof(u32)); + iwl_trans_pcie_read_mem(trans, base, fw_mon_data->data, + monitor_len / sizeof(u32)); } else if (trans->dbg.dest_tlv->monitor_mode == MARBH_MODE) { monitor_len = iwl_trans_pci_dump_marbh_monitor(trans, diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c index bb90bcfc6763..7c8cab294321 100644 --- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c +++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c @@ -497,9 +497,9 @@ void iwl_pcie_tx_start(struct iwl_trans *trans, u32 scd_base_addr) scd_base_addr != trans_pcie->scd_base_addr); /* reset context data, TX status and translation data */ - iwl_trans_write_mem(trans, trans_pcie->scd_base_addr + - SCD_CONTEXT_MEM_LOWER_BOUND, - NULL, clear_dwords); + iwl_trans_pcie_write_mem(trans, trans_pcie->scd_base_addr + + SCD_CONTEXT_MEM_LOWER_BOUND, + NULL, clear_dwords); iwl_write_prph(trans, SCD_DRAM_BASE_ADDR, trans_pcie->txqs.scd_bc_tbls.dma >> 10); @@ -1293,8 +1293,9 @@ void iwl_trans_pcie_txq_disable(struct iwl_trans *trans, int txq_id, if (configure_scd) { iwl_scd_txq_set_inactive(trans, txq_id); - iwl_trans_write_mem(trans, stts_addr, (const void *)zero_val, - ARRAY_SIZE(zero_val)); + iwl_trans_pcie_write_mem(trans, stts_addr, + (const void *)zero_val, + ARRAY_SIZE(zero_val)); } iwl_pcie_txq_unmap(trans, txq_id); @@ -2594,7 +2595,7 @@ static int iwl_trans_pcie_send_hcmd_sync(struct iwl_trans *trans, cmd_str); ret = -ETIMEDOUT; - iwl_trans_sync_nmi(trans); + iwl_trans_pcie_sync_nmi(trans); goto cancel; } From patchwork Fri May 2 12:56:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 887147 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 2B2ED255F2B for ; Fri, 2 May 2025 12:57:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190629; cv=none; b=HQp0VA/gk+SN+FGpQujLads8ddwj1pVHE0PyLHXipDgPgBm2+wuZC0XGfjbK/J1JYGxz+otxZD/7e0RP+ZFrvh/R5NFa1M6daxiXZOAp1uOY8LeMsVYVYDq9HCWYMaYYIvv6QReGCMJaEEdg/AomK4vTX4f+5/1ze/Xl75m/HOg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190629; c=relaxed/simple; bh=/1mtdEyCDgIseSLWUpoxMMrTz65UwT+dAy2ZgMyzNfU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=X8rRN4qzhbej6GOB6DRY2Tj7QDAoW9inZLYBVv5l6gvkkXFNkLUJhGPB53G98i2ZG/qlyDaihyDMf0Znih1lI37P2vpcF2KhUIjreTId/W0HsXcv5oDF2c2d/zNPgGOWa5NS7/t3iUY7AGtZGqBPs3Ci5LGopIwnS9XOpCiFGxk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=Zd0fdSs8; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="Zd0fdSs8" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190629; x=1777726629; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=/1mtdEyCDgIseSLWUpoxMMrTz65UwT+dAy2ZgMyzNfU=; b=Zd0fdSs8DAXU1yIrnbzCg4L+4+hXRlwQd3yz0bwxijYBFHzhmZZSFBem RvsP6Wi+jhtX4prxT6ZE5Zv8amoWKsO0Qv42ZEZs+cPnn6OcJMxm0KcSf 0d57TPSvDV2CtUxxA8Kc+ALIk2THAMOjvWBs/aBLRL52IW/lBXpB2FEGF gqofpk4vCSWiTY4RrDnDwHamOIhOJIl5a5M6+iKdOh81+ZgVH6qek/HiC jVwr4EHHjfwQlAaqg8GCSA0cB3j5WujgFG+XzBC87MxVHEMUtwQmZJIOj NIV74TiTZQL121Q+Zzw1vzvP6QConG5z2j/KbCx0HP0MnQ1zQW/IUK1IP g==; X-CSE-ConnectionGUID: 9+vteyXpRsW6Aka8SuuU3Q== X-CSE-MsgGUID: 6gzfqD9lRgmMfNNYCE7oNA== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255569" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255569" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:09 -0700 X-CSE-ConnectionGUID: geIeNJNZQceqTVyuSIb1xw== X-CSE-MsgGUID: MnuWWlFcQnieV43cYKdqDg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554770" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:07 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg , Emmanuel Grumbach Subject: [PATCH iwlwifi-next 14/15] wifi: iwlwifi: mvm: add command order checks to kunit Date: Fri, 2 May 2025 15:56:30 +0300 Message-Id: <20250502155404.581b60b0833f.I624fb3efc3fa0b155a5da69d7efc39207f133331@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg We can test this with kunit instead of having the runtime checks, add a test here to remove the runtime check next. Signed-off-by: Johannes Berg Reviewed-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/mvm/mvm.h | 4 ++ drivers/net/wireless/intel/iwlwifi/mvm/ops.c | 8 +++- .../wireless/intel/iwlwifi/mvm/tests/Makefile | 2 +- .../wireless/intel/iwlwifi/mvm/tests/hcmd.c | 42 +++++++++++++++++++ 4 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 drivers/net/wireless/intel/iwlwifi/mvm/tests/hcmd.c diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h index e3b54a0f5aed..a5275f2cd418 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h +++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h @@ -2129,6 +2129,10 @@ bool iwl_mvm_mld_valid_link_pair(struct ieee80211_vif *vif, const struct iwl_mvm_link_sel_data *b); s8 iwl_mvm_average_dbm_values(const struct iwl_umac_scan_channel_survey_notif *notif); + + +extern const struct iwl_hcmd_arr iwl_mvm_groups[]; +extern const unsigned int iwl_mvm_groups_size; #endif /* AP and IBSS */ diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c index 14932700c6f9..5c7c1d53a28d 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c +++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c @@ -777,7 +777,8 @@ static const struct iwl_hcmd_names iwl_mvm_bt_coex_names[] = { HCMD_NAME(PROFILE_NOTIF), }; -static const struct iwl_hcmd_arr iwl_mvm_groups[] = { +VISIBLE_IF_IWLWIFI_KUNIT +const struct iwl_hcmd_arr iwl_mvm_groups[] = { [LEGACY_GROUP] = HCMD_ARR(iwl_mvm_legacy_names), [LONG_GROUP] = HCMD_ARR(iwl_mvm_legacy_names), [SYSTEM_GROUP] = HCMD_ARR(iwl_mvm_system_names), @@ -793,6 +794,11 @@ static const struct iwl_hcmd_arr iwl_mvm_groups[] = { [DEBUG_GROUP] = HCMD_ARR(iwl_mvm_debug_names), [STATISTICS_GROUP] = HCMD_ARR(iwl_mvm_statistics_names), }; +EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_mvm_groups); +#if IS_ENABLED(CONFIG_IWLWIFI_KUNIT_TESTS) +const unsigned int iwl_mvm_groups_size = ARRAY_SIZE(iwl_mvm_groups); +EXPORT_SYMBOL_IF_IWLWIFI_KUNIT(iwl_mvm_groups_size); +#endif /* this forward declaration can avoid to export the function */ static void iwl_mvm_async_handlers_wk(struct work_struct *wk); diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile b/drivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile index 6bd56a28cffd..895d53f223e9 100644 --- a/drivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tests/Makefile @@ -1,3 +1,3 @@ -iwlmvm-tests-y += module.o links.o scan.o +iwlmvm-tests-y += module.o links.o scan.o hcmd.o obj-$(CONFIG_IWLWIFI_KUNIT_TESTS) += iwlmvm-tests.o diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tests/hcmd.c b/drivers/net/wireless/intel/iwlwifi/mvm/tests/hcmd.c new file mode 100644 index 000000000000..85da621e211d --- /dev/null +++ b/drivers/net/wireless/intel/iwlwifi/mvm/tests/hcmd.c @@ -0,0 +1,42 @@ +// SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause +/* + * KUnit tests for channel helper functions + * + * Copyright (C) 2025 Intel Corporation + */ +#include + +#include +#include "../mvm.h" + +#if LINUX_VERSION_IS_LESS(6,13,0) +MODULE_IMPORT_NS(EXPORTED_FOR_KUNIT_TESTING); +#else +MODULE_IMPORT_NS("EXPORTED_FOR_KUNIT_TESTING"); +#endif + +static void test_hcmd_names_sorted(struct kunit *test) +{ + for (int i = 0; i < iwl_mvm_groups_size; i++) { + const struct iwl_hcmd_arr *arr = &iwl_mvm_groups[i]; + + if (!arr->arr) + continue; + + for (int j = 0; j < arr->size - 1; j++) + KUNIT_EXPECT_LE(test, arr->arr[j].cmd_id, + arr->arr[j + 1].cmd_id); + } +} + +static struct kunit_case hcmd_names_cases[] = { + KUNIT_CASE(test_hcmd_names_sorted), + {}, +}; + +static struct kunit_suite hcmd_names = { + .name = "iwlmvm-hcmd-names", + .test_cases = hcmd_names_cases, +}; + +kunit_test_suite(hcmd_names); From patchwork Fri May 2 12:56:31 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Miri Korenblit X-Patchwork-Id: 886925 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E30A7254B1D for ; Fri, 2 May 2025 12:57:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190631; cv=none; b=SHKAevY6zdKZhN0y1Q6W9Qq17QjHSFr6yvIgoWhnQKeBe3YiE6ipe+Jee00LgGc419sj04HLlfgqoHobwClGzrucl+f6bPjJkwX+k7rk4/jKV2XFzyMLVC14vmcK0eM+mHUzX/diCJPysehu15aLzmp/OFx/kudfwoBi7oDE5cQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1746190631; c=relaxed/simple; bh=C6jT6YLKD/aMJf9IepP5qpoovPtznsvBvk7KJ39ia9I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=iNwaeXGxcbJJbIopNC2H33DwYRb2Zi0gZHqGj005Iv6M2P36PaahjqV71pe5fEe7D3Lvq2DiDMkrJotV6ZzdGye6La4AmXOK4T7k+La8DUzAjDkuc1IVrVViImo6BC3/7GmCanTtWKT/OrAuCyphapiEJcAz3CC3dhwvHN/NX6c= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=MXv1plem; arc=none smtp.client-ip=198.175.65.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="MXv1plem" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1746190631; x=1777726631; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=C6jT6YLKD/aMJf9IepP5qpoovPtznsvBvk7KJ39ia9I=; b=MXv1plemNP9c9pSMhffhxK3Y/YTHHkxFYDw7mmRv6JdcxrrIEBlA6ICA TZIpIeELEUv8LjaMvO3u9HYY8rsJ8Ivhda3mYGvrZUuTSdpCsx8GafVY6 M0sKSHDeSHgieW21OLf2CghCVfQ4H6BnMDZM422QbCXz5/aUlEWeZto89 Ya4N9ExqJMoYRwlQ9S8T8UB6fkrRM34Af1hJRkzzt/+XJBRRTervaf3Ob qL9yTaqz4PPUO0cVNOBEdMZ5CcBJCGIeMC+LF3SOw8fzN5OakebVMv4dZ 6ZFxTmLOO2XDacxUgUbK5fzYsgQxy1BPaICMzJUfrWfflLCL76nlk5Rzs w==; X-CSE-ConnectionGUID: fWEDyhrKRuKx6C7NvU49yw== X-CSE-MsgGUID: Rsd45vRcR9WFloOWlNLnOQ== X-IronPort-AV: E=McAfee;i="6700,10204,11421"; a="59255573" X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="59255573" Received: from orviesa002.jf.intel.com ([10.64.159.142]) by orvoesa104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:10 -0700 X-CSE-ConnectionGUID: pGe3FN3xSU2IlEDqG2OKYA== X-CSE-MsgGUID: MNRlj2egTTy9fHzNFLA3PQ== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.15,256,1739865600"; d="scan'208";a="165554777" Received: from weis0040.iil.intel.com ([10.12.217.108]) by orviesa002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 May 2025 05:57:08 -0700 From: Miri Korenblit To: miriam.rachel.korenblit@intel.com Cc: linux-wireless@vger.kernel.org, Johannes Berg , Emmanuel Grumbach Subject: [PATCH iwlwifi-next 15/15] wifi: iwlwifi: remove iwl_cmd_groups_verify_sorted() Date: Fri, 2 May 2025 15:56:31 +0300 Message-Id: <20250502155404.e3f01789575d.I4380dcbf3e0ecabc2a8a42c84f448b7dd854bf50@changeid> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> References: <20250502125631.3184319-1-miriam.rachel.korenblit@intel.com> Precedence: bulk X-Mailing-List: linux-wireless@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Organization: Intel Israel (74) Limited From: Johannes Berg We now have unit tests for the mvm and mld, and dvm isn't going to change anyway. Remove the runtime checks. Signed-off-by: Johannes Berg Reviewed-by: Emmanuel Grumbach Signed-off-by: Miri Korenblit --- drivers/net/wireless/intel/iwlwifi/iwl-trans.c | 18 ------------------ drivers/net/wireless/intel/iwlwifi/iwl-trans.h | 1 - 2 files changed, 19 deletions(-) diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c index bd5e022906af..5fc6561f4378 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.c +++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.c @@ -424,30 +424,12 @@ const char *iwl_get_cmd_string(struct iwl_trans *trans, u32 id) } IWL_EXPORT_SYMBOL(iwl_get_cmd_string); -int iwl_cmd_groups_verify_sorted(const struct iwl_trans_config *trans) -{ - int i, j; - const struct iwl_hcmd_arr *arr; - - for (i = 0; i < trans->command_groups_size; i++) { - arr = &trans->command_groups[i]; - if (!arr->arr) - continue; - for (j = 0; j < arr->size - 1; j++) - if (arr->arr[j].cmd_id > arr->arr[j + 1].cmd_id) - return -1; - } - return 0; -} -IWL_EXPORT_SYMBOL(iwl_cmd_groups_verify_sorted); - void iwl_trans_configure(struct iwl_trans *trans, const struct iwl_trans_config *trans_cfg) { trans->op_mode = trans_cfg->op_mode; iwl_trans_pcie_configure(trans, trans_cfg); - WARN_ON(iwl_cmd_groups_verify_sorted(trans_cfg)); } IWL_EXPORT_SYMBOL(iwl_trans_configure); diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h index c02c9af2e302..7dae61fb8f15 100644 --- a/drivers/net/wireless/intel/iwlwifi/iwl-trans.h +++ b/drivers/net/wireless/intel/iwlwifi/iwl-trans.h @@ -985,7 +985,6 @@ struct iwl_trans { }; const char *iwl_get_cmd_string(struct iwl_trans *trans, u32 id); -int iwl_cmd_groups_verify_sorted(const struct iwl_trans_config *trans); void iwl_trans_configure(struct iwl_trans *trans, const struct iwl_trans_config *trans_cfg);