Added new APIs ce_batch_send and ce_send_single
only used by WIN.
Acked-by: Varsha Mishra <varsham@codeaurora.org>
Change-Id: I55d86d692455be118734f6e0a13e0e58c227b1a0
CRs-Fixed: 1009050
MAX_NUM_RECEIVES, the maximum number of messages to be processed
by the bottom-half before control is returned to kernel was
defined as different (but close) numbers for NAPI and non-NAPI
cases (based on NAPI feature flag), 100/1000 for non-NAPI and
128/1024 for NAPI cases.
With this update the value is set to 128/1024 regardless of NAPI
feature being compiled or not.
Change-Id: I152afd30b302d52426c07ae39a95af388ba0ae52
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
CRs-Fixed: 1012336
If lro_disable is called after cds_close, which is the case
for module unloads, then many of the pointers used in dereg
sequence are NULL (CE_state, hif, txrx_pdev). There is a case,
when interfaces are removed, when these pointers are there.
Check pointers before using them in dereg code.
Update hif_map_service_to_pipe so that it will return E_INVAL if
the service is not in the table. Add logs for cases where either
leg information is not updated on return.
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
Change-Id: I5b88a297134dcc1d7a6a68dd2a9879dfd1553a7e
CRs-Fixed: 1014428
Shadow registers and DDR are not guaranteed to reflect
the actual copy engine register values before transactions
are performed.
Also adds debug code to verify that the register values
make sense.
Change-Id: Ied0352638765571545f92b2e0dc18b4ca7a399a7
CRs-Fixed: 1012744
Increase the CE ring that is used by firmware for HIF memcpy.
Increase the size to 0x4000
Change-Id: I8a71c795469b7cd51c3c2609a8e22a3b19ab7e77
CRs-Fixed: 1006872
Fastpath & napi did not have CE event recording.
This is a vital debug feature.
Change-Id: I73118f4fa5177158d6d489ea5b9ebf82f05c1229
CRs-Fixed: 1009273
CE_COUNT_MAX should be the maximum number of CE's supported.
Set it to 12 to support all chipsets dynamically.
Change-Id: Id65278ee452a4ca2e3b0dcfe5c082a7e7a286347
CRs-Fixed: 1002084
Use QDF macro to check if we are in epping mode.
Hardcode the ce engine to use interrupts in
epping mode.
Change-Id: Ie58c2efffdced03f24905469319eabc0af4ed228
CRs-Fixed: 1003792
A definition of cnss_wlan_pci_link_down in a header file
did not have the static keyword.
Change-Id: I701682486a8db2c0cfce839706aacb85757df616
CRs-Fixed: 1003817
icnss_dispatch_irq is a stub for a non-existent function.
Make a pci function that doesn't use a global data structure.
Change-Id: I636d59cb465acf1366269d96a5dcacf910f8d78c
CRs-Fixed: 1002083
Remove interupt enable/disable at group level since
in register set 81, these registers are not provided.
Don't enable/disable the ce irqs at the qgic
since the interrupts are edge driven, enabling and disabling the interrupt
in the qgic should not be necessary. Also remove an unneeded read
of a status register.
Change-Id: I2c20ea26c23dc672697d53cd5433d855d9332b13
CRs-Fixed: 997176
Update htc_endpoint only for htt tx endpoint to avoid
double freeing of Tx Queue packets as it will be
freed in htt_htc_misc_pkt_pool_free.
Rename htc_endpoint to htc_htt_tx_endpoint to reflect
it's appropriate use.
Change-Id: I736ba08505acc829eb15be30538553dd945695f6
CRs-Fixed: 1006498
WLAN host driver is not using correct API to allocate 2 MB shared
memory for FW when QMI by pass is enabled. Use proper API to
allocate 2 MB shared memory for FW CE access.
Change-Id: I7efa4be2e703b32dc86fd660640881afa4ce2bcd
CRs-Fixed: 999278
Enable HTT_DATA2_MSG_SVC and HTT_DATA3_MSG_SVC, using only
rx legs, CE 9 and 10, respectively. Add required CE entries
to the map that gets sent to the FW, and define the latter
service.
Rename htc_endpoint to htc_tx_endpoint in htt_pdev to
represent the role better.
Acked-by: Orhan K AKYILDIZ <oka@codeaurora.org>
Change-Id: I81ae796bdb7e632aa24f15c63a2811791dd29d28
CRs-Fixed: 982728
If there is rx pending, the per_engine_service caller should
not reenable interrupts. If the caller does propper interrupt
mitigation, it will not enable interrupts, and the register
write is wasted. If the caller does not do interrupt mitigation,
leaving the interupt status will prevent stuck packets.
Change-Id: I7a6315d3f0f3ade1b2d51ce15fab931a4864e643
CRs-Fixed: 998319
Use the rx_pending flag to determine if there is more work.
hif_napi_poll should not rely on the amount of work done
to determine if there is more work to do.
Change-Id: Ibf83cfb8f9aed6fdc3400b6a6945156283f56485
CRs-Fixed: 998319
With more copy engines, the diag ce was not moved to the end.
The diag_ce was being assigned a null value from the unitialized
index.
Change-Id: Ib0fc6450712af2dc5e38f00bb692cfb26982ddae
CRs-Fixed: 997175
QDF_FTM_MODE is deprecated. QDF_GLOBAL_FTM_MODE is the enum for the
ftm driver mode now.
Change-Id: I8783fb2d3748ed08995b3b13eaf69a7a1c40c22b
CRs-Fixed: 991822
Do following cleanup on fastpath code changes:
1) Do not reap off Tx HIF buffers in Rx handling, instead handle
reaping in Tx fastpath itself.
2) In ce_per_engine_service_fast check for more Rx packets after
packet processing.
3) Make stub functions as static inline for non-fastpath enabled case.
Change-Id: If07c4344a424ce13b94128bf28931a24255b661a
CRs-Fixed: 987182
With dedicated CE for Rx and Tx completion HTT messages, skip processing
in Host Target Communication layer.
Do special handling in HIF-CE and HTT layer, this optimization results
in 3-4% CPU utilization gain.
Change-Id: I400148a0e24ac62dd09e2a95d5f35d94d83fe2df
CRs-Fixed: 987182
Make changes so that LRO and FastPath can check whether a
given CE is a datapath RX CE. This is done through new
flags in CE_state which indicate whether or not a given
CE is a htt_[tr]rx CE.
Also add support to enable multi-queue NAPI.
Note that the paths are not yet parallel-execution protected,
but this should be OK as all NAPI instances are processing
the same interrupt now and as such as serialized.
Acked-by: Orhan K AKYILDIZ <oka@qca.qualcomm.com>
Change-Id: I57125b3e1fbad0345b6e1f4ed25e71babaf4f520
CRs-Fixed: 982728
Bypass QMI for 8998 RUMI bring up as it doesn't support
QMI for now.
Increase regulatory timeout for slow RUMI setup.
Change-Id: Ie4d790a79aaa166731c876bdecf0f4f6970caae4
CRs-Fixed: 978953
hif_disable_power_management is only defiend for PCI devices which is
causing compilation error for SNOC devices. Define empty definition of
hif_disable_power_management for SNOC devices.
Change-Id: I4da5e2346119626fd6478d3eb835bcb1ba9dd663
CRs-Fixed: 978810
hif_enable_power_management is only defiend for PCI devices which is
causing compilation error for SNOC devices. Define empty definition of
hif_enable_power_management for SNOC devices
Change-Id: If6a4de93d18e8c5ca2a67f43a0eae69e781efa68
CRs-Fixed: 978802
qcacld-2.0 to qcacld-3.0 propagation
Add prevent method to reset the Runtime PM state before driver
unload to ensure Runtime PM is recovered by driver load.
Change-Id: I5fccc345e5217d1a26c3c4f0cda1dca5ee71004c
CRs-Fixed: 899522
Bus power management requirements are different for different busses.
Add them to the bus opps table.
Change-Id: Ia5a2500dc2f1db3be2ddbbaea6a5969420ec0c51
CRs-Fixed: 978810 978802
In data path per packet logging is overwriting previous useful
logs. Use HDD data module ID for WMM per packet logging with
debug log level such that by defualt per packet WMM debug log
messages are not logged.
Change-Id: I64053a6d5048a14277e01f35fcb6e0bbf6ac42b9
CRs-Fixed: 969712
Rename hif_callbacks structure to hif_driver_state_callbacks and remove
get_monotonic callback and use qdf API to get monotonic time.
Remove following unwanted header files in the hif source files.
osdep.h, athdefs.h, a_types.h, osapi_linux.h.
Change-Id: Ib7a03cab1b056a33b39247989fa3dfca41c85f77
CRs-Fixed: 967765
Allow different busses to have different register sets to dump
in case of a crash.
Change-Id: I2b0665f276594dfb29ca34fe3f363c2f414cd2e7
CRs-Fixed: 986480
Since the open logic needs to allocate the bus context
before initializing the bus ops table, we need a single
function that is aware of the bus context size for all
busses.
Change-Id: I681e91ed1a792da7e753b477f869ee415ea8f3c7
CRs-Fixed: 986480
Duplicate deffinitions of hif_get_target_type prevented compilation
of snoc and pci functionality at the same time.
Change-Id: I44cdca79c6f296c4294a54a4e1bfb459a519f46b
CRs-Fixed: 986480
Pointerizing these apis is easier than removing external
references or unifying them. Support multibus by
pointerizing them.
Change-Id: Iab86adf2076a082b75d9ba393123798e16f5b82e
CRs-Fixed: 986480
Macros should not alter the execution of function bodies.
Fix possible memory leaks that this cleanup exposed.
Change-Id: I546c5822d7c28e0c9dd77094a5bb0f7e3e7544d4
CRs-Fixed: 986480
A_TARGET_ACCESS_BEGIN_RET hid nonsensical return values.
Replace nonsensical return values with sensible ones.
In many cases, the returned value is changed and not
just renamed.
Change-Id: I8bf1d4a44d4ebd76e3aa60bc4d24416ce0d45d61
CRs-Fixed: 986480
Epping mode is a test mode and wants the target to be forced
awake at all times. The sleep state adjust calls to keep
the target awake while the driver is loading and to keep
the driver awake in max perf mode are converted to the
pci specific function so that they won't get dummied out.
This fixes the logic for MAX PERF mode by avoiding the dummy
for the keep awake call and correctly avoiding the sleep ok
call when power management is re-enabled after driver load.
This removes a discrepancy where some sleep state adjusts
were missing the epping mode check. (Q_TARGET_ACCESS_BEGIN...)
Change-Id: I4e546f12703bcee21a76f42c12b59dd7fd1ab1a9
CRs-Fixed: 986480
Sleep state adjust has been added the the bus_ops table and the
macros using it can be unified.
Change-Id: Ib788800c83457919ae7eee01f6687cbb57c84a4b
CRs-Fixed: 986480