Граф коммитов

2559 Коммитов

Автор SHA1 Сообщение Дата
Tallapragada Kalyan
fd1edcc084 qcacmn: Add support for radio-based packet steering
packets received on a particular radio are queued to
a user configured reo destination ring.

Change-Id: I080090f22b80fd8d8868df4145b82888e1111cea
CRs-Fixed: 2017081
2017-04-12 04:42:35 -07:00
Venkateswara Swamy Bandaru
61824944ab qcacmn: Add API to support configuring external group interrupts
Added API to support configuring external group interrupts for AHB bus.

Change-Id: If65984183db808e68dea680c585692e1533e4c7a
CRs-Fixed: 2018655
2017-04-12 04:02:03 -07:00
Venkateswara Swamy Bandaru
0bce0449f0 qcacmn: Fix for htt_included bit issue for mesh raw packets
HTT meta data valid set properly for scatter gather path mesh packets.

Change-Id: I6dc5b061bc187f3679e9bc80615168724469fdd3
CRs-Fixed: 2003389
2017-04-12 03:17:24 -07:00
Poddar, Siddarth
5503c76aca qcacmn: Add iwpriv pktlog command to clear pktlog buffer
Implement iwpriv pktlog command to clear pktlog buffer.
This command is effective only if pktlog disable is issued previously.
This command needs one argument.
Command to use this feature : iwpriv wlan0 pktlog 4

Change-Id: I431169a10828b6cfcd21c7d8065f325c5eb8cbba
CRs-Fixed: 2031212
2017-04-12 01:14:08 -07:00
Kapil Gupta
a6e44ca3bd qcacmn: Initialize scan_f_chan_stat_evnt from configuration
Currently driver is not initialize scan_f_chan_stat_evnt from
the configuration file which causes WMI_SCAN_CHAN_STAT_EVENT
to be always not included in the scan flag.

Add changes to initialize scan_f_chan_stat_evnt based on
ini configuration.

Change-Id: If6ea1d5c4efcc6d934daf00b537f25f0727ee55b
CRs-Fixed: 2031301
2017-04-11 11:46:29 -07:00
Abhijit Pradhan
3228727ce2 qcacmn: Regulatory component is disabled to fix the crash in X86
Array overflow causes kernel panic. Need to fix it in future;
disabling the regdb component now.

Change-Id: I2d2b6cff74a174c19cd1a84c63e3009fc952d165
CRs-Fixed: 2002892
2017-04-11 11:45:49 -07:00
Wu Gao
5126329e8c qcacmn: support dequeue and start failed event for scan from STA
It doesn't process scan dequeue and start failed event, which cause
STA scan doesn't complete and blocking next scan work in
wpa_supplicant. For scan dequeue and start failed event with match
reason, indicate scan aborted to up layer.

Change-Id: I8861e277143116878f6714e50b600d77df69eeb1
CRs-Fixed: 2029955
2017-04-11 11:45:13 -07:00
Pamidipati, Vijay
8a4e27cd59 qcacmn: Move qdf_nbuf_map call to after adding HTT header
Remove the dependency of dma_map for align_pad calculation
move the dma_map to correct position after mesh mode header addition

Change-Id: Idd309ed47d82f68f97191048c582c1b429f3b378
CRs-Fixed: 2004658
2017-04-11 11:04:45 -07:00
Houston Hoffman
adc3147da9 qcacmn: add htc_get_tx_queue_depth api
Wish to know the number of unsent packets in a given tx queue

Change-Id: I73999de9aaadbb61eea13388e583e341e1d7855a
CRs-Fixed: 2018893
2017-04-11 11:04:44 -07:00
Houston Hoffman
ac99ac8eea qcacmn: Update sw index from hw for ce_sendlist_send on data path ces
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-04-11 11:04:44 -07:00
Houston Hoffman
1c72830f3b qcacmn: Unmap ce nbufs before free
freeing mapped memory may lead to resource leaks.

Change-Id: I75664b1a987c1339aa173672c9af670f8b3ffeb8
CRs-Fixed: 2020793
2017-04-11 11:04:42 -07:00
Houston Hoffman
b01db18853 qcacmn: simplify error handling in ce_init(1)
move ce_id_to_state assignment to the end where ce_init
is guaranteed to succeed.

Change-Id: I5172eb1136dde2aad915c2497ece94150c95630f
CRs-Fixed: 2020794
2017-04-11 11:04:42 -07:00
Houston Hoffman
748e1a690f qcacmn: use hif_select_service_to_pipe_map for consistency
Copy pasted logic was not maintained, leading to different
maps being used in different code sections. Also fixes
fw assert where multiple wmi services are not available on
the fw for napier.

Change-Id: Iff3ec8938cc16afe0ebae54244060afb0a7d0b2e
CRs-Fixed: 2030840
2017-04-11 11:04:40 -07:00
Rajeev Kumar
bc62343617 qcacmn: Migrate WMI from shared work queue to dedicated work queue
WMI RX event processing is very critical for WLAN driver and today
we are using kernel's shared event work queue. Shared event work
queue is used by many drivers and if any work submitted in shared
work queue takes longer time to finish then it directly impacts WLAN
control path processing.

Define a dedicated work queue for WMI RX event processing and use
it for WMI RX event handling.

Change-Id: I8ee6ca5b4b20c3357d46f8b56943078a0a76977f
CRs-Fixed: 2029775
2017-04-11 11:04:40 -07:00
Rajeev Kumar
fd15ef2196 qcacmn: Return status from qdf_create_work
qdf_create_work is not returning any status hence modify it
to return proper QDF status to know proper status of work creation.

Change-Id: I8fc84933cc85ba628363638d7567b083ecbf4f34
CRs-Fixed: 2026441
2017-04-11 11:04:39 -07:00
Abhijit Pradhan
32eb664610 qcacmn: dfs_ioctl header file is moved to common services
dfs_ioctl header file is used by both mlme and dfs module.

Change-Id: Iafe0e38a97454418444e6489439f375d26928fe2
CRs-Fixed: 2001106
2017-04-11 11:04:38 -07:00
Venkata Sharath Chandra Manchala
a405eb741b qcacmn: Add dump stats feature for Lithium
Add support for dump statistics in Lithium.
Statistics include:
	1. Tx path packet flow
	2. Tx Histogram stats per interrupt
	3. Rx path packet flow
	4. Rx Histogram stats per interrupt

Change-Id: I7f399b717a9fb29a3d6ab672b669c6e323f61e27
CRs-Fixed: 2023386
2017-04-11 11:04:37 -07:00
Orhan K AKYILDIZ
5adc058835 qcacmn: Add boundary check on TSO segments
In the error-path execution stream where number of tso segments
in a tso_descriptor, there was an assumption that the number would
be > 0 (normal case is 2). When it is zero, a segment at a wrong
index (-1=> (4M-1)) was being unmapped, which was a bad access.
Add code to make sure that the index in question is in the range.
Need still to understand the reason why num_segs were smaller (0)
then expected (2).

Change-Id: I5d6e16f48f29c98cfb2191cf497f4203ea56a78f
CRs-Fixed: 2028808
2017-04-11 11:04:36 -07:00
Dustin Brown
07d24be439 qcacmn: Implement hif_dummy_map_ce_to_irq
Implement hif_dummy_map_ce_to_irq to prevent runtime errors on new
platforms that do not use hif_map_ce_to_irq.

Change-Id: I9e3da22e237c351ecc9919e69d8d68a656ef7cc9
CRs-Fixed: 2028145
2017-04-11 11:04:36 -07:00
Abhijit Pradhan
2e59ee0145 qcacmn: A common function to get dfs_rx_ops
Instead of calling and defining the same function from different files,
have a common function in a header file and call it from different files.
The function retrieves the dfs rx_ops from the psoc context.

Change-Id: I1c9089c2508faa9ee7a5bf6645dcf02659923bc3
CRs-Fixed: 2001106
2017-04-11 11:04:35 -07:00
Abhishek Singh
2c3ce9dbb8 qcacmn: Add WMI changes for PNO for converged scan
Add WMI changes for PNO for converged scan

Change-Id: I8133030502f63f458164f705aa88ebadf446ae60
CRs-Fixed: 1095299
2017-04-11 11:04:34 -07:00
Abhishek Singh
8c6e82d763 qcacmn: Add PNO changes for converged scan
Adds PNO related changes for converged scan

Change-Id: Ia18e48645d511134698777b334348d68daf2dbee
CRs-Fixed: 1095299
2017-04-11 11:04:33 -07:00
Kiran Venkatappa
fa59ee7936 qcacmn: Add WMI APIs to send and extract offchan data tx
Add API to send offchan data TX command and extract API to get offchan
data tx completion params.

Change-Id: I1e04d50810e43cec2c700476581e518b394db582
2017-04-11 11:04:32 -07:00
Mohit Khanna
4a76dde9ad qcacmn: stub core_ctl_set_boost if not defined
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
2017-04-11 11:04:31 -07:00
Mohit Khanna
012bfe3098 qcacmn: modify HIF NAPI blacklist mechanism
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
2017-04-11 11:04:31 -07:00
Orhan K AKYILDIZ
5bfbc5b35b qcacmn: Make interrupt blacklisting robust
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
2017-04-11 11:04:30 -07:00
Mohit Khanna
200e660f21 qcacmn: correct napi bucket calculation
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
2017-04-11 11:04:29 -07:00
Mohit Khanna
9ee4b9e84a qcacmn: Use sched_clock instead of jiffies to calc yield time
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
2017-04-11 11:04:28 -07:00
Mohit Khanna
518eb5092e qcacmn: Add NAPI statistics to dumpstats
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
2017-04-11 11:04:27 -07:00
Srinivas Girigowda
17720241d4 qcacmn: Replace wlanLoggingFEToConsole to wlanLoggingToConsole
Currently the config ini "wlanLoggingFEToConsole" specifically talks
about enabling the logs to kmsg for FATAL and ERROR logs.

This cfg.ini item should not be specific to any log level, instead
it should just depict whether logging to console should be enabled
or not.  Hence change wlanLoggingFEToConsole to wlanLoggingToConsole.

Change-Id: I54e340ed58891175b53ac2d0137d15a2baea1c9f
CRs-Fixed: 2017427
2017-04-11 11:04:27 -07:00
Naveen Rawat
d1f1484105 qcacmn: In serialization timeout timer avoid double free
In serialization timeout timer, do not free memory before removing the
cmd from serialization queue. Free only if command is not found in the
queue.

Change-Id: I775b4230f2cb558142a13cfe0a339f3a20a04a33
CRs-Fixed: 2029599
2017-04-11 11:04:26 -07:00
Pramod Simha
bc0a546d58 qcacmn: Fix for ping failure due to intrabss fwd logic
Intrabss forwarding logic turns around bcast (ARP) pkts on the
SAP with peer source addr. So a AST lookup on AddrY results will
route the pkt to HW and not FW which is not the design. Fix is to
enable lookup only on AddrX in SAP mode.

Change-Id: Iea41c53fd818acfb8dbfd9ad1582e43ba1c4bc83
CRs-Fixed: 2029656
2017-04-11 11:04:25 -07:00
Dustin Brown
536064a37e qcacmn: Implement WMI/Credit History log print APIs
Create output agnostic log print APIs for WMI and Credit History to
enhance the debugging experience.

Change-Id: Ie89a9cb3b54c373ac2610d62003e940da17696d8
CRs-Fixed: 2028762
2017-04-11 11:04:24 -07:00
Naveen Rawat
52e9bb6d6f qcacmn: NDP_END_REQ implementation
Add implementation of NDP_END_REQ.

Change-Id: Ifa0bdcdee09c15c68bb12c63ba1157c71650c5bc
CRs-Fixed: 2014795
2017-04-11 11:04:24 -07:00
Naveen Rawat
f2bc82eb18 qcacmn: NDP_RESPONDER_REQ implementation
Add implementation for NDP_RESPONDER_REQ.

Change-Id: I27029eae88e0bc545c8444adf1342b2ec95f4d60
CRs-Fixed: 2014795
2017-04-11 11:04:23 -07:00
Naveen Rawat
06a5eb5071 qcacmn: NDP_INITIATOR_REQ implementation
Add implementation for NDP_INITIATOR_REQ.

Change-Id: Ieb4cb79d500fd75b23b4a3f8bfa414d14eb6fe18
CRs-Fixed: 2014795
2017-04-11 11:04:22 -07:00
Naveen Rawat
e830e98bcf qcacmn: Add implementation for NDI Create/Delete
Implement NDI create and NDI delete commands.

Change-Id: Icd4c745f4d25c0f10f12271fd4fcd7720ad85860
CRs-Fixed: 2014795
2017-04-11 11:04:21 -07:00
Naveen Rawat
7358d18e39 qcacmn: Add framework for NDP cmd execution
Add NDP command execution framework:
1) Define UCFG apis, that will be called from OS_IF layer
2) Define request proccessing functions to post to scheduler and callback.
3) Define request proccessing functions to post to serializer and callback.
4) Define functions handling activated, cancelled and timed out NDP req.

Change-Id: Ibc6fe32c65f8de0c24e0537f2eb538f806cf5284
CRs-Fixed: 2014795
2017-04-11 11:04:20 -07:00
Adil Saeed Musthafa
e3599a90e3 qcacmn: Remove all non-QDF directories from include paths
CRs-Fixed: 2026943
Change-Id: I6fa1ba02552b0c1d10c891471e072f9b235e6de8
2017-04-11 11:04:20 -07:00
Ishank Jain
e73c403a0b qcacmn: Add missing stats for Host Lithium Stats
Add Invalid Peer stats on rx side
Add aggregation stats missing on Tx
API to update Rx Errors

Change-Id: Ib757ee7b89d9b9113e1a41b5a520faabb9ff28bb
CRs-Fixed: 1114641
2017-04-11 11:04:18 -07:00
Om Prakash Tripathi
d088a8a19e qcacmn: change scan API to pass pdev insted of vdev
Few components don't have vdev object but still they want to
receive scan envents on underlying pdev.
Change ucfg_scan_register_event_handler and
ucfg_scan_unregister_event_handler to accept pdev instead of vdev.

Change-Id: I5a7ea78b1470b89637d418de6b984e5d20007c9c
CRs-Fixed: 1095299
2017-04-11 11:04:18 -07:00
Krishna Kumaar Natarajan
8e039b16e1 qcacmn: Fix passing NULL vdev object to object manager
Fix passing NULL vdev object to object manager. Currently during unload
process, we are purging all the cmds in the cmd list. In this case
pointer vdev_id is passed as NULL since we wanted to clean up cmds
associated with all the vdevs. In wlan_serialization_purge_cmd_list()
vdev remains NULL in this scenario which results in an ASSERT in
wlan_objmgr_vdev_release_ref().

This change set will call wlan_objmgr_vdev_release_ref only if vdev is
not NULL.

Change-Id: I29a6114f4b5d9fcabe24b82f26defd8ab58cceec
CRs-Fixed: 2029580
2017-04-11 11:04:17 -07:00
Krishna Kumaar Natarajan
cab5f29ee4 qcacmn: Update correct format specifiers in ll_stats_get_req
Update correct format specifiers in ll_stats_get_req. req_id is an
unsigned integer, use %u instead of %d.

Change-Id: I06a1b571954dcf7392e41901bda51aeea99731de
CRs-Fixed: 2018087
2017-04-11 11:04:16 -07:00
Tushnim Bhattacharyya
7abd54674e qcacmn: Prune PCL to active channels only for P2P GO
Prune the PCL to have only active channels for P2P GO mode.
Change-Id: Ifade00b3ccfcecff16a49e9e9aa5e077d5f9629b
CRs-Fixed: 2029007
2017-04-11 11:04:15 -07:00
Naveen Rawat
5def1a815a qcacmn: Change LMAC NAN tx and rx ops definitions
Change NAN LMAC tx and rx ops callback pointer to match with implmentation.

Change-Id: If0553d7c077fcd65ecddb931c735765aa42df2c1
CRs-Fixed: 2014795
2017-04-11 11:04:14 -07:00
Naveen Rawat
5b37936bf8 qcacmn: Add interface with LMAC for NAN Component
Add interface with LMAC for NAN Component.

Change-Id: Idbcdaa19a7a2b83d5a2d125419a7bc6cbe72033d
CRs-Fixed: 2014795
2017-04-11 11:04:13 -07:00
Naveen Rawat
e92475bb19 qcacmn: Implement NAN component init deinit
Implement framework for NAN component and NAN init/deint.

Change-Id: Ice8a7269dc646daa97014ac9667e6f07748fdfba
CRs-Fixed: 2014795
2017-04-11 11:04:12 -07:00
Naveen Rawat
207fb4ead9 qcacmn: Define NAN components's get/set and utility APIs
Define set/get and utility APIs to be used by NAN and other UMAC
components.

Change-Id: Ib3c3c9711ab823dfdf538099d30078b703566fe1
CRs-Fixed: 2014795
2017-04-11 11:04:11 -07:00
Naveen Rawat
5b3602a617 qcacmn: Define NDP structures and enums and private obj
1) Define NDP structures and enum.
2) Define PSOC and VDEV private object

Change-Id: I3cb3c0e357f8b4598a0e4ec8abbd5b69e5de5180
CRs-Fixed: 2014795
2017-04-11 11:04:10 -07:00
Himanshu Agarwal
fa594d9f08 qcacmn: Handle failure scenario for qdf_nbuf_map()
Handle failure scenario for qdf_nbuf_map() API by freeing
allocated memory, returning failure/error etc.

Change-Id: I493fb063c8f57e38525e2dc1701a6e972d2ec0e6
CRs-Fixed: 2028524
2017-04-11 11:03:47 -07:00