Commit grafiek

9006 Commits

Auteur SHA1 Bericht Datum
Karthik Kantamneni
e53dbab838 qcacmn: Fix uninitialized srng access in monitor mode
In monitor mode buffer replenish ring is accessed without
getting initialized for configuring low threshold value.
Add check to avoid uninitialized srng pointer access.

Change-Id: If5dc98d4c1db939ef762749392ec42d46a4ae1f3
CRs-Fixed: 2704586
2020-06-08 18:37:10 -07:00
Shashikala Prabhu
a76f88adb8 qcacmn: Add support to populate target 11AX wireless modes
Add support to populate 11AX wireless modes advetised in ext2 service
ready message. To support older FW that do not advertise this, use
existing host workaround to populate these in host  itself.

Change-Id: I3b3b280672592c858bd3f6f0e368909a16bd30ee
CRs-Fixed: 2650136
2020-06-08 18:37:03 -07:00
Shashikala Prabhu
4a452b5de6 qcacmn: Update 11AX wireless modes in reg psoc structure
FW advertises the 11AX wireless modes in service ready ext2 event.
Add a regulatory API to update these modes in regulatory  psoc
private object.

Change-Id: I51e781f6819dabf2b98e129a996213a7eecbf8b2
CRs-Fixed: 2650136
2020-06-08 18:37:00 -07:00
Subrat Dash
40377c0b2d qcacmn: Add a new QCA vendor attribute for OEM data device info
Add an attribute QCA_WLAN_VENDOR_ATTR_OEM_DEVICE_INFO to send
additional information to specify whether the OEM vendor command
is for vdev or pdev.

This optional attribute is used to specify whether the device
type is vdev or pdev. This attribute can be omitted when the
command is for vdev.

Change-Id: Ie6f72d071d1d8393d2c9bf47d7b47a9dd2cbbeed
CRs-Fixed: 2693894
2020-06-08 16:01:16 -07:00
Kiran Kumar Lokere
c5c28eb65e qcacmn: Add QCA vendor attributes to configure PMF and disassoc Tx
Add QCA vendor attributes to configure PMF and disassoc Tx

Change-Id: I26296d3b5758c3caf3ef3034d155fe56d9904841
CRs-Fixed: 2675834
2020-06-08 16:01:12 -07:00
Abhishek Ambure
23dab4b3a5 qcacmn: Add support to send max ndp sessions to fw
Firmware advertises max number of ndp sessions support in
wmi_service_ready_ext2 event. If the firmware advertised value of
max ndp sessions is non-zero, then host uses a minimum of max ndp
sessions of target_resource_config and firmware advertised max ndp
sessions to configure max ndp sessions in firmware using WMI_INIT_CMD.

Change-Id: Ied6891157ce589e5d36a4f8b9694a95b5c819ad6
CRs-Fixed: 2688393
2020-06-08 16:01:08 -07:00
Hariharan Basuthkar
04f7a32d29 qcacmn: Modify reg_rules in FCC4
As per regulatory update database xls, FCC4 supports 4.9GHz channels,
as well as 5G channels. But currently only 4.9GHz support is present.

Therefore, add the 5G reg_rules in FCC4's definition to support 5GHz
channels.

Change-Id: Ib71c01635f5aef18c4597ee3f699b5b033087112
CRs-Fixed: 2689729
2020-06-08 13:50:27 -07:00
bings
131d1bf176 qcacmn: remove return value of qdf_debugfs_create_u*
According to Kernel comment, no one checks the return value of routines:
debugfs_create_u8
debugfs_create_u16
debugfs_create_u32
debugfs_create_u64
debugfs_create_atomic_t
so remove return value of related qdf api.

Change-Id: I7d260bccfce463dddae963c54a776813df116eac
CRs-Fixed: 2666506
2020-06-08 13:50:24 -07:00
bings
67ae88ddbb qcacmn: rtc_time64_to_tm support for 4.0+ kernel
rtc_time64_to_tm in defined from kernel 4.0+. Use rtc_time64_to_tm
instead of rtc_time_to_tm from kernel 4.0+.

Change-Id: I6335150300cd4cd7a91d771dd86bf11592d1ff11
CRs-Fixed: 2666521
2020-06-08 13:50:21 -07:00
Min Liu
c7bf4efec6 qcacmn: Add QCA vendor interface support to configure PHY modes
Add an attribute that can be used with
QCA_NL80211_VENDOR_SUBCMD_SET_WIFI_CONFIGURATION vendor command to
configure different PHY modes to the driver/firmware.

Change-Id: I850fd6a1edaa9e74957b9f189c9b710212902781
CRs-Fixed: 2694060
2020-06-08 10:30:36 -07:00
Shashikala Prabhu
d6fbcdd4e7 qcacmn: Do not dereference the NULL rx_ops pointer
Do not dereference the NULL rx_ops pointer.

Change-Id: I999f3876801b61014aedb59402d2816627d0f28a
CRs-Fixed: 2702455
2020-06-08 10:30:32 -07:00
Mahesh Kumar Kalikot Veetil
06a2ddeb87 qcacmn: explicitly print "WLAN_SOC_device_id"
The crashdump analysis tool needs a unique print to identify
WLAN SOC type.

Change-Id: I5d2a6f631298be868c3786043477e5d7eed4fe1a
CRs-Fixed: 2696340
2020-06-07 12:29:20 -07:00
Basamma Yakkanahalli
2ea729852e qcacmn: reset hw ring intr mask to skip unused WMAC irq for ipq5018
IPQ5018 platform has one LMAC.
Disable registering unused interrupts for LMAC1 and LMAC2.

Change-Id: Ie8f67d7bbf7259288e3644e1c83c49f09a87427b
2020-06-07 10:13:29 -07:00
Arun Kumar Khandavalli
ca24670e56 qcacmn: Crash if the tag length and filled data are not matching
Whenever a wmi even it received the tlv received from the firmware
will be sanitized, if there is any error the event would be dropped.
This dropping of the event can give side effects in the host/firmware
after some time and making it difficult to find the actual reason of
why the tlv is not received properly.

Crash the system if the tlv is not parsed correctly to debug the issues.

Change-Id: Ic56e3f96252ac74917caeebc8296c2b50ae4f3cd
CRs-Fixed: 2695053
2020-06-07 03:13:54 -07:00
Vevek Venkatesan
eed5d30c55 qcacmn: Use IS_ENABLED for the definition of kernel module
Add support in code to use IS_ENABLED, if CONFIG_ARM_SMMU
config as kernel module.

Change-Id: I64c1e0c7918d520ed36a7a9e22fdf39f66e1c150
CRs-Fixed: 2701645
2020-06-05 10:22:51 -07:00
Jeevan Kukkalli
8bcf1b75d2 qcacmn: Register for panic notification
If wlan logging is enabled then register a notifier block
to kernel's panic notifier chain. Notifier block contains a
callback function to print buffered wlan logs in the event
of kernel panic.

Change-Id: Id8cae651afe45e411e1ddf122c2bc9b5f6688327
CRs-Fixed: 2692163
2020-06-05 02:04:10 -07:00
Nandha Kishore Easwaran
3e8172d58b qcacmn: Set low threshold for monitor ring
Configure low threshold for monitor ring only when monitor
vap is created. This is needed to avoid spurious low threshold
interrupts on monitor ring since the low threshold condition always
evaluates to true.

Change-Id: I452c0ada84e0a4f18e410c865d8a6a7f50329aef
2020-06-05 00:48:39 -07:00
Srinivas Dasari
3e3a071188 qcacmn: Define VENDOR_NLA_POLICY_MAC_ADDR for mac addresses
Strict NLA validation is introduced from kernel version 4.20 where
NLA_UNSPEC usage is restricted. A new attibute type
NLA_POLICY_ETH_ADDR is introduced for MAC address.
Define a macro to use this if the kernel version is greater
than 4.19.
Also define NLA_EXACT_LEN as NLA_UNSPEC for kernels less
than 4.20.

Change-Id: I9d9bee7a12d84ca81b5777ccb417a33f08949203
CRs-Fixed: 2701357
2020-06-04 23:23:01 -07:00
Shashikala Prabhu
803403f264 qcacmn: Add null check for reg_rx_ops
Add null check for reg_rx_ops in reg_ch_avoid event handler.

Change-Id: I15f1b7fa13714ba6ea134ceaa892b2692fad8454
CRs-Fixed: 2702122
2020-06-04 23:22:57 -07:00
Jingxiang Ge
4ee2fa8596 qcacmn: Vendor attributes for configuring LDPC, TX STBC, RX STBC
Defines the attributes in SET(GET)_WIFI_CONFIGURATION to dynamically
configure capabilities: LDPC, TX STBC, RX STBC.

Change-Id: I9d38f436cb6a8ee5a0cf074c22bccb98ffd46df4
CRs-Fixed: 2689416
2020-06-04 20:36:32 -07:00
Vivek
4a28f4483d qcacmn: Add sanity check for qdf_nbuf_put_tail
In DP while handling ppdu stats, we call qdf_nbuf_put_tail
and proceed with updating the nbuf data whithout a check on
the return status of qdf_nbuf_put_tail.

If the qdf_nbuf_put_tail API failed, would free the nbuf
and subsequent updates to the nbuf would result in use
after free, which is resulting in memory corruption.

Add check to verify the return status of qdf_nbuf_put_tail
and proceed accordingly.

Also while updating the ppdu stats, ensure the num of users
of ppdu is checked against the max number of users defined.

CRs-Fixed: 2678258
Change-Id: I00b661fdb342d31563506f93abd63673af8ede55
2020-06-04 05:31:05 -07:00
Rakesh Pillai
cbbb368ed7 qcacmn: Add the dot11 mode 11AX
Add the phy mode for 802.11 AX

Change-Id: I1cc0f94c193e1df6f60ee150598ea61bdac4ee04
CRs-Fixed: 2697055
2020-06-03 14:58:38 -07:00
Lincoln Tran
0779b77211 qcacmn: Add regulatory API for phymode change
Add new enum in regulatory to hold all current phymodes.
Add a new API to get max allowed phymode which is not more than the
user provided phymode.

This change simplifies the phymode selection process when starting
or updating the parameters of a vdev.

Change-Id: I12c15e357b80faf2f5272800e55179f02755a263
CRs-fixed: 2658290
2020-06-03 13:33:40 -07:00
Lincoln Tran
f682392d3e qcacmn: Update country to have correct phymode map
The following 3 countries will not support 802.11ax:
1) Belarus
2) Russia
3) Ukraine

This change updates the phymode bitmap for those countries.

Change-Id: I8cd293341d82446cfb5f99eb912a925f4f3398b3
CRs-fixed: 2658290
2020-06-03 13:33:36 -07:00
Min Liu
b1e22e0cbf qcacmn: QCA vendor command for adding and deleting TSPEC
Add a QCA vendor subcommand QCA_NL80211_VENDOR_SUBCMD_CONFIG_TSPEC
to add and delete TSPEC in STA mode.
The attributes defined in enum qca_wlan_vendor_attr_config_tspec
are used to encapsulate required information.

Change-Id: Ifaba68b6619a3f6b775d2150740e7d6a2645493c
CRs-Fixed: 2686133
2020-06-03 09:27:55 -07:00
bings
2be79bf9fd qcacmn: sizeof_field support for 4.16+ kernel
sizeof_field is defined from kernel 4.16. So use sizeof_field
instead of FIELD_SIZEOF from kernel 4.16.

Change-Id: I291531ea86499a7c0ba52fbb6607b19dff533111
CRs-Fixed: 2666512
2020-06-03 09:27:52 -07:00
Min Liu
124f623a19 qcacmn: Vendor attributes for setting TX A-MSDU and RX A-MSDU parameters
Define QCA vendor attributes for SET(GET)_WIFI_CONFIGURATION to
dynamically configure capabilities for TX A-MSDU and RX A-MSDU.

Change-Id: Idcf7de2172cbf0b6710a7256b925939a2321e91c
CRs-Fixed: 2687224
2020-06-03 09:27:49 -07:00
Balaganapathy Palanisamy
a497ea80aa qcacmn: Add peer isolation support per vap
Configure the client as isolated peer if part of isolation
list while creating/associating the node or adding the peer
to the isolation list.
Do not forward the packets to and from clients in isolation
list instead accelerate to upper stack.

CRs-Fixed: 2689868

Change-Id: I67fd4dee0fb76c993746cdd66c70c241d407239a
2020-06-03 08:08:13 -07:00
Naga
30f07a9dc1 qcacmn: Fix data type for ic_irqnum
ic_irqnum saves the irq number given by platform,
existing max irq which can be saved per ce is 255,
if platform return irq greater than 255, value is
misinterpreted with that saved in a byte, this will
eventually have problem when host driver suspends/stop,
during which freeing irq will fail.

But in scenarios such as IPI mechanisms such as whunt,
since free irq fails, it would still assume irq is enabled
and call registered handlers, which will lead to
null pointer access.

Inorder to fix this changed data type to uint16_t.

Change-Id: I0d92f965462a0a6416ee3dce880c4218e5ab09e8
CRs-Fixed: 2700577
2020-06-03 08:08:11 -07:00
Lincoln Tran
d7ffb6df23 qcacmn: Update wmi_discard_fw_event
Update return type of wmi_discard_fw_event to return QDF_STATUS
to match scheduler_msg_process_fn_t.

Change-Id: Iba2d41c4bab2bfd5fb163d82fca6c6b895e5a2a4
CRs-fixed: 2699644
2020-06-02 03:22:52 -07:00
Paul Zhang
a027a582cc qcacmn: fix null-ptr-deref Read issue
Add sanity check in function target_if_init_spectral_capability
to avoid null-ptr-deref read issue.

Change-Id: Iccd79051ee8294f421704eadbedf6c9d9bf9a7b9
CRs-Fixed: 2692688
2020-06-02 03:22:49 -07:00
sheenam monga
efbca64bbe qcacmn: Add a vendor attribute to get OEM data
Add an attribute QCA_WLAN_VENDOR_ATTR_OEM_DATA_RESPONSE_EXPECTED
to get the response for the queried data.

Change-Id: Icb3fc7072cf589cf60a7c68b7c1fa74e51dadab8
CRs-Fixed: 2699102
2020-06-01 11:03:41 -07:00
Lincoln Tran
64db569708 qcacmn: Fix wifi_pos_send_rsp pointer cast
Update the wifi_pos_send_rsp function pointer cast to have the
same parameters as the actual function pointer.

Change-Id: I7e9f5f9972fe96f74c76ffb0fa069a93c98db72b
CRs-fixed: 2685627
2020-06-01 09:34:07 -07:00
Ananya Barat
9cd92dce58 qcacmn: Fill the max 5G bandwidth from the regdomains_5g table
In the current implementation the max_5g_bw was hardcoded as 160 MHz
in reg_get_max_5g_bw_from_regdomain, as this information was not
available in regdomains_5g so far.

However, the regdomains_5g table has been updated to make the maximum
5G bandwidth supported by the regdomain available. Hence updating this
information.

Change-Id: I9b9aea9a81b6b0d6f590c266e49a6b4ca3a9e32c
2020-06-01 05:23:29 -07:00
Chaoli Zhou
47e9c6a997 qcacmn: Fix htt_status & A_STATUS map dp status wrong issue
The packet tx complete status from wlan fw define in htt_tx_status
doesn't match with packet trace feature used in qdf_dp_tx_rx_status,
Meanwhile A_STATUS also doesn't convert to correct qdf_dp_tx_rx_status,
so add two according APIs to fix it

Change-Id: Ic250175dd270632f40af14ad9499ddcafbb3033b
2020-06-01 05:23:26 -07:00
Abhishek Ambure
101c1fdeda qcacmn: Send oce_subnet_id_weightage_pcnt to firmware
In struct weight_config, "oce_subnet_id_weightage" added newly.
Station uses "oce_subnet_id_weightage" as one of the parameter for
selecting AP candidate during initial connection. Host sends
"oce_subnet_id_weightage" ini value to firmware over WMI command
WMI_ROAM_AP_PROFILE.

Add oce_subnet_id_weightage in scan object scoring param to calculate
weightage based on SUBNET ID and select candidate accordingly.

Change-Id: I6583f46f661eaefabbad858bc7fb34e37443ebae
CRs-Fixed: 2675924
2020-06-01 01:37:41 -07:00
bings
3a5c2d3456 qcacmn: Fix print format error
Fix print format error in hal_rx_fst_attach

Change-Id: I45aefcedd9806279552ff25a8713c66f350fedae
CRs-Fixed: 2666498
2020-06-01 01:37:37 -07:00
bings
1d5343f48a qcacmn: ndo_tx_timeout support for 5.6+ kernel
New parameter txqueue is added for callback ndo_tx_timeout.
Add support for it under the kernel version compilation flag.

Change-Id: I0234dade56f65d15a4370404e17ff51a8a73ee4e
CRs-Fixed: 2666444
2020-06-01 00:04:14 -07:00
bings
e3fe6fc3c0 qcacmn: proc_create_data support for 5.6+ kernel
One parameter of proc_create_data is changed from struct
file_operations to struct proc_ops.
Add support for it under the kernel version compilation flag.

Change-Id: Ic87222f9c267debef56dcc66fc629854058ffabd
CRs-Fixed: 2666492
2020-06-01 00:04:11 -07:00
bings
1740435d49 qcacmn: Use ktime_get_real_ts64 for kernel 3.17.0+
ktime_get_real_ts64 is defined from kernel 3.17.0.
Use ktime_get_real_ts64 instead of ktime_get_ts from
kernel 3.17.0.

Change-Id: Ica72545fe5224966fbb350813bf3c2d849946dbc
CRs-Fixed: 2666404
2020-06-01 00:04:08 -07:00
Abhinav Kumar
5839296d1d qcacmn: Fix mem leak while deleting pmksa
Due to commit : I83e8d4c0c8b3ad503aa5894ffdc4a14bc3aeec7a,
while processing set_del_pmk command driver checks pmk_len
to delete pmk. In case if new PMK gets added with 0 lengths,
pmk entry with pmk_len = 0 will never be deleted. It is only
overwritten without freeing due to incorrect logic set_del
pmk logic.

Fix is to modify set and del pmk logic to avoid mem leak.

Change-Id: Idff573d020940dd926d07e1ec4f146eaa1215686
CRs-Fixed: 2696207
2020-05-29 19:52:56 -07:00
Jia Ding
c66705291b qcacmn: Properly set OL_TXRX_NUM_LOCAL_PEER_IDS
Set OL_TXRX_NUM_LOCAL_PEER_IDS to WLAN_MAX_CLIENTS_ALLOWED
if WLAN_MAX_CLIENTS_ALLOWED is defined.

Change-Id: Ifb5c6ab15e791f92aa8503537e624195cf3fad6d
CRs-Fixed: 2694492
2020-05-29 14:51:01 -07:00
Manjunathappa Prakash
32acca2463 qcacmn: Flush the PCIe window select config before device access
PCIe window select config reg update goes on different NoC and
actual PCIe device register access goes on the different NoC.
If there is delay in window select reg config, it can result in
access some other PCIe IO memory access and will result in actual
register write lost issue. Make sure to flush the window select
reg write before actual device reg access.

Change-Id: I1fe17aad7ae8fd5dea7a618273d9cd813b236a85
CRs-Fixed: 2687676
2020-05-29 14:50:57 -07:00
Saket Jha
d30eab103c qcacmn: Create monitor mode spinlock and add null check
Due to changes in datapath init/deinit path, mon_lock spinlock was not
getting created. Create mon_lock spinlock during
dp_rx_pdev_mon_cmn_desc_pool_init.

Add null check to validate rx_tlv_header before calling
hal_rx_mpdu_start_tlv_tag_valid.

Change-Id: I41c781de29f2c8c05ec1bfa90f9c8f742f2539bf
CRs-Fixed: 2693687
2020-05-29 14:50:54 -07:00
gaurank kathpalia
d7ec6fab20 qcacmn: Enable band preference for 6 GHZ
Enable band preference for 6 GHZ and give default
maximum weightage to 6 GHZ to push it for STA operation.

Change-Id: Id05e81ca4fb9de7653dc0291d2ffe970104849cb
CRs-Fixed: 2692068
2020-05-29 13:13:41 -07:00
Chaithanya Garrepalli
1d144f88bd qcacmn: store peer_id instead of peer_ids array in dp_peer
In lithium a peer will have only single peer_id hence remove
peer_ids array from dp_peer structure

Change-Id: Ib98270b7fd98f1199b862e4608f990687914b7cc
2020-05-29 13:13:37 -07:00
Ke Huang
b404458d20 qcacmn: Add NULL pointer check for KW issues
Add NULL pointer check in function hif_send_single() and
htc_dump_counter_info() for KW issues.

Change-Id: I4b020c566b14b28a825c13752dccf67b5f8bb837
CRs-Fixed: 2675205
2020-05-29 03:13:53 -07:00
phadiman
9789bab0d9 qcacmn: Replace dp_srng_setup with dp_srng_alloc/init in debug logs
dp_srng_setup was split into dp_srng_alloc and
dp_srng_init as part of lithium DP init and de
init improvements but the debug prints remain
unchanged

Rectify mistakes in debug prints accordingly
to match dp_srng_alloc or dp_srng_init

CRs-Fixed: 2696952
Change-Id: If6c41ffe80006852f9ac308ce65ceee69736fcb9
2020-05-29 00:28:33 -07:00
Baowei Liu
ca3412698e qcacmn: Not set "force_set" if event completed
"qdf_complete_wait_events" set force_set flag for all event in
"qdf_wait_event_list". This cause qdf_wait_for_event_completion
return QDF_STATUS_E_FAULT, even if event have completed

Add new flag "done" to record event completed. Use this flag to
detect event have completed or not.

Change-Id: I31f947169153ccbeb8435c539faab1059c055c04
2020-05-28 17:28:50 -07:00
Yu Tian
76013e1056 qcacmn: Change tx_desc, desc_ext min threshold
For DBS SAP case, need to balance the CPU cost and
TPUT KPI, use tx_descriptor size to control this can
in avoid the influence of IPA part.

CRs-Fixed: 2665268
Change-Id: I702a605b7a3156e429476f6a4d623b69bb19f615
2020-05-28 10:43:09 -07:00