Add Qualcomm CPU Implementer ID macro. This is required for the
Errata framework.
CRs-Fixed: 969563
Change-Id: I354ed0d131c80805915f0a7533351187a89b7e91
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Kryo2xx Silver CPUs support L1 and L2 cache error reporting. Add
support for the same.
CRs-Fixed: 969563
Change-Id: Ia2c860803169843a227eacebc9869e11673ffc7a
Signed-off-by: Trilok Soni <tsoni@codeaurora.org>
Specify VDD_APCC CPR open-loop and closed-loop voltage
adjustments for CPR revision 0 parts according to the most
recent hardware characterization results. These adjustments
result in major power savings for most corners and also ensure
stable operation for all corners.
Change-Id: I4fc66df626a102c478c1bf20a736869f5e389089
CRs-Fixed: 980877
Signed-off-by: David Collins <collinsd@codeaurora.org>
Increase the max threshold value so that user has more flexiblity
to tune the value.
CRs-Fixed: 971774
Change-Id: Id6408b7ee6779e95c48bcf9087ea7c87b54d42fd
Signed-off-by: Runmin Wang <runminw@codeaurora.org>
If the source is at the boundary of the VMA, loading one word at a
time can cause an alignment fault when the adjacent VMA is IO mapped.
Do byte-by-byte copy until source aligns to 8 bytes and then continue
with optimized version.
CRs-Fixed: 973724
Change-Id: I05e085597c58169fc6e275508a907029b9c7ec64
Signed-off-by: Sanrio Alvares <salvares@codeaurora.org>
Add the qcom,is-cbf-regulator flag to the VDD_APCC CBF CPR
regulator in order to differentiate it from the power cluster and
performance cluster CPR regulators. This allows CBF specific
fused voltage offset to be applied.
Change-Id: I0a8710fafaac9e8bf7f3c5cc988d55a44bc99b96
CRs-Fixed: 980901
Signed-off-by: David Collins <collinsd@codeaurora.org>
Disabling power collapse during camera open. We send
disable request before opening camera and enable it
back after opening camera
Change-Id: Idd55021063eace18fa20f00183a41a502f5c88a1
Signed-off-by: Ramesh V <ramev@codeaurora.org>
Add changes to expose dump stack functionality which can be used
by driver to dump stack information when it requires.
CRs-Fixed: 979886
Change-Id: Ib929ad0a510b996ac54d17afd2957ea487c62851
Signed-off-by: Abhishek Singh <absingh@codeaurora.org>
To open up the frequency range from 150 to 300MHz, change
the fixed CBF PLL post divider from 2 to 4. That way, to
generate frequencies less than 300MHz, the VCO can be run
at 4x with the CBF mux set to use the main output.
While we're here, add the cbf_pll_main clock to the lookup
table.
CRs-Fixed: 980903
Change-Id: I9f70f18e01199c41e1940857afb7bdd477c1c04c
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
The default value of the MPP2 on fused platforms should be
deasserted.
Change-Id: Ied8d9503fc7a6d57df1aaba3874dedf0a3720645
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
Signed-off-by: Tony Truong <truong@codeaurora.org>
Let the QPNP_MISC config depend on the SPMI or the
MSM_SPMI configs instead of SPMI only.
CRs-Fixed: 972331
Change-Id: I9a0d53c6cf0aeeaf258cfca5706c68a6a8b7e37a
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
This patch adds a snapshot of the QPNP misc driver as of msm-3.14
commit:
e016c39467094409c9c872b02ec619164913054a (Merge "msm: thermal:
Fix compilation issue when THERMAL_MONITOR is disabled")
CRs-Fixed: 972331
Change-Id: I48dc9857379c388ddff86b20320cdfa23bb22af8
Signed-off-by: Andy Gross <agross@codeaurora.org>
Signed-off-by: Devesh Jhunjhunwala <deveshj@codeaurora.org>
Configure the RECAL_VCTL/CPR_DLY registers to enable and set the
voltage delay time for hardware based droop detector recalibration.
Only needed on MSM8996 Pro.
CRs-Fixed: 980641
Change-Id: I217e4510b020b7708665394c42f46773bd8b225d
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
Add support for multitouch procotol B, in order to track
object based ID touch activities.
Change-Id: I9b6941b3fea2f5c28434793073330cd4abe9fa74
Signed-off-by: Jigarkumar Kishorkumar Zala <j_zala@codeaurora.org>
The guard page should be enabled on the gpuobj
import path to ensure allocations that are mapped
are safe from the UCHE overfetch bug.
CRs-Fixed: 975219
Change-Id: I42b7046ce3d314ec21c8fb03ef4fbbcdb094d8cf
Signed-off-by: Sushmita Susheelendra <ssusheel@codeaurora.org>
Instead of looking up the process by pagetable base and
name, use the fault context to extract the pid and other
process specific information. This works for both the
per-process and global pagetable configurations and also
reduces some locking. This also reports the correct
pid and task name in the global pagetable configuration.
CRs-Fixed: 971753
Change-Id: I9c869527c3d1b2606f3d12234163935d6f5e43a9
Signed-off-by: Sushmita Susheelendra <ssusheel@codeaurora.org>
Slimbus master is present in different subsystem
on different tragets.
Register with specific subsystem as mentioned in
the device tree.
Change-Id: I1bee7fdd7578deedca8e4e43af9055b41b96d652
Signed-off-by: Dilip Kota <dkota@codeaurora.org>
With 3.18 kernel, get_session_time command to
DSP is updated to new command. This
command is not supported on older targets as
they have an older DSP version. To have backwards
compatibility, based on DSP version choose which
command to use.
CRs-Fixed: 978676
Change-Id: I76b0cfcd84df90d7a206690cb8aa1eb773fdc53d
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
Update logic to print VADC peripheral register content
in case adc conversions are met with error condition.
Change-Id: Ic4e2cf7b9bfc7b2a647aa773fbcafb6bd0c6019e
Signed-off-by: Rama Krishna Phani A <rphani@codeaurora.org>
Move spin lock init for no wait que before apr registration.
If apr registration fails asm free client will free
the no wait que by acquiring spin lock. Hence spin lock
init for no wait que should happen before apr registration.
CRs-Fixed: 979701
Change-Id: I5ef85e39ab5e3babfb2e097005c0d1553cc38f51
Signed-off-by: Laxminath Kasam <lkasam@codeaurora.org>
Add support to enable Bluetooth A2DP playback
via DSP.
CRs-Fixed: 978676
Change-Id: I02f2af671bed10e45b764af5cc9a0977a3d9e66e
Signed-off-by: Ramlal Karra <rkarra@codeaurora.org>
Signed-off-by: Ashish Jain <ashishj@codeaurora.org>
Check cmap data size before copying the
userdata to avoid null access.
Change-Id: If75c0339cf5e0ace6a35abc625f02283cc99298c
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
This is the reference driver source code for synaptics touch driver,
the version is 2.6.
All the new files are copied from the git commit:
7b6b9d126aca1f371e8abf3ae56d7a5a4e538f13
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_active_pen.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_active_pen.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_core.h
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_core.h;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_fw_update.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_fw_update.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_gesture.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_gesture.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_i2c.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_i2c.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_proximity.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_proximity.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_rmi_dev.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_dev.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_rmi_hid_i2c.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_rmi_hid_i2c.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_spi.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_spi.c;
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_test_reporting.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_test_reporting.c
drivers/input/touchscreen/synaptics_dsx_2.6/synaptics_dsx_video.c
is copied from
kernel/drivers/input/touchscreen/synaptics_dsx/synaptics_dsx_video.c
include/linux/input/synaptics_dsx_v2_6.h
is copied from
kernel/include/linux/input/synaptics_dsx.h
Change-Id: Ifda2c38ca5b4a82c3363d8c59ae9da3839568e82
Signed-off-by: Mao Li <maol@codeaurora.org>
Add the OSM CPU clock device node to support CPU clock scale requests.
Include the initial set of frequencies supported by the two clusters
in the msmcobalt chip along with necessary configuration parameters
required by the OSM controllers.
Change-Id: I2ac6fbac62633973e9c40d89d01583be10b51fc0
CRs-Fixed: 967319
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
The Operating State Manager is a hardware block which deals with
performing voltage and frequency change operations in the CPUSS. Two
instances exist, one for each cluster, in the msmcobalt chip.
Introduce the OSM clock driver to perform the required OSM hardware
block initialization and support DCVS scale requests.
Change-Id: I3e155db5cd580e371ca1791815e4942f442a3d20
CRs-Fixed: 967319
Signed-off-by: Pushkar Joshi <pushkarj@codeaurora.org>
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
Introduce the CPRh regulator devices to manage the two VDD_APC supplies
powering the CPU clusters of the msmcobalt chip.
Change-Id: I3f63d2d89be631156635d1628d7687b6ef209846
CRs-Fixed: 967275
Signed-off-by: Osvaldo Banuelos <osvaldob@codeaurora.org>
We're currently registering for some interrupts that don't exist, and
we're not registering for some interrupts that we should be. This
results in error messages like:
d80000.arm,smmu-jpeg: found 4 context interrupt(s) but have \
3 context banks. assuming 3 context interrupts.
b40000.arm,smmu-kgsl: found 4 context interrupt(s) but have \
2 context banks. assuming 2 context interrupts.
This could also result in us missing some interrupts.
Clean all of these up based on the interrupt information from the
hardware docs.
CRs-Fixed: 975201
Change-Id: I33e309ecb700bdead6a0a82a231f3d199c3d34f0
Signed-off-by: Mitchel Humpherys <mitchelh@codeaurora.org>
IPC Router binds any port as a control port and moves it from the client
port list to control port list. Misbehaving clients can exploit this
incorrect behavior.
IPC Router to check if the port is a client port before binding it as a
control port.
CRs-Fixed: 974577
Change-Id: I9f189b76967d5f85750218a7cb6537d187a69663
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
Enable MHI channel and event configuration for MSM8996
and APQ8096 fused platforms so they can communicate with
MDM devices. Host will be able to bring up the MDM and
initiate data traffic between the two.
Change-Id: Id9b676051547e91aa7f7e047e7d7a0e38051fba4
Signed-off-by: Andrei Danaila <adanaila@codeaurora.org>
Signed-off-by: Tony Truong <truong@codeaurora.org>
Add device specific GPU properties for Cobalt.
Add GPU DCVS and bus DCVS plan
CR-fixed: 973565
Change-Id: I6c51be7eeb50c41d4cfa9f9548ebd48888ee1ac5
Signed-off-by: Lokesh Batra <lbatra@codeaurora.org>
Signed-off-by: George Shen <sqiao@codeaurora.org>
Signed-off-by: Oleg Perelet <operelet@codeaurora.org>
xhci_stop_device() is calling xhci_queue_stop_endpoint() multiple time
and doesn't check return value. xhci_queue_stop_endpoint() can return
error if xhci is already halted or not able to queue command.
xhci_stop_device() waits for stop command completion using
wait_for_completion which wouldn't be interrupted or completed if
queueing of command fails. It results into possible deadlock condition
where usb_disconnect() waits for this udev->lock which is already
acquired by caller of xhci_stop_device() which is set_port_feature().
Fix this issue by handling error condition and making sure that
xhci_stop_device() doesn't wait if queueing of command is failed.
Change-Id: Ica4db17afcd39a7e89fcf985f41760efd2756653
Signed-off-by: Mayank Rana <mrana@codeaurora.org>
As per the hardware documentation, update the voltage regulator
configurations needed for 8996AU CDP. This overrides the settings
done in msm8996-regulator.dtsi.
CRs-Fixed: 978343
Change-Id: I250e5c6e7f6d80ab1415b873c9ed6e405aae0c4c
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Halo HL7509 external buck converter powers VDD_GFX voltage rail
on 8996 automotive CDP. Specify the necessary configuration for
it.
Disable closed-loop CPR operation for graphics CPR controller
until it is verified with this external buck configuration.
CRs-Fixed: 978343
Change-Id: I7d9bdce4c0b381942c6201f80b0970cad8d82ab5
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Halo hl7509 buck converter will be powering the VDD_GFX voltage
rail of 8996 automotive platforms. HL7509 requires an enable gpio
to turn on the external buck. Support it through a fixed
regulator.
Add them to the list of regulators for msm8996. Keep them
disabled by default so that they can be enabled in board specific
files.
CRs-Fixed: 978343
Change-Id: Ib8006e640206a92ac6f227a4a180efbe7d15026f
Signed-off-by: Subbaraman Narayanamurthy <subbaram@codeaurora.org>
Add SET and GET parameter APIs to query speaker
parameters in feedback speaker protection FTM mode.
CRs-Fixed: 974621
Change-Id: I1a51e5033d7836c0c996621593cd2f4dd6982dcd
Signed-off-by: Vidyakumar Athota <vathota@codeaurora.org>
Post processing driver clients can program the dither table in mdp.
If length of the dither table is set to 0, driver will program the
default table. If driver client would like to program the table it needs
to update the length field as per mdp hardware version.
CRs-fixed: 983164
Change-Id: I5e6aaa3d9376884e5ea1fe153cdf2798e3a52d1e
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Add support for CEC commands to suspend and resume the device.
The HDMI core must be kept on when the CEC wakeup feature is
enabled and the device is going into suspend state. Furthermore,
interrupts must be enabled in this state to capture CEC commands.
This allows the device to be resumed later on via CEC wakeup commands.
Change-Id: Ie6fcbc666e4f40335ab8faaa969d4b03aa83e17c
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
In the current implementation, the DSI PLL codes are copied from
a CMA memory which has a no-map attribute. Update the logic by
reading the pre-calibrated DSI PLL codes from physical memory
which is re-mapped to virtual memory allocated in kernel using
ioremap_page_range. Once the DSI PLL codes are stored, free the
reserved CMA memory back to kernel.
Change-Id: Iaa0bbd600dd1a18497cd4dfd7830a9bf88ab0ead
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
When DSI panel in unblanked, the driver configures the sources for all
the DSI branch clocks based on the current HW configuration. This
assumes that the clocks would be off when the panel is unblanked. This
may not be true when transitioning to ON state from any of the panel low
power states (LP1 or LP2). This can lead to warnings when trying to set
the clock source while the clock is enabled. Fix this by ensuring that
the clock source is configured only if the panel is not on.
Change-Id: I97f40eaedad203c5aaa0c645105bea2ff962e81d
CRs-Fixed: 975819
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
Add xlog entry when BTA DONE interrupt is received. And add
proper error messages before panic in few places, to make it
easy to identify the reason and place of the crash.
Change-Id: Ie9e24d2caeff12601058ea3c76af4e3dca0cd09c
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
Codec reset gpio configuration needs to be updated
before slimbus master component is initialized otherwise
codec cannot be enumerated on the bus. Add a new platform
device driver to update the codec reset gpio configuration
to valid state (output, drive-strength) before slimbus
is initialized.
CRs-Fixed: 968161
Change-Id: I7227212e6b846d58196718255aa4b0923352d120
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
Update the clock framework to support the setting of post_div for
debug mux so as to divide the clock by post_div.
CRs-Fixed: 977413
Change-Id: I7299bdb0953dcf65fbf2a38b7578e2e54446c0d7
Signed-off-by: Odelu Kukatla <okukatla@codeaurora.org>
There is a line corruption on top of hx8394f panel, which is a
specific issue of hx8394f panel configuration. Update hx8394f
init sequence to fix this issue.
Change-Id: If28cc8dc0c7fa9d979ada92685c1abb6c93ccccb
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
Dump the call stack if there is no memory available from the prealloc
pool in order to get the source of the memory allocation.
Change-Id: I0b523e82638410ea679f1d9d3f4bb56703ed9100
Signed-off-by: Yue Ma <yuem@codeaurora.org>
Some platforms support multiple GPU clock plans based on the speed
bin in the efuse. Specify the wake up frequency of each speed bin
individually to wake the gpu at the correct powerlevel.
CRs-Fixed: 967494
Change-Id: I9890b8a710d7055c30f9ae7612b092af8fa8a9f5
Signed-off-by: Suman Tatiraju <sumant@codeaurora.org>