| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To fix the following compilation error:
warning: assignment discards ‘const’
qualifier from pointer target type, at:
reg_table->section = ar6320v2_reg_table
in ol_fw.c.
It's because the register table is a
const array, while reg_table->section does
not point to a const.
So add 'const' for 'section'.
Change-Id: Idfef358817241e73d660d2730b74c2ca88e23af1
CRs-Fixed: 2017786
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When bufs needed to post in a CE ring reaches (max no. of entries - 1),
assert happens to print the dumpstack in kmsg. Once this condition is
reached, a work is scheduled to recover CE from this OOM condition which
tries to post buffers in CE. If buf posting fails again, assert will happen
and work will be scheduled again. So, if system is in low memory situation,
then buf allocation and posting will fail leading to assert and work
scheduling again and again in a cycle. Due to these continuous dumpstacks
in kmsg as a result of QDF_ASSERT(), watchdog bark is happening.
Remove QDF_ASSERT from hif_post_recv_buffers_failure() as suffcient prints
and history is present to indicate the situation and so there is no need of
any kind of dumpstack in kmsg.
Change-Id: Ib8bafb9a9fe45c62a15c45fa8a610da2074e058c
CRs-Fixed: 2021793
|
| |
|
|
|
|
|
| |
Move the logs to appropriate log levels to reduce the log spam in kmsg.
Change-Id: I3b759274d8e4bad13f4390fd906ec487ad5cbd1e
CRs-Fixed: 2019280
|
| |
|
|
|
|
|
|
|
|
|
| |
The hif_napi_info structure has a dummy netdev included.
The dummy netdev is large. Avoiding unneeded allocation
save 30kb of memory. Dynamically allocating the
hif_napi_info structures also reduces the size of
the contiguous memory needed for the parent structure.
Change-Id: I58044e5b1d0a834b3b6d17f66d6f4b2462873f2a
CRs-Fixed: 2016355
|
| |
|
|
|
|
|
|
| |
Fix CE full error when only legacy hif_send_head api is used on a ce configured
to use the fastpath logic.
Change-Id: I59530a0e5ff8b62a1b97007dcd959daa03025785
CRs-Fixed: 2018893
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
In hif_napi.c, we are calling this kernel API core_ctl_set_boost. This
API is only present in the kernel if the feature CONFIG_SCHED_CORE_CTL
is present. In case the feature is not present in the kernel, it will
result in a compilation error.
Create a new internal API hif_napi_core_ctl_set_boost as a wrapper
around the kernel API. The new API is stubbed in case the kernel feature
is not present.
Change-Id: Ia52f1110304816670efe3480da3aa78d7b2ecb9e
CRs-Fixed: 2018089
|
| |
|
|
|
|
|
| |
Move the logs to appropriate log levels to reduce the log spam in kmsg.
Change-Id: I29121bb4cc1272aa1fb88183914530dd21c64272
CRs-Fixed: 2017427
|
| |
|
|
|
|
|
|
|
|
| |
In one log the rx ring is depleted in 2.4 seconds
durring a prolonged period of memory contention.
Double the rx ring size to allow 5 seconds before
the wmi ce is oom.
Change-Id: I2e9a6caeee10f317bd3d70b770fcae3ad2d96623
CRs-Fixed: 2015778
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In oom condition, when an rx ce is oom, the ce would
deadlock as the hw couldn't copy any messages (due to the oom)
and the sw wouldn't initiate a pipe refill without a new message.
When this happens submit a work to a workqueue to try and kickstart
the cycle by allocating an nbuf and posting it to the ce.
Change-Id: I047818145dbe230fefc447b6b034705f9b87ca70
CRs-Fixed: 2015778
|
| |
|
|
|
|
|
|
| |
Add "static" before some functions which only be used in 1 file and
remove some unused functions to resolve compilation error.
Change-Id: I5bf80fe2e124bf4258c9bfdc997a5423773ca474
CRs-Fixed: 2010227
|
| |
|
|
|
|
|
|
|
| |
Make it easier to identify when nbuf allocation starvation
in hif is the root cause for a crash, by adding events to
the hif_ce_desc_history buffer.
Change-Id: Id3b919f17ee79770f5fa81b389f9a28a0670cfa2
CRs-Fixed: 2011015
|
| |
|
|
|
|
|
|
| |
The use of these static variables could lead to an skb
double free.
Change-Id: I42ebff2c5a713350922e21f4d581c3b8935507e3
CRs-Fixed: 2011773
|
| |
|
|
|
|
|
|
|
| |
IPA team wants to allocate more buffers and the IPA ring
should be able to hold them all since ipa doesn't have
an error path when the copy engine is full.
Change-Id: I30b8970ce59c7eb4e6a38170a56d6e00e88737fc
CRs-Fixed: 2011766
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Analyze the critical section of the runtime PM feature
and replace the spin_lock_irqsave with spin_lock_bh.
Disabling the IRQ and usage of spinlock for runtime PM
debugging, logging and warning feature Is not required,
remove the usage of spinlock from this context.
The runtime PM APIs which is used for the prevent/allow
runtime PM suspend /resume can be use spin_lock_bh instead
of spin_lock_irqsave. For the runtime PM APIs add check point
to identify the IRQ context, If the runtime PM APIs calling
from IRQ context report WARN_ON for debugging purpose.
CRs-Fixed: 1112447
Change-Id: If06970c6ac610a0128344e8c25a9cdd57b2542a3
|
| |
|
|
|
|
|
|
|
|
| |
Failed to open sdio bus for HL target, due to
missing of 'break' in 'switch' case.
Add 'break' for QDF_BUS_TYPE_SDIO
Change-Id: I0d43a61c89828f76223c9f95f4de41a76381c7bb
CRs-Fixed: 2004349
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
In case of IPA hw version less than 3.0, only 32 bit DMA
address can be handled as it is only 32 bit compliant.
Because of this, setting DMA coherent mask of 37 when
IPA hw version is less than 3.0, crash is happening.
Do IPA version based DMA coherent mask setting such that
when IPA hw version is less than 3.0, set DMA coherent mask
as 32 only.
Change-Id: I8dec7da47766985ab0590f885b29f345f153cd08
CRs-Fixed: 1114605
|
| |
|
|
|
|
|
|
|
|
| |
Upper layers are failing to block disallowed traffic durring suspend.
Hif can enqueue the messages on the ce rings without letting hardware
know they are there. When fw is ready to recieve non wmi packets,
hif can inform hw of the queued packets.
Change-Id: I32810d9548416021c1da4f48a4ac539f75f1d907
CRs-Fixed: 2003582
|
| |
|
|
|
|
|
|
|
| |
The teardown procedure marks the NAPI mode to deactivated state before LRO
manager is de-registed, so de-register LRO without checking for NAPI state.
Above is the case during SSR procedure.
Change-Id: Ib4ec89a2bf784a760ec67eeff7054a8733ca3cb2
CRs-Fixed: 2003475
|
| |
|
|
|
|
|
|
|
|
|
| |
ATH diag procfs read is copying read_buffer to user space
unconditionally, causing kernel heap information leak of
uninitialized read_buffer if hif diag read fails.
Do not copy buffer to user space if diag read fails to
avoid information leak to user space.
Change-Id: I5e07cad4f90e5e9b3c461268b8fa3635c3128b9f
CRs-Fixed: 1104731
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Runtime PM lock init API right now returns pointer to a context
but this would cause confusion to the caller if feature is not
defined and dummy function return NULL as caller can't find real
failure versus dummy function returning because feature not being
enabled.
Fix declaring a data structure in QDF layer that caller can use
but it hides the internal details of HIF implementation for
Runtime PM locks.
CRs-fixed: 1116509
Change-Id: I4dcba604e803faa0e14fac6403610391895e382e
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The existing HIF NAPI blacklist feature uses irq_blacklist_on(off) APIs
which make a call to the userspace irq_balancer.
Replace these APIs with kernel API irq_modify_status to mark (or unmark) the
individual interrupts with IRQ_NO_BALANCING flag. Once marked, the
msm-irq-balancer will not be able to move the CE interrupts around.
Change-Id: I4d780fa8780b42a668006e13a49eb1299304e633
CRs-Fixed: 1114161
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a qcacld-2.0 to qcacld-3.0 propagation.
In file ar9888def.h error: '_AR9888DEF_H_' is used as a header guard here,
followed by #define of a different macro [-Werror,-Wheader-guard]
ar9888def.h: note: 'AR9888__AR9888DEF_H_' is defined here; did you mean '_AR9888DEF_H_'?
Fix the header file include guard properly.
Change-Id: Ic05a829eadbf974598370c494a5cff10201ec600
CRs-Fixed: 1091052
|
| |
|
|
|
|
|
|
|
|
|
|
| |
qdf_mem_zero is called after qdf_mem_malloc to set the memory
value to zero. qdf_mem_malloc uses kzalloc internally to allocate
memory which sets memory to zero.
Removing redundant qdf_mem_zero which are called after
qdf_mem_malloc.
Change-Id: I8e1faf6099f8fbc869c8af42b7511a13e66e6bed
CRs-Fixed: 1079697
|
| |
|
|
|
|
|
|
|
|
|
| |
Adding lock stats print upon spinlock & mutex destroy.
The spinlock destroy of the lro unloading lock in the
napi context did not match the create in location.
When a station adapter goes down and is brought back up,
the mismatch appears.
Change-Id: I137e6ffce3fb23f32a085b9fa36b065449a6d8a1
CRs-Fixed: 1111956
|
| |
|
|
|
|
|
|
|
|
|
| |
The Common subsystem shutdown is allowed after the irq_enable
register is written. A race condition in host (multiple other
interrupts firing on the same core). Can delay the register read
and allow the common sub system to be shutdown before the read.
The read would then cause an SNOC error as the register is unclocked.
Change-Id: Icb90c185eabcbd63b28b02bdf5c1de2d06d3620e
CRs-Fixed: 1108494
|
| |
|
|
|
|
|
|
|
| |
Pointer is dereferenced after it was positively checked for NULL.
Remove redundant null check for scn handle from hif_ce_get_lro_ctx API
as caller of this api already has necessary null check.
Change-Id: I9e46c8151dec3ff9d36292d7d306f8bf3ae61b7d
CRs-Fixed: 1111505
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
qcacld-2.0 to qcacmn propagation.
Don't Tag Non-WoW packets as Runtime PM packets after
wow suspend. Some WMI Commands can be send in Runtime
PM context and MC thread context. Packets coming via
MC Thread Context can be tagged as Runtime PM packets
when runtime pm in progress.
Packets should be tagged in the same caller context to
avoid any race condition. Being stability issue, addressing
this issue by not tagging any non-wow commands as runtime pm
after wow suspend. This will ensure all the non-wow packets
coming after wow_suspend flag is set as non runtime pm packets
and will trigger a runtime resume.
Git-commit: 4a396d80c5cc2ded75098c61426521b9b2762c17
Git-commit: 2ee4bf4791cc5db30ec03eceaf591367deffe39a
CRs-Fixed: 1106496
Change-Id: I4e55733ad8403581aca0b49ce9442fc5591335c0
|
| |
|
|
|
|
|
|
|
|
| |
Propagate from qcacld-2.0 to qcacmn
Currently there is no QCA9379 1.1 infomation in wlan device id table.
Add QCA9379 version 1.1 into device id table.
CRs-Fixed: 1048598
Change-Id: Ie4b7d3e31db2f2b3cad116bb0e993f9f55a7d322
|
| |
|
|
|
|
|
|
| |
pci_set_drvdata stores a pointer in the pci driver device structure.
Since we do not use this pointer any more we do not need to set it.
Change-Id: I36452aaf2a4c218a3d3891626406e4693d968bba
CRs-Fixed: 1071958
|
| |
|
|
|
|
|
|
| |
Adding lock stats print upon spinlock & mutex destroy.
Without the destroy api invoked the lock stats are not printed.
Change-Id: I50b4db8412e336fcc22514be3ae4aaa2188415a8
CRs-Fixed: 1100505
|
| |
|
|
|
|
|
|
| |
Adding lock stats print upon spinlock & mutex destroy.
Without the destroy api invoked the lock stats are not printed.
Change-Id: Id3c432e1f6982ea47bdf1de5c15f1a3568df4eb9
CRs-Fixed: 1100505
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
propagation from qcacld-2.0 to qcacmn.
If host fail to allocate receive packet bundle buffer
it will return no memory without freeing receive pkt queue.
Fix is to free the receive pkt queue before returning from message handler.
Also, fill the rx free list during driver load time itself with the
pre allocated memory so that Tx won’t take away this memory.
Change-Id: I4bf2aeb7bc85cc68cfa1314e6dbf5057665ba7ce
CRs-Fixed: 1079623
|
| |
|
|
|
|
|
|
|
| |
Make sure that NAPI event handler would handle events only
after it has been initialized. Check init flag before procesing
the event and emit a warning and return an error to the caller.
Change-Id: I9d2b84560ee2363ecf2a570dbef0275dfb87786a
CRs-Fixed: 1091678
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Interrupt blacklisting in kernel 4.4 happens through a user-space
entity. The kernel APIs irq_blacklist_on(off) essentially send
a message to the user space service(irq balancer) and
therefore are not synchronous and do not guarantee that blacklisting
has actually taken effect. It will be granted with some latency
(userspace entity's processing delay).
Make blacklisting more robust by:
a) move irq (if it has been moved around after blacklist_on call
has been made and not yet honored) to the designated CPU
on IRQ reception
b) stop cpu_isolation in blacklisting mode boost API
c) modify NAPI stats to indicate blacklisting mode
Change-Id: I13e478adbed1a6a66d320f69acdb012bee3dc1e8
CRs-Fixed: 1093770
|
| |
|
|
|
|
|
|
|
| |
Propagate from qcacld-2.0 to qcacmn
This change add the corresponding support for QCA9379 which has new chip ID.
Change-Id: I252b75d9ae7b760a6a8f6931b4db753f50d3baba
CRs-Fixed: 990755
|
| |
|
|
|
|
|
|
| |
Instead of using cds to get the hif context in the notifier callback
rely on the context_of semantics to traverse back to the hif context.
Change-Id: I7d57f9dcf8c09836c34ce16a4acaa8c3bc1624b9
CRs-Fixed: 1092842
|
| |
|
|
|
|
|
|
|
| |
When new hardware is not found in the lookup table
for human readable hardware names, print the hex
value of the hardware version info.
Change-Id: If821ba04c83f2d9b54587379d92bdc1918d7a094
CRs-Fixed: 1092353
|
| |
|
|
|
|
|
| |
Print out hw name WCN3990_V2.2 when soc version is 0x40010001.
Change-Id: I78c8cf5cf8917174fe95b8a8eefe608363a49e49
CRs-Fixed: 1092353
|
| |
|
|
|
|
|
|
|
| |
We want to enable the compiler's -Wmissing-prototypes switch, but
there is existing code that is generating warnings. Fix all warnings
in hif.
Change-Id: I342360f48f73a1e5ef42ebc4ca38366669eea0e0
CRs-Fixed: 1091702
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Propagation from qcacld-2.0 to qca-wifi-host-cmn.
If the module name is changed to something other than wlan in
Makefile or Kbuild, then MULTI_IF_NAME is defined to be the module name.
When MULTI_IF_NAME is defined, the names for the config files, log files,
and firmware files are prepended or appended with MULTI_IF_NAME. This
prevents file name collisions allowing multiple instances of this driver
to be loaded with different module names.
Change-Id: Id880c5fe423eb0b2a2c01677d8fa7c4a784c74df
CRs-Fixed: 946520
|
| |
|
|
|
|
|
|
|
|
| |
NAPI bucket calculation was resulting in bucket number which was out of
bounds for the number of buckets.
Calculate bucket index correctly and check for out of bound
condition.
CRs-Fixed: 1091483
Change-Id: Ieb81b2eeec546a6128c6b878db4c65ccb8b62bda
|
| |
|
|
|
|
|
|
|
|
| |
qcacld-2.0 to qcacmn propagation
In platform using usb interface, when fw assert, buffer alloc for fw
dump is smaller than the actual fw dump size, so adjust the buffer size.
Change-Id: I4706c57e8c1b684bfe164b23fc0902c376d4d80a
CRs-Fixed: 1043805
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The current implementation uses jiffies to calculate the yield time and
yields after 2 jiffies. The problem with this is that we end up yielding
anywhere between 1 - 2 jiffies as each jiffies are incremented by 10 ms
intervals. Sometimes we are taking more than 2 jiffies to yield. This
prevents the update of deferrable_timer if its being done at the same
CPU where hif_napi_poll is executing. This may result in the CPU
frequencies not being updated resulting in some fluctuations.
Use sched_clock kernel API to calculate the precise yield time.
Reduce the yield time to 10ms.
Some stats here
- How many times did we have to yield because of time
(%)0.670391061
Total Number of completes 1790
Total Number of complete 0 12
- When we yielded, how much did we exceed the time limit(10ms) by (ms)
Average 1.327444
Max 3.381667
Min 0.037709
- How many HTT Messages did we process when we had to yield
Average 22.41667
Max 33
Min 18
- How much time did we take when we had to yield 10ms + delta above
- How much time did we take when we did not yield (ms)
Average 0.907641
Max 8.649
Min 0
- How many HTT Messages did we process when we did not have to yield
Average 2.193476
Max 24
Min 1
Change-Id: I0d42c716ab8941b1de22a456447797c9ba5475c8
CRs-Fixed: 1089902
|
| |
|
|
|
|
|
|
|
|
|
| |
Currently NAPI stats are retrieved as a part of iwpriv getStats command.
The buffer available for this command is limited and NAPI stats get
trucncated.
Add a new dumpStats parameter (9) to dump NAPI stats.
Change-Id: Iaf52a3dcecac2f7b24fde2f8220fbfddc767965b
CRs-Fixed: 1076563
|
| |
|
|
|
|
|
|
|
| |
Before disabling the interrupts, disable NAPI so that
the softirq cannot be [re-]scheduled.
Remove the affinity notification on the irq.
Change-Id: I64061d2b4f2e1e6eff67416133b928faa9c0dd4c
CRs-Fixed: 1089166
|
| |
|
|
|
|
|
|
|
|
| |
This allocation failure will likely lead to a copy engine
stall and subsequent need to restart the subsystem.
Abort the module start immediately to avoid a system crash
or delayed subsystem restart.
Change-Id: Ibe7b348dee39d35e3e7f767f17f0114d888a30f8
CRs-Fixed: 1088725
|
| |
|
|
|
|
|
|
|
| |
The interrupt free code is protected by a flag. In the normal case
the interrupts are freed before the bus is stopped. Make all cases
free the interrupt before hif_stop.
Change-Id: I1e1dfae9ba388733eb13f2cdf90aa85b3db35b0d
CRs-fixed: 1089935
|
| |
|
|
|
|
|
|
|
| |
Durring a driver load failure, the fastpath buffer is allocated
before the fastpath handler is installed. Change the free logic
to match the allocation logic.
Change-Id: Ib9731b3d06d7ac728e0f23bb32e2b74c35b9a8de
CRs-Fixed: 1089933
|
| |
|
|
|
|
|
|
| |
Make changes for per per Rx context LRO manager, this addresses
all parallel Rx concurrency issues. There by removes all the contention.
Change-Id: I90604ffdf7b7fd930eee636426a4c7fc9b92c7d7
CRs-Fixed: 1079320
|
| |
|
|
|
|
|
|
|
| |
In hnc_link_clusters function, few local variables left
uninitialized. Initialize them with zero as they will get
overwritten during the processing of the cluster for first time.
CRs-Fixed: 1085510
Change-Id: I04af509bdc1a63eeb215c5ec854b55a8bc45aba9
|