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]>
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]>
This change enables spss_utils driver on Lahaina.
Change-Id: I3abddfc98ccc33dee46d0185faf518be8d1c5999
Signed-off-by: Konstantin Dorfman <[email protected]>
Allow printing unhashed pointers on Lahaina.
Change-Id: I474719268de201b731e83bbbd9d24cd54ec7e260
Signed-off-by: Isaac J. Manjarres <[email protected]>
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]>
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]>
Enable the MFD SPMI PMIC driver that adds support for QTI SPMI PMICs.
Change-Id: I22880f85882fdaa2315f281108ca9006cace0354
Signed-off-by: Guru Das Srinagesh <[email protected]>
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]>
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]>
Introduce an Interconnect L3 driver to set L3 performance states
through EPSS.
Change-Id: I21ec587ae7750fb431048c3697a028c811a1dc6b
Signed-off-by: David Dai <[email protected]>
Add a header for EPSS L3 interconnect nodes for Lahaina.
Change-Id: Iad6c18943fff3c0c84e85594671ec96ea6e3a507
Signed-off-by: David Dai <[email protected]>
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]>
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]>
Add support in SPI QUPv3 driver to make it a DLKM.
Change-Id: Ic251466331862eb9a6e72455cac8ac4388b01045
Signed-off-by: Vipin Deep Kaur <[email protected]>
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]>
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]>
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]>
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]>
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]>
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]>
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]>
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]>
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]>