Revīziju grafs

108 Revīzijas

Autors SHA1 Ziņojums Datums
Mohammed Siddiq
b53ad320b6 qcacld-3.0: Add code to rate limit pld logs
Due to SPF, multiple drivers are supported and are loaded
run time. It is expected for one driver to fail to load,
however the failing driver should not flood the dmesg.
Add code to rate limit pld logs to avoid flooding of dmesg.

Change-Id: I1a3b397a3e1de750e520b62d97ccea19a4bbbf7d
2022-02-16 23:44:54 -08:00
Vijay Patil
aff4a6514a qcacld-3.0: Add PLD API to check if mode of interrupt is legacy
Add PLD API to check if mode of interrupt is legacy or not in PLD
layer. It can be used by HIF layer when required.

Change-Id: Iac6fbe01755e833c062fc08940dd07f11b3452fa
CRs-Fixed: 3126969
2022-02-10 10:08:54 -08:00
Mohammed Siddiq
1c61feb5de qcacld-3.0: Add pld api to get PCI slot of attached device
Add pld api to get PCI slot of attached device.

Change-Id: I5adb49a8c28d4211ede5aee4e5bc0e8046bbf542
2022-01-19 15:30:10 -08:00
Surabhi Vishnoi
0320907b1e qcacld-3.0: Allow suspend in deep sleep or Hibernate
Deep Sleep or Hibernate are system level mode power
modes in which wlan firmware is shutdown gracefully
and linux kernel is suspended. Currently, suspend
is not allowed if firmware is down, with this change
suspend is allowed if firmware is down due to Deep
Sleep or Hibernate low power state.

A new pld api is introduced to know the low power
state from platform driver, this api is enabled based
on CONFIG_ENABLE_LOW_POWER_MODE flag. Currently, this
feature is enabled only for wearable targets.

Change-Id: Iddaa4da8ee4880a4223420f59cbe9c365c30344a
CRs-Fixed: 3090481
2021-12-16 15:07:33 -08:00
Mohit Khanna
320d7db738 qcacld-3.0: Account for sched delay in TX/RX BW tuning
Currently sched-delay is not taken into account while calculating TX/RX
offload packets in bus bandwidth work handler. This may result in an
incorrect calculation and determination of TX/RX bandwidth levels and
other params which are derived from it.

Add support to consider actual scheduling delay between two bandwidth
intervals to detemine TX/RX offloaded/not-offloaded packets.

Change-Id: Icfb961cbbc1a049df0133394883755418b631056
CRs-Fixed: 3079953
2021-12-02 02:24:50 -08:00
Mohit Khanna
49760b669f qcacld-3.0: Set PM_QOS for non-offloaded TX at V_HIGH
Set system PM_QOS with low latency only for "very-high" throughput levels
in TX case. Currently, its being done for "high" throughput levels.
In less than "very-high" throughput cases, this allows CPU cores to
enter low power modes. This is done only for non-offloaded packets e.g.
UDP.

Change-Id: Idf1dd2968b7dd8b4ef9f4061ee862de03d962c6e
CRs-Fixed: 3045963
2021-11-22 15:08:27 -08:00
Yue Ma
30dcc95b09 qcacld-3.0: Use corrent flag to handle CNSS utils driver
Use internal flag CNSS_UTILS instead of CONFIG_CNSS_UTILS which
will not be defined from kernel defconfig for out-of-kernel-tree
CNSS utils driver. CNSS_UTILS will be defined in the driver Kbuild
no matter where CONFIG_CNSS_UTILS gets defined.

Change-Id: Ifc07affd8e2dc78103be0aab54e20514c2e3b733
CRs-fixed: 3074629
2021-11-16 22:14:10 -08:00
Liangwei Dong
6e61b6bb8c qcacld-3.0: Handle vendor LTE unsafe channel ranges
In 3rd party platform, CNSS driver will provide
LTE avoidance channel frequency ranges by API
cnss_utils_get_wlan_unsafe_channel_sap.
Based on requirement, in single SAP case or SAP+SAP
case, ACS channel list should be filtered out based
on vendor unsafe channel frequency ranges.

Change-Id: I583c1bb2583c783858c54e8643fbe1af69d492b1
CRs-Fixed: 3061043
2021-11-15 20:37:12 -08:00
Prakash Manjunathappa
514d54117e qcacld-3.0: Vote for Max snoc/ddr votes for DBS ultra_high TPUTs
Add new MAX TPUT level to vote for Max snoc/DDR vote levels.
MAX TPUT level is only required for DBS ultra_high TPUT level.
DBS mode ultra high TPUT require highest snoc/ddr clocks.

Change-Id: Iac41f7157d61858c72ef1b28ba9ad6f768da325c
CRs-Fixed: 3071101
2021-11-15 15:00:11 -08:00
Yu Tian
9a91fcdc37 qcacld-3.0: Add ultra high bandwidth voting for dbs mode
Add a new SNOC/DDR voting slot for DBS mode. In DBS KPI tests,
more hardware resources are needed for both HW MAC0/1.
This change adds a new logic to vote more DDR frequency when
it's in DBS mode and the overall throughput is larger than a
pre-defined threshold.

Change-Id: I14a318b417a39714865de0617c9943c1a5e04ae6
CRs-fixed: 3064197
2021-11-12 21:15:51 -08:00
Ke Huang
b43015863f qcacld-3.0: Add the Full Power Down feature support
Add the support for the feature of Full Power Down while
in low power mode.
For this feature, it need to power down wlan chip when
suspend, and power up wlan chip when resume, so need to
change to call wlan driver shutdown and then power off the
wlan chip instead of calling wlan driver suspend when do
suspend, and changing to do power on wlan chip, download
wlan firmware, and calling wlan driver reinit instead of
calling wlan driver resume when do resume.

Change-Id: I293647175c151da0fd6628345f98ea65c83b1bb3
CRs-Fixed: 3061366
2021-11-11 03:12:28 -08:00
Naman Padhiar
24053827cc qcacld-3.0: Add PLD API for devm_request_irq
Add PLD API for devm_request_irq in PLD layer.It can be used
by HIF layer when required.

Change-Id: I1bd08e3c3dc64c47b9792b428322100e12150b27
2021-10-26 04:43:49 -07:00
Yue Ma
39066dbed1 qcacld-3.0: Add CONFIG_CNSS_OUT_OF_TREE flag
Use CONFIG_CNSS_OUT_OF_TREE to control if CNSS family drivers are
built from in-kernel-tree source or out-of-kernel-tree source since
the exposed header files will be in different paths. This is also
for backward compatibility.

Change-Id: Icc1253f65a596c8579424f056dcd0fcb5e73a4a1
CRs-fixed: 3022566
2021-08-27 15:12:20 -07:00
Yue Ma
2e49f1156d qcacld-3.0: Handle flags defined as modules properly
The current way in the driver to handle CONFIG_CNSS_UTILS=m and
CONFIG_WCNSS_MEM_PRE_ALLOC=m will not work if the flags are not
coming from kernel Kconfig directly (e.g. CNSS utils and prealloc
module sources are built out of kernel tree) since "cppflags-
$(CONFIG_FLAG) += -DCONFIG_FLAG" will not take effect if CONFIG_FLAG=m.
Fix it in a proper way which is same as handling CONFIG_CNSS_GENL.

Change-Id: Iab4bf34bd1ae89f947bc5f7080e18569810f5f58
CRs-fixed: 3022560
2021-08-27 15:12:16 -07:00
Naman Padhiar
8e73a4a3b5 qcacld-3.0: Add support for new uevent from ICNSS2
Add support in PLD layer to handle uevent ICNSS_SMMU_FAULT.

Change-Id: Idf89467f9041281f824ad4c9b2386cbfcee27105
2021-06-02 09:01:41 -07:00
Lin Bai
732ea69682 qcacld-3.0: Add CNSS_BUS_EVENT event handler
CNSS platform will notify bus related event, and add related
handler in CLD driver.

Change-Id: I257f2e09c4fbefa6c4913eb7a7deba165a9b73ec
CRs-Fixed: 2922102
2021-05-13 20:34:03 -07:00
Naman Padhiar
5beeb03f45 qcacld-3.0: Add PLD wrapper for MHI state info
Add pld_get_mhi_state API to get current MHI state and
pld_is_pci_ep_awake to indicate that PCI EP is out of
low power state.

Also enable pld_prevent_l1 and pld_allow_l1 API for WCN6750
to manage low power state of PCI EP from Host.

Change-Id: Ic574bf7d7886b8e59b98e65806b387eef3a54e94
2021-05-11 01:43:53 -07:00
Yue Ma
b4aea4cb8f qcacld-3.0: Add WLAN device memory info to SOC info API
Populate WLAN device memory related info along with other SOC info
in pld_get_soc_info() API.

Change-Id: I4b269e8d96d838b3ea7f998642cc8542cebb00d5
CRs-fixed: 2899892
2021-04-21 13:38:50 -07:00
Manikanta Pubbisetty
1e1ff6bc94 qcacld-3.0: add pld API for disable_irq()
When the SRNG IRQs are disabled during suspend, it is
required to disable the interrupts and wait for interrupts
that are pending to complete. Adding a pld/pfrm API to disable
irq synchronously.

CRs-Fixed: 2908685
Change-Id: Ia1f17d54cbe08e8dc101c0ecc2ddee9275712659
2021-03-31 03:11:19 -07:00
Mohammed Siddiq
76ca8c9fc1 qcacld-3.0: Add pld api to get PCI reg dump on SSR
Add pld api to get PCI register dump on FW crash due
to PCI bus failure.

Change-Id: Ie30edbe2c60b0e71912667491c9fadbbe92373c4
2020-12-10 10:55:12 -08:00
Yue Ma
34575137cd qcacld-3.0: Refine kernel-doc comments for force assert FW PLD APIs
Add proper kernel-doc comments for the PLD APIs to force assert FW.
Rename pld_collect_rddm() to pld_force_collect_target_dump() for better
understanding.

Change-Id: I8e0639a120c893dde8ee1cfd5d2aea662eaebf3f
CRs-fixed: 2800567
2020-10-20 21:31:10 -07:00
Naman Padhiar
001338b360 qcacld-3.0: Send HOST wake up to FW over QMI
As part of WOW feature in WCN6750, send HOST wake up
to FW over QMI instead of WMI. To send HOST wake, add
PLD layer and call platform driver API to send QMI
EXIT_POWER_SAVE to FW.
When FW receive EXIT_POWER_SAVE QMI, it will implicitly
consider that it also received HOST_WAKEUP_FROM_SLEEP
and send ACK for it through CE2.

Change-Id: Ia0a3f4c15662f9ee58649f5c6de965f65aeafe32
CRs-Fixed: 2779370
2020-09-21 16:55:38 -07:00
Chaoli Zhou
320e37d20b qcacld-3.0: Export get driver mode interface
Since PCIE Genoa has separate wlan fw patch for
mission mode(amss.bin) and ftm mode(genoaftm.bin),
but cnss2 platform driver always try to load amss.bin,
which is not feasible. So add this new interface for
cnss2 to get correct driver mode and update the fw
patch name before it start downloading wlan fw

Change-Id: I44565c5f50aa03bbc407ee135ef5b02a040b0df6
2020-09-16 21:04:29 -07:00
Naman Padhiar
c4df5e5e5d qcacld-3.0: Add PLD ops to notify thermal level change
Add PLD layer support using which the platform driver sends
thermal state change notification to WLAN host. The callback
contains state variable to store the current thermal state.

Add WHUNT support to validate host implementation.

Change-Id: I5039eae967f940a7809a4b6e6d523362819fb28a
2020-08-22 20:31:34 -07:00
Manikandan Mohan
a439c17034 qcacld-3.0: Add support for PCIE gen switch
Add PLD layer functions to facilitate PCIE gen switch using
cnss platform driver APIs.

Change-Id: Ie1a3273fa8949131937f43d3551cb500a033d59d
CRs-fixed: 2744991
2020-08-21 14:47:57 -07:00
Jianmin Zhu
e33d286340 qcacld-3.0: Fix channel avoid failure for CONFIG_CNSS_UTILS disabled
Many platforms doesn't enabled CONFIG_CNSS_UTILS,
while pld_set_wlan_unsafe_channel depends on it,
pld_set_wlan_unsafe_channel and pld_get_wlan_unsafe_channel need return 0
instead of -EINVAL, or have side effect on channel avoid feature.

Change-Id: I0967d754314d6fb7f8a289ada3bbcbae2c8b3b5e
CRs-Fixed: 2752409
2020-08-15 22:58:52 -07:00
Lin Bai
299a322de1 qcacld-3.0: Use sync method to awake device
Use sync wake when trying to awake device for register
accessing.
This can avoid device re-enter low power mode after
device_wake asserted.

Change-Id: I9ce421be0ecdf05a26388732cc8e15154c57a47a
CRs-Fixed: 2703608
2020-07-07 07:24:39 -07:00
Yue Ma
7554af3936 qcacld-3.0: Export if DRV is supported through platform capability
Add PLD_HAS_DRV_SUPPORT to platform capability to indicate if PCIe
DRV is supported or not.

Change-Id: I25dcba18b795988c4cdecd3f0c355de6786e0f3f
CRs-fixed: 2722430
2020-07-02 08:48:01 -07:00
Mohammed Siddiq
335ba9e938 qcacld-3.0: Add code to support modularizing ICNSS ICNSS2 and CNSS2
Add code to support modularizing ICNSS, ICNSS2 and CNSS2.

Change-Id: I696715592f6000f2a64f8940f324b699acd5fcf1
CRs-fixed: 2685412
2020-06-29 07:38:04 -07:00
Rakesh Pillai
7da05db9f2 qcacld-3.0: Add different PLD vote for latency sensitive case
Any connection in 11g/a is very latency sensitive and
we need to vote for a higher DDR frequency than in
the other phy modes.

Identify the number of latency sensitive connections
in STA mode and vote for higher DDR frequency for the
latency sensitive cases.

Change-Id: I2ce20b2b40213bde52211eae659c9673c6e0d305
CRs-fixed: 2695045
2020-06-05 00:48:28 -07:00
Mohammed Siddiq
0865e3866f qcacld-3.0: Add code to handle hang event data via ICNSS_UEVENT_HANG_DATA
Add code to handle hang event data via ICNSS_UEVENT_HANG_DATA
uevent.

Change-Id: Ic423b47177922bbb6634d2ad143f93cd1961dda7
CRs-Fixed: 2665604
2020-04-20 19:19:28 -07:00
Mohammed Siddiq
2dcd202ecf qcacld-3.0: Add pld code to handle hang event data info
Add code to handle hang event data and length received
from platform driver through uevent.
Change-Id: Ie4acf55cd7d2e602ad10eedbdeed045acfd85f56
CRs-fixed: 2650831
2020-04-01 00:20:33 -07:00
Karthik Kantamneni
06a63cafdd qcacld-3.0: Moselle changes for WHUNT simulation support
Add PLD layer and config changes for simulating
IPCI virtual device in WHUNT.

Change-Id: Ia07ce0884f0e5ffe9b4d23977476c1789390e1c9
CRs-Fixed: 2648150
2020-03-25 15:25:13 -07:00
Vevek Venkatesan
02f5dfc5d7 qcacld-3.0: add pld_smmu_unmap support for BENGAL
Add support for pld_smmu_unmap and enable it for
BENGAL target.

Change-Id: I7f6d6f965b7664342bca29b49f05f8eb62737a0c
CRs-Fixed: 2642663
2020-03-18 15:37:21 -07:00
Yue Ma
a37a0fb1d8 qcacld-3.0: Add APIs to prevent and allow PCIe enter L1 state
Add PLD APIs to prevent and allow PCIe enter L1 state and L1ss
states.

Change-Id: If5cfb4938aa1e5db277d6a8a381a6a9b6f961bc2
CRs-fixed: 2621669
2020-03-02 17:45:25 -08:00
Surabhi Vishnoi
8333061e83 qcacld-3.0: Add pld API to get the audio timestamp
Add pld API to get audio timestamp needed in FTM wlan
timesync feature to synchronise the audio clocks of
master and slave devices

Change-Id: I6f08e33904e26728492286f516ce5a8074afd1ea
CRs-Fixed: 2616917
2020-02-10 04:31:33 -08:00
Naman Padhiar
07f0c719e2 qcacld-3.0: Add PLD layer for iWCN architecture
Add PLD layer and introdue IPCI bus type for iWCN architecture.

Change-Id: Ia0164314c539df84205263de16432eec0eb7fb34
2020-01-17 08:52:59 -08:00
Naman Padhiar
ed3ada0bb0 qcacld-3.0: Correct API name called from HIF layer
Correct API name for disable irq called from HIF layer.

Change-Id: I353723dec61aba877160dd1faa96afdffc1a416b
2020-01-02 11:39:51 -08:00
Naman Padhiar
fb90ce5ccb qcacld-3.0: Add wrapper APIs for HIF layer
Add wrapper APIs which can be used to route calls
to PLD layer if PLD layer.

Change-Id: I4423483f5f3660f7743832d05fd38b45661d02e7
2019-12-26 11:37:52 -08:00
Yue Ma
39b6f2ed51 qcacld-3.0: Add PCIe register window lock related APIs
The register window needs to be configed properly before accessing
any larger than 4K range PCIe registers. Expose the lock in PLD to
avoid race condition when both platform and host drivers
try to config it.

Change-Id: Icd3df3d4d2cc2ecc3df608e7b767a3e654b94500
CRs-Fixed: 2549887
2019-10-28 20:58:30 -07:00
Naman Padhiar
c52e7fd605 qcacld-3.0: Add PLD layer for WHUNT
WHUNT is host unit testing framework which simulates
firmware. Add a PLD wrapper layer for this virtual device.

Change-Id: I1d09b8a18a25b414b0c1d56723cc5687f2bfe297
2019-10-22 03:36:46 -07:00
Arun Kumar Khandavalli
378b7ee6a4 qcacld-3.0: Remove block/unblock shutdown cb
Modem block/unblock shutdown callbacks are added to synchronize
modem shutdown when the driver is in deinit sequence.

With new changes everything is synchronized via the platform driver,
So remove the the block/unblock shutdown callback's.

Change-Id: If66eed5b51bbce64f024edf49e37a21b222a6a4c
CRs-Fixed: 2489733
2019-10-15 02:30:04 -07:00
Yue Ma
a36c0f1a99 qcacld-3.0: Add QMI send related APIs
These APIs can be used to send data request to firmware over QMI
as well as receive response from firmware.

Change-Id: I186d4c53e846af028b5ea75079027217af1580b4
CRs-fixed: 2517225
2019-10-02 14:54:48 -07:00
Alan Chen
50582ca9cb qcacld-3.0: Move clearing recovery flag to after platform driver callback
Platform driver is still doing MHI cleanup at the current location of
clearing the recovery flag. Clear it after platform driver callback.

Change-Id: Ifa81950790fa3d2704ed1aed85301a99c6383470
CRs-Fixed: 2526873
2019-09-18 19:01:57 -07:00
Vignesh Viswanathan
2f7701a13e qcacld-3.0: Add separate FTM Coldboot Calibration Mode
Add separate Coldboot calibration mode (10) for Coldboot Calibration
done during FTM Mode in PLD.

Change-Id: I7e4bb5209d87613bb49a0a958d8e691c73fdcfe1
CRs-Fixed: 2499766
2019-07-30 20:21:05 -07:00
Mohit Khanna
6dbf9c8301 qcacld-3.0: Add BW level PLD_BUS_WIDTH_VERY_HIGH
Add additional bandwidth level for "very high" bandwidth. As per the
default configuration if the total number of tx/rx packets exceeds
bus_bw_very_high_threshold, the bus bandwidth requirement is designated
as PLD_BUS_WIDTH_VERY_HIGH and PLD API is called with this value.

Default value of 7000 is chosen for bus_bw_very_high_threshold, which
amounts to 820Mbps of throughput considering a 1500 byte packet and
100ms bandwidth timer interval.

Change-Id: I3bd904429a02ec4935ba12da7c2cfd37eec738ed
CRs-Fixed: 2489362
2019-07-18 09:16:10 -07:00
Mahesh Kumar Kalikot Veetil
64a886965f qcacld-3.0: Add idle state to bus bw logic
Bus bandwidth logic uses PLD_BUS_WIDTH_NONE to vote if the packet
threshold is less than bus_bw_low_threshold. The same vote is used for
system suspend too. Add a new state for bus bandwidth logic to vote for
idle state.

Change-Id: I62ca6fff84a01083001db360f56344a05fb955db
CRs-Fixed: 2484003
2019-07-09 17:26:32 -07:00
Vevek Venkatesan
4a03124774 qcacld-3.0: change prototype of pld_wlan_enable
Change the function prototype of pld_wlan_enable, to use local
version string.

Change-Id: Ic4c46b609afc8f9510a5c4cbf5e708e28c82d066
2019-07-02 08:39:06 -07:00
Sandeep Singh
75d4b7d4cd qcacld-3.0: Add api to get smmu domain
Add api to get smmu domain from platform driver.

Change-Id: I71efe1a770c8c73f17ffe574555aa9c3b3595819
2019-06-08 06:29:14 -07:00
Yue Ma
0631a756fb qcacld-3.0: Add PLD API to check DRV connection
Add PLD API in order to check if DRV (Direct Resource Vote) subsystem
is connected or not.

Change-Id: I3b600b0760e27c7111320088034c555aee4ff773
CRs-fixed: 2452039
2019-05-16 05:57:13 -07:00