提交線圖

1807 次程式碼提交

作者 SHA1 備註 日期
Shreedhar Parande
45d12fa2de qcacmn: Separate GET APIs for precac and agile precac flags
Currently a single API(dfs_get_precac_enable) is used to get
dfs_precac_enable and dfs_agile_precac_enable. This API is
wrongly returning value for dfs_precac_enable since agile
capability is set even for Cascade.

Separate out the GET APIs for getting dfs_precac_enable and
dfs_agile_precac_enable so that getting these flags becomes
independent of each other.

Change-Id: I08b0cbcd29c320a345865e3e9456ce3e809e26a6
CRs-fixed: 2501266
2019-08-12 12:24:17 -07:00
Abhishek Singh
22e58ce9f1 qcacmn: Consider BAND and OCE WAN scores only if congestion is < 75%
Optimize BSS score to consider OCE WAN and Band score only if
congestion is less than 75% (CONGESTION_THRSHOLD_FOR_BAND_OCE_SCORE)

Change-Id: I114032db59be162cad62dfa4cdcd52983f5eec9b
CRs-Fixed: 2505430
2019-08-12 01:27:45 -07:00
Abhishek Ambure
c76db37021 qcacmn: Clean up CMN_VDEV_MGR_TGT_IF_ENABLE
WIN and MCL both uses common targer_if code for vdev manager.
So legacy code and "CMN_VDEV_MGR_TGT_IF_ENABLE" macro is removed.

Change-Id: I2984ae44f3a7cfa01b8f1455353d09deb4db5759
CRs-Fixed: 2503804
2019-08-11 10:38:20 -07:00
Rajeev Kumar Sirasanagandla
72c7948a8a qcacmn: Restore to WORLD when country code is not in regdb
In regulatory non-offloads, when a user is trying to set the country code,
if the country code is not present in the driver regulatory database then
restore to WORLD domain.

Change-Id: I7de523f734920baaf5a7c690873a69c346d55a64
CRs-Fixed: 2495799
2019-08-10 06:18:19 -07:00
Rajeev Kumar Sirasanagandla
0c9fe659fa qcacmn: Fix regulatory non-offload issues
Current regulatory non-offloads has following issues:
	1) In "iw reg get" output "00" can not be shown when trying to
	   set country code to "00".
	2) In BDF file, if only reg domain is specified then
	   "iw reg get" output should contain alpha2 code of country which
	   first matches with BDF reg domain.

To fix these issues in reg_get_reginfo_form_regdmn_pair(),
populate reg_info->alpha2 with:
	(a) "00" for WORLD domain and
	(b) alpha2 code of first country matching with non WORLD domain.

Change-Id: I5cf87587a1a0f648700cffdc7ff60f05f043f723
CRs-Fixed: 2494516
2019-08-10 06:18:15 -07:00
Shaakir Mohamed
37ac32ba18 qcacmn: Fix CAC during vdev restart
Add compile time flag to restart CAC when vap is restarted
on same channel.

Change-Id: I7d4d4fdf4a6defac8fc436b63495b51c272669af
CRs-Fixed: 2495630
2019-08-10 02:54:19 -07:00
sumedh baikady
60c3301c25 qcacmn: Remove comments in vdev subtype addition
Comments for vdev subtype added for mesh is not
required.

Change-Id: I9d6104fc0883b97f7462aa964d823f99dee653d7
CRs-Fixed: 2491087
2019-08-09 11:18:51 -07:00
Gyanranjan Hazarika
8e0ae99446 qcacmn: Add target_if changes for dynamic hw-mode config
This feature enables a user to change HW mode dynamically
from DBS to DBS_SBS mode and vice-versa. Currently, HW
mode configuration is only possible through INI setting
requiring a subsequent reboot.

Primary target_if changes are:

1. Add structure definition wlan_psoc_host_hal_reg_cap_ext
to parse and store the new extended regulatory capability
info in WMI_MAC_PHY_CAPABILITIES tlv sent in EXT service
ready WMI event
2. Add API target_psoc_get_num_radios_for_mode to retrieve
the number of radios corresponding to a hw-mode
3. Add API target_psoc_get_mac_phy_cap_for_mode to retrieve
the pointer to the mac_phy_cap info of the first radio
corresponding to the input hw-mode.

Change-Id: Ia10f0fd5e50c0ce0cbe99f9281147266aedce4e9
CRs-fixed: 2490212
2019-08-09 11:18:45 -07:00
Sumeet Rao
eda56478de qcacmn: Process RX FSE Support service advertised by firmware
A new firmware capability advertising support for flow search engine
in HW has been added. Process the new service for flow tagging.

CRs-Fixed: 2475913
Change-Id: Ie69cfd5733b6d6c02792da59dee4f823a72fb431
2019-08-07 04:58:13 -07:00
Gurumoorthi Gnanasambandhan
80e1ae17a6 qcacmn: Enable/Disable multi group key support
Support to Enable/Disable multi group key and configure
maximum number of group keys.

Change-Id: Ie6ce2a38d0ad04a47f966fc281f35a8af7125447
CRs-Fixed: 2490599
2019-08-06 10:31:49 -07:00
Gurumoorthi Gnanasambandhan
17d1e0f676 qcacmn: Support group key installation for VLAN
VLAN group keyix is greater than WLAN_CRYPTO_MAXKEYIDX
Each VLAN will have separate group key in single VAP.

CRs-Fixed: 2490599
Change-Id: I585b2deaa13da337c5df7b55ec8e4672221e4edb
2019-08-06 10:31:40 -07:00
Will Huang
1f79c8fbe0 qcacmn: Return 0 if fail to covert channel/frequency
It is easier to just compare return value of reg_freq_to_chan/
reg_chan_to_freq with 0 to check whether the channel is valid.

Change-Id: I4124cc090d31687774d8d71fee4efc822e0a6b38
CRs-Fixed: 2496010
2019-08-05 18:53:05 -07:00
Akshay Kosigi
8fcd7c7f99 qcacmn: Clean up MGMT_DESC_POOL_MAX
Clean up MGMT_DESC_POOL_MAX and add the corresponding
macro values in umac cmn_services mgmt_txrx ap config file

Change-Id: I083a199e2cacf70738851426167c601ab793c29d
CRs-Fixed: 2496215
2019-08-05 10:56:02 -07:00
Tushnim Bhattacharyya
2b629e7661 qcacmn: Clean up CONFIG_MCL for MGMT_DESC_POOL_MAX
Clean up CONFIG_MCL and add MGMT_DESC_POOL_MAX in the
default_defconfig file.

Change-Id: Id22787b99363bb14f842a79fde60d3ce22480035
CRs-Fixed: 2495580
2019-08-05 10:55:58 -07:00
Vignesh Mohan
1689951601 qcacmn: Make NOL marking independent of preCAC
As part of supporting different bandwidths for preCAC, the preCAC list
also maintained current channel CAC information independent
of preCAC being enabled.

Once the current channels are CACed, they are marked as CAC done in
the preCAC list irrespective of preCAC being enabled or not. If
radar is found on any of these channels, they are not marked as NOL
in precac list if preCAC is not enabled. Since the channels are still
marked as CAC done, after NOL timeout, switching to this channel does
not start CAC.

Mark the preCAC list as NOL during radar, irrespective of preCAC
being enabled or disabled.

Change-Id: Ica24315c1e06fd603d7039e1233fcbd84bfeb594
CRs-Fixed: 2496747
2019-08-05 09:31:47 -07:00
Abhishek Ambure
21ff0a53bf qcacmn: Common code changes for VDEV conversion
This change is required by MCL for VDEV conversion. This change
adds target_if all common code.

Change-Id: If43cbbe12c9b4a2bc7fc46ff01f24a2fb6fda09e
CRs-Fixed: 2460791
2019-08-05 07:50:05 -07:00
Sourav Mohapatra
791789e341 qcacmn: Add case to increment ICMP req frames in stats
Currently while processing wakeup stats, the driver doesnot increment
the icmpv4 packet count in case of a ICMP req frame. This causes only
the unicast packet counts to be incremented.

Add a case in function ucfg_mc_cp_stats_inc_wake_lock_stats_by_protocol
to increment the count in the above mentioned case also.

Change-Id: I0ee3e6e91f3bc7a8d9043af1af46739037cb7678
CRs-Fixed: 2439237
2019-08-05 06:12:54 -07:00
Rajeev Kumar
d9cede1908 qcacmn: Prevent runtime PM suspend for MGMT TX frames
Add a runtime PM wake lock for MGMT TX frames and prevent
runtime PM suspend if there are outstanding MGMT TX descriptors
in fw because fw may try to access host ddr when PCIe link is down
which can lead to system NOC errors.

Change-Id: I46b851b7babc8f0fe2c31f27892b0c7a3f255a17
CRs-Fixed: 2495612
2019-08-02 22:28:42 -07:00
Kiran Venkatappa
d2ede02e21 qcacmn: Add support in wifi pos to send wru/ftmrr frames
FTMRR and WRU frames should be sent from host and these request should
not be forwarded to FW. Add support in wifi pos to process this request
and send response to userspace.

Change-Id: I54049a1a889839e44d418ceebcca09e5092f6063
CRs-Fixed: 2500751
2019-08-02 10:17:23 -07:00
Priyadarshnee S
9d2d6e928b qcacmn: Add RX ops to invoke DFS/REG APIs
Provide Global function pointers for accessing DFS/REG APIs that
1. Build channel list as per the configured HW Mode.
2. Reinitialize DFS timers after mode switch.
3. Reset ADFS Config.

CRs-Fixed: 2481535
Change-Id: Ied4d13b0c3ce39e696f273a7ac1f51962671c734
2019-08-02 08:32:52 -07:00
Priyadarshnee S
aa4fe41237 qcacmn: Add a Regulatory API to compute channel list after HW Mode Switch
Add regulatory API and a dispatcher function to compute current channel
list after dynamic HW Mode Switch. range_5g_low, range_5g_high and wireless
modes are extracted from wlan_psoc_host_mac_phy_caps based on the new
HW mode configured and are used to derive the current channel list.

Change-Id: I799712da8992ede0b5896dd2eb438cffea5fe048
CRs-Fixed: 2481535
2019-08-02 08:32:49 -07:00
Priyadarshnee S
4ae200caad qcacmn: Add DFS APIs to reset ADFS and reinitialize DFS Timers
Add DFS APIs to
1. reset Agile DFS config
2. reinitialize DFS Timers

Change-Id: I7ede1b961f899f2e713b9be56aa8f5fe29360d66
CRs-Fixed: 2481535
2019-08-02 08:32:45 -07:00
Akshay Kosigi
9777087e85 qcacmn: Clean up MAX_BCN_PROBE_IN_SCAN_QUEUE
Clean up MAX_BCN_PROBE_IN_SCAN_QUEUE and add the corresponding
macro values in umac scan ap config file

Change-Id: I34699372b948bc1e2f515048321018e85259e273
CRs-Fixed: 2497518
2019-08-01 06:47:57 -07:00
Tushnim Bhattacharyya
689d670cc9 qcacmn: Clean up CONFIG_MCL for MAX_BCN_PROBE_IN_SCAN_QUEUE
Clean up CONFIG_MCL and add MAX_BCN_PROBE_IN_SCAN_QUEUE
in the defaul_defconfig file.

Change-Id: I5c79ed31609ae67545d7ddf4a649925d1d071b9a
CRs-Fixed: 2495605
2019-08-01 06:47:53 -07:00
Vignesh U
a0a995d824 qcacmn: Add Global dispatcher support for Synthetic HW pulses
Provide Global function pointers for accessing DFS APIs that
1) allow or prevent the HW pulses. HW pulses are to be prevented
to detect the synthetic pulses.
2) query whether the HW pulses are allowed or not.

Change-Id: Id1e90ba6682afe747774b46da78f7ae6b56c94e6
CRs-Fixed: 2484584
2019-08-01 01:40:24 -07:00
Vignesh U
2810202a98 qcacmn: Add support to inject synthetic radar pulses
Add structure definitions, function declarations and
definitions supporting radartool to inject synthetic
radar pulses.

Change-Id: Ie7af0437bd2d6051bc3cb80b6e88f4337eefe77b
CRs-Fixed: 2484584
2019-08-01 01:40:21 -07:00
Ashish Kumar Dhanotiya
3af27eb408 qcacmn: Process FW stats event on VDEV_DOWN
FW sends vdev stats on vdev down, current host
implementation does not process this event as host is
only processing the stats events for which stats are
requested.
On vdev down FW sends the last available vdev stats and
based on that host updates it's RSSI on disconnect.
With CP stats infrastructure host is not processing
this event and is not updating rssi on disconnect.

To address above issue add a logic to process all the
vdev stats event received by host.

Change-Id: I9a5c32d061562cd3e3741cd9fe4a69f3278e7a98
CRs-Fixed: 2497104
2019-08-01 01:40:17 -07:00
sumedh baikady
0876d02741 qcacmn: Add new vdev subtype for smart monitor
Smart monitor uses HOSTAP type and no subtype currently.
Also vdev_up is not sent for smart monitor vap. Therefore
target will not enable rx_unicast for this vap and in dfs
channel we dont receive pkts. To differentiate between
regular Host ap and smart monitor vap for target to enable
rx_unicast we send new subtype.

Change-Id: I6c82c152d75eefb608cd80279e60ce211e17b709
Crs-fixed: 2491087
2019-07-30 16:23:01 -07:00
Kiran Venkatappa
2e5d58d46f qcacmn: Send wifi pos WMI commands using pdev's wmi handle
For multi-radio SoCs, wmi handle is maintained per pdev to map to
separate copy engine used for sending WMI commands to taget. Add support
to send wifi position related WMI to send it per pdev.

Change-Id: I300be2bbfd77cb9390fef37b5b02a002284976e0
CRs-Fixed: 2495277
2019-07-29 16:12:15 -07:00
Naga
bf48fb69ac qcacmn: Add support to print vdev req/resp string
Add support to print vdev req/resp string
on target_if timer start conflict and timer
timeout handler

Change-Id: I0116c03089f4ab80623596bb9e8d0268efb0dd87
CRs-Fixed: 2495018
2019-07-29 02:22:54 -07:00
Vignesh Mohan
71341c2230 qcacmn: Find proper second segment center frequency in HT160
During radar detection, with subchannel marking enabled, when the mode
is HT160, the secondary segment center frequency is determined by
adding +40 offset to the 160 band center frequency.

Consider the case where AP comes in channel 116 HT160. In this case,
the secondary segment center frequency is 5530 which is -40 to the
160 band center frequency (5570).
Primary segment center frequency is 5610 (+40 offset).

Due to this wrong offset addition, the channels added as part of
radar detection are in the wrong segment.

Find proper secondary segment center frequency used for radar
detection.

Change-Id: Icb527fad4fd1317acf8c2b9c010a8ac6a765f985
CRs-Fixed: 2475720
2019-07-28 02:48:23 -07:00
Himanshu Batra
1b60b56578 qcacmn: Replace void * data members of mlme with specific type
Replace mlme void * data members having different types across
different drivers with specific type.

Change-Id: I4343800e836c8ae0996c19b39a420b314e465a75
CRs-Fixed: 2477457
2019-07-27 18:21:29 -07:00
Surya Prakash Raajen
75c5327b19 qcacmn: Reduce mgmt desc pool max size for lowmem
Reduce mgmt desc pool max size for lowmem

Change-Id: Idca644a14c656d04d34c031c4ca47d5d80b8b80e
CRs-Fixed: 2491773
2019-07-27 04:02:31 -07:00
Edayilliam Jayadev
8e74a62e72 qcacmn: Change Spectral control path to support Agile mode
Modify Spectral control path APIs to support Agile mode.

CRs-Fixed: 2450620
Change-Id: Id6cf48c1288b157932ab5ce0535293e466a87783
2019-07-27 00:31:31 -07:00
Himanshu Batra
d9f04e1c71 qcacmn: Replace void * data members of cp_stats with specific type
Replace cp_stats void * data members having different types
across different drivers with specific type

Change-Id: I5497df358e495aaf187097b093622b34ab637f42
CRs-Fixed: 2477447
2019-07-26 18:22:01 -07:00
Alan Chen
bf06e91c8c qcacmn: Add BSS peer for NaN mode
NS offload is not working for NaN mode because BSS peer is not set.
Hence, set the BSS peer for NaN mode as it is done for SAP/P2P GO.

Change-Id: I4c8fbd502cb1d90dd235ae35d0a85a9981e68773
CRs-Fixed: 2494515
2019-07-26 18:21:57 -07:00
sheenam monga
1b0ec2a8fe qcacmn: Add Support for ACTION_CATEGORY_FST
Currently, mgmt_txrx_get_action_frm_subtype does not handle
ACTION_CATEGORY_FST. In case action_category is
ACTION_CATEGORY_FST, mgmt_txrx_get_action_frm_subtype
returns MGMT_FRM_UNSPECIFIED due to default handling. Function
tgt_mgmt_txrx_rx_frame_handler returns QDF_STATUS_E_FAILURE
on receiving MGMT_FRM_UNSPECIFIED frame type and drops mgmt
frames.

Fix is to add support for ACTION_CATEGORY_FST in
mgmt_txrx_get_action_frm_subtype to avoid drop of FST mgmt
frames. Add new management frames
MGMT_ACTION_FST_SETUP_REQ, MGMT_ACTION_FST_SETUP_RSP,
MGMT_ACTION_FST_TEAR_DOWN, MGMT_ACTION_FST_ACK_REQ,
MGMT_ACTION_FST_ACK_RSP, MGMT_ACTION_FST_ON_CHANNEL_TUNNEL.
Add handling for ACTION_CATEGORY_FST in
mgmt_txrx_get_action_frm_subtype, Find fst frame subtype and
return fst frame subtype from mgmt_get_fst_action_subtype
instead of returning MGMT_FRM_UNSPECIFIED in case FST
action_category is received.

Change-Id: I67b7c14f03cab252b13b677a2c9f20a327be24bd
CRs-Fixed: 2495273
2019-07-25 20:12:10 -07:00
Sourav Mohapatra
f31c071fd5 qcacmn: Move peer_adv_stats to MC specific peer_mc_cp_stats struct
Currently peer_adv_stats is present in peer_cp_stats structure
which is shared between WIN and MCL and only common features
should be part of this structure as peer_cp_stats is an
abstraction structure for WIN and MCL for cp stats component.
Since peer_adv_stats is MCL specific structure, this should be
moved to peer_mc_cp_stats which is MCL specific feature for
cp stats component.

Change-Id: Id46cdd153aa6b8137c24fdca30365221d2646d3f
CRs-Fixed: 2480147
2019-07-25 12:25:21 -07:00
Ashish Kumar Dhanotiya
6e7d87df88 qcacmn: Disable ext scan in driver
Currently ext scan is enabled by default in driver which
is increasing driver size significantly and ext scan
is not getting used anymore.
Disable ext scan with feature flag CONFIG_FEATURE_WLAN_EXTSCAN
to reduce driver size and fix related compilation issue.

Change-Id: Id2344e6ed21caefa459773bb6e891ffb1e70cb92
CRs-Fixed: 2491455
2019-07-24 21:43:28 -07:00
Vignesh Mohan
a1a1945c1c qcacmn: Configure agile preCAC timeout values
Send proper minimum and maximum agile preCAC timeout values to the target
as part of starting agile DFS detector. Add a common agile preCAC
parameter structure with the timeout values, channel and width fields
which are to be sent as part of configuring agile detector.

Change-Id: If5f5b179aa12a6c549cb9a4402aa10e957129d78
CRs-Fixed: 2482929
2019-07-23 13:55:29 -07:00
Shashikala Prabhu
41e5f80e2f qcacmn: Do not print DFS error message for 2.4 GHz pdev
For a 2.4 GHz pdev, dfs object is NULL and hence 'dfs is NULL' print is
in tgt_dfs_set_agile_precac_state().

To fix this, add non 5 GHz pdev check before dfs NULL check.

Change-Id: I32cf622d7b769ce841d30de538527639b87f459b
CRs-Fixed: 2490145
2019-07-23 13:55:25 -07:00
Santosh Anbu
f0a42162ac qcacmn: Add pdev mlme component attribute
With the addition of the pdev restart command to handle multivdev restart,
a placeholder is required at the mlme to hold pdev restart attribute.

Change-Id: I885bf71d0e7977452120714a659e839769ade33e
CRs-Fixed: 2492531
2019-07-20 00:36:44 -07:00
Ashish Kumar Dhanotiya
c3001e4291 qcacmn: Remove invalid log from cp stats
While processing stats event there is an invalid debug
log which is always getting printed and resulting in
confusing loging.
Remove this invalid log from the stats event handling.

Change-Id: I5c60bf73b6b01afce82ebf93e19254f6e302042f
CRs-Fixed: 2493076
2019-07-20 00:36:41 -07:00
Abhishek Ambure
6825cfe7fe qcacmn: Move rsp timer stop logic from tgt to target if
Currently vdev response start timer logic is in
target_if layer and stop timer logic is in tgt
layer which is asymmetry.

So, move stop timer logic from tgt layer to
target_if layer for vdev start, stop and delete.

Change-Id: Ia06e2e6d90cf9c4366d654e016e2eeab8c2a0719
CRs-Fixed: 2442199
2019-07-19 20:40:38 -07:00
Himanshu Batra
e596ea4cbf qcacmn: Replace objmgr void * members with union
Replace objmgr void * members with union of specific datatypes.

Change-Id: I3f9df2b00ca333ebcabdc1a87d1047ea205b0cdc
CRs-Fixed: 2477389
2019-07-19 11:26:07 -07:00
Himanshu Batra
556930bba9 qcacmn: Replace void * tgt_if_handle with abstract type
Replace void * tgt_if_handle of objmgr psoc/pdev with
abstract type handles provided by target interface

Change-Id: I9e0ae991776daa0c25c4ad7b4e4dc022441318a3
CRs-Fixed: 2482708
2019-07-19 02:48:20 -07:00
Vignesh U
f00622162c qcacmn: MKK17 should include channel 144
As a part of regulatory update #29,MKK17 should support channels
until 5730MHz(including channel 144). But, it was missed in
regulatory update #29 and MKK17 supports channels only until
5710MHz(until channel 140).

Add channel 144 to MKK17.

Change-Id: Ic4b4c162f03a033b697764d65f4733b49e00c9c8
CRs-Fixed: 2489544
2019-07-19 00:54:23 -07:00
Pragaspathi Thilagaraj
bdcce7fcb1 qcacmn: Change the maximum serialization pending commands
The host driver serialization module currently supports upto 4
commands in non scan pending queue. This is calculated at the
wlan_serialization_vdev_create_handler() as:
    max_pending_cmds = (WLAN_SER_MAX_PENDING_CMDS /
                        WLAN_SER_MAX_VDEVS)

But in SAP case, if multiple STA sends deauth at the same time,
4 pending commands in non scan pending queue is not sufficient
and will result in only disassoc from the first 4 STA getting
honored.

The current host wlan driver supports 3 SAP mode and
2 STA vdevs amounting to a total of 5 vdevs supported.
So calculate the total non scan pending commands for
serialization based on the total peers supported for each
mode to fix this issue.

In SAP case, maximum 32 peer are supported and for STA case,
maximum 4 pending commands for serialization. So change the
max pending commands calculation as:
 max_pending_cmds = (No. of sap modes supported * 32) +
                    (No .of STA modes supported *4 )

For MCL case the definition of WLAN_SER_MAX_PENDING_CMDS
will be moved to Kbuild.
For WIN case, the existing maximum count will be retained.

Change-Id: Iff1d9430b45e26812b600560b08e85e6040eafef
CRs-Fixed: 2483520
2019-07-17 17:42:33 -07:00
Rajeev Kumar Sirasanagandla
d36ba2d9cf qcacmn: Fix possible overread in wifi_pos_parse_req
In wifi_pos_parse_req(), payload sections of nl attributes ATTR_DATA and
ATTR_META_DATA are type casted to driver internal structures tAniMsgHdr
and wifi_pos_field_info respectively without validating payload lengths
which can lead to buffer overread if the payload lengths are less than
size of internal structures.

To fix this, avoid type-cast and return error if payload lengths of nl
attributes ATTR_DATA and ATTR_META_DATA are less than size of tAniMsgHdr
and wifi_pos_field_info respectively.

Change-Id: Ie9e3197f2cd3852b394e834991aa8d3a5b530d85
CRs-Fixed: 2471275
2019-07-17 08:31:58 -07:00
Abhiram Jogadenu
1c2b583ee2 qcacmn: Componentize and enable conv WIFI POS
Componentize and enable converged WIFI POS

Change-Id: I8e3f745dbb087818c9d411c7a00e1cdb2907d4d3
2019-07-16 17:15:24 -07:00