Commit graph

566736 commits

Author SHA1 Message Date
Dhaval Patel
947a5d6ac5 msm: mdss: add support CDM block in MDP driver
MDP has a new hardware block for converting mixer
output to yuv format before the data goes to the
interface block. This block will be used for enabling
yuv420 output on HDMI and writeback interfaces. In
case only one block is present, it needs to be
shared between HDMI and writeback.

Change-Id: I2688ca98c22d9f78e3c626ea8c1bf4c77713a3af
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
[cip@codeaurora.org: Moved new file locations]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:35:41 -07:00
Benet Clark
72b4bbc9c9 msm: mdss: Add PCC support in DSPP for Thulium
MDP block supports PCC feature on the dspp(destination
side picture pipe) which can be enabled/disabled by driver
clients. Change adds the support in post processing driver
and allows clients of driver to configure the PCC block
in DSPP.

Change-Id: Ic9307e12d6204c9e6e780ef8f2266151cc8a7ddc
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:35:40 -07:00
Ping Li
4f33ae6301 msm: mdss: Modularize caching of pp params
When post processing(pp) blocks are udpated in mdp hardware
new functions should be added into pp driver for caching the
params required to program them. Cached params are committed
to hardware when next frame is being queued for rendering.
PP driver file is becoming huge due to addition of caching changes
for different revisions of MDP. This change moves the caching code
for upcoming mdp revisions into a separate file.

Change-Id: I14e34de23c607fd8acdb103767503cb2cce1a0f1
Signed-off-by: Ping Li <pingli@codeaurora.org>
[cip@codeaurora.org: Moved new file locations]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:35:39 -07:00
Ping li
0044c3f50f msm: mdss: Add support for gamut on dspp
MDP block supports GAMUT feature on the dspp(destination
side picture pipe) which can be enabled/disabled by driver
clients. Change adds the support in post processing driver
and allows clients of driver to configure the GAMUT block
in mdp.

Change-Id: I4024d54f14ebd41374c591a27b12dcda8695c80d
(cherry picked from commit a285051a127bcfa1da56d66fe7f96eeece88c2c8)
[veeras@codeaurora.org: Done as part of 3.18 upgrade
Resolve conflict by adding this commits version of
include/uapi/linux/msm_mdp.h]
Signed-off-by: Ping Li <pingli@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:35:38 -07:00
Dhaval Patel
8300f368b1 mdss: mdp: update writeback output vote to nrt axi port
With MDSS(v1.7), NRT VBIF handles rotator input,
rotator output and writeback output traffic. All other
input traffic is handled through RT VBIF. This change
updates the MDSS driver to update the WB input bandwidth
request to RT AXI ports and output to NRT AXI ports.

Change-Id: If22e6e7903ca2b246cdb89d23362e70f56f9e349
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 20:35:38 -07:00
Padmanabhan Komanduru
58cba6b3ca msm: mdss: update the DSI PHY regulator programming sequence
For 28nm DSI PHY, update the regulator programming sequence
as per the system team's recommended settings.

Change-Id: I0bb23e0ee1e25994c4b9dd4cedd6cb46ea8e282c
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
2016-03-23 20:35:37 -07:00
Ujwal Patel
4202f1aeae msm: mdss: validate roi and pipe parameters during partial update
Partial update should not be used for a given frame if any of the
source pipe in that frame has scaling enabled and that pipe's
destination rectangle is intersecting with final roi. If this condition
is detected, skip partial update and perform a full update.

Change-Id: I2e9b330048680abcce227232f9e086070c3cbdf8
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
2016-03-23 20:35:36 -07:00
Shivaraj Shetty
c1de9aefa2 msm: mdss: Add mdp clock optimization for mdp3 targets
For the panels of resolution less than qHD, ppp can work
in SVS when there is no scaling involved. Optimize the
clock rates based on this for 8909 target.

Change-Id: I0357edcb3f1bc9e4f821a897b6740ac60b4fd44a
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
2016-03-23 20:35:35 -07:00
Veera Sundaram Sankaran
0507b2f2e2 msm: mdss: added support to change panel resolution dynamically
Helpful in changing the panel resoultion on the fly with the help of
debugfs nodes and when used along with simulated panels, it allows to
test different panel configurations dynamically.

Change-Id: I9cdf82e4fffd3dd618ee97601f169d72ab76a473
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
[cip@codeaurora.org: Moved mdss_panel.c file location]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:35:34 -07:00
Jayant Shekhar
d7f8dde109 msm: mdss: Sanitize panel resolutions properly
Currently there is no sanity checks present for panel
resolutions in wb driver. Add proper sanity checks
before configuring with new set of panel resolutions.

Change-Id: Ibdada9e1711f59785d11cc4821105e2e1849b0f3
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
2016-03-23 20:35:33 -07:00
Jeevan Shriram
0f3da65e75 msm: mdss: skip bus vote down if continuous splash hand-off is pending
When continuous splash is enabled, bus clocks are turned on by the
boot-loader display driver. If these bus clocks are voted down while
MDP is still actively fetching from DRAM, it leads to under-runs and
device hangs. Prevent this by skipping vote down of bus clocks if splash
hand-off is still pending.

Change-Id: Ia0b0ff90fb85024fb986453e70afaced331fbf06
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23 20:35:32 -07:00
Padmanabhan Komanduru
fb44464063 msm: mdss: cleanup ESD related code for NT35596 panel
Currently the NT35596 ESD related DSI read values are defined
in mdss_dsi_panel.c file. Add changes to pass these values from
panel DTSI and parsing them in DSI drivers accordingly. This
helps making the code generic and can be easily extended to
other panels also.

Change-Id: If62fa45fdf41429d2efe14a78857433883a329a9
(cherry picked from commit 51684bee60e503e9b06174a294ed2eb7b939d5b2)
[veeras@codeaurora.org: As part of 3.14 upgrade reomve
arch/arm/boot/dts/qcom/dsi-panel-nt35596-1080p-skuk-video.dtsi]
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:35:32 -07:00
Ping Li
a8f6640e62 msm: mdss: Add more checks for mdss_mdp_pp_resume
Add more secure checks inside mdss_mdp_pp_resume function to avoid null
pointer dereference.

Change-Id: I79c3248317557e9455c18c6a47cd692703b02198
Signed-off-by: Ping Li <pingli@codeaurora.org>
[imaund@codeaurora.org: Resolved trivial context conflicts.]
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2016-03-23 20:35:31 -07:00
Adrian Salido-Moreno
f44a833d60 msm: mdss: avoid race conditions during fb release
During fb release we should release all resources that are associated to
that process. However, in current release function this can lead to
kickoff being done, if this is done while display thread is running
there can be race condition between the updates from two different
threads. Fix this by pushing the commit through the display thread in
cases where display thread should be running, or otherwise shutdown this
thread and do it along with panel blanking.

Change-Id: I9ff6316c18adfdb67d0250a144ddc2f9f2634273
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2016-03-23 20:35:30 -07:00
Adrian Salido-Moreno
4cd847cf76 msm: mdss: isolate cleanup of pipes within kickoff
During display commit cycle, we need to iterate through pipes that have
been marked for cleanup and destroy these. However in the middle of the
function we may block for sometime to wait for display to be ready, when
this happens we are releasing ov_lock which controls access to this
cleanup list. If there is any cleanup done in this period, then there
could be some pipes incorrectly cleaned up after this.

To fix this race condition, add a local variable to keep track of pipes
that should be cleaned up.

Change-Id: Ib80cf91e10d66e318754c327fd71a489b8c42676
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2016-03-23 20:35:29 -07:00
Deepak Katragadda
b4f3bd79a3 msm: mdss: Unregister the regulator notifier when mdss_mdp probe fails
Currently, when mdss_mdp probe fails after registering for
regulator notifications, the regulator_unregister_notifier
function is not called. Because of this, when the regulator
has some state change now, the notification call fails.

Change-Id: I2a41029aa145f88477701ab75a6e30883d2c4017
Signed-off-by: Deepak Katragadda <dkatraga@codeaurora.org>
2016-03-23 20:35:28 -07:00
Padmanabhan Komanduru
b59e3ba92e msm: mdss: program the correct MDP_STREAM_CTRL/TOTAL parameters
While coming out of static screen on command mode panels, we
initialize the DSI host as part of DSI clock control. When partial
update is enabled, we need to program the correct ROI parameters
to DSI controller. Otherwise, issues will be seen if the first
update after the static screen has same ROI parameters as the last
update before static screen. Hence, update the existing ROI
parameters properly to MDP_STREAM_CTRL and MDP_STREAM_TOTAL
registers.

Change-Id: Id6ec179e42592bc4fbaa85d45ad4459036a4faf3
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
2016-03-23 20:35:27 -07:00
Adrian Salido-Moreno
0334ed1fc3 msm: mdss: increase mdp core clock to match panel pixel clock
In case of command mode panel, the pixel clock can be increased in order
to finish transfer faster. In such cases we can increase the core clock
in order to match the pixel clock and finish the transfer faster.

Change-Id: I44a01e42c687ce20d4dbfa068478ad438433a581
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2016-03-23 20:35:26 -07:00
Huaibin Yang
16306ffd81 msm: mdss: disable hw underrun recovery only for older mdp reversions
HW underrun recovery in newer mdp revisions is h/w bug free. Enabling
it may help avoid system wide stability issues.

CRs-fixed: 723006
Change-Id: Ide52f68b272a66e18f62535f091faea91f7f13c7
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
2016-03-23 20:35:26 -07:00
Vinu Deokaran
ff88d20a42 msm: mdss: fix for black stripe flicker in browse scroll
Fix a typo that was comparing the width instead of the height
parameter that lead to black stripe flickering when scrolling on
browser.

Change-Id: I10e57f876458f46d445b3404d09a5e7606aeb666
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
2016-03-23 20:35:25 -07:00
Dhaval Patel
2eae06948f msm: mdss: request ab/ib quota based on rt and nrt client
Non-RealTime(NRT) memory fetch should use NRT AXI
ports while RT usecase memory fetch should go through
RT AXI ports. Number of RT and NRT AXI ports can be
different from chipset to chipset. MDSS driver hardcodes
them to "2" for all usecases which won't apply for
all MDP cores Ex: MDPv17. This change removes AXI ports
hard coding and updates ab/ib request based on AXI
ports availability for respective chipset. It uses
uniform calculation method for ib/ab quota request on
RT and NRT AXI ports to reduce the driver complexity
and clean interface.

Change-Id: I015c5c8a64bdf62f5747fcbcf19ba00cd29e21b5
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 20:35:24 -07:00
Shivaraj Shetty
50290a21e5 msm: mdss: Add iommu and bandwidth changes for dsi 6G
msm8909 has mdp3 with DSI 6G. Enable DSI 6G to work with
mdp3 and mdp5 while using iommu and bandwidth functions.

Change-Id: I0de48dbe388c81ebfade7aeb5592357e2750d143
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
2016-03-23 20:35:23 -07:00
Shivaraj Shetty
2b1912967b msm: mdss: share fb memory ion fd to userspace for mdp3
Add changes to share ion fd to userspace for mapping to
the frame buffer memory for mdp3.

Change-Id: I59c2cacde89abbd8919752c129ae8cf304208052
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
2016-03-23 20:35:22 -07:00
Terence Hampson
8d0fd645ad msm: mdss: change arg type passed into of_get_property
On some targets size_t and int are different sizes. This results
in a failed length check.

Change-Id: Ia5dd42cfe32eda789787c59785848e79b61ae218
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
2016-03-23 20:35:21 -07:00
Jeevan Shriram
011f3919a5 msm: mdss: update compat layer structure with new parameters
compat layer ovarlay structure needs to be updated whenever there
is change in 64 bit overlay structure. This change updates the
compat layer.

Change-Id: Ibeaef3d825d8c33ee8c6abf9caaae8432b6b0645
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23 20:35:20 -07:00
Jeevan Shriram
f4f017792a msm: mdss: Align the shared memory length to PAGE_SIZE
It is possible that userspace modifies the frame buffer
parameters. In such cases ensure to align the frame
buffer size to avoid mmap failures.

Change-Id: I4a002694c26c8fface45d8e274d79d5624cc8158
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23 20:35:20 -07:00
Jeevan Shriram
bec9f05773 msm: mdss: Add new property for max prediction error for FBC
Add a property to configure maximum prediction error when
FBC is enabled.

Change-Id: Iad17d567e7e8b9a0bd73df8d59a34e364c2acf8e
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23 20:35:19 -07:00
Siddhartha Agrawal
08fdd6de40 msm: mdss: Increase IB/AB votes during cont splash screen
We now support high resolutions like 4K that need higher b/w votes.
Increase b/w vote to 2GBps for the duration of the continuous splash
screen logo.

Change-Id: I2c73e98ea769b252bee51d953d7cdc24f2b6668a
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
2016-03-23 20:35:18 -07:00
Siddhartha Agrawal
71c00af883 msm: mdss: Fix bug while iterating through list of pipes
While handing off pipes from LK to kernel during the continuous
splash screen support, we were iterating through the HW cursor
pipes causing a crash. Only iterate through non cursor pipes.

Change-Id: I1223d34b374c5517c68beaaaa1df8d21f0fe8b83
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
2016-03-23 20:35:17 -07:00
Siddhartha Agrawal
367f733b7d msm: mdss: Add support for FBC 2.0
Framebuffer commpression(FBC) 2.0 has new bit fields added to the
registers. Configure FBC registers correctly based on the dtsi
configuration. FBC 2.0 has increased the compression ratio to 1/3
and has configurable block size(in lines).

Crs-Fixed: 723612
Change-Id: Icf3c9b29d31f0e3214d6c7d525369fc7398dd9bb
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
2016-03-23 20:35:16 -07:00
Aravind Venkateswaran
d919225827 msm: mdss: do not turn off interface clocks for doze mode
When entering doze mode, do not turn off the interface clocks since
display updates are expected in this mode. This also avoid unnecessary
delays when entering doze mode while trying to wait for the clocks to be
turned off.

Change-Id: Ie6658a561f5d49aff50881c561fef858f3d26c61
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2016-03-23 20:35:15 -07:00
Aravind Venkateswaran
605c69f9b4 msm: mdss: fix transitions from off to doze mode
When doze mode is requested while the panel in powered off, the
panel needs to be first unblanked and then configured into low power
mode. While this sequence exists in the current implementation,
the execution sequence only calls MDP's on function while unblanking
the panel. The correct approach is to go through the full unblank
sequence which would also start the display commit thread. Without
this, screen updates while in doze mode will not work and could
lead to unexpected behaviors.

Change-Id: I4f65764acaf01d61d129e00179930af9ebb79c77
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2016-03-23 20:35:14 -07:00
Aravind Venkateswaran
ef6fec42a8 msm: mdss: unblank panel when entering doze mode for video mode panels
For video mode panels, MDSS hardware needs to be on as long as the
panel is on. When doze mode is requested for a video mode panel,
no special optimizations can be done in the display driver to
configure the hardware in a low power state. As such, when doze mode is
requested for video mode panels, simply unblank the panel if it is not
already on.

Change-Id: I0f279d78b9b5c8eebb2bf654df628acafa408f23
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
2016-03-23 20:35:14 -07:00
Taniya Das
73f7e3a8bd msm: mdss: add MDSS_DSI_LINK_READY support in mdp3
Add MDSS_DSI_LINK_READY support to mdp3 driver, since
8909 uses DSI 6g.

Change-Id: Iccb752329d2116f09c31a522c53f54c675da1cb7
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
2016-03-23 20:35:13 -07:00
Shivaraj Shetty
f07d12346c msm: mdss: Move double bufferring mode support for dsi to dtsi
Move double bufferring mode support property for dsi controller
to dtsi as it is not supported on 8909.

Change-Id: I2d99c34af7d4b9eef8f4503bad6fcd1480b2bde6
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
2016-03-23 20:35:12 -07:00
Shivaraj Shetty
c2539b44b3 msm: mdss: cleanup the gdsc implementation for mdp3
This change adds mdss gdsc changes to mdp3 driver of
8909 platform and also throws error when iommu attach
fails in driver.

Change-Id: I6a0f18b19535e7450f0f9c3fad9b3c30178b9754
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
[imaund@codeaurora.org: Resolved trivial context conflicts.]
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2016-03-23 20:35:11 -07:00
Sandeep Panda
ba3682e212 msm: mdss: increase MDP ab vote to avoid under run
This change updates the bandwidth calculation for mdp3
hardware based on 8909 requirements, otherwise under run
is seen when USB is disconnected.

Change-Id: I49f7c225b57c43eca5ba8c6ac7b889e53cce6037
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
2016-03-23 20:35:10 -07:00
Shivaraj Shetty
e4943e4923 msm: mdss: Fix color swap issue in mdp3 targets
Set Correct unpack pattern for ARGB888, XRGB888 and BGR565
color formats to avoid the color swap.

Change-Id: I9e3aa5018ea87be34122b3c1a80b94fc8cec3967
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
2016-03-23 20:35:09 -07:00
Ping Li
46df6224bc msm: mdss: Update histogram return error type
In case of histogram collection call failure due to histogram is not
enabled, or histogram state is unknown, return ENODATA instead of
EINVALID.

Change-Id: I6996345a19a43752827195b9edf786d62f9cbc75
Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23 20:35:08 -07:00
Ujwal Patel
8282ffafe3 msm: mdss: disable synchronized flush if mixer swap is enabled
If mixer swap or interface swap is enabled on split display, disable
synchronized flush to prevent under-runs.

Change-Id: I21592fd5ef682a2ee8f2bcdaba33d6bcf015e5d4
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
2016-03-23 20:35:08 -07:00
Benet Clark
4c0f7dc9e9 msm: mdss: Add framework for MDP-version-based PP driver
With many updates coming the postprocessing driver, there needs to be
a way to manage the multiple versions of programming sequences and
interface structures, without adding to the hardware agnostic code path.
The pp_feature_ops structure will be used to decouple the PP driver from
the PP hardware, such that the hardware-specific code is separated to a
different file

Change-Id: I604850c082c32f5741905bd509ae0e819e334749
Signed-off-by: Benet Clark <benetc@codeaurora.org>
[cip@codeaurora.org: Moved mdss_mdp_pp_v1_7.c file location]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:35:07 -07:00
Ping li
d892b4e127 msm: mdss: update the incorrect usage of mixer count
Layer mixer count is used for configuring SSPP(source side post
processing), DSPP(Destination side post processing) modules. There can
be a mismatch between the number of layer mixers with SSPP, DSPP
modules. Driver should be using the sspp, dspp counts instead of using
the layer mixer count. This change udpates the logic to use the module
count specific to pipe instead of layer mixer count

Change-Id: I32e32ed233d9c7026135087d05458e8af13d72e7
Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23 20:35:06 -07:00
Ping li
0db67521c1 msm: mdss: dynamically set the postproc offsets
MDP hardware consists of postprocessing hardware modules which are part
of different layers. Offsets of the post processing block can change
based on the MDP version. Moving these module offsets into device tree
makes the driver agnostic of mdp version. This change adds support to
parse the offsets from device

Change-Id: I586c69d0f6217cda9bb7d4ce47aa563c827ea531
Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23 20:35:05 -07:00
Ping li
0d3af8c670 msm: mdss: Fix pipe number calculation for IGC
MDP hardware supports inverse gamma correction(IGC) on the source pipes.
Driver will program the LUT(Look up table) on the source pipe and
enable the IGC. Register exposes a bit mask which is equal to number of
pipes for which IGC LUT table needs to updated.
Source pipe enum values are not contiguos in nature which was resulting
in incorrect programming of IGC module.
This change fixes the issue by assigning bit mask position instead of
relying on the source pipe enum values.

Change-Id: I219cc484edd42fdd563dcb7535ceacb11e9e2d38
Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23 20:35:04 -07:00
Justin Philip
13517698e4 mdss: Add MDP_SMP_FORCE_ALLOC mdp flag
MDP_SMP_FORCE_ALLOC flag is used to allow SMP
allocations even when there is mismatch between
allocated and requested SMPs for a pipe.
User space can make use of this flag in extreme scenarios
where SMP allocations need to pass like GPU composition
and playback of protected  or secure videos.

Change-Id: I369b4361e7e2bbfc8150add467678c4ef8d5cfb6
Signed-off-by: Justin Philip <jphili@codeaurora.org>
2016-03-23 20:35:03 -07:00
Naseer Ahmed
3a3f2ff5f4 msm: mdss: Do not release all fences when going to doze mode
UI may update in doze mode and there may be tearing when going
from doze to unblank - with respect to synchronization, doze mode
must be treated as on.

Change-Id: I8635b0722bc6294f6850ab28ce43046f81ed49a5
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
2016-03-23 20:35:02 -07:00
Jeevan Shriram
42633fc85d msm: mdss: update sysfs node with max mixer width supported
Update the capabilities sysfs node with the max mixer width
supported to have userspace read and add checks for pipe
configurations.

Change-Id: I1431b8d06538b68d0dab4ac1698bd2a93331ad1c
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
2016-03-23 20:35:02 -07:00
Kuogee Hsieh
678db305de msm: mdss: send col_page dcs command when frame size changed
When partial update and sync-wait-broadcast enable, col_page
address dcs command are sent to panel on every frame update
which generates unnecessary interrupts and cause frame rate
to dropped. To avoid unnecessary interrupts, col_page address
dcs commands are sent only when frame size changed. Since
sync-wait-broadcast enabled, col_page address of both
left and right dsi controller need to be sent at same
trigger.

CRs-Fixed: 707502
Change-Id: I37b8f78edf4fa75fa4aea9ca5d57ae0efd10b36c
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
2016-03-23 20:35:01 -07:00
Kuogee Hsieh
92d9bcd42e msm: mdss: add MDSS_EVENT_LINK READY
At split display case, DSI panel initialization dcs
commands need to be sent to panel when both dsi links
are in LP-11 state. Add MDSS_EVENT_LINK_READY to have
both dsi controller's phy/pll initialized which brings
link to LP-11 state first so that panel initialization
dcs commands be received by panel successfully to bring
panel to display_on state.

Change-Id: I4b33fafd2673be1f068819bee25fc1a335eb0fe8
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
2016-03-23 20:35:00 -07:00
Padmanabhan Komanduru
f6da3384e3 msm: mdss: add support for ESD status thread based on TE signal
For some command mode panels, the HW Vsync signal from the panel
stops or becomes irregular if the panel goes bad due to ESD attack.
For such panels, the Vsync signal irregularity can be considered
as a trigger for recovery due to ESD attack. The ESD thread
interval needs to be set based on the irregularity pattern seen
that is specific to the panel. Add support for this.

Change-Id: I8a2408ac1b2c0e063446f8af60ed6fac4c53cb8c
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
[imaund@codeaurora.org: Resolved trivial context conflicts.]
Signed-off-by: Ian Maund <imaund@codeaurora.org>
2016-03-23 20:34:59 -07:00