Lines Matching +full:kunit +full:- +full:base

1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
3 * KUnit tests for the iwlwifi device info table
5 * Copyright (C) 2023-2025 Intel Corporation
7 #include <kunit/test.h>
9 #include "iwl-drv.h"
10 #include "iwl-config.h"
16 u16 subdevice_mask = GENMASK(di->subdevice_m_h, di->subdevice_m_l); in iwl_pci_print_dev_info()
20 if (di->match_rf_type) in iwl_pci_print_dev_info()
21 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
22 " rf_type=%03x", di->rf_type); in iwl_pci_print_dev_info()
24 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
27 if (di->match_bw_limit) in iwl_pci_print_dev_info()
28 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
29 " bw_limit=%d", di->bw_limit); in iwl_pci_print_dev_info()
31 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
34 if (di->match_rf_id) in iwl_pci_print_dev_info()
35 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
36 " rf_id=0x%x", di->rf_id); in iwl_pci_print_dev_info()
38 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
41 if (di->match_cdb) in iwl_pci_print_dev_info()
42 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
43 " cdb=%d", di->cdb); in iwl_pci_print_dev_info()
45 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
48 if (di->match_discrete) in iwl_pci_print_dev_info()
49 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
51 di->discrete); in iwl_pci_print_dev_info()
53 pos += scnprintf(buf + pos, sizeof(buf) - pos, in iwl_pci_print_dev_info()
57 pfx, di->device, di->subdevice, subdevice_mask, buf); in iwl_pci_print_dev_info()
60 static void devinfo_table_order(struct kunit *test) in devinfo_table_order()
68 ret = iwl_pci_find_dev_info(di->device, di->subdevice, in devinfo_table_order()
69 di->rf_type, di->cdb, in devinfo_table_order()
70 di->rf_id, di->bw_limit, in devinfo_table_order()
71 di->discrete); in devinfo_table_order()
81 idx, (int)(ret - iwl_dev_info_table)); in devinfo_table_order()
86 static void devinfo_discrete_match(struct kunit *test) in devinfo_discrete_match()
97 if (!di->match_discrete) in devinfo_discrete_match()
100 ret = iwl_pci_find_dev_info(di->device, di->subdevice, in devinfo_discrete_match()
101 di->rf_type, di->cdb, in devinfo_discrete_match()
102 di->rf_id, di->bw_limit, in devinfo_discrete_match()
103 !di->discrete); in devinfo_discrete_match()
106 KUNIT_EXPECT_PTR_EQ(test, di->cfg, ret->cfg); in devinfo_discrete_match()
108 KUNIT_EXPECT_NE(test, strcmp(di->name, ret->name), 0); in devinfo_discrete_match()
112 static void devinfo_names(struct kunit *test) in devinfo_names()
119 KUNIT_ASSERT_TRUE(test, di->name); in devinfo_names()
123 static void devinfo_no_cfg_dups(struct kunit *test) in devinfo_no_cfg_dups()
142 static void devinfo_no_name_dups(struct kunit *test) in devinfo_no_name_dups()
160 static void devinfo_check_subdev_match(struct kunit *test) in devinfo_check_subdev_match()
164 u16 subdevice_mask = GENMASK(di->subdevice_m_h, in devinfo_check_subdev_match()
165 di->subdevice_m_l); in devinfo_check_subdev_match()
168 if (di->match_bw_limit == 1 && di->bw_limit == 1) in devinfo_check_subdev_match()
169 KUNIT_EXPECT_NE(test, di->cfg->bw_limit, 0); in devinfo_check_subdev_match()
172 if (di->subdevice == (u16)IWL_CFG_ANY) in devinfo_check_subdev_match()
181 KUNIT_EXPECT_EQ(test, (int)di->match_rf_id, 0); in devinfo_check_subdev_match()
182 KUNIT_EXPECT_EQ(test, (int)di->match_bw_limit, 0); in devinfo_check_subdev_match()
186 static void devinfo_check_killer_subdev(struct kunit *test) in devinfo_check_killer_subdev()
191 if (!strstr(di->name, "Killer")) in devinfo_check_killer_subdev()
194 KUNIT_EXPECT_NE(test, di->subdevice, (u16)IWL_CFG_ANY); in devinfo_check_killer_subdev()
198 static void devinfo_pci_ids(struct kunit *test) in devinfo_pci_ids()
209 dev->vendor = s->vendor; in devinfo_pci_ids()
210 dev->device = s->device; in devinfo_pci_ids()
211 dev->subsystem_vendor = s->subvendor; in devinfo_pci_ids()
212 dev->subsystem_device = s->subdevice; in devinfo_pci_ids()
213 dev->class = s->class; in devinfo_pci_ids()
220 static void devinfo_no_mac_cfg_dups(struct kunit *test) in devinfo_no_mac_cfg_dups()
241 static void devinfo_api_range(struct kunit *test) in devinfo_api_range()
247 const struct iwl_family_base_params *base = mac_cfg->base; in devinfo_api_range() local
249 KUNIT_EXPECT_EQ_MSG(test, !!base->ucode_api_min, in devinfo_api_range()
250 !!base->ucode_api_max, in devinfo_api_range()
252 base, base->ucode_api_min, in devinfo_api_range()
253 base->ucode_api_max); in devinfo_api_range()
260 KUNIT_EXPECT_EQ_MSG(test, !!rf_cfg->ucode_api_min, in devinfo_api_range()
261 !!rf_cfg->ucode_api_max, in devinfo_api_range()
263 rf_cfg, rf_cfg->ucode_api_min, in devinfo_api_range()
264 rf_cfg->ucode_api_max); in devinfo_api_range()
283 .name = "iwlwifi-devinfo",