* drivers/net/wireless/ath/ath12k/mac.c:10928 ath12k_mac_hw_register() error: uninitialized symbol 'cap'.
@ 2025-12-24 8:57 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2025-12-24 8:57 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Rameshkumar Sundaram <quic_ramess@quicinc.com>
CC: Jeff Johnson <jeff.johnson@oss.qualcomm.com>
CC: Kalle Valo <quic_kvalo@quicinc.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: b927546677c876e26eba308550207c2ddf812a43
commit: d33bc467e8325be66b7209250e9829d199034ffe wifi: ath12k: advertise MLO support and capabilities
date: 1 year ago
:::::: branch date: 2 days ago
:::::: commit date: 1 year ago
config: alpha-randconfig-r072-20251224 (https://download.01.org/0day-ci/archive/20251224/202512241612.7JsJYcUl-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 15.1.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202512241612.7JsJYcUl-lkp@intel.com/
New smatch warnings:
drivers/net/wireless/ath/ath12k/mac.c:10928 ath12k_mac_hw_register() error: uninitialized symbol 'cap'.
Old smatch warnings:
drivers/net/wireless/ath/ath12k/mac.c:1491 ath12k_mac_set_arvif_ies() warn: potential spectre issue 'nontx->data' [r] (local cap)
drivers/net/wireless/ath/ath12k/mac.c:1479 ath12k_mac_set_arvif_ies() warn: potential spectre issue 'elem->data' [r] (local cap)
drivers/net/wireless/ath/ath12k/mac.c:5995 ath12k_conf_tx_uapsd() error: uninitialized symbol 'value'.
drivers/net/wireless/ath/ath12k/mac.c:5997 ath12k_conf_tx_uapsd() error: uninitialized symbol 'value'.
drivers/net/wireless/ath/ath12k/mac.c:11343 ath12k_mac_destroy() error: we previously assumed 'ab' could be null (see line 11332)
drivers/net/wireless/ath/ath12k/mac.c:11409 ath12k_mac_allocate() error: uninitialized symbol 'ab'.
drivers/net/wireless/ath/ath12k/mac.c:11415 ath12k_mac_allocate() error: uninitialized symbol 'ab'.
vim +/cap +10928 drivers/net/wireless/ath/ath12k/mac.c
d889913205cf7e Kalle Valo 2022-11-28 10776
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10777 static int ath12k_mac_hw_register(struct ath12k_hw *ah)
d889913205cf7e Kalle Valo 2022-11-28 10778 {
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10779 struct ieee80211_hw *hw = ah->hw;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10780 struct wiphy *wiphy = hw->wiphy;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10781 struct ath12k *ar = ath12k_ah_to_ar(ah, 0);
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10782 struct ath12k_base *ab = ar->ab;
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10783 struct ath12k_pdev *pdev;
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10784 struct ath12k_pdev_cap *cap;
d889913205cf7e Kalle Valo 2022-11-28 10785 static const u32 cipher_suites[] = {
d889913205cf7e Kalle Valo 2022-11-28 10786 WLAN_CIPHER_SUITE_TKIP,
d889913205cf7e Kalle Valo 2022-11-28 10787 WLAN_CIPHER_SUITE_CCMP,
d889913205cf7e Kalle Valo 2022-11-28 10788 WLAN_CIPHER_SUITE_AES_CMAC,
d889913205cf7e Kalle Valo 2022-11-28 10789 WLAN_CIPHER_SUITE_BIP_CMAC_256,
d889913205cf7e Kalle Valo 2022-11-28 10790 WLAN_CIPHER_SUITE_BIP_GMAC_128,
d889913205cf7e Kalle Valo 2022-11-28 10791 WLAN_CIPHER_SUITE_BIP_GMAC_256,
d889913205cf7e Kalle Valo 2022-11-28 10792 WLAN_CIPHER_SUITE_GCMP,
d889913205cf7e Kalle Valo 2022-11-28 10793 WLAN_CIPHER_SUITE_GCMP_256,
d889913205cf7e Kalle Valo 2022-11-28 10794 WLAN_CIPHER_SUITE_CCMP_256,
d889913205cf7e Kalle Valo 2022-11-28 10795 };
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10796 int ret, i, j;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10797 u32 ht_cap = U32_MAX, antennas_rx = 0, antennas_tx = 0;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10798 bool is_6ghz = false, is_raw_mode = false, is_monitor_disable = false;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10799 u8 *mac_addr = NULL;
253ec89c9013b0 Karthikeyan Periyasamy 2024-06-13 10800 u8 mbssid_max_interfaces = 0;
d889913205cf7e Kalle Valo 2022-11-28 10801
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10802 wiphy->max_ap_assoc_sta = 0;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10803
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10804 for_each_ar(ah, ar, i) {
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10805 u32 ht_cap_info = 0;
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10806
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10807 pdev = ar->pdev;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10808 if (ar->ab->pdevs_macaddr_valid) {
d786c9f5fe3472 Karthikeyan Periyasamy 2024-01-14 10809 ether_addr_copy(ar->mac_addr, pdev->mac_addr);
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10810 } else {
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10811 ether_addr_copy(ar->mac_addr, ar->ab->mac_addr);
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10812 ar->mac_addr[4] += ar->pdev_idx;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10813 }
d889913205cf7e Kalle Valo 2022-11-28 10814
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10815 ret = ath12k_mac_setup_register(ar, &ht_cap_info, hw->wiphy->bands);
d889913205cf7e Kalle Valo 2022-11-28 10816 if (ret)
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10817 goto err_cleanup_unregister;
d889913205cf7e Kalle Valo 2022-11-28 10818
72c24b1b779d78 Aditya Kumar Singh 2024-12-09 10819 /* 6 GHz does not support HT Cap, hence do not consider it */
72c24b1b779d78 Aditya Kumar Singh 2024-12-09 10820 if (!ar->supports_6ghz)
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10821 ht_cap &= ht_cap_info;
72c24b1b779d78 Aditya Kumar Singh 2024-12-09 10822
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10823 wiphy->max_ap_assoc_sta += ar->max_num_stations;
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10824
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10825 /* Advertise the max antenna support of all radios, driver can handle
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10826 * per pdev specific antenna setting based on pdev cap when antenna
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10827 * changes are made
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10828 */
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10829 cap = &pdev->cap;
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10830
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10831 antennas_rx = max_t(u32, antennas_rx, cap->rx_chain_mask);
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10832 antennas_tx = max_t(u32, antennas_tx, cap->tx_chain_mask);
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10833
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10834 if (ar->supports_6ghz)
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10835 is_6ghz = true;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10836
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10837 if (test_bit(ATH12K_FLAG_RAW_MODE, &ar->ab->dev_flags))
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10838 is_raw_mode = true;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10839
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10840 if (!ar->ab->hw_params->supports_monitor)
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10841 is_monitor_disable = true;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10842
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10843 if (i == 0)
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10844 mac_addr = ar->mac_addr;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10845 else
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10846 mac_addr = ab->mac_addr;
253ec89c9013b0 Karthikeyan Periyasamy 2024-06-13 10847
253ec89c9013b0 Karthikeyan Periyasamy 2024-06-13 10848 mbssid_max_interfaces += TARGET_NUM_VDEVS;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10849 }
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10850
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10851 wiphy->available_antennas_rx = antennas_rx;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10852 wiphy->available_antennas_tx = antennas_tx;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10853
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10854 SET_IEEE80211_PERM_ADDR(hw, mac_addr);
d786c9f5fe3472 Karthikeyan Periyasamy 2024-01-14 10855 SET_IEEE80211_DEV(hw, ab->dev);
d889913205cf7e Kalle Valo 2022-11-28 10856
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10857 ret = ath12k_mac_setup_iface_combinations(ah);
d889913205cf7e Kalle Valo 2022-11-28 10858 if (ret) {
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10859 ath12k_err(ab, "failed to setup interface combinations: %d\n", ret);
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10860 goto err_complete_cleanup_unregister;
d889913205cf7e Kalle Valo 2022-11-28 10861 }
d889913205cf7e Kalle Valo 2022-11-28 10862
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10863 wiphy->interface_modes = ath12k_mac_get_ifmodes(ah);
d889913205cf7e Kalle Valo 2022-11-28 10864
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10865 if (ah->num_radio == 1 &&
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10866 wiphy->bands[NL80211_BAND_2GHZ] &&
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10867 wiphy->bands[NL80211_BAND_5GHZ] &&
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10868 wiphy->bands[NL80211_BAND_6GHZ])
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10869 ieee80211_hw_set(hw, SINGLE_SCAN_ON_ALL_BANDS);
a1e09eb35476d6 Wen Gong 2023-09-13 10870
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10871 ieee80211_hw_set(hw, SIGNAL_DBM);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10872 ieee80211_hw_set(hw, SUPPORTS_PS);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10873 ieee80211_hw_set(hw, SUPPORTS_DYNAMIC_PS);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10874 ieee80211_hw_set(hw, MFP_CAPABLE);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10875 ieee80211_hw_set(hw, REPORTS_TX_ACK_STATUS);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10876 ieee80211_hw_set(hw, HAS_RATE_CONTROL);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10877 ieee80211_hw_set(hw, AP_LINK_PS);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10878 ieee80211_hw_set(hw, SPECTRUM_MGMT);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10879 ieee80211_hw_set(hw, CONNECTION_MONITOR);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10880 ieee80211_hw_set(hw, SUPPORTS_PER_STA_GTK);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10881 ieee80211_hw_set(hw, CHANCTX_STA_CSA);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10882 ieee80211_hw_set(hw, QUEUE_CONTROL);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10883 ieee80211_hw_set(hw, SUPPORTS_TX_FRAG);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10884 ieee80211_hw_set(hw, REPORTS_LOW_ACK);
d889913205cf7e Kalle Valo 2022-11-28 10885
72c24b1b779d78 Aditya Kumar Singh 2024-12-09 10886 if ((ht_cap & WMI_HT_CAP_ENABLED) || is_6ghz) {
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10887 ieee80211_hw_set(hw, AMPDU_AGGREGATION);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10888 ieee80211_hw_set(hw, TX_AMPDU_SETUP_IN_HW);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10889 ieee80211_hw_set(hw, SUPPORTS_REORDERING_BUFFER);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10890 ieee80211_hw_set(hw, SUPPORTS_AMSDU_IN_AMPDU);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10891 ieee80211_hw_set(hw, USES_RSS);
d889913205cf7e Kalle Valo 2022-11-28 10892 }
d889913205cf7e Kalle Valo 2022-11-28 10893
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10894 wiphy->features |= NL80211_FEATURE_STATIC_SMPS;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10895 wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
d889913205cf7e Kalle Valo 2022-11-28 10896
d889913205cf7e Kalle Valo 2022-11-28 10897 /* TODO: Check if HT capability advertised from firmware is different
d889913205cf7e Kalle Valo 2022-11-28 10898 * for each band for a dual band capable radio. It will be tricky to
d889913205cf7e Kalle Valo 2022-11-28 10899 * handle it when the ht capability different for each band.
d889913205cf7e Kalle Valo 2022-11-28 10900 */
97b7cbb7a3cbee Pradeep Kumar Chitrapu 2024-05-08 10901 if (ht_cap & WMI_HT_CAP_DYNAMIC_SMPS ||
72c24b1b779d78 Aditya Kumar Singh 2024-12-09 10902 (is_6ghz && ab->hw_params->supports_dynamic_smps_6ghz))
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10903 wiphy->features |= NL80211_FEATURE_DYNAMIC_SMPS;
d889913205cf7e Kalle Valo 2022-11-28 10904
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10905 wiphy->max_scan_ssids = WLAN_SCAN_PARAMS_MAX_SSID;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10906 wiphy->max_scan_ie_len = WLAN_SCAN_PARAMS_MAX_IE_LEN;
d889913205cf7e Kalle Valo 2022-11-28 10907
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10908 hw->max_listen_interval = ATH12K_MAX_HW_LISTEN_INTERVAL;
d889913205cf7e Kalle Valo 2022-11-28 10909
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10910 wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10911 wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10912 wiphy->max_remain_on_channel_duration = 5000;
d889913205cf7e Kalle Valo 2022-11-28 10913
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10914 wiphy->flags |= WIPHY_FLAG_AP_UAPSD;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10915 wiphy->features |= NL80211_FEATURE_AP_MODE_CHAN_WIDTH_CHANGE |
d889913205cf7e Kalle Valo 2022-11-28 10916 NL80211_FEATURE_AP_SCAN;
d889913205cf7e Kalle Valo 2022-11-28 10917
03a509740b5d29 Kalle Valo 2024-04-11 10918 /* MLO is not yet supported so disable Wireless Extensions for now
03a509740b5d29 Kalle Valo 2024-04-11 10919 * to make sure ath12k users don't use it. This flag can be removed
03a509740b5d29 Kalle Valo 2024-04-11 10920 * once WIPHY_FLAG_SUPPORTS_MLO is enabled.
03a509740b5d29 Kalle Valo 2024-04-11 10921 */
03a509740b5d29 Kalle Valo 2024-04-11 10922 wiphy->flags |= WIPHY_FLAG_DISABLE_WEXT;
03a509740b5d29 Kalle Valo 2024-04-11 10923
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10924 /* Copy over MLO related capabilities received from
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10925 * WMI_SERVICE_READY_EXT2_EVENT if single_chip_mlo_supp is set.
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10926 */
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10927 if (ab->ag->mlo_capable) {
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 @10928 ath12k_iftypes_ext_capa[2].eml_capabilities = cap->eml_cap;
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10929 ath12k_iftypes_ext_capa[2].mld_capa_and_ops = cap->mld_cap;
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10930 wiphy->flags |= WIPHY_FLAG_SUPPORTS_MLO;
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10931 }
d33bc467e8325b Rameshkumar Sundaram 2024-12-11 10932
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10933 hw->queues = ATH12K_HW_MAX_QUEUES;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10934 wiphy->tx_queue_len = ATH12K_QUEUE_LEN;
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10935 hw->offchannel_tx_hw_queue = ATH12K_HW_MAX_QUEUES - 1;
b0970f50839ecb Baochen Qiang 2024-01-17 10936 hw->max_rx_aggregation_subframes = IEEE80211_MAX_AMPDU_BUF_EHT;
d889913205cf7e Kalle Valo 2022-11-28 10937
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10938 hw->vif_data_size = sizeof(struct ath12k_vif);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10939 hw->sta_data_size = sizeof(struct ath12k_sta);
38055789d15155 Baochen Qiang 2024-08-01 10940 hw->extra_tx_headroom = ab->hw_params->iova_mask;
d889913205cf7e Kalle Valo 2022-11-28 10941
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10942 wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST);
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10943 wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_STA_TX_PWR);
d889913205cf7e Kalle Valo 2022-11-28 10944
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10945 wiphy->cipher_suites = cipher_suites;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10946 wiphy->n_cipher_suites = ARRAY_SIZE(cipher_suites);
d889913205cf7e Kalle Valo 2022-11-28 10947
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10948 wiphy->iftype_ext_capab = ath12k_iftypes_ext_capa;
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10949 wiphy->num_iftype_ext_capab = ARRAY_SIZE(ath12k_iftypes_ext_capa);
d889913205cf7e Kalle Valo 2022-11-28 10950
253ec89c9013b0 Karthikeyan Periyasamy 2024-06-13 10951 wiphy->mbssid_max_interfaces = mbssid_max_interfaces;
519a545cfee790 Aloka Dixit 2024-05-08 10952 wiphy->ema_max_profile_periodicity = TARGET_EMA_MAX_PROFILE_PERIOD;
519a545cfee790 Aloka Dixit 2024-05-08 10953
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10954 if (is_6ghz) {
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10955 wiphy_ext_feature_set(wiphy,
d889913205cf7e Kalle Valo 2022-11-28 10956 NL80211_EXT_FEATURE_FILS_DISCOVERY);
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10957 wiphy_ext_feature_set(wiphy,
d889913205cf7e Kalle Valo 2022-11-28 10958 NL80211_EXT_FEATURE_UNSOL_BCAST_PROBE_RESP);
d889913205cf7e Kalle Valo 2022-11-28 10959 }
d889913205cf7e Kalle Valo 2022-11-28 10960
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 10961 wiphy_ext_feature_set(wiphy, NL80211_EXT_FEATURE_PUNCT);
07c01b86f21dd4 Aloka Dixit 2023-08-02 10962
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10963 ath12k_reg_init(hw);
d889913205cf7e Kalle Valo 2022-11-28 10964
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10965 if (!is_raw_mode) {
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10966 hw->netdev_features = NETIF_F_HW_CSUM;
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10967 ieee80211_hw_set(hw, SW_CRYPTO_CONTROL);
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10968 ieee80211_hw_set(hw, SUPPORT_FAST_XMIT);
d889913205cf7e Kalle Valo 2022-11-28 10969 }
d889913205cf7e Kalle Valo 2022-11-28 10970
16f474d6d49db5 Baochen Qiang 2024-06-04 10971 if (test_bit(WMI_TLV_SERVICE_NLO, ar->wmi->wmi_ab->svc_map)) {
16f474d6d49db5 Baochen Qiang 2024-06-04 10972 wiphy->max_sched_scan_ssids = WMI_PNO_MAX_SUPP_NETWORKS;
16f474d6d49db5 Baochen Qiang 2024-06-04 10973 wiphy->max_match_sets = WMI_PNO_MAX_SUPP_NETWORKS;
16f474d6d49db5 Baochen Qiang 2024-06-04 10974 wiphy->max_sched_scan_ie_len = WMI_PNO_MAX_IE_LENGTH;
16f474d6d49db5 Baochen Qiang 2024-06-04 10975 wiphy->max_sched_scan_plans = WMI_PNO_MAX_SCHED_SCAN_PLANS;
16f474d6d49db5 Baochen Qiang 2024-06-04 10976 wiphy->max_sched_scan_plan_interval =
16f474d6d49db5 Baochen Qiang 2024-06-04 10977 WMI_PNO_MAX_SCHED_SCAN_PLAN_INT;
16f474d6d49db5 Baochen Qiang 2024-06-04 10978 wiphy->max_sched_scan_plan_iterations =
16f474d6d49db5 Baochen Qiang 2024-06-04 10979 WMI_PNO_MAX_SCHED_SCAN_PLAN_ITRNS;
16f474d6d49db5 Baochen Qiang 2024-06-04 10980 wiphy->features |= NL80211_FEATURE_ND_RANDOM_MAC_ADDR;
16f474d6d49db5 Baochen Qiang 2024-06-04 10981 }
16f474d6d49db5 Baochen Qiang 2024-06-04 10982
4a3c212eee0e36 Baochen Qiang 2024-06-19 10983 ret = ath12k_wow_init(ar);
4a3c212eee0e36 Baochen Qiang 2024-06-19 10984 if (ret) {
4a3c212eee0e36 Baochen Qiang 2024-06-19 10985 ath12k_warn(ar->ab, "failed to init wow: %d\n", ret);
8fea0066b4b481 Karthikeyan Periyasamy 2024-12-09 10986 goto err_cleanup_if_combs;
4a3c212eee0e36 Baochen Qiang 2024-06-19 10987 }
4a3c212eee0e36 Baochen Qiang 2024-06-19 10988
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 10989 ret = ieee80211_register_hw(hw);
d889913205cf7e Kalle Valo 2022-11-28 10990 if (ret) {
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 10991 ath12k_err(ab, "ieee80211 registration failed: %d\n", ret);
8fea0066b4b481 Karthikeyan Periyasamy 2024-12-09 10992 goto err_cleanup_if_combs;
d889913205cf7e Kalle Valo 2022-11-28 10993 }
d889913205cf7e Kalle Valo 2022-11-28 10994
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 10995 if (is_monitor_disable)
d889913205cf7e Kalle Valo 2022-11-28 10996 /* There's a race between calling ieee80211_register_hw()
d889913205cf7e Kalle Valo 2022-11-28 10997 * and here where the monitor mode is enabled for a little
d889913205cf7e Kalle Valo 2022-11-28 10998 * while. But that time is so short and in practise it make
d889913205cf7e Kalle Valo 2022-11-28 10999 * a difference in real life.
d889913205cf7e Kalle Valo 2022-11-28 11000 */
c8a5f34ad81174 Karthikeyan Periyasamy 2023-12-01 11001 wiphy->interface_modes &= ~BIT(NL80211_IFTYPE_MONITOR);
d889913205cf7e Kalle Valo 2022-11-28 11002
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11003 for_each_ar(ah, ar, i) {
d889913205cf7e Kalle Valo 2022-11-28 11004 /* Apply the regd received during initialization */
d889913205cf7e Kalle Valo 2022-11-28 11005 ret = ath12k_regd_update(ar, true);
d889913205cf7e Kalle Valo 2022-11-28 11006 if (ret) {
d889913205cf7e Kalle Valo 2022-11-28 11007 ath12k_err(ar->ab, "ath12k regd update failed: %d\n", ret);
d889913205cf7e Kalle Valo 2022-11-28 11008 goto err_unregister_hw;
d889913205cf7e Kalle Valo 2022-11-28 11009 }
d889913205cf7e Kalle Valo 2022-11-28 11010
f8bde02a26b96f Ramasamy Kaliappan 2024-04-04 11011 ath12k_debugfs_register(ar);
8dd65ccbdf91e2 Aditya Kumar Singh 2024-06-11 11012 }
f8bde02a26b96f Ramasamy Kaliappan 2024-04-04 11013
d889913205cf7e Kalle Valo 2022-11-28 11014 return 0;
d889913205cf7e Kalle Valo 2022-11-28 11015
d889913205cf7e Kalle Valo 2022-11-28 11016 err_unregister_hw:
4e1eff38d37a27 Aditya Kumar Singh 2024-06-11 11017 for_each_ar(ah, ar, i)
4e1eff38d37a27 Aditya Kumar Singh 2024-06-11 11018 ath12k_debugfs_unregister(ar);
4e1eff38d37a27 Aditya Kumar Singh 2024-06-11 11019
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 11020 ieee80211_unregister_hw(hw);
d889913205cf7e Kalle Valo 2022-11-28 11021
8fea0066b4b481 Karthikeyan Periyasamy 2024-12-09 11022 err_cleanup_if_combs:
8fea0066b4b481 Karthikeyan Periyasamy 2024-12-09 11023 ath12k_mac_cleanup_iface_combinations(ah);
d889913205cf7e Kalle Valo 2022-11-28 11024
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11025 err_complete_cleanup_unregister:
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11026 i = ah->num_radio;
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11027
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 11028 err_cleanup_unregister:
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11029 for (j = 0; j < i; j++) {
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11030 ar = ath12k_ah_to_ar(ah, j);
6db6e70a17f6fb Karthikeyan Periyasamy 2024-01-18 11031 ath12k_mac_cleanup_unregister(ar);
ba12f08f316746 Karthikeyan Periyasamy 2024-04-09 11032 }
d889913205cf7e Kalle Valo 2022-11-28 11033
940b57fd0e7710 Karthikeyan Periyasamy 2023-11-21 11034 SET_IEEE80211_DEV(hw, NULL);
d889913205cf7e Kalle Valo 2022-11-28 11035
d889913205cf7e Kalle Valo 2022-11-28 11036 return ret;
d889913205cf7e Kalle Valo 2022-11-28 11037 }
d889913205cf7e Kalle Valo 2022-11-28 11038
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2025-12-24 8:57 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-12-24 8:57 drivers/net/wireless/ath/ath12k/mac.c:10928 ath12k_mac_hw_register() error: uninitialized symbol 'cap' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.