Commit graph

568538 commits

Author SHA1 Message Date
Aravind Venkateswaran
6048c31f6d msm: mdss: dsi: propagate error on read command failures
When panel read command API fails, propagate the error up so that
the caller can take any necessary actions.

CRs-Fixed: 960973
Change-Id: I397f4d47c6343abbab12833a47b753dc3bdb98f0
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2016-03-23 21:17:44 -07:00
Ajay Singh Parmar
501c2659d0 msm: mdss: hdmi: enable ddc gpios before any ddc transaction
Enable DDC power module and corresponding GPIOs before EDID read,
write, HDCP authentication and SCDC communication with sink to
avoid any DDC read or write failures.

Change-Id: Ia88c616d7a6149c3be190b5fbab22444448aea5d
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 21:17:43 -07:00
Ingrid Gallardo
8d4fa5ef98 msm: mdss: fix overflow when reading pixel clock
Fix pixel clock value overflow when reading from the
dtsi. This fixes the frame rate calculations for 120 fps
panels; wrong frame rates were leading to low bandwidth
and mdp clock calculations, increasing the transfer
times and reducing the fps.

Change-Id: Ia41aae433f89e8970318224562b00cf0cb56767b
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
2016-03-23 21:17:42 -07:00
Ajay Singh Parmar
64ee8f9ae5 msm: mdss: hdmi: remove unnecessary sysfs nodes
Remove dead code of sysfs node implementations which are not being
used to avoid any possible compliance issues related to sysfs nodes.

Change-Id: Ida43cbd04c7b8ec6ad79e9a4c66a7725920ba116
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 21:17:41 -07:00
Ajay Singh Parmar
9b7e27023a msm: mdss: hdmi: fix hpd state machine on different use cases
Fix HPD (hot plug detect) state with respect to rest of the system
in different use cases like cable connect/disconnect, runtime
suspend/resume, PM suspend/resume, framework stop/start and sysfs
node hpd enable/disable. Set the switch nodes to correct states
in above cases. Protect event handler, sysfs node handler,  ISR
work with mutex as there can be race condition between PM events,
framework events and hardware interrupts.

Change-Id: I223602753985d7022a3394fc5f5821e6e36ab2cd
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 21:17:40 -07:00
Dhaval Patel
db73451abf msm: mdss: remove hw rev read from capability node
MDSS hardware capability node turns on clock and
check the hw revision every time client calls the
read operation. This is not required because MDSS
driver reads the revision information during MDP
driver probe.

Change-Id: I2db424f7aa1af5c5b006023f70516c2d83fe5372
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 21:17:40 -07:00
Sandeep Panda
63f1a4b258 msm: mdss: adv: fail ADV7533 probe if check revision fails
In current implementation we are ignoring check revision
failure for ADV7533 probe which might be because the chip
itself is not connected to platform. Due to this we are not
disabling the power supply even though chip is not connected
and going ahead causing power leakage. This change fixes the
same.

Change-Id: I2181aba5978a4364d741a96f659771204fe5a2ee
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
2016-03-23 21:17:39 -07:00
Jayant Shekhar
0598d09828 msm: mdss: Ensure HW init program after resume
Currently, MDP and VBIF settings are not getting programmed
after resuming from suspend due to which it gets reset to
default settings. Fix this to ensure these settings are
programmed after resume.

Change-Id: Ice00d2eaac7adde9583c9a89e8b794e3e889361d
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
2016-03-23 21:17:38 -07:00
Padmanabhan Komanduru
11cb05daed msm: mdss: fix the logic for configuration of DSI clock source
The DSI clocks need to sourced out of the correct DSI PLL depending
on the h/w configuration. The current assumption is that the
clk_set_parent operation on DSI branch clocks is necessary for
targets which support 2 DSI PLLs. However, there is a possibility
that the DSI clock source needs to be set even for single DSI
targets if the clock driver implements multi-parent based
approach for DSI RCG clock structures. Add change to take care
of this.

Change-Id: Ib399a8264d0d9919701c70ed6a77d50a69ec386c
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
2016-03-23 21:17:37 -07:00
Tatenda Chipeperekwa
bc27abf530 msm: mdss: hdmi: Do not toggle HPD during HDCP re-authentication
Do not toggle the HPD circuitry during HDCP re-authentication as
this has undesirable side effects such as failure to detect cable
disconnection event. The HDCP engine already has a dedicated
software interface used to reset during HDCP re-authentication.

Change-Id: I76be51ea286fadabefc436613b420c4d6ac1946a
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2016-03-23 21:17:36 -07:00
Dhaval Patel
933552698c msm: mdss: avoid clock off from delayed off
Avoid clock off from delayed off when kickoff
is pending. This sequence is leading to mdp
clocks off and on which adds extra delay in
kickoff cycle.

Change-Id: Ia30ec3ac3c2e7602a32c9eb789cd85d4736b6c60
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 21:17:35 -07:00
Dhaval Patel
7c1a00bcd3 msm: mdss: remove clk off scheduling when commit pending
There can be race condition possible between Early touch
event thread and kickoff thread. For ex:
 -> Eary touch event: Turns on clock and schedule the off
    after 4 vsync cycle.
 -> Kickoff thread: Leaves the clock on
 -> Second touch event: Reschedule the clock off workque

The second touch event call scheduling the clock off
after 4 vsync cycle. On loaded system, kickoff thread
might get intruppted and get chance to rerun after
4 vysnc cycle. The clocks will be turned off for such
use cases before PP done ISR.

Change-Id: I85923146645379be1e3ccc578fc795306cd987ad
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 21:17:34 -07:00
Dhaval Patel
526b0d9c33 msm: mdss: fix overflow while copying config id
Fix possible overflow while copying config id
in DSI driver.

Change-Id: I0432ddc43c62f5b25a8197f2fc06ea45e4c2738a
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 21:17:34 -07:00
Ingrid Gallardo
10ce327b29 msm: mdss: add early wake up for dfps update
During early wake up notification, add the request
to update the fps to the default value, so we can
avoid this latency during the first frame update
after Idle.

Change-Id: I796a6ecba19f451e0f5e202c29e4de0d62a8cd5a
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
2016-03-23 21:17:33 -07:00
Archana Sathyakumar
9cb1717550 ARM: dts: msm: Add support for FPC without psci for 8996
Add support for FPC without psci for cpus in DT. This mode helps reduce the
latency associated with entering Fast Power collapse by not incurring the
latency of terminating in the PSCI driver in Secure EL1.

Change-Id: I1209b62d45d10b74bd36756c4ddefa137fb571a5
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
2016-03-23 21:17:32 -07:00
Archana Sathyakumar
bda3760199 lpm: Allow cpu to enter FPC from hypervisor
FPC using PSCI is entered from PSCI layer that is in Secure EL1.
Switching of EL layers incur additional latency, making FPC slower.
Issue wfi within hypervisor for cpu only sleep. This makes FPC much
faster than entering from PSCI layer.

Change-Id: Icf4c5f2484fdda79c991b842cb3a3185b638bfdb
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
2016-03-23 21:17:31 -07:00
Archana Sathyakumar
82d7fa326e ARM: dts: msm: Update power attributes for 8996
The attributes are updated to generate non-negative residency values. The
numbers do not affect the residency values.

Mode	| Time Overhead	| Energy OverHead	| SS Power
WFI(C1)	| 60		| 15000			| 200.0000
FPC(C4)	| 180		| 39740			| 198.0000

Best Mode below 60 us is Active
Best Mode below 550 us in WFI
Best Mode above 550 us is FPC

Mode		| Total Time Overhead	| Energy OverHead	| SS Power
L2 CG(D1)	| 85			| 65000			| 195.0000
L2 GDHS(D3)	| 180 			| 89070			| 180.0000
L2 FPC(D4)	| 1000			| 441000		| 160.0000

Best Mode below 85us is Active
Best Mode below 550us is WFI
Best Mode below 11500us is GDHS
Best Mode above 11500us is FPC

Mode	| Total Time Overhead	| Energy OverHead	| SS Power
E1-M1	| 120			| 60000			| 192.0000
E3-M2	| 150			| 69000			| 160.0000
E4-M3	| 1200			| 1380000		| 72.0000

Best mode below 120 us is Active
Best mode above 11500us is FPC

Change-Id: I4ba5d1361d7a9ff72531c4921e2941c56e935484
Signed-off-by: Archana Sathyakumar <asathyak@codeaurora.org>
2016-03-23 21:17:30 -07:00
Reut Zysman
f3a88b7433 qseecom: Fix MDTP cipher DIP
Enable CE clocks before calling SCM. This is required to
check if MDTP is activated during recovery and to update the DIP
as required in case it is.

Change-Id: I01907d7cebae007c7f6a33d4bf29b3e4fc6e493c
Signed-off-by: Reut Zysman <rzysman@codeaurora.org>
Signed-off-by: Amit Blay <ablay@codeaurora.org>
2016-03-23 21:17:29 -07:00
Arun KS
d738f0ed15 soc: qcom: flush persistent kmaps and fixmap mappings for MBA
on 32 bit architecture xpu violations are happening because of mappings
in PK map regions. Flush the PKMAP and fixmap mappings to make sure that
there are no duplicate mappings for MBA regions. On 64 bit architecture
these functions turn out to be do while 0;

Change-Id: I9f5dc20c292688bf09d137ae7722820ae51a7d60
Signed-off-by: Arun KS <arunks@codeaurora.org>
2016-03-23 21:17:28 -07:00
Tirupathi Reddy
223bce035c regulator: cpr3: Fix 32-bit compilation
Fix errors reported in 32-bit compilation.

Change-Id: Ic2c03bd396e3f6668aa4d0c7b6ae9b99fa896367
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2016-03-23 21:17:28 -07:00
Anirudh Ghayal
3b6a8823f2 regulator: msm-gfx-ldo: Update the LDO handling sequence
Fix the LDO configuration and voltage update sequence.
While at it, add additional debug logging.

Change-Id: I15dbbfdf18e8694920f1344cfcd3176ffa0f7c3e
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
2016-03-23 21:17:27 -07:00
Phani Kumar Uppalapati
58456af54d ASoC: wcd9335: Reset spline resampler after playback
Reset spline resampler after audio playback is completed
to clear the FIFO and avoid any noise being generated.

Change-Id: I30ed6a337c3bb08f6197f7ee575b323f0b0acfac
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:26 -07:00
Phani Kumar Uppalapati
905abbddb5 ASoC: wcd9335: Update impedance detection parameters
Update mbhc impedance detection parameters namely, LDO control
and Nshift, to get better accuracy for headphone left and right
impedance values.

Change-Id: I8b3271ee9af91b9e921957998e0fb074ffdebe86
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:25 -07:00
Phani Kumar Uppalapati
10d7cdb07d ASoC: wcd-mbhc: Reduce delay in detection for threshold headsets
Certain headsets have threshold on microphone for detection.
Currently mbhc driver takes about 3 to 4 seconds to detect those
headsets. Reduce delay in detection for threshold headsets by
increasing micbias to 2.7v.

Change-Id: I744bafb78560f39806d656c98582d8162fa10dfd
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:24 -07:00
Naseer Ahmed
2badc91e22 ARM: dts: msm: remove gpio output settings in dsi pinctrl
The generic pin control configuration for mdss should not
have gpio output settings. This change removes them so that
gpio output can be controlled in the driver.

Change-Id: I84c69571256ae5f1a11cdfe05d0ac90c49ec3d55
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
2016-03-23 21:17:23 -07:00
Naseer Ahmed
488f3d81d0 video: fbdev: Additional param checks on user space cmap
Additional bound checks for parameters that are used
to calculate target buffer address.

Change-Id: Ib4a00a51c761dc7751a19e6ee7f55cacac97860f
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
2016-03-23 21:17:23 -07:00
Sagar Dharia
df0d2be28a slimbus: Reset data channels for a controller when framer reboots
Framer is responsible for clocking slimbus, and when it reboots, state
of all associated data channels is reset to be consistent with HW
state.

Change-Id: Ie74ace2b20ad6c255440ff6ce593f7d5503bf388
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23 21:17:22 -07:00
Karthikeyan Ramasubramanian
f1308d5f84 soc: qcom: glink_smd_xprt: Resume RX operation during intent re-use
G-Link SMD Transitional XPRT resumes RX operation only when a receive
intent is queued. This leads to a communication stall if the receive
intents get re-used and is not queued.

Resume the RX operation in G-Link SMD Transitional XPRT if a receive intent
is re-used. Also access the intent_req flag exclusively to avoid any race
condition.

CRs-Fixed: 938394
Change-Id: I5a1fdc7ee35070a42659c8e701d73ee2de8d6d05
Signed-off-by: Karthikeyan Ramasubramanian <kramasub@codeaurora.org>
2016-03-23 21:17:21 -07:00
Sagar Dharia
8957b9e33d slim: msm: Improve bulk message timeout error handling
If a bulk message times out due to interrupt starvation, a late
coming interrupt may access structures that are not valid.
Improve timeout error handling by resetting variables, and changing
relevant logging.

Change-Id: Ie0ee2fd9c2ce1628c69e1975fe713a2a26d9e716
Signed-off-by: Sagar Dharia <sdharia@codeaurora.org>
2016-03-23 21:17:20 -07:00
Carter Cooper
30e849fa8b msm: kgsl: Avoid an interrupt storm from the GPU
CP_CACHE_FLUSH interrupts can storm on very rare occasions.
Check for this interrupt storm and do nothing when it occurs
rather than thrashing the CPU which can occasionally bring the
system down.

Change-Id: I0528ad4fec43abfaeeba1499d0b0e51e14b09f0d
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
2016-03-23 21:17:19 -07:00
Phani Kumar Uppalapati
e45a913e1e ASoC: wcd-mbhc: Fix plug removal detection from extension cable
Fix plug removal detection by enabling electrical removal
irq when headset/headphone accessory is removed from the
other end of extension cable.

Change-Id: I585a81e6c01b4ddd249f76614fb933beea3755fc
Signed-off-by: Phani Kumar Uppalapati <phaniu@codeaurora.org>
2016-03-23 21:17:18 -07:00
Venkatesh Yadav Abbarapu
491b50336d msm: platsmp: snapshot of the smp ops
Add smp related files like platsmp, headsmp and
hotplug. Copied from the below caf link
https://www.codeaurora.org/cgit/quic/la/kernel/msm-3.18/
tree/arch/arm/mach-msm?h=caf/3.10/msm-3.10
&id=5724b421fc2db7413048fe5b18135d481d68597a

Change-Id: I2b0be05f939dd97efa6bd187f65f6805d73cb64e
Signed-off-by: Venkatesh Yadav Abbarapu <vabbar@codeaurora.org>
2016-03-23 21:17:17 -07:00
Sanrio Alvares
63b89ec01e ARM: dts: msm: Add support for MSM8996pro
Add device tree support for MSM8996pro along with different PMIC
configurations it supports.

Change-Id: I9d386b79f2324180c2001d382f89c4163fd1af62
Signed-off-by: Sanrio Alvares <salvares@codeaurora.org>
2016-03-23 21:17:17 -07:00
Rohit Vaswani
e74ab64475 drivers: qcom: secure_buffer: Optimize by re-using the same buffer
Re-use the same buffer for the hyp assign calls rather than allocating
a new one for every single call.

Change-Id: Ia76f9743c7eb83d3432ac19cc98be243434c2aa8
Signed-off-by: Rohit Vaswani <rvaswani@codeaurora.org>
2016-03-23 21:17:16 -07:00
Terence Ho
fd9c7c7b8d msm: camera: add slave write array support
Add support for slave_write_array and to pass addr_type with
slave_read.

Change-Id: Ia530dcf684739f43e36fc67fec83bc0be0c8cf78
Signed-off-by: Terence Ho <terenceh@codeaurora.org>
2016-03-23 21:17:15 -07:00
Lakshmi Narayana Kalavala
bbadb94caf msm: camera: Cleanup all the command queues upon close node
When the backend camera daemon is crashed for some reason,
camera application waits for the completion of the command
processing till the timeout is reached which is unnecessary.

Hence clean all the command queues when the config node is
closed and immediately wake up all the command queues so
that camera application is notified immediately.

Change-Id: Iff5c331e8c5bb39305087fd4defe332690653b10
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
2016-03-23 21:17:14 -07:00
Bhalchandra Gajare
ded1ecfaa7 ARM: dts: msm: Add dmic clock drive strength for tasha codec on 8996
DMIC clock drive strength for tasha codec on 8996 is required to be set
to 2MA as per hardware specification. Add this to tasha codec device
settings.

Change-Id: Idecc9caa484c26a431ea3f2410bd72d441eda550
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-03-23 21:17:13 -07:00
Srinivas Rao L
cf52f9b467 qos: Disable irq notifier when qos request is removed
When a qos request is added with IRQ affinity, irq notifier
for that irq is added and with out disabling the irq
notifier if the irq is free it is through a warning.
So disable irq notifier when the qos request is removed.

Change-Id: I50faa4ecbe1b632c0f0f203ca52faf18753c33d4
Signed-off-by: Srinivas Rao L <lsrao@codeaurora.org>
2016-03-23 21:17:12 -07:00
Kiran Gunda
7df8669291 platform: msm: msm_bus: Fix the NULL pointer dereference
Do not access the node_info pointer when it is null to
avoid the crash.

Change-Id: I8ca1a26fab847469bd205cbfb4adf63b9194a1d0
Signed-off-by: Kiran Gunda <kgunda@codeaurora.org>
2016-03-23 21:17:12 -07:00
Liangwei Dong
6a42808462 Net: CNSS_SDIO: Add cnss_get_restart_level CNSS API
export cnss_get_restart_level cnss API for wlan driver
to get current subsystem restart level.

Change-Id: I7e5d9b0055707bbad06b6cd1496723da6c28d4d5
CRs-Fixed: 961579
Signed-off-by: Liangwei Dong <liangwei@codeaurora.org>
2016-03-23 21:17:11 -07:00
Mohit Aggarwal
57296d9eaf diag: Release wake source properly
Currently, diag driver is not releasing wake
source on receiving 0 length packet from SMD.
This patch ensures that the wake sources
hold are released properly.

Change-Id: I4eefc0d361a130c7f313b8ba215f51ecf32e0923
Signed-off-by: Mohit Aggarwal <maggarwa@codeaurora.org>
2016-03-23 21:17:10 -07:00
Shilpa Mamidi
5d4f42608e msm: cpp: Adding null check for regulator disable
Adding null check before regulator enable and also
resetting regulator variable to NULL after regulator disable.
This will avoid using previously disabled regulator in next
session.

Change-Id: I0e8f2f71152064972128f707653e3a2295e1d408
Signed-off-by: Shilpa Mamidi <shilpam@codeaurora.org>
2016-03-23 21:17:09 -07:00
Amir Vajid
1cad27b269 soc: qcom: add API for matching voltages across CPUs
Create an API to match voltages across asymmetric CPUs as
this can be useful in systems with a shared rail across CPUs.
The API takes in one input argument which is the frequency of
a big cluster CPU for which a voltage-equivalent little cluster
CPU frequency is desired. The return value is this little
cluster CPU frequency. All frequencies are in units of kHz.

Change-Id: I821819a0761566984dd7f92014599ff0fcb85e90
Signed-off-by: Amir Vajid <avajid@codeaurora.org>
2016-03-23 21:17:08 -07:00
Jing Zhou
b5bfca8bf5 ARM: dts: msm: correct camera clock setting for 8996
Update camera clock setting to match latest 8996 clock plan.

Change-Id: Ib08ad55b53454196d72370fede075e9447fe7af0
Signed-off-by: Jing Zhou <jzhou70@codeaurora.org>
2016-03-23 21:17:07 -07:00
Mathew Joseph Karimpanal
0058a7fa56 ARM: dts: msm: Enable HDMI hot-plug on Automotive DragonBoard 820
Automotive DragonBoard 820 is a development kit and has an HDMI type A
receptacle. So enable HDMI hot-plug feature.

Change-Id: I2be85cf91f6532110b125050bce0cca441e42960
Signed-off-by: Mathew Joseph Karimpanal <mkarim@codeaurora.org>
2016-03-23 21:17:06 -07:00
Dhananjay Kumar
e22b97da06 ASoC: msm: fix indefinite wait in compress drain
In compressed driver streams might get stopped while
ioctl drain is started but not completed, since buffers
are drained in multiple stages when gapless mode is
enabled.
Check stream state before issuing wait commands to
prevent waiting for drain ack on stopped streams.

Change-Id: I606639c103a7aed90dd9a4561fa6dffc3d4c3822
Signed-off-by: Dhananjay Kumar <dhakumar@codeaurora.org>
2016-03-23 21:17:06 -07:00
Lakshmi Narayana Kalavala
4f71751318 msm: camera: Enhancements to soc layer
Define camera bus clients to identify the multiple camera clients.
Add API to support devices consisting of multiple clock rates
in the device tree node and register threaded irq.

Change-Id: Icdaae68b82c441baf988e90fb6d5cc83c2402a93
Signed-off-by: Lakshmi Narayana Kalavala <lkalaval@codeaurora.org>
2016-03-23 21:17:05 -07:00
Zhen Kong
c3a112da96 qseecom: fix an error related to app name comparision
Make changes to use strcmp to compare app name, and
avoid the memcpy comparision error if the first
several chars of an app name is exactly equal to
another app name. Besides, on some targets, keymaster
app may be first loaded as "keymaste" by qseecomd,
and then used as "keymaster". To avoid checking app
name error, register "keymaster" into app_list and
thread private data.

Change-Id: I468b4e5cb1d5d77ac5d687d0bddc8614b972785f
Signed-off-by: Zhen Kong <zkong@codeaurora.org>
2016-03-23 21:17:04 -07:00
Deepak Katragadda
2740b9fcaa clk: msm: clock: Add GPUCC clock driver support for MSMCOBALT
Add support to model the graphics clocks on MSMCOBALT.

Change-Id: I31c3dda59a0bb7e9b6b6cee8176fb46f46767629
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 21:17:03 -07:00
Bhalchandra Gajare
f5e6ba4333 ASoC: wcd9335: Configure DMIC clock drive stength from pdata
It is possible that differnt platforms could configure to DMIC clock
drive strength differently. Allow this configuration by setting the DMIC
clock drive strength through pdata.

CRs-fixed: 938006
Change-Id: I6f9f8a947e0efca31d0c50dec9a5973079bb48c4
Signed-off-by: Bhalchandra Gajare <gajare@codeaurora.org>
2016-03-23 21:17:02 -07:00