Commit Graph

1584 Commitit

Tekijä SHA1 Viesti Päivämäärä
Linux Build Service Account
3ee8c55695 Merge "disp: msm: dp: fix DP controller bpc configuration when DSC is enabled" into display-kernel.lnx.5.4 2020-08-19 01:42:13 -07:00
Linux Build Service Account
b9e87e5e7a Merge "disp: msm: dp: fix mst port state reporting on hpd unplug" into display-kernel.lnx.5.4 2020-08-19 01:42:12 -07:00
qctecmdr
d567ca0876 Merge "disp: msm: sde: expose helper api at VM layer" 2020-08-18 20:10:47 -07:00
Sudarsan Ramesh
7b798deb9b disp: msm: dp: fix mst port state reporting on hpd unplug
The simulation case uses dp_mst_sim_detect_port which
calls the drm detect port function after checking
the mst state. The non simulation case calls the drm
function directly.

This leads to cases in the disconnect path where
connectors are detected while being unregistered.
This solution merges the simulation and non simulation
cases by using the same detect port function, where a
check for mst state is performed before calling the
drm function.

Change-Id: I4a93001131beda54f8146bd50edc036924c94ab1
Signed-off-by: Sudarsan Ramesh <sudarame@codeaurora.org>
2020-08-18 18:11:43 -04:00
Amine Najahi
4eaa6dd39e disp: msm: sde: fix index variable used in CP pu check phase
Currently driver uses wrong index to retrieve partial update
ROI during check phase. This can lead to ROI being 0 for some
of the CP properties.

Change-Id: I885132e8d29eaf1353ed079eb283f7ca3a3d63a6
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-18 07:30:12 -04:00
Lei Chen
fb4edab2b3 disp: msm: sde: Update UIDLE and QoS LUT when DRM mode is changed
UIDLE and QoS LUT configurationis might be different between
different frame rates.
Add this change to update UIDLE and QoS LUT according to frame
rate when DRM mode is changed.

Change-Id: Ia16a963e185b911b7dd11e81a26cab732c2b185c
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-08-18 09:56:43 +08:00
Rajkumar Subbiah
9522cd1382 disp: msm: dp: use base connector properties for mst connectors
When DRM property objects are created, the DRM framework attaches a
dellocator which can eventually free the object when the last reference
is removed from it. The framework can only do this before the driver is
registered. If a property is created after the registration then the
framework is unable to attach a deallocator causing a memory leak during
tear down.

The current DP driver creates a new colorspace property whenever a
new dp connector is initialized. It creates a base connector at probe
time prior to registration. But then it also creates new connectors,
post registration, whenever a new MST dongle is attached to the
topology, causing memory leaks.

This change limits the property creation to the base connector and
attaches the same object to MST connectors to avoid memory leak.

Change-Id: Ib97dc7aac260b4f3f96c1097f58bd276c68501f8
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2020-08-17 21:20:04 -04:00
Chandan Uddaraju
35b60f6208 disp: msm: add connector API to disable cont_splash resource votes
The panel regulator votes are added by default during
dsi probe to make sure sync state driver doesn't disable
these regulators for cont_splash use case. These regulator
votes need to be removed when cont_splash feature is
disabled. Add a new connector API to handle this.

CRs-Fixed: 2734419
Change-Id: Ie54c8f246877a042afacddaeae8b90440652116f
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
2020-08-17 16:18:01 -07:00
Amine Najahi
ecc12cd5d2 disp: msm: dp: enable INTF to DP drain rate matching
Enable DP controller hardware feature to modulates the
data drain rate between DP and INTF to reduce chances
of MDP Underflow or DP Overflow.

Change-Id: I7214a2fff957ae35b31c660bafa1d0141eb50680
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-17 13:14:17 -07:00
Veera Sundaram Sankaran
30757e8c8a disp: msm: dsi: add parsing logic for panel gpio pins/address
Add parsing code for getting the TLMM base address and size
of each GPIO pin register space along with the GPIO pins
used for the specific panel. This list is used to lend
these IO ranges to trusted vm during the trusted UI usecase.

Change-Id: I10429cfa14265d52e898815c6cf94be27daa5677
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-08-17 09:47:49 -07:00
Veera Sundaram Sankaran
f7fece8238 disp: msm: parse SPMI registers and append to IO lend list
Parse the display peripheral related SPMI SID/Peripheral
mask from device-tree and get the dynamic register range
of these peripherals using the SPMI API. These registers
are appended to the list of display IO ranges that is
lent from HLOS to trusted VM during trusted UI. This would
help in adding restrictions for SPMI registers on HLOS during
the trusted UI use case along with validation of the register
ranges in trusted VM.

Change-Id: I7077dac7962466e845d061e9ccd205f1bc0ce3ea
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-08-17 09:47:28 -07:00
Steve Cohen
b385a84e0d disp: msm: sde: only program LM size when needed
LM size does not need to be reprogrammed on every frame. Add
a check to only reprogram it when the size changes (or coming
out of power collapse). Some color processing features require
an update when this happens as well (i.e. resolution switch,
partial update, or dest scaler reconfigure). This patch allows
for notifying CP of the updated dimensions when a change occurs.

Change-Id: Ia7f794e53e1f03302c83e442e2a1288611c7c50b
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-14 20:24:58 -04:00
Jeykumar Sankaran
a962ce3f02 disp: msm: sde: expose helper api at VM layer
Add helper API's at VM layer to avoid repeated
VM structure dereferencing in rest of SDE files.

Change-Id: I31ee506adbd12c5452bef15da7c468c87b2c9f96
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-08-14 16:21:14 -07:00
Raviteja Tamatam
62fd5b82fa disp: msm: enable SDE rotator driver configs
Enable and export configs to support SDE rotator.

Change-Id: I087ef2aab6e59978664d08c43194a43cc6709f33
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
2020-08-14 13:33:06 +05:30
qctecmdr
20ed4f0785 Merge "disp: msm: sde: disable border color on empty blendstage" 2020-08-13 16:50:24 -07:00
Jeykumar Sankaran
7b50ca2b1e disp: sde: hold an extra PM refcount in trusted VM
pm runtime suspend/resume is not supported in trusted vm since
the power domain is controlled by the primary VM. Hold an
extra refcount on the drm device in trusted vm to avoid pm
runtime calls.

Change-Id: I57c22887eb8b11f8ce318479ca36b84cda385d60
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-08-13 16:40:57 -07:00
Amine Najahi
c50713a509 disp: msm: dp: fix DP controller bpc configuration when DSC is enabled
When DSC is enabled, dp controller uses the 8bpc data format to
transfer the data irrespective of the actual input bpc to DSC.

Change-Id: I817093e9726d013f0402bfdddfbccec59a900acc
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-13 19:03:10 -04:00
Amine Najahi
5f59fead53 disp: msm: sde: expand dsc range_bpg_offset to support 10bpc
DSC driver is applying the range_bpg_offset values for 8 bpc/8bpp
to all compression ratios. This results in invalid DSC configuration
in 10bpc mode and sink is not able to decode this image resulting in
black screen.

This change adds a table of range_bpg_offset values to capture the
configuration for different bpc/bpp combinations.

Change-Id: I27e8edcbded8a8e512315599d768750ba473bd60
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-13 17:23:05 -04:00
Amine Najahi
788a4482d0 disp: msm: sde: fix dsc hrd delays register bitmask
Fix bitmask used when programming dsc hrd delays register
to allow 16 bits value.

Change-Id: I0044dcd4bdc4608b40a544b1856dfaa19e1717a3
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-13 10:19:17 -04:00
Yuan Zhao
c810238fb4 disp: msm: dsi: support LP mode for DCS brightness setting
DCS brightness settng can only use HS mode. Add a new
DT property for LP mode choose for DCS brightness setting.

Change-Id: Ibe5867fe344776871eb3a410a8d79d347775f3d4
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
2020-08-12 23:08:06 -07:00
Lei Chen
f11da41a6e disp: msm: sde: add a property to control display input touch event
Display input touch event is replaced with IOCTL in performance HAL
to early wake up DSI clock.
Add a property to enable/disable display input touch event for backward
compatibility.

Change-Id: Ib6b9123d726e79a2927b05d1ef77c343f01d0c5e
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-08-12 17:32:20 -07:00
qctecmdr
9804031438 Merge "disp: msm: sde: reset ICH on partial update" 2020-08-11 23:12:09 -07:00
qctecmdr
2531751979 Merge "disp: msm: sde: use proper API to retrieve connector state in check phase" 2020-08-11 18:38:29 -07:00
qctecmdr
995409478a Merge "disp: msm: sde: mark LTM as dirty when dest-scaler is updated" 2020-08-11 15:08:55 -07:00
Abhijit Kulkarni
9c9159afdb disp: msm: sde: disable border color on empty blendstage
This change disables the border color on the layer mixer,
based on the caller's request. This is required to totally
disconnect the layer mixer hardware when it is not
participating in blending the pixels. Having empty blendstage
but border color enabled, allows Layer mixer hw to produce
border pixels even when blend stage is empty.

Change-Id: I8e84aeedffbd42ad793a167a6cc5a3a653864c1a
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-08-10 18:29:04 -07:00
Amine Najahi
e7cf04beae disp: msm: sde: use proper API to retrieve connector state in check phase
Use sde_connector_state_get_topology API instead of
drm_atomic_get_connector_state since the latter can
return a blank connector state if not found in
global atomic state.

Change-Id: Ib5b58c6cab438a367a885308341d6bccc624f777
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-08-10 13:57:14 -04:00
qctecmdr
faf4a8b1c8 Merge "disp: msm: dsi: add debug ability to read TE read pointer line count" 2020-08-06 22:45:51 -07:00
Satya Rama Aditya Pinapala
ec6f97fd9d disp: msm: dsi: update min prefill lines for lahaina
Change updates minimum prefill lines for lahaina target.

Change-Id: Ic3c4f498eb2b73ddfc4445d94850c72dd242d575
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-08-06 17:26:26 -07:00
Satya Rama Aditya Pinapala
3deb5c353e disp: msm: dsi: add debug ability to read TE read pointer line count
The change adds register mapping of MDP_INTF_[1/2]_TEAR_INT_COUNT_VAL
register to DSI controller. This allows for the controller to read the
line count and frame count of the read pointer during trigger and
successful transfer of DMA command.

To enable the debug feature:
echo 1 > /d/<panel_name>/dsi-ctrl-0/enable_cmd_dma_stats.

To disable the debug feature
echo 0 > /d/<panel_name>/dsi-ctrl-0/enable_cmd_dma_stats.

To read line count value:
cat /d/<panel_name>/dsi-ctrl-0/cmd_dma_stats.

Change-Id: I5cdeb54ca941af05b226a9d7ab332b899ecc5797
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-08-06 13:54:52 -07:00
Abhijit Kulkarni
7456f4b946 disp: msm: sde: reset ICH on partial update
This change programs both the ich_rst_manual_override and the
ich_rst_manual_value in the DSC encoder to override the hw behavior.
This override is needed to ensure the position of ich_reset is not
changed during the PPS session.

Change-Id: Ia7619a97beeea495706b4327c34fc49ef2298583
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-08-06 10:11:01 -07:00
qctecmdr
48da17d61b Merge "disp: msm: sde: update min prefill lines for lahaina" 2020-08-06 05:17:17 -07:00
Jayaprakash
c5484a2a99 disp: msm: assert nrt vbif halt req as part of rscc mode2 sequence
Add changes to assert nrt vbif halt request as part
of rscc mode2 sequence even if NRT path is not used
for rscc enabled targets to avoid hangs in some
stability cases.

Change-Id: I8b9e13738634e305c9e9ce19dfa3a88b61a2fb9f
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-08-06 15:43:27 +05:30
Satya Rama Aditya Pinapala
50af1eb43b disp: msm: dsi: add support for DMA CMD scheduling for CMD mode panels
The change allows for configuring a command DMA window during which
the command is triggered. The DMA window must not intersect with the
MDP tear check window. Once the command transfer is successful, the
trigger control needs to reset to the default DMA trigger specified
by the panel.

Change-Id: I5485ca1f8e141ed92dc8c77c2daf579634271022
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-08-05 20:31:24 -07:00
Steve Cohen
e996b868b2 disp: msm: sde: mark LTM as dirty when dest-scaler is updated
Mark LTM as dirty when dest-scaler is updated so it matches with
the mixer configuration.

Change-Id: I5f2b166ec5eb0bafc4c75f8b3268c3e85c558191
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-05 22:04:56 -04:00
Narendra Muppalla
69f2101ccc disp: msm: sde: update min prefill lines for lahaina
This change updates min prefill lines for lahaina target.

Change-Id: I004244585c3940bddf600290a7c0fe5b5ef5885e
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-08-04 12:35:17 -07:00
Lei Chen
91dbcc12f6 disp: msm: sde: change log level from error to debug when CRTC is null
Encoder CRTC can be null during modeset concurrecy, so change the log
level from error to debug when CRTC is null for display early wakeup.

Change-Id: I67c2413a284d70c415616921608eaebdf0f7a298
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-08-03 02:26:55 -07:00
qctecmdr
447de1a67d Merge "disp: msm: update seamless check for connector" 2020-08-01 23:23:29 -07:00
Yashwanth
5c4635d434 disp: msm: sde: update ctl v1 topology table
This change updates split display flag for ctl v1 topology
table since it is not required for CTL_ACTIVE targets.

Change-Id: Ic669cb6f2c1ca60b2299ebb59a8132a5177ad133
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-07-31 12:19:14 -04:00
Sankeerth Billakanti
227f33ecaf disp: msm: dp: correct the dp_usbpd driver logging
Correct the peer_usb_comm log message in dp_usbpd sub module.

Change-Id: Iafa49dedcca0d7c8fe84d839a13ed40e69a9552b
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
2020-07-31 08:55:21 -07:00
qctecmdr
7f1d6a34de Merge "disp: msm: update uapi and device_caps change in rotator" 2020-07-31 01:08:32 -07:00
qctecmdr
3bae91f587 Merge "disp: msm: sde: fix RC single region use case" 2020-07-30 10:58:29 -07:00
qctecmdr
5306b8214a Merge "disp: msm: sde: program misr at encoder kickoff stage" 2020-07-30 02:48:46 -07:00
qctecmdr
c425894675 Merge "disp: msm: dp: use updated pre-emphasis/voltage settings" 2020-07-29 23:42:54 -07:00
Steve Cohen
a4be27ac7e disp: msm: sde: report intf interrupt status during underrun
Add the INTF interrupt status register value to the underrun
line count event log to assist in debugging these issues.

Change-Id: I847cb12f8b4565d5f04667e0abda5d051a6194b2
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-07-29 22:14:04 -04:00
Amine Najahi
b7117d4b07 disp: msm: sde: fix RC single region use case
Fix rounded corner single region use case where input
parameters are valid only for the region to be programmed.
Consequently, the other region must be disabled and atomic
check requirements can be relaxed.

Change-Id: I84f213f2c34f7cceb10c54bbba68fa7b0e16caf2
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-07-29 12:36:14 -04:00
Raviteja Tamatam
4e007479a6 disp: msm: update uapi and device_caps change in rotator
Added uapi and device_caps changes to enable rotator
compilation and address video device registration failure.
Device_caps field is must for video device registration
unless it is sub device.

Change-Id: I7e2f517e5eb3fc5ec6306bd7cee5972dbbaff3d1
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
2020-07-29 19:59:55 +05:30
Narendra Muppalla
f8e7d9d5d1 disp: msm: sde: program misr at encoder kickoff stage
As per current design misr enable sequence is happening at
atomic check level. At this state, misr configuration may reset
if clocks are enabled through atomic commit sequence. This change
moves misr enable/disable sequence from debugfs context to
encoder kickoff to avoid misr register reset with idle pc.

Change-Id: Ia4faa200f96b76ba8c7ef3f45a26108e34b5e687
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-07-28 17:26:09 -07:00
Rajkumar Subbiah
d767013a10 disp: msm: dp: update mst connector in debugfs data on replug
The debugfs api for mst control is a multi stage process where the
connector id is selected using the mst_con_id node, which is then
used on other commands such as edid_modes_mst for mode switch.
During mode switch control, the mode is set using the current id
for a display and then the switch is initiated through an unplug
and replug. But on an unplug the connector is destroyed and a new
id is assinged for that display on the subsequent plug. This
change detects this scenario and updates the cached connector id
with the id from the newly created connector.

Change-Id: Ib51566ac9e334d4a0b145b6ae549c59c537cb0cd
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2020-07-28 12:54:05 -07:00
Rajkumar Subbiah
65534be8da disp: msm: dp: update hpd handling for mst
On hpd low signaling, if MST is enabled, then the dp driver should
send the uevent to usermode and wait for the displays to be turned
off before destroying the connectors. In the current mst driver,
hpd low handling is a monolithic step. This change breaks this
into two separate callbacks into the mst driver so the display
driver can wait for usermode completion between these two steps.

When processing hpd low in sim mode, the mst driver uses the drm
framework's the port detection function. When hpd unplug is signaled
to the usermode, it checks the port status before disabling it. But
since the port hasn't been destroyed yet, the framework reports that
the port as still connected. This causes the driver to timeout while
waiting for the the displays to be disabled. This change adds a
wrapper which will report the port status as disconnected when hpd
low is signaled.

Change-Id: I1c59a4878018a300f258bd67c36d1cf4eaf5f67b
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2020-07-28 12:53:56 -07:00
qctecmdr
32e305e278 Merge "disp: msm: sde: avoid extra vblank refcount from modeset" 2020-07-28 03:30:05 -07:00