The "wmi_pdev_dfs_radar_detection_event" has an unused field "chan_freq".
It currently holds the value of primary 20MHz channel. With the
introduction of 11BE chipsets, this field is changed to hold the value of
the center frequency of the channel width on which the radar is found.
This new change is indicated by a wmi service
"wmi_is_radar_found_chan_freq_eq_center_freq".
For the Chipsets that support this service, the radar found frequency
can be calculated by mere addition of the fields "chan_freq" and
"freq_offset" field.
Change-Id: I8d2ce0023e2feb6e749ca8d7d5f547fafc0fdf98
There is a requirement to use REGDMN and wireless modes in UMAC layer of
the cmndev component. As the WMI_HOST_REGDMN modes currently are defined in
WMI layer, we can't use them directly in the UMAC layer. Hence move them
to the reg_services_public_struct.h and rename them as HOST_REGDMN modes.
Replace all WMI_HOST_REGDMN instances with HOST_REGDMN. Wireless modes are
currently defined in WIN component, use them to cmndev component.
CRs-Fixed: 3044590
Change-Id: Iee5fa1745a1a44b834334746b10bdbb6f6563a0a
wmi_unified_register_event has a return type of QDF_STATUS.
Handle the same return type in the following callers:
1. target_if_dfs_reg_ocac_event
2. target_if_dfs_reg_offload_events
3. target_if_reg_phyerr_events_dfs2
Change-Id: I622f6f6c4ff3b428a6407b6526e823083cc1fd8a
CRs-Fixed: 2767507
An extension of preCAC feature is Rolling CAC. The distinct difference
between these features is that the FW runs the off channel CAC
timer for a "finite" time for preCAC and runs the timer for "infinite"
time on an off channel. Hence the infrastructure built for
preCAC feature is being modified to accommodate RCAC feature as well.
Following are the modifications done:
1. Add an enum to represent various off-channel CAC modes.
2. Remove the 'static' declaration of few APIS so as to re-use them.
3. Add 'dfs_rcac_ch_params' to DFS PDEV object to store the RCAC
channel params so as to use the channel params after radar detect.
4. Rename DFS APIs to match its functionality.
CRs-Fixed: 2670419
Change-Id: I0bf0d33955706941cffb4e9cf6fcebfb465a6c74
The FW has updated the wmi command wmi_vdev_adfs_ch_cfg_cmd_fixed_param to
configure the Agile channel to enable the 165MHz channel as an Agile
channel by enabling 2 center frequencies.
For a 160MHz and 80MHz channel, the parameter center_freq1 will be the
center of the respective channels. For the 165MHz channel(restricted 80p80)
the parameter center_freq1 will be the center of the left 80MHz channel
(5690MHz) and the parameter center_freq2 will be the center of the right
80MHz channel (5775MHz)..
Update the ADFS parameters across UMAC, TARGET_IF and WMI layes to
update the Agile channel configuration command.
Change-Id: Ie480af9a6bb8dad87dd783ab06e17b449605b1c9
CRs-Fixed: 2642555
Initial changes for ipq5018 compilation.
Added device ID and target type checks for ipq5018 traget.
Change-Id: Ib86a371fbe66749fcb6d114e7a4a9931b684e03d
Enable configurable dfs_pri_multiplier. The ETSI typ2 type3 radar
detection ratio is lower than expected(>80%) while channel loading is
high(>30%). The host improvement for this are:
1. Add configurable dfs_pri_multiplier, controlled by
DFS_PRI_MULTIPLIER. Default value 2, min 1, max 10.
2. Lower adrastea ETSI type 2/3/4 radar filter rssi_threshold,
controlled by DFS_OVERRIDE_RF_THRESHOLD, dfs log shows that
QCS405 target report RSSI range [18, 45] while radar power
is 3 dbm. By using default rssi_threshold 24 will reject
many radar pulses, which leads to low detection ratio.
3. Calculate deltapri for each searchpri based on dfs_pri_multiplier
in dfs_count_the_other_delay_elements(), check deltapri
between [1, dfs_pri_multiplier] * refpri and searchpri, if
the primargin is desired, mark it as matched pulse.
4. Pick lowpri as refpri for the radar filter with
rf_ignore_pri_window equals to 0 while DFS_PRI_MULTIPLIER is
enabled. Observed original findref logic has some problems
which selects refpri is bigger than lowpri, which leads to
the lowpri pulses pri_match are set to 0, and in this case,
radar was not detected. Example for the issue, assume
rf->rf_pulseid 34 (ETSI type 2) has 7 pulses with pri:
1489, 2978, 2978, 2978, 1489, 2978, 1489 us in this case,
highscore is 4 (2978), scoreindex is 5, refpri is 2978, which
leads to: index 0, 4, 6 pulses with pri_match 0 in
dfs_count_the_other_delay_elements(). The fix is to select
lowpri as refpri(1489 in this case).
Change-Id: I1f3ca3298c9ab1f1e2651ad6b4a0a4810f83f8a1
CRs-Fixed: 2531811
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
Use proper macro instead of config_mcl to compile
the API target_process_bang_radar_cmd.
Change-Id: I3a2fca998d69f2a29243b9ecd2a290af9602d6c2
CRs-Fixed: 2490649
Add changes to remove usage of void pointer for wmi_handle
Instead use an opaque pointer(set 2)
Change-Id: I06a89adaf15c6b398dbc901518aa83927b7ca16a
CRs-Fixed: 2479298
Add target specific HW header for ipq6018 compilation.
Remove the 8074 header dependencies for 6018 compilation.
Change-Id: I8e45e3e039a4596c6722538405dcd381918fa6b1
Change I498ac1f8cd1d6423032d7b3b8c233656c5f0bf22 ("qcacmn: Have separate
macros for DA/PO/FO to reduce the code size") introduced featurization of
the DFS logic. Two functions, target_if_dfs_reg_offload_events() and
dfs_fill_emulate_bang_radar_test(), were not correctly featurized,
resulting in compilation failures when WLAN_DFS_FULL_OFFLOAD is not
enabled. To prevent these failures properly featurize the functions.
CRs-Fixed: 2366596
Change-Id: I4bcecf95d92cb3ebe2ff893c17755385dda11429
target_process_bang_radar_cmd should be defined with meaningful body only
when WLAN_DFS_FULL_OFFLOAD is defined.
This is for CONFIG_MCL cleanup
Change-Id: Id038231e6aa967c68674f40ef4247ac023313b71
CRs-Fixed: 2411981
A few instances of violating "Block comments should align the * on
each line" have been identified in target_if/dfs, so fix them.
Change-Id: Ic198912225b8bec587e30d00d7a2a5f76e03d366
CRs-Fixed: 2359528
Introduce dfs_tgt API to send the WMI command to enable/disable
"Subchannel Marking" in Firmware (only in Full Offload)
Change-Id: If739409521c8704b612e52dfc8ed6b86ffe32bca
CRs-Fixed: 2334258
In target_if_radar_event_handler, target_if_dfs_cac_complete_event_handler
& target_if_dfs_radar_detection_event_handler wmi_handle is derived &
dereferenced with out a NULL check. Add a NULL check for wmi_handle
before it is dereferenced.
Change-Id: I6dde5132a6a2e31a25654bd818a90e1c164a4a74
CRs-Fixed: 2305505
Currently if ini config dfsPhyerrFilterOffload is set zero on Rome
attached Platform, wlan interface will fail when do interface up.
This makes no sense, since ini configure can be set to zero, also
in this case host can handle the phyerr event instead.
Remove this check in target_if_reg_phyerr_events_dfs2.
Change-Id: Ie33072c8d40925eb550bd820462fc9ab93f0e0c0
CRs-Fixed: 2286382
Replace functions with ucfg as prefix in init_deinit_ucfg file with lmac as
prefix
Change-Id: I90d77dd5ddae4854ea68eeb67dc1b4fc356c2fe3
CRs-Fixed: 2182449
Void pointer usage may lead to memory corruption due to
wrong pointer is typecasted. Hence define structure for all, and modules
internally typecasting based on their type
Change-Id: I6271ed8aa3f94254fd85f41962f23ea36895154e
CRs-Fixed: 2182452
Since, an AP may have any combinations of DA,PO, and FO chips on it,
having support for all chips always is redundant. Therefore, enable the
chip specific code as and when required.
DA:- Direct attach
PO:- Partial offload
FO:- Full offload
WLAN_DFS_DIRECT_ATTACH :- enable/disable DA specific DFS code.
WLAN_DFS_PARTIAL_OFFLOAD :- enable/disable PO specific DFS code.
WLAN_DFS_FULL_OFFLOAD :- enable/disable FO specific DFS code.
Change-Id: I498ac1f8cd1d6423032d7b3b8c233656c5f0bf22
CRs-Fixed: 2199819
Currently dfs offload command is sent during event registration
when psoc object is created. Dfs offload command is sent by accessing
pdev object, as pdev object during this time may not be created
or maybe in logically deleted state and sending command may fail.
This failure may cause wifi_dfs_psoc_enable and thereby effecting
other module objects.
To fix this, avoid using pdev objects during psoc enable, and send
pdev object specific command when pdev is created.
Change-Id: Ia10d493267259d0fbd918453e532b4f244029163
CRs-Fixed: 2179845
DFS capability was not set properly for Partial-offload(PO) and
Direct-Attach(DA) radio. Thus radar detection failed.
Change-Id: I5493d7195a57f160792a411653c05bbf220d3561
CRs-Fixed: 2160418
Currently DFS object can only be allocated if radio supports 5G.
Rome supports 5G and saves its wireless_mode in hal_reg_cap of
psoc->service_param because Rome FW does not support wmi event
wmi_service_ready_ext_event_id.
Check wireless_modes based on different DFS_SUPPORT.
Change-Id: I0120dde4fcf47bd71f6da512fae64dd62f5f46c8
CRs-Fixed: 2179925
Currently WMI handler for WMI_PHYERR_EVENTID is used to handle DFS and
spectral scan phy errors; but Rome FW still uses WMI_PHYERR_EVENTID
and WMI_DFS_RADAR_EVENTID and does not have spectral scan phy errors.
Restore WMI_PHYERR_EVENTID and WMI_DFS_RADAR_EVENTID as Rome FW
requirement.
Change-Id: I7a5c4f723bedfdeb477ac36ac1290809ca06fb13
CRs-Fixed: 2160418
DFS is applicable only for 5GHz radio. Therefore, do not
allocate DFS object for 2GHz radio.
Change-Id: I5e8aec0c876e7862890fae689950bfbb4eae5255
CRs-Fixed: 2153493
Add support for bangradar command to send unit test command
to firmware as a hook to simulate radar injection
Change-Id: Ieaa7eab6d452ab864a10beca1478d0e61d605107
CRs-fixed: 2113724
soc level pdev id changed from zero to WMI_HOST_PDEV_ID_SOC (0xFF)
change pdev id in wmi_unified_dfs_phyerr_offload_en_cmd call
according to new definition.
Change-Id: I3c55dc8821c4186190515564b00f54f2427d5702
CRs-Fixed: 2090282
Remove vdev/peer locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.
Change-Id: I9972d51dfd1a42bdedbfd0fd4e67af03d030a1f5
CRs-Fixed: 2060880
Remove psoc/pdev locks from trivial API's. This follows the changes from
which the lock requirement from few simple APIs are removed.
Change-Id: Ib5769c2234c8d57f485c0eef5a4e3c61fa170508
CRs-Fixed: 2060880
Add a new target_psoc_info structure in the target if layer with the
following members
wmi_handle
target_type
target_version
target_revision
Also update the psoc data member tgt_if_handle to point to target_psoc_info
instead of pointing to WMI handle directly.
Updated all calls to psoc_get_tgt_if_handle to target_if_get_wmi_handle
which inturn calls psoc_get_tgt_if_handle and getting the tgt_if_handle
returns the WMI handle
CRs-Fixed: 2048277
Change-Id: Icb02d5f3c09f7f9bb7eff4d814ef3ce90ddb84bd