Age | Commit message (Collapse) | Author |
|
Width and height are not properly calculated when decimation
is involved. When there is scaling on a pipe, the required number
of pixels are wrongly programmed resulting in pipe hangs and
leading to TLB SYNC issues. This change handles proper
calculation of decimated width and height.
Change-Id: Iadc4b201b32dda3dba6afe23070f349677be417c
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
IGC(Inverse gamma correction) feature is supported on source side pipes
in MDP. Clients of MDP driver can enable the feature using overlay ioctl
interface. Change adds support for clients of driver to enable the
feature.
Change-Id: I5243b001acffff869f9369211fd724d7dd75e8a1
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
|
|
MDP block supports picture adjustment feature on the DSPP which can be
enabled/disabled by driver clients. Change adds the support in post
processing driver and allows clients of driver to configure the PA block
in DSPP.
Change-Id: I22e3df32fd67fda4029eeb4740ad47917ae7e3a1
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
|
Generate the HDMI resolution id names based on resolution timing
details. This makes the code generic for all resolutions.
Change-Id: I097f450f5a85c85c1e81b7c7b1351d9c7228ba01
(cherry picked from commit 0e21977a89c126d610763c8ed9baf013bc9fa72a)
[veeras@codeaurora.org: Done as part of 3.18 upgrade
Removed msm8994-fluid.dtsi, msm8994-pinctrl.dtsi from this commit]
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
|
|
MDP block supports dither feature in DSPPs (destination surface
processing pipes) which can be enabled or disabled by driver clients.
This change adds the support in post-processing driver to allow
dither configuration in DSPPs.
Change-Id: I2bd2da482f3d204649351bebdbe66bd5dab7a187
Signed-off-by: Ping Li <pingli@codeaurora.org>
|
|
Gama correction blocks are part of destination and layer
mixer blocks of MDP. Client of PP driver can program these
blocks and enable them. Change adds support to program and
enable the gamma correction blocks.
Change-Id: Ieba07290525c1ccf79e4abf3648baf3dfd02d266
Signed-off-by: Ping Li <pingli@codeaurora.org>
|
|
MDP block supports picture adjustment LUTv in the DSPPs
(destination surface processing pipes) which can be enabled
or disabled by driver clients. This change adds the support
in post-processing driver to allows configuration on PA LUTv
in DSPPs.
Change-Id: I7a0d436e7fdd921c55d12fddef33f5ba6c14ba00
Signed-off-by: Ping Li <pingli@codeaurora.org>
|
|
Inverse gamma correction(IGC) feature is exposed by the MDP
hardware block in source and destination pipes. Clients of
the post processing driver can program the IGC tables and
enable the feature. This change adds support for IGC post
processing feature.
Change-Id: I177fb06f5eec58fea0a54b537c0009d4c8e01bd7
Signed-off-by: Ping Li <pingli@codeaurora.org>
|
|
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>
|
|
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>
|
|
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>
|
|
UBWC format is supported for pipe input and WB0 & WB1
output for MDPv(1.7). This new format also has specific
buffer configuration requirement for bit stream and
meta data. This change adds UBWC support in MDSS
driver and put checks for format support in various
use cases and register configuration.
Change-Id: I29c262a94461d7571bead63f60517875eaaa5e5b
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
|
|
This change adds version macro for msm8994v2 and
uses this version where ever necessary in the driver.
Change-Id: I20603d98c154c4e414adab6740233507c7b09c7b
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
|
|
Add support for ARGB1555 and ARGB4444 formats in
mdp.
Change-Id: I6000316d177d9988eabcca8f43131e3a9f636961
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
|
|
Partial update when enabled blocks all PP ioctls. There is
currently no subtle way to enable PP. Providing an ioctl
to override the blockage of PP ioctls. This would allow
PP to override the blockage caused due to the default
enablement of partial update.
Change-Id: Ia120caa179bfa0414041bacd80328540f24dd6c8
Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
|
|
Add mdss version macro for 8992 target and initialize maximum
blending stages supported for the target.
Change-Id: Ic741fb725907498791c1d17581561e3632a40cec
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
|
|
Hardware cursor within mdss from mdss v1.5 onwards is
programmed within the SSPP interface and is no longer
a separate dedicated stage in the layer mixer. Cursor
needs to be staged onto the existing layer mixer stages
and always at the top level available. From this version
onwards, cursors are expected to be programmed through
the overlay interface by the user.
Change-Id: Ia225dd92079e0153e9677ff035cf8531e62d5554
Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
|
|
Different MDSS hardware variants support fixed pixel
latency ram for each pipe vs SMP (Shared Memory Pool).
Software does not have to handle SMP allocation/deallocation
for hardware with fixed pixel latency ram. This change
enables the driver to handle such MDSS hardware.
Change-Id: Ia55f45d65c3eb19350c7195acd83af8ffc0e9a10
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
|
|
Add new operation request to share ion fd to userspace
for mapping to the frame buffer memory.
Change-Id: I404c73c19e3fffec593ffd32c34e7b1a74a500d8
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
|
|
Correct the 480p clockrate to ensure HDMI pll
locks when connected to a 480p sink.
Change-Id: I93b49390c534966b86cb73bf02bdf25f5b12890e
Signed-off-by: Casey Piper <cpiper@codeaurora.org>
|
|
msm8994 can support three additional blending stages in the layer
mixer bringing the total to 8 layers including the base stage.
Modify layer mixer programming to support additional blend stages.
Change-Id: Iff812ec2cf08e4234dc13c5630fe66ba07462b87
Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org>
|
|
Allow user to specify the type when requesting an overlay pipe.
If field is set the pipe type indication in the flags will be
ignored.
Change-Id: Iee51d24b96c7a2a987dc70a439342e6548dfc8fa
Signed-off-by: Vinu Deokaran <vinud@codeaurora.org>
|
|
This patch adds l_roi and r_roi fields to display commit struct to
support partial update for dual DSI panels. Panel side
frame buffer's column, page address and DSI controller's
stream size are updated based on the ROI requested.
Change-Id: I70957c9ee1546448416441a8d0608fb00c3b92ca
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Siddhartha Agrawal <agrawals@codeaurora.org>
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
|
|
Add support for switching between dsi command mode and
video mode and vice versa at runtime. If the panel is
configured in video mode, it would be power efficient to
be able to dynamically switch to command mode on need
basis. This change adds the support by providing an IOCTL
to switch between video mode and command mode at runtime.
Change-Id: I573c063556d68d631fe27cc2d1447522eceb7f2a
Signed-off-by: Sandeep Panda <spanda@codeaurora.org>
|
|
FB clients are tracked using process id. The process id does
not match if open and close API callers are different. Track
the fb clients using file descriptor node id in such cases
and release all resources associated with that process id
gracefully.
CRs-fixed: 652449
Change-Id: I09c965a421197c6464a64684e9706f30df327882
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
|
|
MDP hardware will send panic/roburst signal to bimc based
on fill level for all pipes connected to realtime interferfaces.
This allows bimc to priortize the MDP traffic across all bimc
ports, regardless of other clients' priority. This feature
is not for non-realtime clients like writeback.
Change-Id: Iafe891c6aefad905d482bd7aa54e00562698676e
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
|
|
Previously, the change of backlight sysfs node value will not trigger
notify updates if display is in static screen case. This will cause
delay or wrong configuration for assertive display. This patch fixes
the above issue by adding an update notify if backlight changes when
there are no display updates.
Change-Id: I1475896214a50dc1fa71739aa751b2e626d27adb
Signed-off-by: Ping Li <quicpingli@codeaurora.org>
|
|
Move contents of msm_hdmi_audio_codec.h
directory to msm_hdmi.h in common linux
directory to remove platform dependence.
Change-Id: I6331073ba1e5e119770c5e8cb50f6ff677807292
Signed-off-by: Casey Piper <cpiper@codeaurora.org>
|
|
Priority is returned by the driver when overlay is set for the first
time. It indicates the priority of the underlying pipe serving the
overlay. This priority can be used by user-space in source split when
pipes are re-used and shuffled around to reduce fall-backs related
priority restrictions.
Change-Id: Ibfda0280279e7057a1d3494f4e5f68962b26ef4a
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
|
Extend macro tile format support to rgb565 and bgr565.
Change-Id: Ida93ac7fbf93819b4d20f7392edc7df5a95f7979
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
|
AD backlight attenuation provides the ability to modulate backlight based
on calibration before feeding it to AD core for strength computation.
Change-Id: Iea011807b25882463b1142e17324fa0509007aa4
Signed-off-by: Ping Li <quicpingli@codeaurora.org>
|
|
Overlay prepare will allow a full frame with multiple overlays to be
configured at once and perform frame level checks before being pushed to
display. This function guarantees that if the call is successful, the
frame can be displayed successfully on the screen when display commit is
called.
Change-Id: I276b6fe3e0a872a2e93170f3cea1002d3ce0dac9
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
|
|
MDSS io utility contains APIs to handle driver specific
resources like GPIOs, power supplies, clocks and other
resources. Sharing them with other drivers allow them
to do resource management without re-writing the same
code.
Change-Id: Ib699407667239336cf82211e3f6e8eec97a104a8
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
[cip@codeaurora.org: Move mdss_io_util.h to include/linux]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
|
|
For mpq platform, buffer is not queued through HWC except the
first frame. So, added this change to get the correct pipe flush
setting for VIG pipe. Since, in mpq, the buffer is queued
directly by Maple firmware only on VIG pipe. The flag
MDP_VPU_PIPE determines that the layer will be composed by
VPU(maple) on the given pipe.
Change-Id: I0566913d5d14f6160e5cbc132b76ba8fbec609a7
Signed-off-by: Zohaib Alam <zalam@codeaurora.org>
|
|
To handle use cases better, expose smp_mb_cnt and
smp_mb_per_pipe to userspace as part of hardware capability.
Pipes availablity for a use case can be computed taking these
values, based on which, composition decisions can be made.
Change-Id: Ia7cc4db153cdb164a29ae2369d3e991b95aaba65
Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
|
|
Currently kernel driver and user mode libraries keep their own
copies of HW revision numbers. This strategy is prone to errors
and usually frowned upon. Fix this by moving revision information
to sanitized header which is shared by kernel drivers and user mode
libraries.
Change-Id: I59d1256ffd98e07f4ef9ae2b534f04b67abd2119
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
|
Retire fence timeline should follow the actual panel vsync more closely.
For video mode the retire fence can be signaled along with the release
timeline with +1 offset, since this is signaled at vsync.
In case of command mode the panel vsync can be different from buffer
release timeline. To handle the command mode panel vsyncs better, create
a new timeline for the retire fence signaling.
Change-Id: If8a1eb717d733ca215275a8be4f0054091dbc147
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
[cip@codeaurora.org: Update sw_sync.h include]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
|
|
Provide a callback machanism to all the modules registered
for HDMI cable notifications. The registered modules will be
notified everytime the cable is connected or disconnected.
The callback will be scheduled on global kernel workqueue.
Change-Id: I74630748448d8479b6e0cda6ccd148cbeae48a51
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
|
|
To enable constant color on a pipe, set MDP_SOLID_FILL in pipe
flag. This will do a solid fill on the pipe with the color
specified in bg_color.
Change-Id: I3201e2fa657a6fc6d0e7f51f8585366afc3d29a3
Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
|
|
Add demo mode feature for numerous post processing features. In dual pipe
case, demo mode allows for either the left or right pipe's feature to be
disabled to showcase its effects. Features supported include assertive
display, gamut mapping, panel gamma correction, inverse gamma correction,
dithering, picture adjustment (v2 only), and polynomial color correction.
Change-Id: I8bceeffc11967ff23497df7739e6f99c30d2b10f
Signed-off-by: Carl Vanderlip <carlv@codeaurora.org>
Signed-off-by: Ping Li <quicpingli@codeaurora.org>
|
|
When calibration tool requests the fb driver to enter in
Display Tuning Mode (DTM), PostProcessing blocks should
not update the HSIC, Memory color, Six Zone colors, etc.
Updating them during DTM conflicts the update from
calibration tool.
Change-Id: I11fcac57a651581d85e771911f83b2fdd9c3c681
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
|
|
Add support to enable solid fill on pipe with an option to
configure fill-color by userspace. This support does not confine
to background pipe and can be used to enable solid fill on any source
surface processing pipes irrespective of the z-order.
This support can be used in requirements involving constant
color layers.
Change-Id: Iae3c2968ca2f2f1be161e9c2f857641ffbb859e5
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
|