Home
last modified time | relevance | path

Searched refs:chandef (Results 1 – 25 of 184) sorted by relevance

12345678

/Linux-v4.19/net/wireless/
Dchan.c16 void cfg80211_chandef_create(struct cfg80211_chan_def *chandef, in cfg80211_chandef_create() argument
23 chandef->chan = chan; in cfg80211_chandef_create()
24 chandef->center_freq2 = 0; in cfg80211_chandef_create()
28 chandef->width = NL80211_CHAN_WIDTH_20_NOHT; in cfg80211_chandef_create()
29 chandef->center_freq1 = chan->center_freq; in cfg80211_chandef_create()
32 chandef->width = NL80211_CHAN_WIDTH_20; in cfg80211_chandef_create()
33 chandef->center_freq1 = chan->center_freq; in cfg80211_chandef_create()
36 chandef->width = NL80211_CHAN_WIDTH_40; in cfg80211_chandef_create()
37 chandef->center_freq1 = chan->center_freq + 10; in cfg80211_chandef_create()
40 chandef->width = NL80211_CHAN_WIDTH_40; in cfg80211_chandef_create()
[all …]
Dmesh.c125 if (!setup->chandef.chan) { in __cfg80211_join_mesh()
127 setup->chandef = wdev->preset_chandef; in __cfg80211_join_mesh()
130 if (!setup->chandef.chan) { in __cfg80211_join_mesh()
149 setup->chandef.chan = chan; in __cfg80211_join_mesh()
153 if (setup->chandef.chan) in __cfg80211_join_mesh()
158 if (!setup->chandef.chan) in __cfg80211_join_mesh()
161 setup->chandef.width = NL80211_CHAN_WIDTH_20_NOHT; in __cfg80211_join_mesh()
162 setup->chandef.center_freq1 = setup->chandef.chan->center_freq; in __cfg80211_join_mesh()
172 rdev->wiphy.bands[setup->chandef.chan->band]; in __cfg80211_join_mesh()
174 if (setup->chandef.chan->band == NL80211_BAND_2GHZ) { in __cfg80211_join_mesh()
[all …]
Docb.c35 if (WARN_ON(!setup->chandef.chan)) in __cfg80211_join_ocb()
40 wdev->chandef = setup->chandef; in __cfg80211_join_ocb()
75 memset(&wdev->chandef, 0, sizeof(wdev->chandef)); in __cfg80211_leave_ocb()
Dibss.c108 rdev->wiphy.bands[params->chandef.chan->band]; in __cfg80211_join_ibss()
110 u32 flag = params->chandef.chan->band == NL80211_BAND_5GHZ ? in __cfg80211_join_ibss()
129 wdev->chandef = params->chandef; in __cfg80211_join_ibss()
136 wdev->wext.ibss.chandef = params->chandef; in __cfg80211_join_ibss()
178 memset(&wdev->chandef, 0, sizeof(wdev->chandef)); in __cfg80211_clear_ibss()
244 if (!wdev->wext.ibss.chandef.chan) { in cfg80211_ibss_wext_join()
272 cfg80211_chandef_create(&wdev->wext.ibss.chandef, new_chan, in cfg80211_ibss_wext_join()
332 if (wdev->wext.ibss.chandef.chan == chan) in cfg80211_ibss_wext_siwfreq()
345 cfg80211_chandef_create(&wdev->wext.ibss.chandef, chan, in cfg80211_ibss_wext_siwfreq()
374 else if (wdev->wext.ibss.chandef.chan) in cfg80211_ibss_wext_giwfreq()
[all …]
Dmlme.c763 struct cfg80211_chan_def chandef; in cfg80211_dfs_channels_update_work() local
812 cfg80211_chandef_create(&chandef, c, in cfg80211_dfs_channels_update_work()
815 nl80211_radar_notify(rdev, &chandef, in cfg80211_dfs_channels_update_work()
819 regulatory_propagate_dfs_state(wiphy, &chandef, in cfg80211_dfs_channels_update_work()
842 struct cfg80211_chan_def *chandef, in cfg80211_radar_event() argument
847 trace_cfg80211_radar_event(wiphy, chandef); in cfg80211_radar_event()
853 cfg80211_set_dfs_state(wiphy, chandef, NL80211_DFS_UNAVAILABLE); in cfg80211_radar_event()
857 nl80211_radar_notify(rdev, chandef, NL80211_RADAR_DETECTED, NULL, gfp); in cfg80211_radar_event()
859 memcpy(&rdev->radar_chandef, chandef, sizeof(struct cfg80211_chan_def)); in cfg80211_radar_event()
865 const struct cfg80211_chan_def *chandef, in cfg80211_cac_event() argument
[all …]
/Linux-v4.19/drivers/net/wireless/intel/iwlwifi/mvm/
Dphy-ctxt.c69 u8 iwl_mvm_get_channel_width(struct cfg80211_chan_def *chandef) in iwl_mvm_get_channel_width() argument
71 switch (chandef->width) { in iwl_mvm_get_channel_width()
82 WARN(1, "Invalid channel width=%u", chandef->width); in iwl_mvm_get_channel_width()
91 u8 iwl_mvm_get_ctrl_pos(struct cfg80211_chan_def *chandef) in iwl_mvm_get_ctrl_pos() argument
93 switch (chandef->chan->center_freq - chandef->center_freq1) { in iwl_mvm_get_ctrl_pos()
142 struct cfg80211_chan_def *chandef, in iwl_mvm_phy_ctxt_cmd_data() argument
148 cmd->ci.band = (chandef->chan->band == NL80211_BAND_2GHZ ? in iwl_mvm_phy_ctxt_cmd_data()
151 cmd->ci.channel = chandef->chan->hw_value; in iwl_mvm_phy_ctxt_cmd_data()
152 cmd->ci.width = iwl_mvm_get_channel_width(chandef); in iwl_mvm_phy_ctxt_cmd_data()
153 cmd->ci.ctrl_pos = iwl_mvm_get_ctrl_pos(chandef); in iwl_mvm_phy_ctxt_cmd_data()
[all …]
Dtdls.c395 struct cfg80211_chan_def *chandef, in iwl_mvm_tdls_config_channel_switch() argument
434 if (!chandef) { in iwl_mvm_tdls_config_channel_switch()
436 mvm->tdls_cs.peer.chandef.chan) { in iwl_mvm_tdls_config_channel_switch()
438 chandef = &mvm->tdls_cs.peer.chandef; in iwl_mvm_tdls_config_channel_switch()
450 chandef = &chanctx->def; in iwl_mvm_tdls_config_channel_switch()
454 if (chandef) { in iwl_mvm_tdls_config_channel_switch()
455 cmd.ci.band = (chandef->chan->band == NL80211_BAND_2GHZ ? in iwl_mvm_tdls_config_channel_switch()
457 cmd.ci.channel = chandef->chan->hw_value; in iwl_mvm_tdls_config_channel_switch()
458 cmd.ci.width = iwl_mvm_get_channel_width(chandef); in iwl_mvm_tdls_config_channel_switch()
459 cmd.ci.ctrl_pos = iwl_mvm_get_ctrl_pos(chandef); in iwl_mvm_tdls_config_channel_switch()
[all …]
/Linux-v4.19/net/mac80211/
Dibss.c43 struct cfg80211_chan_def *chandef, in ieee80211_ibss_build_presp() argument
95 sband = local->hw.wiphy->bands[chandef->chan->band]; in ieee80211_ibss_build_presp()
96 rate_flags = ieee80211_chandef_rate_flags(chandef); in ieee80211_ibss_build_presp()
97 shift = ieee80211_chandef_get_shift(chandef); in ieee80211_ibss_build_presp()
135 chandef->chan->center_freq); in ieee80211_ibss_build_presp()
149 csa_settings->chandef.chan->center_freq); in ieee80211_ibss_build_presp()
178 if (chandef->width != NL80211_CHAN_WIDTH_20_NOHT && in ieee80211_ibss_build_presp()
179 chandef->width != NL80211_CHAN_WIDTH_5 && in ieee80211_ibss_build_presp()
180 chandef->width != NL80211_CHAN_WIDTH_10 && in ieee80211_ibss_build_presp()
194 chandef, 0, false); in ieee80211_ibss_build_presp()
[all …]
Dchan.c118 compat = &sdata->vif.bss_conf.chandef; in ieee80211_chanctx_non_reserved_chandef()
121 &sdata->vif.bss_conf.chandef, compat); in ieee80211_chanctx_non_reserved_chandef()
166 const struct cfg80211_chan_def *chandef, in ieee80211_find_reservation_chanctx() argument
184 chandef)) in ieee80211_find_reservation_chanctx()
270 width = max(vif->bss_conf.chandef.width, in ieee80211_get_chanctx_max_required_bw()
280 width = vif->bss_conf.chandef.width; in ieee80211_get_chanctx_max_required_bw()
342 const struct cfg80211_chan_def *chandef) in ieee80211_change_chanctx() argument
344 if (cfg80211_chandef_identical(&ctx->conf.def, chandef)) { in ieee80211_change_chanctx()
349 WARN_ON(!cfg80211_chandef_compatible(&ctx->conf.def, chandef)); in ieee80211_change_chanctx()
351 ctx->conf.def = *chandef; in ieee80211_change_chanctx()
[all …]
Dspectmgmt.c110 cfg80211_chandef_create(&csa_ie->chandef, new_chan, in ieee80211_parse_ch_switch_ie()
114 cfg80211_chandef_create(&csa_ie->chandef, new_chan, in ieee80211_parse_ch_switch_ie()
118 cfg80211_chandef_create(&csa_ie->chandef, new_chan, in ieee80211_parse_ch_switch_ie()
122 cfg80211_chandef_create(&csa_ie->chandef, new_chan, in ieee80211_parse_ch_switch_ie()
125 switch (sdata->vif.bss_conf.chandef.width) { in ieee80211_parse_ch_switch_ie()
128 csa_ie->chandef.width = in ieee80211_parse_ch_switch_ie()
129 sdata->vif.bss_conf.chandef.width; in ieee80211_parse_ch_switch_ie()
151 new_vht_chandef = csa_ie->chandef; in ieee80211_parse_ch_switch_ie()
168 &csa_ie->chandef)) { in ieee80211_parse_ch_switch_ie()
174 csa_ie->chandef = new_vht_chandef; in ieee80211_parse_ch_switch_ie()
Dmesh.c98 cfg80211_chandef_create(&sta_chan_def, sdata->vif.bss_conf.chandef.chan, in mesh_matches_local()
103 if (!cfg80211_chandef_compatible(&sdata->vif.bss_conf.chandef, in mesh_matches_local()
416 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || in mesh_add_ht_cap_ie()
417 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || in mesh_add_ht_cap_ie()
418 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) in mesh_add_ht_cap_ie()
453 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || in mesh_add_ht_oper_ie()
454 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_5 || in mesh_add_ht_oper_ie()
455 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_10) in mesh_add_ht_oper_ie()
462 ieee80211_ie_build_ht_oper(pos, ht_cap, &sdata->vif.bss_conf.chandef, in mesh_add_ht_oper_ie()
480 sdata->vif.bss_conf.chandef.width == NL80211_CHAN_WIDTH_20_NOHT || in mesh_add_vht_cap_ie()
[all …]
Dutil.c1369 struct cfg80211_chan_def *chandef, in ieee80211_build_preq_ies_band() argument
1390 rate_flags = ieee80211_chandef_rate_flags(chandef); in ieee80211_build_preq_ies_band()
1391 shift = ieee80211_chandef_get_shift(chandef); in ieee80211_build_preq_ies_band()
1442 if (chandef->chan && sband->band == NL80211_BAND_2GHZ) { in ieee80211_build_preq_ies_band()
1448 chandef->chan->center_freq); in ieee80211_build_preq_ies_band()
1568 struct cfg80211_chan_def *chandef, in ieee80211_build_preq_ies() argument
1583 chandef, in ieee80211_build_preq_ies()
1616 struct cfg80211_chan_def chandef; in ieee80211_build_probe_req() local
1628 chandef.width = sdata->vif.bss_conf.chandef.width; in ieee80211_build_probe_req()
1630 chandef.chan = NULL; in ieee80211_build_probe_req()
[all …]
Dtdls.c77 struct cfg80211_chan_def chandef; in ieee80211_tdls_add_subband() local
88 cfg80211_chandef_create(&chandef, ch, in ieee80211_tdls_add_subband()
90 if (cfg80211_reg_can_beacon_relax(wiphy, &chandef, in ieee80211_tdls_add_subband()
161 if (!ieee80211_chandef_to_operating_class(&sdata->vif.bss_conf.chandef, in ieee80211_tdls_add_oper_classes()
439 sta->tdls_chandef = sdata->vif.bss_conf.chandef; in ieee80211_tdls_add_setup_start_ies()
568 sta->tdls_chandef = sdata->vif.bss_conf.chandef; in ieee80211_tdls_add_setup_cfm_ies()
614 &sdata->vif.bss_conf.chandef, prot, in ieee80211_tdls_add_setup_cfm_ies()
649 struct cfg80211_chan_def *chandef) in ieee80211_tdls_add_chan_switch_req_ies() argument
654 if (WARN_ON_ONCE(!chandef)) in ieee80211_tdls_add_chan_switch_req_ies()
659 ieee80211_frequency_to_channel(chandef->chan->center_freq); in ieee80211_tdls_add_chan_switch_req_ies()
[all …]
Dmain.c95 struct cfg80211_chan_def chandef = {}; in ieee80211_hw_conf_chan() local
103 chandef = local->scan_chandef; in ieee80211_hw_conf_chan()
105 chandef.chan = local->tmp_channel; in ieee80211_hw_conf_chan()
106 chandef.width = NL80211_CHAN_WIDTH_20_NOHT; in ieee80211_hw_conf_chan()
107 chandef.center_freq1 = chandef.chan->center_freq; in ieee80211_hw_conf_chan()
109 chandef = local->_oper_chandef; in ieee80211_hw_conf_chan()
111 WARN(!cfg80211_chandef_valid(&chandef), in ieee80211_hw_conf_chan()
113 chandef.chan->center_freq, chandef.width, in ieee80211_hw_conf_chan()
114 chandef.center_freq1, chandef.center_freq2); in ieee80211_hw_conf_chan()
116 if (!cfg80211_chandef_identical(&chandef, &local->_oper_chandef)) in ieee80211_hw_conf_chan()
[all …]
Dmlme.c153 struct cfg80211_chan_def *chandef, bool tracking) in ieee80211_determine_chantype() argument
163 chandef->chan = channel; in ieee80211_determine_chantype()
164 chandef->width = NL80211_CHAN_WIDTH_20_NOHT; in ieee80211_determine_chantype()
165 chandef->center_freq1 = channel->center_freq; in ieee80211_determine_chantype()
166 chandef->center_freq2 = 0; in ieee80211_determine_chantype()
173 chandef->width = NL80211_CHAN_WIDTH_20; in ieee80211_determine_chantype()
196 ieee80211_chandef_ht_oper(ht_oper, chandef); in ieee80211_determine_chantype()
210 vht_chandef = *chandef; in ieee80211_determine_chantype()
247 if (cfg80211_chandef_identical(chandef, &vht_chandef)) { in ieee80211_determine_chantype()
252 if (!cfg80211_chandef_compatible(chandef, &vht_chandef)) { in ieee80211_determine_chantype()
[all …]
/Linux-v4.19/drivers/net/wireless/quantenna/qtnfmac/
Devent.c368 struct cfg80211_chan_def chandef; in qtnf_event_handle_freq_change() local
380 qlink_chandef_q2cfg(wiphy, &data->chan, &chandef); in qtnf_event_handle_freq_change()
382 if (!cfg80211_chandef_valid(&chandef)) { in qtnf_event_handle_freq_change()
384 mac->macid, chandef.chan->center_freq, in qtnf_event_handle_freq_change()
385 chandef.center_freq1, chandef.center_freq2, in qtnf_event_handle_freq_change()
386 chandef.width); in qtnf_event_handle_freq_change()
391 mac->macid, chandef.chan->hw_value, chandef.center_freq1, in qtnf_event_handle_freq_change()
392 chandef.center_freq2, chandef.width); in qtnf_event_handle_freq_change()
401 cfg80211_ch_switch_notify(vif->netdev, &chandef); in qtnf_event_handle_freq_change()
414 struct cfg80211_chan_def chandef; in qtnf_event_handle_radar() local
[all …]
/Linux-v4.19/drivers/net/wireless/mediatek/mt76/
Dmt76x2u_phy.c55 struct ieee80211_channel *chan = dev->mt76.chandef.chan; in mt76x2u_phy_channel_calibrate()
77 struct ieee80211_channel *chan = dev->mt76.chandef.chan; in mt76x2u_phy_tssi_compensate()
118 u8 channel = dev->mt76.chandef.chan->hw_value; in mt76x2u_phy_update_channel_gain()
122 freq = dev->mt76.chandef.chan->center_freq; in mt76x2u_phy_update_channel_gain()
123 freq1 = dev->mt76.chandef.center_freq1; in mt76x2u_phy_update_channel_gain()
125 switch (dev->mt76.chandef.width) { in mt76x2u_phy_update_channel_gain()
166 struct cfg80211_chan_def *chandef) in mt76x2u_phy_set_channel() argument
191 struct ieee80211_channel *chan = chandef->chan; in mt76x2u_phy_set_channel()
196 freq = chandef->chan->center_freq; in mt76x2u_phy_set_channel()
197 freq1 = chandef->center_freq1; in mt76x2u_phy_set_channel()
[all …]
Dmt76x2_phy.c25 struct ieee80211_channel *chan = dev->mt76.chandef.chan; in mt76x2_phy_tssi_init_cal()
48 struct ieee80211_channel *chan = dev->mt76.chandef.chan; in mt76x2_phy_channel_calibrate()
136 switch (dev->mt76.chandef.width) { in mt76x2_get_rssi_gain_thresh()
149 switch (dev->mt76.chandef.width) { in mt76x2_get_low_rssi_gain_thresh()
168 if (dev->mt76.chandef.width >= NL80211_CHAN_WIDTH_40) in mt76x2_phy_set_gain_val()
180 if (dev->mt76.chandef.chan->flags & IEEE80211_CHAN_RADAR) in mt76x2_phy_set_gain_val()
225 if (dev->mt76.chandef.width == NL80211_CHAN_WIDTH_80) { in mt76x2_phy_update_channel_gain()
250 if (dev->mt76.chandef.width == NL80211_CHAN_WIDTH_80) in mt76x2_phy_update_channel_gain()
268 struct cfg80211_chan_def *chandef) in mt76x2_phy_set_channel() argument
270 struct ieee80211_channel *chan = chandef->chan; in mt76x2_phy_set_channel()
[all …]
/Linux-v4.19/drivers/net/wireless/marvell/mwifiex/
D11h.c125 struct cfg80211_chan_def chandef; in mwifiex_dfs_cac_work_queue() local
131 chandef = priv->dfs_chandef; in mwifiex_dfs_cac_work_queue()
135 cfg80211_cac_event(priv->netdev, &chandef, in mwifiex_dfs_cac_work_queue()
157 cr_req->chan_desc.chan_num = radar_params->chandef->chan->hw_value; in mwifiex_cmd_issue_chan_report_request()
158 cr_req->chan_desc.chan_width = radar_params->chandef->width; in mwifiex_cmd_issue_chan_report_request()
164 radar_params->chandef->chan->hw_value); in mwifiex_cmd_issue_chan_report_request()
172 struct cfg80211_chan_def *chandef) in mwifiex_stop_radar_detection() argument
177 radar_params.chandef = chandef; in mwifiex_stop_radar_detection()
/Linux-v4.19/drivers/net/wireless/ath/ath9k/
Dchannel.c29 struct cfg80211_chan_def *chandef = &sc->cur_chan->chandef; in ath_set_channel() local
30 struct ieee80211_channel *chan = chandef->chan; in ath_set_channel()
43 chan->center_freq, chandef->width); in ath_set_channel()
50 ath9k_cmn_get_channel(hw, ah, chandef); in ath_set_channel()
118 cfg80211_chandef_create(&ctx->chandef, chan, NL80211_CHAN_HT20); in ath_chanctx_init()
131 struct cfg80211_chan_def *chandef) in ath_chanctx_set_channel() argument
137 if (chandef) in ath_chanctx_set_channel()
138 memcpy(&ctx->chandef, chandef, sizeof(*chandef)); in ath_chanctx_set_channel()
511 sc->cur_chan->chandef.center_freq1, in ath_chanctx_event()
802 struct cfg80211_chan_def *chandef) in ath_chanctx_switch() argument
[all …]
Dcommon.c301 struct cfg80211_chan_def *chandef) in ath9k_cmn_update_ichannel() argument
303 struct ieee80211_channel *chan = chandef->chan; in ath9k_cmn_update_ichannel()
312 switch (chandef->width) { in ath9k_cmn_update_ichannel()
325 if (chandef->center_freq1 > chandef->chan->center_freq) in ath9k_cmn_update_ichannel()
342 struct cfg80211_chan_def *chandef) in ath9k_cmn_get_channel() argument
344 struct ieee80211_channel *curchan = chandef->chan; in ath9k_cmn_get_channel()
348 ath9k_cmn_update_ichannel(channel, chandef); in ath9k_cmn_get_channel()
/Linux-v4.19/include/net/
Dcfg80211.h520 cfg80211_get_chandef_type(const struct cfg80211_chan_def *chandef) in cfg80211_get_chandef_type() argument
522 switch (chandef->width) { in cfg80211_get_chandef_type()
528 if (chandef->center_freq1 > chandef->chan->center_freq) in cfg80211_get_chandef_type()
545 void cfg80211_chandef_create(struct cfg80211_chan_def *chandef,
584 bool cfg80211_chandef_valid(const struct cfg80211_chan_def *chandef);
594 const struct cfg80211_chan_def *chandef,
606 const struct cfg80211_chan_def *chandef,
620 ieee80211_chandef_rate_flags(struct cfg80211_chan_def *chandef) in ieee80211_chandef_rate_flags() argument
622 switch (chandef->width) { in ieee80211_chandef_rate_flags()
645 ieee80211_chandef_max_power(struct cfg80211_chan_def *chandef) in ieee80211_chandef_max_power() argument
[all …]
/Linux-v4.19/drivers/net/wireless/intersil/orinoco/
Dcfg.c165 struct cfg80211_chan_def *chandef) in orinoco_set_monitor_channel() argument
172 if (!chandef->chan) in orinoco_set_monitor_channel()
175 if (cfg80211_get_chandef_type(chandef) != NL80211_CHAN_NO_HT) in orinoco_set_monitor_channel()
178 if (chandef->chan->band != NL80211_BAND_2GHZ) in orinoco_set_monitor_channel()
181 channel = ieee80211_frequency_to_channel(chandef->chan->center_freq); in orinoco_set_monitor_channel()
/Linux-v4.19/drivers/net/wireless/mediatek/mt76/mt76x0/
Dphy.c233 if (dev->mt76.chandef.chan->band == NL80211_BAND_2GHZ) { in mt76x0_phy_get_rssi()
675 struct cfg80211_chan_def *chandef) in __mt76x0_phy_set_channel() argument
705 freq = chandef->chan->center_freq; in __mt76x0_phy_set_channel()
706 freq1 = chandef->center_freq1; in __mt76x0_phy_set_channel()
707 channel = chandef->chan->hw_value; in __mt76x0_phy_set_channel()
710 switch (chandef->width) { in __mt76x0_phy_set_channel()
732 mt76x0_bbp_set_bw(dev, chandef->width); in __mt76x0_phy_set_channel()
733 mt76x0_bbp_set_ctrlch(dev, chandef->width, ch_group_index); in __mt76x0_phy_set_channel()
744 mt76x0_phy_set_band(dev, chandef->chan->band); in __mt76x0_phy_set_channel()
766 dev->mt76.chandef = *chandef; in __mt76x0_phy_set_channel()
[all …]
/Linux-v4.19/drivers/net/wireless/ath/wcn36xx/
Dwcn36xx.h86 #define WCN36XX_HW_CHANNEL(__wcn) (__wcn->hw->conf.chandef.chan->hw_value)
87 #define WCN36XX_BAND(__wcn) (__wcn->hw->conf.chandef.chan->band)
88 #define WCN36XX_CENTER_FREQ(__wcn) (__wcn->hw->conf.chandef.chan->center_freq)
91 #define WCN36XX_MAX_POWER(__wcn) (__wcn->hw->conf.chandef.chan->max_power)

12345678