summaryrefslogtreecommitdiff
path: root/hif/src/ce (unfollow)
Commit message (Collapse)Author
2019-10-25qcacmn: Reset rx_pending to avoid continuous tasklet schedulingAlok Kumar
The rx_pending flag is never set to 0 if the check for TARGET_REGISTER_ACCESS_ALLOWED(scn) is failed when target is not reachable. Since, the rx_pending flag is not set to 0, ce_check_rx_pending(CE_state) check inside ce_tasklet() will be true and tasklet gets rescheduled again and again. Reset the rx_pending flag before TARGET_REGISTER_ACCESS_ALLOWED(scn) check in ce_per_engine_service() to avoid continuous scheduling of tasklet when check for TARGET_REGISTER_ACCESS_ALLOWED(scn) fails. Change-Id: Ib9268e6cf2bdcd0ed0bf84934e9370bcef1cdbab CRs-Fixed: 2375307
2018-08-03qcacmn: Deinit CE tasklet work before CE Cleanupjitiphil
During freeing up of hif_config_de resources, the ce tasklet workers are deinitialized after the ce cleanup is done. This causes a race condition between shutdown and ce tasklet in case rescheduling of ce taslket is done. Deinitialize the taslket workers before ce structures are dismantled. Change-Id: I708711174cf818c0d15ef92c881c8d8aee49e9f1 CRs-Fixed: 2283272
2018-08-02qcacmn: Increase max history to record per copy engineRakshith Suresh Patkar
The max history for each copy engine given by HIF_CE_HISTORY_MAX is currently set to 512. This history is not enough to debug the rootcause of the issue in case of failure to reap from CE. Increase the value to 2048 to accomodate sufficient history per CE for debugging purposes. Change-Id: I79c49e8071e2772eff83b94304914b7babfaecf3 CRs-Fixed: 2283866
2018-05-21qcacmn: cancel ce_tasklet workers during deinit sequenceManjunathappa Prakash
Fix tasklet workers leak, make sure to cancel the ce tasklet workqueues during driver unload/deinit sequence. Change-Id: I48e0c60f1a8bd9dc5e9cb151e197b3e843eaa0f3 CRs-Fixed: 2244061
2018-05-05qcacmn: Match callback pointer type to callback function signatureSrinivas Girigowda
Control Flow Integrity (CFI) implementation in the kernel. CFI is an LLVM feature that protects function pointers against control flow hijacking. Basically, when calling a function through a pointer, the type of the pointer must match the signature of the target function. Hence, fix all the occurences of the function pointer type which doesn't match the signature of the target function. Change-Id: I910a7e1995dddf8fdcd7551f7a5e442e1d0120ab CRs-Fixed: 2196475
2018-05-04qcacmn: hif: Remove legacy markingsJeff Johnson
Per current guidance remove legacy markings. Change-id: I5d1411d241cfed4f50759960d18e9220f6c0da39 CRs-Fixed: 2230684
2018-03-19qcacmn: Rate limit CE access log to avoid watchdog barkRajeev Kumar
Rate limit CE access log to avoid watch dog bark because of excessive console logging. Change-Id: I460a39f02206f651eafc26febd5628766e471483 CRs-Fixed: 2207647
2018-01-31qcacmn: Rate-limit excessive logsOrhan K AKYILDIZ
Customer requests some CE logs to be rate limited as logs flood the logs space. Rate-limit the logs by (instance % 16). Change-Id: I922f5a737b967a62b557715c2d74f330fa47ca06 CRs-Fixed: 2179665
2017-11-20qcacmn: HIF fake apps suspend/resume function relocationwadesong
HIF fake apps suspend/resume functions are currently defined in a PCI-E bus specific file, which will result in 'unknown symbols' error when WLAN driver is built and loaded with SDIO bus type. Move all the related functions to a bus type neutral place so the feature can be enabled for both bus types. Change-Id: I84391402388ec6c10fe46c39604e63ca663d3611 CRs-Fixed: 2146268
2017-10-25qcacmn: Fix use after free of SKB in DP trace pathYun Park
qdf_dp_trace could access nbuf already freed after sending to CE ring. Move trace log before sending skb and add error log when fail to send. Change-Id: I8ce36b9d196b7d44e0e9f7dcfe05db404a77e32f CRs-Fixed: 2090277
2017-10-17qcacmn: Add GRO support to NAPI+Rx_thread processing modelManjunathappa Prakash
GRO aggregations are hanging out of NAPI instance and We cannot use the hif NAPI instance in Rx thread as gro_list inside NAPI is flushed out at the start and end of NAPI poll, this will corrupt the gro_list on which rx_thread is working. Address this concern by creating dummy NAPI instances mapping to each hif NAPI and not scheduling them. Change-Id: I517c4c6158ed3ac073f5f617afde46c7ed07ff3e CRs-Fixed: 2128457
2017-09-22qcacmn: hif: Replace instances of unadorned %pJeff Johnson
Replace instances of unadorned %p in hif. Change-Id: I282573452a2c12b4bccdbdaab611dcd6f84a6240 CRs-Fixed: 2111274
2017-09-21qcacmn: Limit yield log to rx data CEsOrhan K AKYILDIZ
A recent change added NAPI yield stats update call for all CEs. With another receent change that shortened the yield time, we see a lot of logs complaining about CEs where this particular stats are not applicable to. Limit the stats update to NAPI CEs. Change-Id: Ia17a4ddf53ce52116f30d48190f47914721a548e CRs-Fixed: 2092084
2017-09-13qcacmn: Return proper error status from modules under hif_startNachiket Kukade
Some of the HIF API's that do buffer allocations and operations return either 0 or 1 as return status. Information is lost since the same value is returned in case of buffer allocation failures, queue operation failure or anything else. Caller can't decide if to perform recovery, graceful failure or BUG_ON. Return the appropriate error status to the callers. Change-Id: Idccd3968231d030311fa5581aed78849b729227d CRs-Fixed: 2105913
2017-08-14qcacmn: Use qdf_dbg instead of qdf_print for non-error logsHouston Hoffman
Stats printing with excessive loops should not go to the console. Avoids watch-dog bites. Change-Id: I7b0f9d73139dff97c16f492cbd1cb2d255255b3e CRs-Fixed: 2091039
2017-08-09qcacmn: Add missing qdf_spinlock_destroy() to free debug cookiePoddar, Siddarth
Add missing qdf_spinlock_destroy() to destroy spin lock debug cookie for SLUB build. For normal builds, qdf_spinlock_destroy() is a NO-OP function. Change-Id: If5a3843a468e460952dc64f0e6b5b1fba05ebbb3 CRs-Fixed: 2078940
2017-07-24qcacmn: Add support for WLAN-IPA WDI2 with SMMU Stage 1Himanshu Agarwal
Update WLAN-IPA WDI-2 datapath for DMA buffer 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 need to mapped to physical address by IPA module before accessing them. Change-Id: I33082bc74760b0f12c348238c6f48f5ce5750172 CRS-Fixed: 2072953
2017-07-21qcacmn: Add support for WLAN-IPA WDI2 with SMMU Stage 1Himanshu Agarwal
Update WLAN-IPA WDI-2 datapath for DMA buffer 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 need to mapped to physical address by IPA module before accessing them. Change-Id: I33082bc74760b0f12c348238c6f48f5ce5750172 CRS-Fixed: 2072953
2017-07-19qcacmn: Release the spin lock before returnSravan Kumar Kairam
Currently in interrupt handler of per CE, spin lock is taken for send or receive and returns with out releasing the lock held if target register access is not allowed. This condition will lead to kernel panic if some other context is trying for the same lock. Change-Id: I115f6fbb006d28097168342aa4add3526ad3939d CRs-Fixed: 2077464
2017-07-14qcacmn: Add API to set ce service max rx indication flushPoddar, Siddarth
Add API to set ce service max rx indication flush num during load time for handling of messages in CE based on ini configured one. Change-Id: I49c3d6ebac34076cd5ad5e352e78d2fec7c8ee89 CRs-Fixed: 2068375
2017-07-07qcacmn: Fix active_tasklet_cnt mismatch issuejge
Issue can be reproduced when test D0WOW ROME PCIE. Multi interrupts may only trigger tasklet one time, which will cause active_tasklet_cnt mismatch. Change-Id: I66b5544c4d57fe91eae75d4cf8578e30b498e1fd CRs-Fixed: 2070872
2017-07-04qcacmn: Add APIs to set/get ce service max yield timeHimanshu Agarwal
Add APIs to set/get ce service max yield time and update max time taken in NAPI poll from the driver load time. Change-Id: Idfd4a271ce13916f188c92ab3af32e1648f48c95 CRs-Fixed: 2055082
2017-06-27qcacmn: Fix CLANG warnings in Data pathRakesh Pillai
implicit conversion from enumeration type 'A_STATUS' to different enumeration type 'QDF_STATUS' implicit conversion from enumeration type 'QDF_STATUS' to different enumeration type 'A_STATUS' CRs-Fixed: 2063344 Change-Id: Id3613d0b7fca58c3d94c5af59838b0bff3ef26de
2017-06-22qcacmn: Do not allow CE register access when recovery is in progressGovind Singh
Currently, Shadow registers is not implemented for all registers. This can lead to unclocked access and followed by NOC errors. In Rx path Interrupt Status and src/dst read index are directly accessed without shadow block. Target may execute reset sequence due to PDR/SSR while rx path is active. Avoid direct access to below registers if target is crashed due to PDR/SSR. HOST_IE_ADDRESS HOST_IS_ADDRESS CURRENT_DRRI_ADDRESS CURRENT_SRRI_ADDRESS Return from ISR without scheduling the bottom half if target is crashed due to PDR/SSR. Change-Id: Ifa993e978579b4d061d21281338494292e19700a CRs-Fixed: 2058451
2017-05-15qcacmn: Reduce CE msg flush count for SLUB buildGovind Singh
With SLUB build in Low memory condition rx processing is taking more time, reduce CE msg flush count for fastpath in SLUB build. Change-Id: I8901bd770ca01997299f882394bbe99871d2400e CRs-Fixed: 2043999
2017-05-15qcacmn: Remove diag config from HOST CE configGovind Singh
IHelium uses qmi path for read/write access to target registers, legacy diag path is not used. Remove diag config to reduce unnecessary allocations. Change-Id: Ic251364b5a724c1efd7d34bba55b020189e8e599 CRs-Fixed: 2041887
2017-05-11qcacmn: Assign host/target ce config dynamicallyGovind Singh
HOST and TRAGET ce configuration are mapped statically by using compile time macro. Assign host/target ce config dynamically to get rid of compile time flags. Change-Id: Ic6bf85cb68d89dc92fb4963da234edde968aa8c4 CRs-Fixed: 2041887
2017-05-03qcacmn: Ensure ce_write_index update is protected in ce_send_fastHouston Hoffman
If the index writes go out of sequence, hw thinks the whole ring is posted. Need to protect the register write with the ce_index_lock to ensure proper ordering. Change-Id: I43a0cefe47af4fd1a3cc61092db849e5fe077588 CRs-Fixed: 2042167
2017-04-26qcacmn: Log DP_TRACE outside of spinlock in ce_send_fastHouston Hoffman
Spinlock profiling reported the ce_send_fast spinlock was held too long. Change-Id: I75399b0d8a3854caca59a19ea65e3f975588ff29 CRs-Fixed: 2038695
2017-04-21qcacmn: Return failure if dst ring alloc fails for fastpath CEGovind Singh
Return failure in insmod if host fails to allocate the ce receive buffers in the ce dst ring for fastpath rx copy engine. Change-Id: Ic2e0de5bb13a53efe1002a945841b674315dddef CRs-Fixed: 2036365
2017-04-19qcacmn: Reduce complexity in hif_ce_bus_late_resumeHouston Hoffman
Reduce complexity to eliminate false positive "variable not initialized" warning when spinlock profiling feature is enabled. Change-Id: I93b17d7bc3c2202bc46f3e486700ad25c8c07ad8 CRs-Fixed: 2034020
2017-04-19qcacmn: Fix kernel module check patch warnings in HIF filesManikandan Mohan
Fix kernel module check patch warnings in HIF files Change-Id: I3ddc76399004f15f325b56709e4f2e96bf4cda96 CRs-fixed: 2033001
2017-04-19qcacmn: Fix kernel module check patch warnings in HIF CE filesManikandan Mohan
Fix kernel module check patch warnings in HIF CE files Change-Id: I5a0d22f8b139e76c33580fe9ef5b01736b2b5735 CRs-fixed: 2033001
2017-04-14qcacmn: Fix build errors introduced by data path code changeswadesong
Some data path code change didn't consider SDIO code path, so introducing some build error for SDIO driver. Fix them in one submission to enable ACI Change-Id: I8a37cbf8589689294aa3730c86dd2f82a8f1f2dd CRs-Fixed: 2033767
2017-04-11qcacmn: Fix mem leak of datapath tx ringPoddar, Siddarth
when allocation for destination ring fails in ce_init function, Clean up the complete datapath tx ring. Change-Id: I7e46396f7a1903207768c79cd07e2dbda1e5a7d2 CRs-Fixed: 2028641
2017-04-07qcacmn: Mask failures in hif_post_recv_buffersHouston Hoffman
Mask failures in hif_post_recv_buffers as the oom_allocation_work provides a recovery mechanism. Change-Id: Ib495b96f9d72b25c732c3b85f982db5dc20adca7 CRs-Fixed: 2030393
2017-04-07qcacmn: Kill bh execution contexts before cleaning up the hifHouston Hoffman
The interrupts are being freed, but the execution contexts are not guaranteed to be stopped. Ensure the execution contexts are stopped to prevent race conditions between the cleanup and normal execution. Change-Id: I77f2e0fb7073dbb3337e1cbbb6ed09295c7ea23e CRs-Fixed: 2030393
2017-04-07qcacmn: Fix Dma memory allocation leak from Hif layerArunk Khandavalli
HIF close is not freeing RRI memory allocated during HIF initialization resulting in memory leak of RRI memory after driver unload To mitigate the issue, freeing RRI memory in HIF close. Change-Id: Ib3daba8de0cabc1d8e303d7148448d21c47905e7 CRs-Fixed: 2019147
2017-04-06qcacmn: Fix kernel checkpatch warnings in QDFSrinivas Girigowda
Fix kernel checkpatch warnings in QDF. Change-Id: Id2f54c6c436bde55b040012fbbe9922cb177461e CRs-Fixed: 2028128
2017-04-04qcacmn: Reduce log level to avoid watchdogHimanshu Agarwal
Reduce log level to info/debug to avoid watchdog bark. Change-Id: I14a77b9017ada3bc2f10fc78c69cb31b22452052 CRs-Fixed: 2026821
2017-04-03qcacmn: Decouple LRO register/deregister from vdev start/stopManjunathappa Prakash
Register and De-register LRO after OL pdev attach and before OL pdev detach respectively instead of vdev start and vdev stop. With this change we can get rid of spin_lock which was required to synchronize the control path vdev going down removing LRO flush_callback/LRO manager and datapath handling Rx traffic on vdev. So this will make LRO instances to be hanging around throughout lifetime of the driver irrespective its mode of operation and even if LRO is not functional in particular mode. Change-Id: I06f7b43e80ddf0ce5e096351b38ce954eb634a95 CRs-Fixed: 2028318
2017-03-29qcacmn: simplify error handling in ce_init(1)Houston Hoffman
move ce_id_to_state assignment to the end where ce_init is guaranteed to succeed. Change-Id: I5172eb1136dde2aad915c2497ece94150c95630f CRs-Fixed: 2020794
2017-03-29qcacmn: Unmap ce nbufs before freeHouston Hoffman
freeing mapped memory may lead to resource leaks. Change-Id: I75664b1a987c1339aa173672c9af670f8b3ffeb8 CRs-Fixed: 2020793
2017-03-23qcacmn: Remove unnecessary QDF_ASSERT to avoid watchdog barkHimanshu Agarwal
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
2017-03-21qcacmn: HIF: Reduce the log spam in KmsgPoddar, Siddarth
Move the logs to appropriate log levels to reduce the log spam in kmsg. Change-Id: I3b759274d8e4bad13f4390fd906ec487ad5cbd1e CRs-Fixed: 2019280
2017-03-20qcacmn: Update sw index from hw for ce_sendlist_send on data path cesHouston Hoffman
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
2017-03-10qcacmn: HIF: Reduce the log spam in kmsgSrinivas Girigowda
Move the logs to appropriate log levels to reduce the log spam in kmsg. Change-Id: I29121bb4cc1272aa1fb88183914530dd21c64272 CRs-Fixed: 2017427
2017-03-08qcacmn: Increase wmi ce rx ring sizeHouston Hoffman
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
2017-03-08qcacmn: Support oom recovery for rx ce'sHouston Hoffman
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
2017-02-27qcacmn: Improve recv buffer refill failure loggingHouston Hoffman
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