| Commit message (Collapse) | Author | Age |
| ... | |
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, during histogram setup during dspp setup, there
was a check on histogram collection enable that was not protected
by the histogram mutex and spinlock. It has been added.
Change-Id: I28770486d31da6b9b8b7420e98f0e6a5a23ed0c2
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Before setting the histogram state back to ready or idle, check if
the histogram has been disabled to prevent state corruption.
Change-Id: I3973eee852dfcd522bed639a22faa2519d1f2646
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The histogram state and collect enable need a spinlock around them when
being read or written to. There were a couple places where the spinlock
wasn't held when the variables were being checked. The number of spinlock
accesses has been reduced in collect as well.
Change-Id: Ic0369667b5b2bf83a19098f876f3ab48f9dcfbda
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
There is a histogram variable that was missing the spinlock
while it was being read. It has been added.
Change-Id: I2d726ab5b7b0a9a43b8421f8935780c09df752c0
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the command mode panel, the mdp pixel data is using the
dsi command mode engine which is shared with the dsi dma
transaction. This change makes sure there is no pending
mdp dma before issuing the dsi bta request.
Change-Id: Ida99e973c2bf73757726134ba7e2ad2df9e6eb02
Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Track two states where the BW is needed for the command mode panels
and prevent the BW vote to be released during any of those two states:
1. SW Commit State: This state is the time when the SW has requested
a BW vote, and it will be processing it; it starts at the beginning of
Commit and finish once the kickoff is issued.
2. HW MDP State: This state is the time when the HW is busy
doing the actual transaction, so bandwidth must be kept until
HW finishes; it starts at the beginning of the kickoff and finishes
once the ping pong done interrupt is received.
Change-Id: I2e56128be3ab25a1b065692ae76387a3cd383df3
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Use non-cacheable memory for command buffer, then need not
invalidate_caches after each update.
Change-Id: I72a5d3f034d24952c51edb88bb66489fbc308f1f
Signed-off-by: Ken Zhang <kenz@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Read panel alignment restrictions on left, top, width and height values of
the updating ROI from the dtsi file and share through sysfs node.
Framework needs these details for configuring MDP for certain
features (e.g. Partial frame update).
Change-Id: Ibe6973b721bb20120a6d7a217bad2d0d159cc836
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When pipe is not idle during cleanup, MDP can go into an unrecoverable
state, which can lead into other issues. If it gets to this point we
need to recover even if it means changing display contents for a
fraction of time. To handle this follow recovery sequence:
1. Setup the pipes that are not idle to solid fill mode so that nothing
is fetched from memory on these pipes.
2. Stage them into mixer, flush and wait for a vsync to happen and reset
sequence to take effect on these.
3. Finally, reattach the current frame pipes to restore display back to
normal.
Change-Id: If545b56bf32a46699871381d86e80c1980ec3cc7
Signed-off-by: Jayant Shekhar <jshekhar@codeaurora.org>
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Earlier the bandwidth check is done after applying an ib_fudge.
This causes some valid use cases to fall back to GPU. Perform
bandwidth check against the actual value without considering
any fudges.
Change-Id: I09d10724c473c76ade8cf2a2b8d1bda9862816a2
Signed-off-by: Anusha Koduru <kanusha@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are cases where vsync enable may happen before panel has been
turned on. In this case MDP clocks and specially DSI clocks shouldn't
get turned on if the panel is not ready yet. Add a check to ensure
clocks are not turned on and wait for panel to be turned on later on,
vsync events will be enabled then.
Change-Id: I522a1ecafc3949582e049d247a443725672d2d47
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While merging to 3.14 kernel this is only display
related changes for commit below
Change ID: Ie0d5b104882d1534fae262af85e99cc09a56ab04
msm: msm_bus: Move bus scaling to platform drivers
Change-Id: Id726a65b5641b57c0edd3ba33f2e5b3f68aff643
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This makes sure that the userspace correctly interprets the end
of the vsync timestamp.
Change-Id: I66f9939658b6fb7531468429c1ca3e551a4a285c
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
For a given logical display, use the correct control path to calculate
the frame size. Previously, we were using a control path assuming the
first mixer is used for primary display.
Change-Id: Ic8b0c1ab9fb802825a0abdb334efac6ea376ad65
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The histogram interrupt request function requires a type associated
with the request. The type depends on suspend, resume, and new requests
in general. Previously, the new requests type was assumed if it was not
SUSPEND or RESUME. However, now REQ type is no longer assumed as the last
option.
Change-Id: I25f6bd7f58ae24301df2552fa8330df8543db277
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
During Linux Bootloader to kernel transition, kernel's first call
to overlay_set would reconfigure dma source configurations. This
reconfiguration could happen before vsync but the corresponding
call to overlay_commit would occur after the vsync. This race
condition could cause artifacts to appear on screen. This issue
only occurs on video mode panels.
Change-Id: I1c1274a9c32cb74276162e74c22ad35afef0eb7c
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently there is no use case for enabling AD on HDMI path. This check
is already present in mdss_ad_init_checks(), but that does not prevent
mdss_mdp_ad_setup() from being called. So invoke mdss_mdp_ad_setup() only
if display panel is not of HDMI type.
Change-Id: I175fcdbb0cc4ccda31d3fc8074b1e0213e0af10a
Signed-off-by: Ping Li <quicpingli@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Wait for completion in notify update call are uninterruptible
causing excessive delay during suspend cases. Making them
interruptible.
Change-Id: I1a4ff6ce3e0add21d4e46a41372b076b277d10f5
Signed-off-by: Krishna Chaitanya Parimi <cparimi@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Previously, complete_all was called during histogram disablement before
the histogram interrupts were disabled, which can lead to issues if an
interrupt comes in between complete_all and interrupt disablement. Now,
complete_all is called afterwards, which guarantees no more interrupts
will come.
Change-Id: I1910e59b27ae55dbb2ed89373e2af614ef6a9808
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fast plug out/in of HDMI cable may result in race condition
between power on and off of HDMI tx core when downstream device
or bridge device is connected. Wait for power off to complete,
if already underway, before power on.
CRs-Fixed: 620429
Change-Id: I12cfa65052fa4e23fd1ad6d3f9ae45047d65970b
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Allow userspace to poll on the blank event to avoid triggering
unnecessary updates, such as when shutting down the device.
CRs-Fixed: 627814
Change-Id: I36bb7845edba14ba0b0ddbe43eaf3d386af2d5f1
Signed-off-by: Naseer Ahmed <naseer@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The gamut mapping data does only occupies 13 bits of the register.
Therefore, we should force the data that is written to be masked to
be the least significant 13 bits.
Change-Id: I37503ca3a46d9cb2cb1692763f301ae1d10f9d28
Signed-off-by: Benet Clark <benetc@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add support to send panel Off commands for video mode during LP
mode. This is needed to support few video mode panels which have
BLLP power mode set to HS and it is not possible to send Off
commands when pixel data is active. Hence, make changes to send
panel Off commands for such panels in LP mode after TG is
turned off.
Change-Id: I1c9f3fd1e9e052b5254cfdcf58cd974dfbe3dc8e
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add pinctrl support for the installation
of the required GPIOs from DT. Document
properties in bindings.
Make appropriate changes in the driver to
initialize and set the pins to active and sleep
states during unblank and blank stages respectively
in DSI driver.
Change-Id: Ib58d9162d915adace38ca36a0a3af9fa964d8039
Signed-off-by: Manoj Rao <manojraj@codeaurora.org>
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When attempting to read gamut mapping data from the hardware, the gamut
LUTs were read incorrectly because the LUT index was not reset to 0
before reading. Furthermore, the data read from the register was not
masked correctly before being copied to user.
Change-Id: Ic8a99d7987578fa959fa1b5fd5f1ec6966e60409
Signed-off-by: Benet Clark <benetc@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>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Default value of panel mode gpio is set to 0 which is still a
valid gpio and preventing access to legitimate owners when not
provided explicitly in device tree file. This patch addresses
the issue by changing default value to -EINVAL.
Change-Id: Ifc34513d21323af9843f6bbc85a3afca79891357
Signed-off-by: Vishnuvardhan Prodduturi <vproddut@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Source split feature relaxes some of the old MDP HW limitations and
enables newer use-cases. This feature is available from MDSS 1.3.0 onwards.
Some of the key highlights are:
* single pipe can be staged on two layer mixers.
* two pipes can be staged at a single blending stage given left pipe
on that stage is higher priority compared to the right pipe.
* Ex. 1080p video on can be played on a dual-dsi panel using single
pipe compared to two pipes without this feature, saving power.
* Ex. using above features, two pipes can equally split the load of a high
downscaling surface and thus reducing peak bandwidth requirements.
Change-Id: Ia08e37aca2ab0e80db6aef6c8e5ef37149b84e3a
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
[cip@codeaurora.org: Resolved merge conflict]
Signed-off-by: Clarence Ip <cip@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Overlay kickoff in certain situations can be called without a ctl
attached to the frame buffer device. These situations need to
be captured and logical path should return safely.
CRs-fixed: 619588
Change-Id: Ibee6b59be667b7e5c9841ffb49c67d86bde45026
Signed-off-by: Sree Sesha Aravind Vadrevu <svadrevu@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For msm8974 and earlier targets, there are only 3 DSPP pipes, so
we only need three bits for the DSPP_MASK. However, apq8084 has
four DSPP pipes, hence we need to modify the IGC read/write functions
to correctly configure IGC on all the DSPPs available on targets.
Change-Id: Ief6d27fbe52235919a411189f3a1c8bbef08cb45
Signed-off-by: Ping Li <quicpingli@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add spin_lock to mdss_lock inside mdss_disable_irq_nosync
to avoid race condition which can cause mdss_irq to be disabled
while irq_mask bits are still set.
CRs-Fixed: 624806
Change-Id: I44074a057dff49dfc7a4d2829f3c4e599dca4a69
Signed-off-by: Kuogee Hsieh <khsieh@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Pipe halt is requested when pipe is no longer in use or when pipe
is initialized to be used. Now if there is a mismatch between SW state
of pipe being use and HW state then it can lead undesirable issues.
Issue panic if halt is requested while pipe is still in use by HW.
Change-Id: I11d20611eeb3cb991a4dc3e580fb83d86289b68d
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The DSI PHY register offset from the controller base is
different for different targets. So, add a separate register
region for DSI PHY in the device tree. This register base and
offset will be used to access the DSI PHY registers. Also
change the register offsets which are dependent on the
controller base address.
Change-Id: Ie1d08950f3c8c8801908a1b3cf7db46a44b4e8c3
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
While merging to 3.14 kernel this is only display
related changes for commit below
Change ID: Ib7bbce1485d6185f669935b507040cac75368985
iommu: move iommu header files to new locations
Change-Id: Iccf318fa31c0308f7b471c0639bf06aba4650ebe
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
When split display is enabled, two control paths are active. Currently
only primary ctl path is handed off in overlay handoff. Extend this
handoff to secondary ctl path when split display panel is connected.
Change-Id: If071f8f0886c811b46c574529526b40e55351409
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
If pipe is supposed to be halted using SW reset assert, extend
assert of SW reset until corresponding VBIF client is halted.
Change-Id: Iabe6a2c6302483fc9d14cedbd1480bb6c644597e
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Currently we need to handle DSI-1 interrupts only for panel/DCS
commands in the software during broadcast mode. When we handle
isr for DSI-1 interrupt, we clear all the interrupts for DSI-0
also. This might cause timeout issues for waits on DSI-0
interrupts like CMD_MDP_DONE since the interrupt is cleared
and we do not handle the interrupt for DSI-0. Fix this issue
by clearing only the DMA_DONE interrupt for DSI-0 during the
isr handling for DSI-1.
Change-Id: Id1735673f94066ff6c7250eaef7d9394b0525c2f
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When broadcast mode is enabled, we trigger DCS commands when cmds_tx
is done on controller 1. This call is missing in the path of
backlight control using DCS commands. Add this call to fix DCS
backlight issues for broadcast mode.
Change-Id: I18193375e180a42fb1db42fb1d52a976b660ae1c
Signed-off-by: Padmanabhan Komanduru <pkomandu@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Earlier, we were using if the iommu is attached condition
to check if it is in the splash screen. In the command
mode panel, as part of xo shutdown, we need to detach the
iommu as well, in the idle screen case. So, it is not a
proper condition to determine if it is in the splash screen.
Change-Id: I1740e381abf2e4a8989cfb2f2f7f4819363ffaa2
Signed-off-by: Xiaoming Zhou <zhoux@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There are cases where pipe can remain active for additional vsync after
unstaging from mixer, if this ever happens it will keep fetching from
memory. In order to avoid this, we can setup the pipe in solid fill mode
so there is no memory access after pipe is released by software and
avoid potential iommu page fault or underrun since pipe is no longer
considered for bandwidth calculations.
Change-Id: I4b5a5deda8c854c504ef523df434509fa5567186
Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
We were seeing in some corner cases were 40ms was not enough
to complete a ppp request.
Change-Id: Ie2a95bceeddb2f4cf49f6497a449e0755fc36ce7
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For command mode panels, the DSI lanes can be configured to an
Ultra Low Power State (ULPS) during idle screen use case. In such
cases, it is possible to turn off the MDP GDSC as MDP is completely
idle. This would result in reducing any leakage current. Add
support for this feature.
Change-Id: Ic4074f9e12a27fe0fbe95219ffaa2f466abee307
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
For smart panels that can refresh display from their internal
RAMs, it is possible to configure the DSI clock and data lanes
in Ultra Low Power State (ULPS) during idle static screen
usecase. Add support for this feature.
Change-Id: I4e94d6a0201262f0675322efc9e39dd93c86edda
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
There are more than one instances where the DSI registers
are memory mapped in the driver whereas only one instance is
being used. Remove the reference to the unused resource.
Change-Id: Ia213e94b43bf58446eead47b18cadeb36d6795a7
Signed-off-by: Aravind Venkateswaran <aravindh@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Layer mixer configuration overrides the ARGC
setting when it updates the blend color settings.
This removes the ARGC setting configured by post
processing module and calibration tool in tuning mode.
This change reads the ARGC setting and applies
it back during blend color setting.
Change-Id: I72612ad428e58a1e343e94ab965137628bcce661
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| | |
Extend macro tile format support to rgb565 and bgr565.
Change-Id: Ida93ac7fbf93819b4d20f7392edc7df5a95f7979
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
When layer format is macro-tile, decimation cannot be supported. Add the
necessary checks to fail HW configuration for such use-case.
Change-Id: I68adbcdf8014f9ad528e945928f309b221c6dcfd
Signed-off-by: Ujwal Patel <ujwalp@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
There is a chance that we miss signalling mdp3 timeline
when the scheduling of the relevant workqueue goes out of
sync due to system load. Handle this scenario appropriately
so that the fences get releases in time.
Change-Id: Ib2acbb6ad740de8e98ac79171cc441cc70b1155f
Signed-off-by: Pradeep Jilagam <pjilagam@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Properly abort reauthentication to avoid HDCP module going into
bad state and work queue deadlock.
CRs-Fixed: 614803
Change-Id: Iaf9d8d110fd1929394f0a77cfc732f1a5d5c3ba3
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
|
| | |
| |
| |
| |
| |
| |
| |
| | |
There was an issue where images that could be scaled by 1 were not
being blit by ppp due to logic error.
Change-Id: I6f8cdf43d5398a7894e5b7f8a867ec59341345b8
Signed-off-by: Terence Hampson <thampson@codeaurora.org>
|