Commit graph

875,871 commits

Author SHA1 Message Date
Jordan Crouse
186835c7d3 msm: kgsl: Move the system PM operations to adreno
The system power management functions (suspend/resume) are currently
registered with the adreno device but implemented at the KGSL level
which requires function hooks for the actual adreno functionality.

Move the functions back to adreno where they belong, get rid of the
function hooks and remove the legacy suspend/resume handlers that
we haven't needed in years.

Change-Id: Ic0dedbad4a09f165ffd9707e66c45e5b516962e3
Signed-off-by: Jordan Crouse <[email protected]>
2019-12-10 08:13:43 -07:00
Jordan Crouse
86da0d3094 msm: kgsl: Re-export the UAPI header
Commit 7a6368ee0b ("msm: kgsl: Add support for the Adreno GPU") stopped
exporting the uapi header. Unfortunately not all the user-mode libraries
got the message. Start exporting it again to prevent breakage while
everybody figures out how to transition correctly.

Change-Id: Ic0dedbadc187d018b9ff34c0a93f156d525e8b16
Signed-off-by: Jordan Crouse <[email protected]>
2019-12-10 08:13:28 -07:00
Konstantin Dorfman
75ebcb9386 arm64: defconfig: Enable spss_utils driver on Lahaina
This change enables spss_utils driver on Lahaina.

Change-Id: I3abddfc98ccc33dee46d0185faf518be8d1c5999
Signed-off-by: Konstantin Dorfman <[email protected]>
2019-12-10 03:04:47 -08:00
Edgar Flores
bcecb40d60 msm: adsprpc: Updating dependencies for fastrpc driver
Updating dependencies for fastrpc driver.

Change-Id: I4e571301f25f98f3aea35a17b211fc97b64e7b84
Signed-off-by: Edgar Flores <[email protected]>
2019-12-09 19:22:33 -08:00
Isaac J. Manjarres
544abf09ba arm64: defconfig: Enable printing unhashed pointers on Lahaina
Allow printing unhashed pointers on Lahaina.

Change-Id: I474719268de201b731e83bbbd9d24cd54ec7e260
Signed-off-by: Isaac J. Manjarres <[email protected]>
2019-12-09 17:42:54 -08:00
Amir Vajid
64adb15ab0 arm64: defconfig: Enable devfreq drivers on Lahaina
Enable devfreq drivers that support memory scaling.

Change-Id: I5af67047936b6045abe54e4b4228cabe915a45e9
Signed-off-by: Amir Vajid <[email protected]>
2019-12-09 16:21:08 -08:00
Guru Das Srinagesh
f0ae1932b0 defconfig: lahaina-gki: Enable PWM LPG driver
Enable the QTI PWM LPG driver that configures PWM/LPG channels on
Qualcomm Technologies Inc. PMICs for clients such as LEDs.

Change-Id: Ic854b1b01b0769eccfc680fa961ed4107694ba28
Signed-off-by: Guru Das Srinagesh <[email protected]>
2019-12-09 14:55:14 -08:00
Guru Das Srinagesh
86c0cf8e97 pwm: Add snapshot of QTI PWM LPG driver
The QTI PWM LPG driver supports the configuration of PWM/LPG channels on
QTI PMICs.

This is a snapshot of the driver taken from msm-4.19 as of commit
cf2cbb63fb60 ("Merge "input: touchscreen: synaptics_tcm: enable touch
driver"") with the following modifications:
  - Remove config_extend callback and pwm_get_period_extend()
  - Remove struct output_pattern and all its references
  - Remove enable, disable and config pwm_ops callbacks and instead use
    only apply()
  - Remove output_type callbacks
  - Remove support for dbg_show callback

Change-Id: I28571a8c6d5b0d5ac0cad113e77f3b5de8bf97c4
Signed-off-by: Guru Das Srinagesh <[email protected]>
2019-12-09 14:55:13 -08:00
Guru Das Srinagesh
c0e03f9778 defconfig: lahaina-gki: Enable MFD SPMI PMIC driver
Enable the MFD SPMI PMIC driver that adds support for QTI SPMI PMICs.

Change-Id: I22880f85882fdaa2315f281108ca9006cace0354
Signed-off-by: Guru Das Srinagesh <[email protected]>
2019-12-09 14:55:13 -08:00
Taniya Das
ea8a2984ef clk: qcom: Add additional clock debugfs support
Update QCOM clock debugfs to support the below functionalities.
 - Display the register contents of all the clocks which support
   this operation.
 - Display the frequency to voltage mapping of a clock.
 - Display the list of clock frequencies supported by the root
   clocks.
 - Display the clk_rate_max associated with enabled clocks list.

Also add the clock list_rate_vdd_level operation, which is required
for the "clk_enabled_list" and "trace_clocks" debugfs nodes to print
the current voltage.

Change-Id: I3b4cf83e776750d993d53331142223109bf0862e
Signed-off-by: Taniya Das <[email protected]>
Signed-off-by: Deepak Katragadda <[email protected]>
Signed-off-by: David Dai <[email protected]>
Signed-off-by: Mike Tipton <[email protected]>
2019-12-09 14:37:29 -08:00
Taniya Das
fd4adb4c8c clk: add/modify debugfs support for clocks
Update clock debugfs to support the below functionalities.
 - Allow enabling/disabling a clock.
 - Allow calling set_rate on a clock.
 - Display the list of enabled_clocks along with prepare_count,
   enable_count and rate.
 - Add a trace_clocks node to dump the current state of all clocks
   in the ftrace logs.

Change-Id: Ib67b3a3409c9e7d8adb710bb524f54f543abf712
Signed-off-by: Taniya Das <[email protected]>
Signed-off-by: David Dai <[email protected]>
Signed-off-by: Mike Tipton <[email protected]>
2019-12-09 14:37:29 -08:00
qctecmdr
c895479930 Merge "mm: cma: Print region name on failure" 2019-12-09 14:12:05 -08:00
qctecmdr
b324b99e6d Merge "lib/vsprintf: Less restrictive hashed pointer printing" 2019-12-09 14:12:05 -08:00
qctecmdr
e42afd755e Merge "mm, page_owner: record time and pid" 2019-12-09 14:12:04 -08:00
David Dai
6ef23b52c2 interconnect: qcom: Add EPSS L3 support for Lahaina
Introduce an Interconnect L3 driver to set L3 performance states
through EPSS.

Change-Id: I21ec587ae7750fb431048c3697a028c811a1dc6b
Signed-off-by: David Dai <[email protected]>
2019-12-09 11:25:34 -08:00
David Dai
1a54627a14 dt-bindings: interconnect: Add epss l3 header for Lahaina
Add a header for EPSS L3 interconnect nodes for Lahaina.

Change-Id: Iad6c18943fff3c0c84e85594671ec96ea6e3a507
Signed-off-by: David Dai <[email protected]>
2019-12-09 11:19:17 -08:00
Murali Nalajala
d316372155 drivers: llcc edac: Add Cache Error Reporting driver for llcc
This is a snapshot of llcc cache error reporting driver for
lahaina as of msm-4.19 commit<faf8976>. Convert the llcc edac
drivers to compile as modules.

Change-Id: I4b0da39975dbda7bbce9625455fc34c0a97a7c53
Signed-off-by: Murali Nalajala <[email protected]>
2019-12-09 10:56:56 -08:00
Murali Nalajala
d15837f34b drivers: soc: qcom: Add snapshot of boot stats driver
Snapshot of boot stats driver as of msm-4.14 commmit <faf8976>
(Merge "Revert "msm: ADSPRPC: Add early wake up signal support"")

This driver is useful to debug the bootloader KPIs.

Change-Id: I0488247acef0c50d777b05d1605f93cbbae32abd
Signed-off-by: Murali Nalajala <[email protected]>
2019-12-09 10:52:06 -08:00
qctecmdr
d9f515c2b6 Merge "clk: qcom: gpucc: Voltage voting support for Lahaina" 2019-12-09 09:50:33 -08:00
qctecmdr
a0aff6fc73 Merge "msm: kgsl: Set up the adreno device at runtime" 2019-12-09 09:05:21 -08:00
qctecmdr
140cc17e9c Merge "msm: kgsl: Add dedicated boolean functions for adreno sysfs" 2019-12-09 08:32:40 -08:00
qctecmdr
9275751079 Merge "msm: kgsl: Cleanup the device tree probing for memory pools" 2019-12-09 07:59:44 -08:00
qctecmdr
721c41dd4c Merge "msm: kgsl: Make the a6xx mbox client static" 2019-12-09 07:20:52 -08:00
qctecmdr
babbe4d5d1 Merge "wil6210: fix QCA_WLAN_VENDOR_ATTR_FREQ attribute ID" 2019-12-09 03:56:44 -08:00
qctecmdr
905447de4c Merge "spi: spi-msm-geni: Add support to make SPI driver GKI compliant" 2019-12-09 03:26:45 -08:00
qctecmdr
a0d40ebe6f Merge "wil6210: initial support for FTM and AOA" 2019-12-09 02:57:35 -08:00
qctecmdr
eb7a9dce11 Merge "wil6210: add module parameter for alternate interface name" 2019-12-09 02:15:48 -08:00
qctecmdr
ecac8a0e7f Merge "msm: kgsl: Cleanup iommu device tree probe" 2019-12-09 00:39:40 -08:00
qctecmdr
2e952766ee Merge "firmware: qcom_scm: Check for NULL before dereferencing __scm" 2019-12-09 00:39:39 -08:00
qctecmdr
f9b86476cf Merge "iommu/arm-smmu: Reduce log spam from ECATS translation timeouts" 2019-12-09 00:39:39 -08:00
Vipin Deep Kaur
efebf52281 spi: spi-msm-geni: Add support to make SPI driver GKI compliant
Add support in SPI QUPv3 driver to make it a DLKM.

Change-Id: Ic251466331862eb9a6e72455cac8ac4388b01045
Signed-off-by: Vipin Deep Kaur <[email protected]>
2019-12-09 13:53:38 +05:30
qctecmdr
02b2c03252 Merge "arm64: defconfig: Enable Lazy DMA Mapping on Lahaina GKI" 2019-12-08 23:58:00 -08:00
Tingwei Zhang
7e00e661ca coresight: Add snapshot of remote etm driver
Add snapshot for coresight remote etm driver from msm-4.19
commit c953c9b6eb1f ("include/linux: add notifier for fps change").
Make necessary change to adopt coresight framework change.

Change-Id: If351486dce567b979e56103385682d9a0e40edbf
Signed-off-by: Tingwei Zhang <[email protected]>
2019-12-09 11:05:38 +08:00
Tingwei Zhang
f2c6121f25 coresight: Add snapshot of remote qdss driver
Add snapshot for coresight remote qdss driver from msm-4.19
commit c953c9b6eb1f ("include/linux: add notifier for fps change").
Make necessary change to adopt scm framework change.

Change-Id: Id22379bf396d6533ab1aaa36a75219b1cfc0154b
Signed-off-by: Tingwei Zhang <[email protected]>
2019-12-08 18:26:52 -08:00
Lior David
9fbb5576f0 wil6210: added sysfs file for FTM calibration
In fine timing measurements, the calculation is affected by
2 parts: timing of packets over the air, which is platform
independent, and platform-specific delays, which are dependent
on things like antenna cable length and type.
Add a sysfs file which allows to get/set these platform specific
delays, separated into the TX and RX components.
There are 2 key scenarios where the file can be used:
1. Calibration - start with some initial values (for example,
the default values at startup), make measurements at a known
distance, then iteratively change the values until the
measurement results match the known distance.
2. Adjust the delays when platform starts up, based on known
values.

Change-Id: If77667f2d80ddce3d5e5818e2447a2d05dd06034
Signed-off-by: Lior David <[email protected]>
Signed-off-by: Maya Erez <[email protected]>
[[email protected]: trivial conflict fixes]
Signed-off-by: Alexei Avshalom Lazar <[email protected]>
[[email protected]: fix merge conflicts, SPDX license]
Signed-off-by: Lior David <[email protected]>
Signed-off-by: Alexei Avshalom Lazar <[email protected]>
2019-12-08 10:40:03 +02:00
Lior David
bcdbe43a38 wil6210: fix QCA_WLAN_VENDOR_ATTR_FREQ attribute ID
Fix QCA_WLAN_VENDOR_ATTR_FREQ attribute ID to match the official
value from the QCA vendor command definitions (qca-vendor.h).

Change-Id: I549752fe5c29de5346cf9263ccc16266cafbbecd
Signed-off-by: Lior David <[email protected]>
Signed-off-by: Maya Erez <[email protected]>
Signed-off-by: Alexei Avshalom Lazar <[email protected]>
2019-12-08 10:40:03 +02:00
Lior David
abcaaf6443 wil6210: support FTM/AOA while unassociated
Prepare driver for FTM/AOA while unassociated.
1. Added attributes allowing user space to specify the frequency
where FTM/AOA peer is listening. When specified it will override
the entry in the kernel scan results cache. If not specified,
the kernel scan results cache will be used like today.
This gives user space location framework more flexibility - it
can maintain its own cache of peers, or perform scans less
often (since entries in the kernel scan results cache expire
quickly)
2. Remove associated check when starting FTM session, so session
can start even when unassociated.

Change-Id: Ib0ba52c506e1d8d59ab8c12043acd792405d69a0
CRs-Fixed: 1094147
Signed-off-by: Lior David <[email protected]>
Signed-off-by: Maya Erez <[email protected]>
Signed-off-by: Alexei Avshalom Lazar <[email protected]>
2019-12-08 10:40:03 +02:00
Lior David
9adf4cf273 wil6210: initial support for FTM and AOA
Added initial support for fine timing measurement(FTM)
and angle of arrival (AOA). These features allow a station
to get an accurate indoor location by measuring
distance (FTM) and azimuth/elevation (AOA) to one or more
stations/APs with a known location.

The following APIs are supported:
1. Get FTM/AOA capabilities, currently hard-coded for a
single-shot measurement to an associated AP.
2. Start FTM session.
3. Receive FTM results.
4. Start standalone AOA measurement.
5. Receive AOA results.

Change-Id: I54ebc1bdff6ed7d91644165b16eb0a4240069321
CRs-Fixed: 1057307
Signed-off-by: Lior David <[email protected]>
[[email protected]: fix compilation errors]
Signed-off-by: Maya Erez <[email protected]>
[[email protected]: trivial conflict fixes]
Signed-off-by: Alexei Avshalom Lazar <[email protected]>
[[email protected]: fix conflicts, SPDX license]
Signed-off-by: Lior David <[email protected]>
Signed-off-by: Alexei Avshalom Lazar <[email protected]>
2019-12-08 10:39:45 +02:00
qctecmdr
eda093d5ef Merge "dmaengine: gpi: Add support to make GPI driver GKI compliant" 2019-12-07 00:59:42 -08:00
qctecmdr
a2457c5ecd Merge "soc: qcom: ssr: Export find_subsys_device function" 2019-12-07 00:59:41 -08:00
qctecmdr
da62b770ad Merge "drivers: thermal: Add a snapshot of thermal framework" 2019-12-07 00:59:41 -08:00
qctecmdr
cdeb9b274f Merge "firmware: qcom_scm: Add MODULE_LICENSE" 2019-12-07 00:59:39 -08:00
qctecmdr
ebbf8cba46 Merge "devfreq: Do not allow tunable updates when device is suspended" 2019-12-06 18:04:42 -08:00
Raghavendra Rao Ananta
54e781e95b firmware: qcom_scm: Check for NULL before dereferencing __scm
The function qcom_scm_get_sec_dump_state dereferences __scm without
checking for NULL and could potentially lead to a NULL pointer exception.
This scenario can happen if the clinet calls qcom_scm_get_sec_dump_state
before qcom_scm driver is even probed. Hence, check for NULL before
dereferencing it.

Change-Id: Ic6f7c2b2d616645ea69a8c594c90dc01d689637f
Signed-off-by: Raghavendra Rao Ananta <[email protected]>
2019-12-06 17:24:19 -08:00
qctecmdr
cf23d0036d Merge "PM / devfreq: memlat: Look for min stall% in addition to ratio criteria" 2019-12-06 11:10:36 -08:00
qctecmdr
ec6b9bfbe0 Merge "msm: ipa3: SRAM NAT, DDR NAT, back-and-forth NAT" 2019-12-06 10:38:46 -08:00
Rama Aparna Mallavarapu
5e33579a6a devfreq: Do not allow tunable updates when device is suspended
Tunables update accesses the monitor's registers for some devices.
When the device is suspended, the clocks for those devices are turned
off and updating the tunables of a suspended device causes the device
to crash. Fix this by checking the flag dev_suspended before allowing
the tunable updates.

Change-Id: I3a0938edf761a9ea6d39ffeec19f35c228d5c306
Signed-off-by: Rama Aparna Mallavarapu <[email protected]>
[[email protected]: updated to utilize suspend_count from upstream and resolved minor merge conflicts]
Signed-off-by: Amir Vajid <[email protected]>
2019-12-06 08:51:32 -08:00
Rama Aparna Mallavarapu
db4f4a0933 PM/devfreq: Do not switch governors from sysfs when device is suspended
There is a possibility to switch the governors from sysfs even when the
device is in suspended state. This can cause a NOC error at times when
trying to access the device's monitor registers in a suspended state. This
change fixes this issue. Utilize suspend_count to know if the device is in
suspended state or not. Check if the device is suspended before switching
the governor from sysfs.

Change-Id: I15055aa51daa35272be4667e5bafb8ccd7933098
Signed-off-by: Rama Aparna Mallavarapu <[email protected]>
[[email protected]: updated to utilize suspend_count from upstream, resolved minor merge conflicts and updated commit text]
Signed-off-by: Amir Vajid <[email protected]>
2019-12-06 08:51:32 -08:00
Rama Aparna Mallavarapu
96784c4520 PM / devfreq: Fix race condition between suspend/resume and governor_store
There is a race condition when the event governor_store is being executed
from sysfs and the device issues a suspend. The devfreq data structures
would become stale when the suspend tries to access them in the middle
of the governor_store operation. Fix this issue by taking a lock around
suspend and resume operations so that these operations are not concurrent
with the other events from sysfs.

Change-Id: Ifa0e93915a920cec3e0429966328a1128d61098b
Signed-off-by: Rama Aparna Mallavarapu <[email protected]>
[[email protected]: updated to merge better with upstream changes and removed renaming since done in previous commit]
Signed-off-by: Amir Vajid <[email protected]>
2019-12-06 08:51:31 -08:00
Jonathan Avila
9693b4d620 PM / devfreq: Introduce an event lock
Currently, concurrent writes to sysfs entries leave the	possibility
for race conditions within the devfreq framework.  For example,
concurrently executing max_freq_store and governor_store can result
in attempting to perform an update_devfreq() before the new governor's
start handler can be executed.

A more concrete case is a race between polling_interval_store and
governor_store.  Because no lock is used after calling into the event
handler of the old governor and there's nothing preventing work from
being queued after the monitor is stopped, it's possible to
accidentally cause delayed work to be queued on the governor being
switched to.  This can be seen if you create two threads, one which
changes a device's governor between simple_ondemand and performance,
and one which changes its polling interval between 45 and 50.

All of these races can be addressed with the introduction of a lock
that prevents sysfs operations from interleaving in this fashion.

Change-Id: Ia6887dcb2d69dc2576837a6c09fed55a28943abc
Signed-off-by: Jonathan Avila <[email protected]>
[[email protected]: renamed to event lock and only used when CONFIG_QCOM_DEVFREQ_ICC is enabled]
Signed-off-by: Amir Vajid <[email protected]>
2019-12-06 08:51:30 -08:00