提交图

1293 次代码提交

作者 SHA1 备注 提交日期
Lei Chen
ff4f530606 disp: msm: add trace logs in display early wakeup function
Add trace logs in display early wakeup function for performance
profiling.

Change-Id: I63392417f03eac60dba1c43cd71fe5032ba59ed3
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-07-12 19:08:27 -07:00
Lei Chen
eb679f5289 disp: msm: add support for display early wakeup
Display clocks and IRQs are disabled during idle state
on command mode for power saving, and will be enabled
when a new frame commits to display driver. But enable
display clocks and IRQs will cause some latency.
So add a new SDE custom IOCTL for user-space to early wake
up display before first frame commits to kernel.

Change-Id: I6ca0188d321c4964f29c46e588b64d06b9634c59
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-07-12 19:08:23 -07:00
Lei Chen
2bcfcab1cb drm: define a new SDE custom IOCTL for early wakeup display feature
Add this new IOCTL for user-space to wake up kernel display as soon
as it gets a new frame update.

Change-Id: Icd45b47e99ca0ea996e46ae8335a29f6636bf406
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-07-13 10:08:00 +08:00
qctecmdr
6d1c929a4d Merge "disp: msm: sde: use tracing_mark_write as a node point for sde traces" 2020-07-12 14:50:18 -07:00
qctecmdr
2310f221c0 Merge "disp: msm: dp: update voltage swing and pre-emphasis" 2020-07-11 23:40:50 -07:00
qctecmdr
78d74e3576 Merge "display: msm: sde: Add display cooling device interface" 2020-07-11 17:44:49 -07:00
qctecmdr
dab2d306d2 Merge "disp: msm: dp: fix refcount issues on mst port disconnect" 2020-07-11 12:37:42 -07:00
qctecmdr
9e6d0416a0 Merge "disp: msm: dp: check branch device when adding mst sim port" 2020-07-11 09:42:45 -07:00
qctecmdr
2ea0c06410 Merge "disp: msm: sde: reset crtc power_event on crtc disable" 2020-07-11 07:06:41 -07:00
qctecmdr
0ea5003877 Merge "disp: msm: sde: parse property for max concurrent TUI displays" 2020-07-10 21:28:17 -07:00
Jeykumar Sankaran
b09250d7ed disp: msm: sde: parse property for max concurrent TUI displays
Add support in hw catalog to parse the maximum number of concurrent
TUI displays supported in SDE.

Change-Id: Ic1f4d93afc472c2fa073e1d292ebd1d27e40f4ec
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-10 15:48:37 -07:00
Jeykumar Sankaran
53db678726 disp: msm: sde: expose api to control encoder irq
Expose an API in encoder to control display irq's
when the VM enters and exits TUI use case.

Change-Id: Ic2386dcebfd8a9dd2ce06f068c6daf066a3e885f
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-10 15:48:34 -07:00
Jeykumar Sankaran
c3389d315c disp: msm: sde: register io resource collection VM event hook
Add support to read register ranges and IRQ lines that needs
isolation during VM switch. Register for vm resource collection
event providing the callback function.

Change-Id: Ie1edf0794a8de89cc44279892433b45a54eba609
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-10 15:48:19 -07:00
Jeykumar Sankaran
bd60dce87c disp: msm: add io resource collection hook to vm events
When the TUI use case starts, HLOS prepares for sharing the HW
by collecting the register io spaces and IRQ lines from all the
participating subdrivers before the switch. This change
adds necessary hook in the VM event framework, so that
subdrivers can provide their callback functions while
registering for events. It also adds necessary helpers
in the sde io util to parse and populate the IO memory
region that needs to be shared.

Change-Id: I4c0825fa76453a1c1ec421640deff36158d6ef8c
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-10 15:47:48 -07:00
Rajkumar Subbiah
202c7e55c8 disp: msm: dp: fix refcount issues on mst port disconnect
MST simulation ports can be removed either through HPD unplug, which
removes all ports on the branch device or through hpd irq, which
removed individual ports. In the current driver, the mst state
on the topology manager is being cleared prematurely. This results
in incorrect port status values being reported when the usermode
queries the status prior to disabling the corresponding displays.
So in its current state, on a HPD unplug, the display is disabled
but the port objects are not cleaned up and new ports are added
on every replug.  On hpd irq, not all references are removed on
the port object and also the connectors are prematurely being
removed from the connector list. Additionally, when the last
port is removed, the mst state is cleared on the topology manager,
which destroys the branch device. Once the branch device is
destroyed, the ports cannot be added anymore and this leaves the
MST driver in an invalid state.

This change adds a new helper to remove the port and update the
connector list. It also moves the clearing of mst state to hpd
disconnect callback where the branch device can be safely destroyed.

Change-Id: I3400006a47cc8ab5876809a19b711e3b26be857c
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2020-07-10 17:38:40 -04:00
Rajkumar Subbiah
322e50ae8c disp: msm: dp: check branch device when adding mst sim port
When adding a new MST sim port check if the branch device was
destroyed already to avoid dereferencing a null pointer.

Change-Id: I8e6f82c5a6772a9b85d24feca52368da2027e96d
Signed-off-by: Rajkumar Subbiah <rsubbia@codeaurora.org>
2020-07-10 17:25:14 -04:00
Linux Build Service Account
f04e775ee5 Merge "disp: msm: sde: use new state when checking conn-crtc association" into display-kernel.lnx.5.4 2020-07-10 12:36:48 -07:00
Linux Build Service Account
6db21fc335 Merge "disp: msm: sde: update cwb checks for destination scaler" into display-kernel.lnx.5.4 2020-07-10 12:35:49 -07:00
Linux Build Service Account
026b9de2e2 Merge "disp: msm: sde: fix kw issues in sde driver" into display-kernel.lnx.5.4 2020-07-10 12:35:48 -07:00
Linux Build Service Account
9ce7f98381 Merge "disp: msm: sde: refactor topology group check helpers" into display-kernel.lnx.5.4 2020-07-10 12:35:47 -07:00
qctecmdr
2e0cf27277 Merge "disp: msm: dp: fix potential NULL pointer dereference" 2020-07-09 11:54:56 -07:00
Narendra Muppalla
47638eae8c disp: msm: sde: fix kw issues in sde driver
This change to address use after free and null checks in
sde driver.

Change-Id: Iade91596748b1b867ae959e61fca0f7072eda8f3
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-07-09 11:13:01 -07:00
qctecmdr
12017ce26f Merge " disp: msm: dsi: update DSI DPHY and CPHY settings" 2020-07-09 08:51:57 -07:00
Amine Najahi
2d624f6ab8 disp: msm: sde: refactor topology group check helpers
Refactor topology group check helpers into a single
function to remove duplicate code. This change also
uses atomic state to extract topology information
since those functions can be called during atomic
check phase.

Change-Id: Ia262009e0b8fe9fcdeff05e544d2e59be35c9c54
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-07-09 09:40:08 -04:00
Jeykumar Sankaran
99df0d5052 disp: msm: add support for vm event register framework
Besides SDE, other subdrivers may be interested in participating in
the VM switch. This change provides framework for display dependent
drivers like DSI, DP and RSCC to register for various VM switch
event hooks.

The following hooks to provided through msm_vm_ops:
post_hw_acquire: invoked before the first frame push after gaining
                 HW access.
pre_hw_release: invoked after the last frame commit before releasing
                the HW.
check:       check with vm clients for their readiness for HW
             releasing.

Change-Id: I616db04e979f78f76f6f97ee3b068dd348339ab6
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-08 23:14:31 -07:00
Jeykumar Sankaran
cd0ab0f62e disp: msm: sde: fix space between operators
Fix overdue kernel check patch errors by adding needed
spaces between operators in sde_kms file.

Change-Id: I7d734736d26366ac44ea2b66decb2fcf271b4382
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-08 23:13:55 -07:00
Prabhanjan Kandula
4a54016d44 disp: msm: sde: update cwb checks for destination scaler
Current validation checks for cwb are not complete for
destination scaler concurrency. This change fixes cwb
checks to handle wb roi and frame buffer bounds checks
based on tap point and the destination scaler use.

Change-Id: I4a0277fea262621e73459243f60d3018bc475a67
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
2020-07-08 22:20:16 -07:00
qctecmdr
5c92c5ac78 Merge "disp: msm: debugfs interface for sde connector to do DSI read" 2020-07-08 13:03:55 -07:00
Tatenda Chipeperekwa
91fbf98537 disp: msm: dp: fix potential NULL pointer dereference
Fix the potential NULL pointer dereference in the callback function
for HDCP status updates.

Change-Id: I57ffc480cc6a8f89db0d18151a07876aeeb8c236
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2020-07-08 12:02:39 -07:00
qctecmdr
c75b0eb0a0 Merge "disp: msm: sde: fix qos perf for 90Hz panel" 2020-07-07 14:01:31 -07:00
Amine Najahi
1ec61a0b66 disp: msm: sde: use new state when checking conn-crtc association
Currently during CRTC atomic check phase, driver is counting
the number of connectors attached to the CRTC by iterating over
all the connectors available and checking if they are attached
to the CRTC. The current implementation uses the old connector
state, which has an invalid state for the first commit. This
causes the number of attached connectors to always be 0 for the
first commit.

This change extracts the new connector state from the atomic state
and ensures the calculation is done before checking crtc features.

Change-Id: I58d641086f18e8624cbc2d432443323a6a44792e
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-07-07 13:32:28 -04:00
qctecmdr
9ec78e3339 Merge "disp: msm: sde: dump clock state before entering suspend" 2020-07-06 23:49:03 -07:00
qctecmdr
be0ebcb228 Merge "disp: msm: sde: set different wd timer according to te source" 2020-07-06 21:33:00 -07:00
Veera Sundaram Sankaran
da71bb7209 disp: msm: sde: reset crtc power_event on crtc disable
Reset the power_event handle to NULL after unregistering
during crtc disable. This will avoid dangling pointer
being accessed later.

Change-Id: I73044835e8594b776eb593f2f0a4a1d2b5563531
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-07-02 16:47:02 -07:00
Linux Build Service Account
b86633e592 Merge changes Iea651a2f,Idb564927 into display-kernel.lnx.5.4
* changes:
  disp: sde: add CRTC property for VM requests
  disp: msm: sde: add capability flag for trusted VM support
2020-07-01 11:36:06 -07:00
Abhijit Kulkarni
0b68037224 disp: msm: sde: fix qos perf for 90Hz panel
This change fixes the issue in selecting the correct
perf index for the 90Hz refresh rate, before this change
values corresponding to 60Hz were getting applied for this
refresh rate.

Change-Id: Id4f8af4da95f0d13d30f6316dc26dd65b61d7f79
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-07-01 10:24:05 -07:00
qctecmdr
ffa7156d3a Merge "disp: msm: sde: Add checksum support for LTM for lahaina target" 2020-07-01 07:52:03 -07:00
Yuan Zhao
5bba78331d disp: msm: debugfs interface for sde connector to do DSI read
This change implements a new feature to read the cmds response
of the panel from sde connector interface. Sde connector opens
debugfs interface for all the connectors those have support for
cmd receive operation.

Sde connector init module creates rx_cmd debugfs file at
/<debugfs-root>/dri/0/DSI-1/ for DSI-1 connector.
Format for DSI command transfer:
echo "command bytes" > /<debugfs-root/dri/0/DSI-1/rx_cmd
byte-0: the length of received buffer
byte-1: data-type
byte-2: last command. always 0x01
byte-3: channel number
byte-4: flags. MIPI_DSI_MSG_*, must be set to 0xa
byte-5: 0x00
byte-6 and byte-7: command payload length
byte-8 to byte-[8+payload length]: command payload
Example:
echo "0x01 0x06 0x01 0x00 0x0a 0x00 0x00 0x01 0x0a" > rx_cmd
The command receive operations are allowed only if controller
(ex. DSI controller) is in active state.
Read the value of panel response:
cat /<debugfs-root>/dri/0/DSI-1/rx_cmd
returns the value of this command.
nothing - failure, xx xx - success.

Change-Id: I912b65d606e248c7a886d219f4363bf7766ee7b6
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
2020-07-01 00:55:51 -07:00
Yuan Zhao
263ee4756c disp: msm: sde: set different wd timer according to te source
For dual panel, if they both used sim TE, the vsync sources
were set to the same watchdog timer. That's wrong, so need to
set different watchdog timer for different panels.

Change-Id: I8a5b4c6bb86b0b640d24fbfe6517e223d313fb68
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
2020-07-01 12:09:12 +08:00
qctecmdr
4fbdcba865 Merge "disp: msm: sde: wait for pending crtcs before lastclose commits" 2020-06-30 17:33:14 -07:00
qctecmdr
a0617ca0ce Merge "disp: msm: handle panel detection after a pp done timeout" 2020-06-30 15:12:07 -07:00
Tatenda Chipeperekwa
e60a0a35f8 disp: msm: dp: update voltage swing and pre-emphasis
Update the voltage swing and pre-emphasis settings based on the
latest hardware programming guide.

Change-Id: If90db2833aba2bd0613276eff22f850bf34859e5
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2020-06-30 14:32:59 -07:00
qctecmdr
5634bb0af9 Merge "disp: msm: sde: fix prefill line calculation for high fps" 2020-06-30 06:29:30 -07:00
qctecmdr
14d7aaccef Merge "disp: msm: sde: schedule idle notify after frame trigger" 2020-06-30 03:33:22 -07:00
Steve Cohen
f030fa4c2a disp: msm: sde: wait for pending crtcs before lastclose commits
If a SIG_TERM/SIG_KILL or other signal is sent to the final drm
client, the driver will be force-closed. A -ERESTARTSYS error is
occasionally seen from the interruptible wait in
msm_atomic_commit when this occurs, and causes the lastclose
cleanup to fail if any crtc is busy at that point. To prevent
this, wait for any pending crtcs to complete before calling
the lastclose cleanup commits.

Change-Id: Ib6a5e55a4b737213756cb9ed8364d5c34ab47c16
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-06-29 23:45:19 -04:00
qctecmdr
fc320f34cf Merge "disp: msm: sde: serialize rm reserve for check only commit" 2020-06-29 17:50:54 -07:00
Dhaval Patel
11b2a41dc8 disp: msm: sde: fix prefill line calculation for high fps
Fix prefill line calculation for high refresh rate
usecase and define correct number of prefill lines
for lahaina target.

Change-Id: Ib3467b9beb43de9c5faa2b1af2d8873a89c9c481
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2020-06-29 16:17:34 -07:00
Raviteja Tamatam
bbf3d7949f disp: msm: sde: modify from fixed to variable programmable fetch start
With 120 fps panels and vfp method of dfps ,the vfp is very large in lower
fps and there is huge time gap between programmable fetch start (MDP vsync)
and panel vsync.  As fence is released early timing registers are modified
by the next commit before the previous timing parameters takes effect and
this is leading to underrun. With variable programmable fetch start MDP
vsync is close to panel vsync and avoids such condition.

Change-Id: Id88b5e2957bf4af751f49f1f32327715a34b102b
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
2020-06-29 16:15:06 -07:00
Dhaval Patel
f774d21f54 disp: msm: sde: schedule idle notify after frame trigger
Existing idle notify schedule logic tries to schedule
this event before display power on. If display power on
takes more than 80ms, it triggers the idle notify before
processing first display power on frame. This patch
schedules the idle notify after frame trigger for
valid notification.

Change-Id: If94108e141b5c19d123033e9d37333e98fb987f7
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2020-06-29 16:14:56 -07:00
Satya Rama Aditya Pinapala
182d88e3b9 disp: msm: handle panel detection after a pp done timeout
The change allows for multiple TE checks during a pp done timeout.
With this change, when a timeout occurs the panel status is checked
using the default ESD check status method followed by multiple TE checks.

Change-Id: If813964bab55c5e8113721060aa5b279f30fa5e0
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-06-29 15:52:01 -07:00