Add QDF APIs for DMA buffer allocation and sharing with SMMU
Stage 1 translation support. When SMMU Stage 1 is enabled,
DMA APIs return IO virtual address(IOVA) instead of physical
address. This IOVA needs to be mapped to physical address by
external module before accessing these buffers.
Change-Id: I88e938d8ebe1f32fdea79e3c3aa8a3638ddfd2b8
CRS-Fixed: 2072953
Depending on platform limitations and the intended audience of a
particular WLAN driver build, it would be useful to be able to compile
out specific logging level logs completely. To that end, introduce
per-level logging wrappers, which can be compiled in or out by the build
configuration.
Change-Id: Ie062ada403f8a31aebcde691396987ad9e5352b5
CRs-Fixed: 2205888
QDF_TRACE_RATE_LIMITED() currently rate limits by only printing every
rate'th call to the function from the same location. Instead, prevent
logging messages more than some constant 'k' times per second. This
means any subsequent calls to the API from the same location within 1/k
seconds will be dropped.
Change-Id: I31a3f48f68fb6bc67f59f3157a635345943d3331
CRs-Fixed: 2205794
We need to free the chain of nbufs associated to
an a-msdu if its last msdu is not received and the one
received belongs to a new a-amsdu
Change-Id: Id90e58306650ad885caa79271e81de3bf81ee5bd
When P2P mgmt frame comes and there is same channel ROC requested
but not start, it will be failed to restart ROC timer and then drop
this frame.
Change-Id: I40cc2b66a266ebf2aa1017669e6d97b1c7de3da1
CRs-Fixed: 2202954
Duplicate for MGMT frame tx ack comes before scheduler process first
one, then it will use freed memory. Add flag to avoid this case.
Change-Id: Id50f692ced0ddd5b267d096818f3e7ff12bf07aa
CRs-Fixed: 2188110
Use proper macro to check if channel is 5Ghz while calculating the
band scoring logic for 5Ghz channels.
Change-Id: Ib394f3ed0db6c64286a44b15c38fa3ffdcf8bdfb
CRs-Fixed: 2205658
Do not send phyerr filter offload to FW when dfs module is doing
initialization, because in target_if_dfs_set_phyerr_filter_offload
routine GET_WMI_HDL_FROM_PDEV returns NULL at this time.
Configure phyerr filter offload before sap starts.
Change-Id: I60436fc1e142937383a3714c727166bc5fa8d0db
CRs-Fixed: 2204683
One of 11ax WFA PF requirement for testbed AP is disabling AMPDU
reception with AMSDU. To meet this requirement we should be able
to add a new feature ext flag to vdev. Add this new flag to meet
the specified requirement.
Change-Id: I36c889e6adf1724a31b404a917bd27c716a98862
CRs-fixed: 2201952
Add new rx function pointer for connectivity stats
as part of ol_txrx_ops structure.
Change-Id: I91300de995b20e5dfc2c85c780453e63ea14ec93
CRs-Fixed: 2168412
Firmware is not sending peer delete response, so peer is stuck
in logically deleted state for longer duration.
Maintain list of logically deleted objects (psoc/pdev/vdev/peer)
and iterate it periodically to identify if any object is stuck
in logically deleted state. If it is stuck, print object type
and MAC address
Change-Id: I16bdd49e2956bb0c34189a6ee540d7d0bae91202
CRs-Fixed: 2159522
Add an API for inserting new scan node before duplicate node
and modification in API to flush oldest entry in SCAN database.
Change-Id: I76018c994ad16f7fb1e52bceafacd82f78f756e5
CRs-Fixed: 2168481
Avoid monitor procees starvation by moving monitor interrupts to
a separate interrupt group. Currently these are part of regular
data ring interrupts, and are not being handled sometimes with
DBDC peak throughput, causing ring stall assertion failure in target.
Change-Id: I51d72187c68922de582be0a9da8e191e0e3c7bcf
Debug fs create failure should not fail wifi turn on. Add logic
to allow wifi turn on even if kernel debug fs create API returns
failure.
Change-Id: I686362340d9ef0268ca7587ad30c726c33f1c427
CRs-Fixed: 2203330
Modify arguments of wmi_unified_attach to use struct to
send attach params instead of individual params. Add max
WMI commands as a param. Based on requirement MAX WMI
commands value is different. In case of AP that supports
16 VAPs and more than 512 clients, 1024 commands is not
enough. Use this param to configure this value based on
the requirement.
Change-Id: I4e778475481e509051dfbac70980614b644e1b4a
CRs-fixed: 2034438
The WMI_MAX_CMDS macro was defined in wmi_unified_priv.h, move it
to wmi_unified_param.h so that it can be used to set
wmi_unified_attach_params.
Change-Id: I33aaa3c1fb189c7ef660ccbc5262afd0a1ee258b
Firmware recently exposed two new resource config fields,
num_packet_filters, and num_max_sta_vdevs. Add these fields to the
host-side resource config struct so appropriate values can be populated
and communicated to firmware.
Change-Id: I951ba6ac929c38c2d78af6705f4922b62fc7d3a1
CRs-Fixed: 2201876
Remove ast entry from the previous peer ast_list and add it to the
new peer ast_list when ast_update is called
Change-Id: Ic6e628ec2c225e6743d042fe3f3e227cb1864a3c
Handle mpdu data pointer for PMF frames based on EXT IV bit only
if the buffer length requirement is met
Change-Id: I0243105846b1cffc43b87cdcb84c265b216e2e5a
CRs-Fixed: 2202912
When reaping rx monitor msdu in dp_rx_mon_mpdu_pop, if msdu_ppdu_id >
ppdu_id, then the corresbonding dp_rx_desc will not be added to free list,
and in_use flag still is 1 but it has done nbuf unmap which linked
to this rx desc. meantime, if rmmod triggered then it will go through the
rx desc pool and unmap the linked nbuf that in_use flag is 1, panic
happened. add unmapped flag checking to avoid double unmap.
CRs-fixed: 2201071
Change-Id: Idead32b189f513897deebf646b72585b257151c2
The ucast_sig and bcast_sig fields in struct tdls_add_sta_rsp date
back to a previous version of the driver that used these signatures to
synchronize the data plane with the control plane. However the current
version of the driver does not use these parameters, so remove them as
the final stage of the plan to completely remove these signatures from
throughout the driver.
Since the converged struct tdls_add_sta_rsp must exactly match the
legacy tSirTdlsAddStaRsp data structure, this change is co-dependent
with the qcacld-3.0 change:
qcacld-3.0: Remove DPU signatures from TDLS Add STA Response
Change-Id: I765b090fc5dbe9bdaf83b05a72223c0a12f71a18
Change-Id: I7750fac9e4870d75358606bea427a5dbab97c665
CRs-Fixed: 2200973
add the nbuf map result checking when replenish rx
nbuf to monitor status ring, this could avoid the
case nbuf map failed and invalid dma address
posted to HW or do unmap for unmapped nbuf.
Change-Id: I45cfc015f71a2d7295f7fcb4803bd6e68e2752d4
CRs-Fixed: 2182546
Change the pdev mgmt drain to vdev mgmt drain.
The pdev drain function drains packets of all vdevs, which causes
an issue with backlog queues maintained for each vdev.
vdev level drain will help to support per-vdev queues that are
maintained out side the qcacmn module.
Change-Id: I78c58e8e12299eb7754f171f2c70291068871b03
CRs-Fixed: 2197254
After profiling many iterations of several driver operations, the
observed absolute maximum number of queue scheduler messages was 452
during soft AP startup. Typical maximums for this test case are less
than 100, occasionally getting as high as 250. The median for all of
the driver operations in general were in the range of 1-2. Given this
information, a round number around twice the worst case rate was
picked.
Reduce SCHEDULER_CORE_MAX_MESSAGES to 1000, down from 8000 for MCL.
This saves a significant amount of unused statically allocated memory.
Change-Id: I6ef65db84ca524cea68afbc3bb49347c6d996992
CRs-Fixed: 2202692
Disable HTT_PPDU_STATS_TX_MGMTCTRL_PAYLOAD_TLV for Pktlog
Tx path for MCL only as it is currently a requirement
for WIN to keep it enabled.
Change-Id: If162384783139613f1bdad1d3820288a7887286d
CRs-Fixed: 2182626
Currently, the chan_flags in master_list does not reset.
So when changing the country code, the previous counry
code's chan flag will pollute the current country code's.
Change-Id: Idb7bbb2a216a8d756ddcfd2edb090807f098fadf
CRs-Fixed: 2199920
In WMI struct target_resource_config is obsolete and outdated.
Correct resource config struct is target_resource_config hence
remove the obsolete and outdated struct target_resource_config.
Change-Id: I23aeb46854008dabad4ece953c6eb2c151bedac0
CRs-Fixed: 2202520
Change "qcacmn: Remove obsolete TDLS peer callback interface"
(Change-Id I32bb1f633b1dd1514aa6e4c3fdea044b3bca0009) removed the
obsolete logic that utilized the TDLS signature field, so remove all
remaining traces of it.
Change-Id: I731c81a0b1f7e5d885cfa18a551ad0d3af3cecbe
CRs-Fixed: 2200972
Change "qcacmn: Introduce new versions of TDLS peer callbacks"
(Change-Id Id4ea23266b0f3e1480b645c5afce6c17585ccb46) introduced a new
interface which removed an unused parameter and changed obsolete
naming.
Subsequently change "qcacld-3.0: Use new TDLS peer callback interface"
(Change-Id: I5c4684ac0a62f314da26f92ece2c9a9874d63634 in project
qcacld-3.0) updated the only registrant to use the new interface. Now
that the old interface is no longer being used, remove it.
Change-Id: I32bb1f633b1dd1514aa6e4c3fdea044b3bca0009
CRs-Fixed: 2200971
Register fw down legacy callback with QDF such that new UMAC
components can call QDF API to check if fw is down or not.
Change-Id: I8d68cb7625fd75aa90ba09adfe13955c5418b54f
CRs-Fixed: 2202605
Add linked list logic to hold all ppdu descriptor status in a list till
all TLVs have been processed
This design handles asynchronous arrival of tlvs from fw per ppdu
Change-Id: Ib8943d7c826c0b441f58f0eaba7ae0bdc0539d9a
Currently variable "tid" is from message, which is used
directly as array size which causes buffer over-write.
To address this issue add check for the array size.
Change-Id: I61ffaef69d97936774d89ee4e745ab509d77adb5
CRs-Fixed: 2200862
The parameters to function typedef tdls_register_tl_peer_callback()
currently includes ucastsig. This "unicast signature" parameter dates
back to a previous version of the driver that used signatures to
synchronize the data plane with the control plane. However the current
version of the driver does not use this mechanism, so there is a
desire to remove this parameter from the callback.
In addition both typedef tdls_register_tl_peer_callback() and typedef
tdls_deregister_tl_peer_callback() suffer from poor naming since the
"_tl_" in the names refers to a datapath component that was present in
an older version of the driver but which is no longer present.
Therefore introduce a new version of these typedefs with better naming
and which removes the ucastsig parameter.
Use temporary conditional compilation to allow support for both the
old and new interfaces until such time as all registrants have
converted to the new interfaces. This is part of the plan to
completely remove the obsolete unicast and broadcast signatures from
throughout the driver.
Change-Id: Id4ea23266b0f3e1480b645c5afce6c17585ccb46
CRs-Fixed: 2200931
Change object manager trace level to ERROR, move few
debug prints to obj_mgr_warn
Change-Id: Idc8943badb524c52694df18b035c9fc91c097e3a
CRs-Fixed: 2195292
Part of the scheduler component has been migrated to the new sched_*
logging wrappers, but part of it still remains to be ported. Finish
migrating all of the scheduler logging APIs.
Change-Id: I5065d849a1523d6c27d6c6a27b1ad4605036c3e6
CRs-Fixed: 2201038