Commit graph

566979 commits

Author SHA1 Message Date
Xiaoming Zhou
3a7f63f73a msm: mdss: new rotator device driver
Earlier, rotation operation was handled as part of overlay API.
This creates a dedicated rotation device driver, which makes
rotation operation separate from frame buffer device.

Change-Id: I1cf99be03606fd43f97db386a6a55c01f1a058d4
Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
[cip@codeaurora.org: Moved new file locations,
updated sync.h/sw_sync.h includes]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:37:45 -07:00
Alhad Purnapatre
7bc39c66b2 msm: mdss: hdmi: Initialize HDCP2.2 feature irrespective of QFPROM support
The HDCP 2.2 feature was being initialized only if QFPROM keys are present.
This is not required for HDCP 2.2, only for 1.4. Instead, added gating for
initialization of HDCP 2.2 feature by the version of HDMI Tx controller.
HDMI Tx controller version 4.0.0 and above supports HDCP 2.2 auth.

Change-Id: I7f2fae06ed09f3fde638faa416c926a038edbd76
Signed-off-by: Alhad Purnapatre <alhadp@codeaurora.org>
2016-03-23 20:37:44 -07:00
Veera Sundaram Sankaran
b8469cfdba msm: mdss: fix error code on bw limitation cases
Too much downscaling or upscaling results in bandwidth issues
due to hardware limitation. Fix return error code for such cases.

Change-Id: I4bf405bc278ebd6fdadb2f81faa68b7fec67e517
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:37:44 -07:00
Ajay Singh Parmar
3929611fa1 msm: mdss: hdmi: proper synchronization between hpd and tx power
Currently, HDMI driver has HPD (Hot Plug Detect) work to handle HPD
interrupts and power off work to handle the Tx power off. Power off
work waits for HPD work to finish if in progress. In case of suspend,
this can lead to a dead lock or power off work might starve for long
time HPD work may take some time to finish resulting in suspend or next
resume to timeout.

Power off work was added to unblock the user thread as it used to take
a long time waiting for audio engine to finish. That part of the code
has been moved to HPD work. Now power off can be synchronous with the
call as now it doesn't account for the delay. This removes the dependency
on other work.

Also, use a separate mutex for power on/off. The existing mutex is being
used in large number of places which are not related. During suspend/resume
use of mutex in places like sysfs read/write might result in longer hold of
the mutex resulting in power off delay which eventually may timeout the
suspend or resume.

Change-Id: Ie1e461f6cb7f90d440bfd203b935cd7dea069b5e
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 20:37:43 -07:00
Kuogee Hsieh
3c235789a7 msm: mdss: add thulium dsi phy support
Add dsi phy related supporting functions to configure
timing registers of both data and clock lanes of phy
interface.

Change-Id: I185c26ff2b9f11d9b30f4fee42bc730b69098f0f
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
2016-03-23 20:37:42 -07:00
Vinu Deokaran
b685d84bf9 msm: mdss: hdmi: add support for audio at 594MHz pixel clock
Add N and CTS values needed for audio clock regeneration when using 594MHz
pixel clock. These values are recommended by HDMI 2.0 specification.

Change-Id: I3866492b1f767ef22ab91acc763589d692bc6aa7
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
2016-03-23 20:37:41 -07:00
Xiaoming Zhou
b12430afd8 msm: mdss: support atomic commit wfd use case
Add the support for atomic commet wfd use case, where
the output buffer is specific in the atomic commit
structure.

Change-Id: I261392df132d4321daccb05d6ba7f5d9ea622236
Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
[cip@codeaurora.org: Moved new file locations,
updated sync.h/sw_sync.h include]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:37:40 -07:00
Dhaval Patel
e904dec4b1 msm: mdss: store UBWC plane info in UBWC buffer format
Store UBWC plane information in UBWC buffer format
instead of MDP buffer format. This cleans up logic
for input data check and simplifies the MDP plane
configuration.

Change-Id: I0a72238d0110fe88aec394f8f6248ba46fab92b7
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 20:37:39 -07:00
Dhaval Patel
a499cb5a94 msm: mdss: move pipe to cleanup list if no layer is attached
Commit call should move unassigned pipes to cleanup list before
calling kickoff because it supports "validate + commit"
functionality.

Change-Id: Ia4d690a451b2ba770f285918d46d9118fcaeacce
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 20:37:38 -07:00
Xiaoming Zhou
efe1021d26 msm: mdss: abstract the writeback block
There are different programming interfaces in different hardware
revisions. This change abstracts the writeback block, so that
the client does not need to deal with the differences.

Change-Id: I3f49ee1f2e003655dbef0d3281d9c9ad95cdb327
Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
2016-03-23 20:37:38 -07:00
Benet Clark
9f5141ab35 msm: mdss: compat ioctl support for Histogram LUT in thulium
Histogram LUT (PA LUTv) can be enabled by the 32/64 bit user-space
clients. 32 bit user-space client will take the compat ioctl path.
This change adds support for 32 bit clients for Hist LUT feature in
MDSS driver.

Change-Id: Ibbe3d37fdebba9aa46845660e62cf4d812af5866
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:37 -07:00
Terence Hampson
a66a7393a5 msm: mdss: Remove union for output buffer and retire fence
In order to provide more reusable code, and prevent unnecessary
debugging removing union as memory saving is insignificant.

Change-Id: I5da68c64c0bf09157738fbec1feb6adde5af42a2
[veeras@codeaurora.org: Resolve merge conflict in msm_mdp_ext.h by
retaining the version in this file]
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:37:36 -07:00
Gopikrishnaiah Anandan
d30780ae2b msm: mdss: compat ioctl support for sspp features
Source surface post processing(sspp) pipes support post processing
features in thulium. If user-space client is 32 bit and kernel is 64
bit compat ioctl path will be taken. Change updates the driver in
compat path to support 32 bit clients for sspp features.

Change-Id: Iaa07f40520f115348ac3af4c9eeb5690ed78e2dd
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:35 -07:00
Alhad Purnapatre
e5d47202fb msm: mdss: hdmi: HDCP 2.2 transmitter feature
Handles messaging with a connected HDCP 2.2 capable receiver, in order to
send and receive HDCP 2.2 authentication messages. This includes sending
HDCP Tx messages to the receiver, polling the receiver for expected
messages, and monitoring the receiver status. The receiver authentication
status is used by the HDMI Tx driver to determine whether HDCP 2.2 content
can be sent to the connected receiver.

Change-Id: I12ae6427e8b61259989a670bf9856464a3109774
Signed-off-by: Alhad Purnapatre <alhadp@codeaurora.org>
[cip@codeaurora.org: Moved mdss_hdmi_hdcp2p2.c file location]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:37:34 -07:00
Dhaval Patel
be2ca2761e msm: mdss: support atomic commit IOCTL
Atomic commit IOCTL adds validate and commit layer support
for framebuffer driver clients. Clients sends the validate
request with layer list for each display to put layers
in validate list. Once layers are validated; clients sends
the commit request for all validated layers. Validate
request may fail while commit must not fail because clients have
no fallback mechanism for commit failure.

If clients calls the atomic commit without validate request
then commit will validate all the layers before kickoff. In
such situation; commit may fail due to validate failure.

Change-Id: I9e9b27d1021292c8cafc624d40e7417a2028116a
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
[cip@codeaurora.org: Moved mdss_mdp_layer.c file location,
updated sync.h/sw_sync.h include]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:37:33 -07:00
Vinu Deokaran
b569a5c307 msm: mdss: hdmi: set half pixel clock rate for yuv420 format
When using yuv420 as output pixel format, extpclk must run at half the
frequency since the bits per pixel of yuv420 is half of rgb888

Change-Id: I6c8271a42a3f259da20b268a0e67f34f5f23eb6e
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
2016-03-23 20:37:32 -07:00
Ajay Singh Parmar
7c13fb1127 msm: mdss: hdmi: add new resolutions at runtime
EDID (Extended Display Identification Data) may contain some
resolutions in DTDs (Detailed Timing Descriptors) which are not
in the supported resolutions list. In such cases, every time
when the HDMI cable is connected, parse all the resolution data
from DTD and populate the resolution list with the newly found
resolution. This way any resolution found in DTD can be supported
subjected to hardware limitations.

Change-Id: Ib2223e34820a70da0b03b8ac39b170cf6b3e65b5
[veeras@codeaurora.org: Resolved merge conflict in msm_hdmi_modes.h
by retaining the version of this commit]
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:37:31 -07:00
Benet Clark
a4f72acde7 msm: mdss: Set ARGC dirty flag correctly in thulium
The dirty flag for ARGC should be set after the parameters have been
cached correctly; however, the goto to avoid legacy code jumps over
the dirty flag assignment. Adding the dirty flag assignment back to
thulium architecture.

Change-Id: Ic64818d3844cb6a0e2ff3d3a1bf28c752f26da02
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:31 -07:00
Benet Clark
7d9384c459 msm: mdss: compat ioctl support for DSPP PA in thulium
Picture adjustment (PA) feature can be enabled by the 32/64
bit user-space clients. 32 bit user-space client will take the compat
ioctl path. Change adds support for 32 bit clients for PA feature in
DSPP.

Change-Id: Idbef740f10df0dd3e32003bfd441ff436ee072fa
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:30 -07:00
Gopikrishnaiah Anandan
c8dae70dea msm: mdss: compat ioctl support for gamut in thulium
Gamut feature can be enabled by the 32/64 bit user-space clients.
32 bit user-space client will take the compat ioctl path.
Change adds support for 32 bit clients for gamut feature.

Change-Id: Iee9a7cbbaab23023df87a16aca0b05d65f56a2f4
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:29 -07:00
Gopikrishnaiah Anandan
0fb57b8f95 msm: mdss: compat ioctl support for pcc in thulium
Polynomial color correction(PCC) feature can be enabled by the 32/64
bit user-space clients. 32 bit user-space client will take the compat
ioctl path. Change adds support for 32 bit clients for PCC feature.

Change-Id: Ibd0249423146b1ecd797454a8bfdd52208f44e06
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:28 -07:00
Gopikrishnaiah Anandan
46b5e926e6 msm: mdss: compat ioctl support for pgc in thulium
Gamma correction feature can be enabled by the 32/64 bit user-space
clients. 32 bit user-space client will take the compat ioctl path.
Change adds support for 32 bit clients for gamma correction feature.

Change-Id: I8c0899d3c57adfd0cfb3e50ab8bb138e2b75a343
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:27 -07:00
Ajay Singh Parmar
0b544625b5 msm: mdss: hdmi: give multiple resolution info using sysfs node
Provide complete resolution details in a sysfs node "res_info"
limited to PAGE_SIZE. Different modules can query for multiple
resolution details based on the resolution ids received from
EDID of the TV.
In case resolution details exceed PAGE_SIZE, reuse res_info to
get remaining timing details by provide page details.

Change-Id: I3e8e8d4de29f78d22273b3fb8ff6a059a8cb19e1
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 20:37:26 -07:00
Ajay Singh Parmar
33c63a3a5d msm: mdss: hdmi: optimize resolution data base
HDMI has a large number of resolutions supported and currently
for all supported resolutions, related modules maintain static
tables which are populated at boot time. This results in huge
static memory usage. Also, it limits the system to support only
the define resolutions.

Remove static table which stores all the resolution details.
Get individual resolution details on need basis. Also, remove
the dependency to support only the defined resolution. HDMI driver
can support any non standard resolution within the allowed range.

Change-Id: I0972bc3a0ab96051ea642d685d10c4e5535b7051
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 20:37:25 -07:00
Vinu Deokaran
b19a1c8b15 msm: mdss: hdmi: add scrambling support for hdmi driver
Add support for enabling scrambler on hosts that support scrambling.
Scrambling is a new freature added in HDMI 2.0 specification to reduce
EMI interference at higher clock frequencies. Scrambling is enabled for
HDMI modes that have pixel clock greater than 340MHz. For lower pixel
clock frequencies, scrambling is enabled if sink supports scrambling at
lower frequencies.

Change-Id: I3aa224a32e768e2754a9e056a58ca90808a26ec6
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
2016-03-23 20:37:25 -07:00
Gopikrishnaiah Anandan
4e095a46e7 msm: mdss: Add compat ioctl support for IGC in thulium
Post processing structures have been upgraded for thulium. Changes have
to be made on the compat ioctl path to ensure that 32 bit userspace
driver clients are able to configure the PP features when kernel is in
64 bit mode. This change updates the compat ioctl path for post
processing features.

Change-Id: Id3e1d4f2055638bc553082a1f477b5ef3ef41c80
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:24 -07:00
Gopikrishnaiah Anandan
7e3a174db3 msm: mdss: Update IGC buffer length check
From thulium chipset onwards post processing driver has moved to
new framework and config payload based interface. To maintain backward
compatibility existing members of the pp structures have been left
untouched. For IGC feature driver was checking legacy fields for
thulium chipset. This change fixes the issue of incorrect field check.

Change-Id: If27d702d9fa189192ad32e2d8b081dc9e99e577d
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:23 -07:00
Gopikrishnaiah Anandan
816ebe30e0 msm: mdss: fix pgc lut read failure in thulium
config payload in pgc(programmable gamma correction) was assigned
to wrong structure type. When driver client requests for reading
pgc lut(look up table) driver sanity checks fail due to incorrect
type assignment. This change fixes the pgc lut read failure.

Change-Id: Ie3dd5bb52f2eceae4ab86a8da723afbc9a29f042
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:22 -07:00
Benet Clark
45420946b4 msm: mdss: Add Hist LUT SSPP support
Histogram LUT (PA LUTV) is supported on source side VIG pipes in MDP.
Clients of MDP driver can enable the feature using overlay ioctl
interface.  This change adds support for clients of the driver to
enable the feature.

Change-Id: I888af7d83b3de459353d7865122c40f39e937eac
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:21 -07:00
Ping Li
c29be55aa3 msm: mdss: Add SSPP histogram support on thulium
Histogram support is added back on source surface processing pipes
on thulium. This change adds the support for driver side support
to enable histogram on VIG pipes.

Change-Id: I7d480a22de3bbbc11ebcd85b7e725f0404077350
Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23 20:37:20 -07:00
Gopikrishnaiah Anandan
5a4feccb48 msm: mdss: ioctl to get pp feature version
Some of the PP(post processing) features in MDP might be upgraded when
new revision hardware is released. Clients of driver were relying on
MDP revision to decide which version of the PP feature is supported.
With MDP revision approach the client of driver needs to maintain a
mapping between MDP revision and PP feature version. This change
exposes ioctl to driver clients to query PP driver version of feature
instead of maintaining mapping.

Change-Id: I73f465400112445070c75f65f6ffd87c03eef2fb
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:19 -07:00
Veera Sundaram Sankaran
5431d0c98a msm: mdss: Fix pixel_ram check in smp block calculation
MDP v(1.7) supports fixed SMP. mdss_mdp_smp_calc_num_blocks API
should not calculate any SMP blocks for this MDP version. Fix the
API call to avoid smp block calculation when fixed SMP is enabled.

Change-Id: I017ba2d2097471c98d6c4f9a0ec306309bcd7af6
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:37:18 -07:00
Ping Li
59a7e1a0bd msm: mdss: Correct histogram collection implementation
The histogram collection on SSPP side are not correctly
implemented, this patch help fix the existing issues with
histogram collection.

Change-Id: Ie7c9846b744371575ff7485d831ef05364dc5509
Signed-off-by: Ping Li <pingli@codeaurora.org>
2016-03-23 20:37:18 -07:00
Veera Sundaram Sankaran
ce2af4cff4 msm: mdss: add mdss smmu v2 API support for thulium target
Thulium target uses smmu v2 in which few apis have been deprecated
from smmu v1 and few have been added. Now each smmu context bank has
its own device, which are added as sub-devices to mdp device node.
Handles for these context banks are maintained to access the respective
smmu region. Additionally, clks voting has to be done before using the
smmu region. This change addresses the new changes required for smmu v2
and also maintains compatibility with smmu v1.

Change-Id: Iba113b9b05c23e3d6d0a588efbca4cd6583dc158
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
[cip@codeaurora.org: Moved new file locations]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
2016-03-23 20:37:17 -07:00
Veera Sundaram Sankaran
6fada7ee2f msm: mdss: Fix apq8084 compilation failure due to large struct size
Due to overlay struct size increase, the stack size requirement
for function is increasing when it is used as local variable.
This causes the compilation failure due to fix stack size on
APQ8084. This change fixes the issue by using overlay structure
from heap instead of stack.

Change-Id: I9ca116a8db9c01f488a7cbc85c659827ba3693b3
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:37:16 -07:00
Adrian Salido-Moreno
737b46a4bc msm: mdss: debug: add buffers debug node
Add new node to print current state of buffers mapped in mdss driver.
This helps to debug buffers flow and potential leaks.

Change-Id: I9a2aaee501a8a975615008f1a75590c9031dc77d
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2016-03-23 20:37:15 -07:00
Kuogee Hsieh
02ce0808d3 msm: mdss: un map dsi transmit buffer properly
DSi tx buffer is mapped to iommu memory if iommu
attached. Therefore it needs to be iommu un mapped
at end of transmission.

CRs-Fixed: 752164
Change-Id: I2d3edad78c0cd859b5c31b5e2c6d66e5148ccf5f
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
2016-03-23 20:37:14 -07:00
Adrian Salido-Moreno
475788307f msm: mdss: refactor pipe buffer handling
Refactor handling of buffers to maintain a queue instead of allowing
only a single copy to be updated. This allows multiple buffers to be
queued and thus can unblock back to back display updates earlier.

Change-Id: I695c0f37ce209f4728fca5ebcb70b6c67430ea83
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
2016-03-23 20:37:13 -07:00
Dhaval Patel
b9a2fe27d1 mdss: share fb device's primary vs secondary selection info
FrameBuffer device clients assume that first FB device (fb0)
is primary and rest are secondary/external. This binds the
fb devices to fix probe order. For Example: Assumption breaks
when DSI probes first but selected as secondary interface and
HDMI probes later but selected as primary interface. Ideally,
MDSS driver should share each device's primary vs secondary
interface selection with client. This change fixes it.

Change-Id: I17ae8fef9604edf60ddbe22f8413d6764a5a1be4
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2016-03-23 20:37:12 -07:00
Veera Sundaram Sankaran
cf51473bac msm: mdss: add backward compatibility for hardware cursor
Hardware cursor within mdss from mdss v1.5 onwards is
programmed within the SSPP interface. And also, cursors
were expected to be programmed through the overlay interface
by the user. This change adds backward compatibility to cursor
programming and allows it to be programmed through the CURSOR
IOCTL.

Change-Id: Ib4c8401fb2a241f7af3d277efe9b0db364fca70a
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2016-03-23 20:37:12 -07:00
Ajay Singh Parmar
6eba8d196a msm: mdss: hdmi: add parsing for new resolutions
Add support for parsing new resolutions available in DTD (Detailed
Timing Descriptor) and Established Timing II/III.

Change-Id: If96b105d33d57e732f9cddf4d141df915d0235da
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 20:37:11 -07:00
Shivaraj Shetty
67354515db msm: mdss: Add get pan cfg and get iommu dom to common interface
Add get panel configuration and get iommu domain functions to
common utility interface. This will make sure that DSI 6G gets
the right information on ferrum which has mdp3.

Change-Id: Ib5a9d70b8202eaa9e3003475398ecef88dfb573d
Signed-off-by: Shivaraj Shetty <shivaraj@codeaurora.org>
2016-03-23 20:37:10 -07:00
Gopikrishnaiah Anandan
a3beddf7a2 msm: mdss: Remove code duplication in sspp config
When caching the SSPP(source surface post processing) pipes parameters
pipe type should be checked for all PP features. SSPP config
function was checking the pipe type for multiple features which results
in code duplication. This change removes the code duplication by moving
the checks to top of the function.

Change-Id: I5f817ba881ab3763132360a2870830e0c40c887b
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:09 -07:00
Gopikrishnaiah Anandan
fc10390561 msm: mdss: Update source side caching for IGC
Caching parameters passed by driver client for source surface IGC
(inverse gamma correction) shouldn't be tied to a version of IGC
feature. Based on version passed by driver client driver will allocate
the payload and cache the parameters. This change adds support for
caching based on the IGC version.

Change-Id: I0d120716d71ef378a7314d06823621e069f58b71
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:08 -07:00
Gopikrishnaiah Anandan
8a37317bf4 msm: mdss: Add PCC support for SSPP in thulium
PCC(polynomial color correction) feature is supported in SSPP(source
surface post processing) MDP block of thulium. This change enables the
caching of PCC params passed by driver client and programming the SSPP
pcc hardware block.

Change-Id: I3798becf7ed675c32a90bc7cefa415c055516d72
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2016-03-23 20:37:07 -07:00
Benet Clark
3d9fd88c44 msm: mdss: Add PA support to SSPP in thulium
Picture Adjustment (PA) global and memory color adjustments are supported
on source side VIG pipes in MDP. Clients of MDP driver can enable the
feature using overlay ioctl interface. This change adds support for
clients of the driver to enable the feature.

Change-Id: If961bb20167a7d08bf77dc4807acb46f38094f63
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:06 -07:00
Benet Clark
9f92d503b8 msm: mdss: Remove SSPP PP dirty flag in caching error case
The PP features in SSPP, specifically VIG pipe, use config ops
to specify which features to configure. However, these ops are
also used as the dirty flag for writing the registers. Therefore,
if there is an error while caching the parameters, the dirty flags
for all PP pipe features should be removed.

Change-Id: I0ac04308c1644332932e90c3661158348f60eb37
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:05 -07:00
Benet Clark
651fb5143f msm: mdss: Modularize SSPP post-processing setup
The PP setup in SSPP VIG pipes is not modular. It currently configures
all the registers and opmode bits in sequential, arbitrary order. This
change moves the VIG opmode config to a separate function from the VIG
pipe setup, for pp_sts based features only. This change also cleans up
the VIG pipe setup in order to make thulium upgrade easier.

Change-Id: I3c6bfc1d8a337c7f1756492a35c401a97e20d810
Signed-off-by: Benet Clark <benetc@codeaurora.org>
2016-03-23 20:37:05 -07:00
Ajay Singh Parmar
5b421e1edc msm: mdss: hdmi: fall back to legacy block when CEA block is bad
In case of CEA extension block is not correct or corrupted, fall
back to block 0 to read the resolutions supported.

Change-Id: I2b63ff1f918b3ece89ab35eb4a64d4ac96aaeabe
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2016-03-23 20:37:04 -07:00
Jeykumar Sankaran
a163df5139 msm: mdss: Re-allocate SMP's on SMP requirement change
Every time the SMP requirement of a pipe changes, release current
SMP's and re-allocate only as much needed.

Change-Id: I620278a0480c14724965cc2dad0a255177891ac3
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2016-03-23 20:37:03 -07:00