Commit Graph

1587 次程式碼提交

作者 SHA1 備註 提交日期
Zhao, Yuan
d9c2a8d3a6 disp: msm: disable regulator load after the regulator was disabled
Setting a lower load can make the regulator enter into LPM. Now the
lower load was set before the regulator disable, there's a risk here.
The regulator has been LPM, while it was not disable, if the cosumer
has a higher current needed than LPM at this time, that will lead OCP
on this regulator. The right operation for a regulator enable/disable
should be:
 1. regulator_set_voltage(vreg, active_min_uV, active_max_uV) and
    regulator_set_load(vreg, active_load_uA); in either order
 2. regulator_enable()
 3. regulator_disable()
 4. regulator_set_voltage(vreg, inactive_min_uV, inactive_max_uV)
    and regulator_set_load(vreg, inactive_load_uA); in either order

Change-Id: Ibe4f888a5675baf2691e479daa163d8867902e69
Signed-off-by: Zhao, Yuan <yzhao@codeaurora.org>
2020-09-22 00:45:36 -07:00
qctecmdr
bb71c092c8 Merge "Revert "disp: msm: sde: add delay after porches changed"" 2020-09-21 18:13:23 -07:00
qctecmdr
8f16ccc93b Merge "disp: msm: add support to notify retire frame event" 2020-09-21 03:57:31 -07:00
qctecmdr
21a74c8c10 Merge "disp: msm: sde: fix panel early event blank notifier call" 2020-09-21 03:57:31 -07:00
qctecmdr
a1c819549d Merge "disp: msm: update POMS detection logic" 2020-09-20 19:01:21 -07:00
qctecmdr
d5af93b74c Merge "disp: msm: dsi: add missing trusted vm check" 2020-09-18 21:24:48 -07:00
Steve Cohen
38a8d2134b disp: msm: update POMS detection logic
Currently, SDE relies on DSI to set a flag for POMS however
if a power ON modeset comes with a different mode than
previously configured, DSI is unable to detect the mode change
and does not set the flag nor perform the mode switch itself.

DSI should always align the panel mode to match the timing node
that is selected regardless of prior configurations.

SDE encoder can detect if POMS is required for the INTF block
without the flag from DSI by comparing the currently configured
INTF mode with the panel mode that is being set. The POMS flag
from DSI is still needed for any active panel mode change so
that the post-modeset cleanup operations are triggered.

Change-Id: Ib198b3098f21338ab35b2022b04be1c01c4cbd94
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-09-19 00:09:43 -04:00
Ray Zhang
b818229a2f disp: msm: dsi: add missing trusted vm check
Need to check trusted VM environment when loading DSI
firmware. Add this missing check due to propagation
issue.

Change-Id: I7c84b487a58133df49ba23e80e6b6ff8783cdf6c
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
2020-09-18 17:21:27 -07:00
qctecmdr
13154febbc Merge "disp: msm: check max FPS of DFPS to update UIDLE configurations" 2020-09-18 16:36:35 -07:00
qctecmdr
1a11e07ee4 Merge "disp: msm: dsi: enable xlog in critical paths" 2020-09-18 03:50:13 -07:00
qctecmdr
5382be1db4 Merge "disp: msm: dp: log altmode events in xlog" 2020-09-18 03:50:12 -07:00
qctecmdr
e7c79e76dc Merge "disp: msm: sde: remove previous pm qos irq vote during affinity change" 2020-09-18 00:12:13 -07:00
qctecmdr
d0e92b2a26 Merge "disp: msm: dp: fix dp-mst stream double disabled issue" 2020-09-18 00:12:13 -07:00
qctecmdr
99372af0b6 Merge "disp: msm: dp: skip attention requests on disconnect" 2020-09-18 00:12:13 -07:00
qctecmdr
3ac7505d1d Merge "disp: msm: sde: return latest rsvp_next pointer on poll timeouts" 2020-09-18 00:12:13 -07:00
Sankeerth Billakanti
3b784e6ef5 disp: msm: dp: log altmode events in xlog
Add the altmode communication events in xlog to help
debug the stability issues.

Change-Id: I29d4821a8222e6139187f92b75ec1d05b5ce4939
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
2020-09-18 09:53:43 +05:30
qctecmdr
c16eaa7924 Merge "disp: msm: sde: fix rounded corner region partial update logic" 2020-09-17 13:13:25 -07:00
Rajeev Nandan
2103ce58b8 disp: msm: sde: fix panel early event blank notifier call
If trusted vm is disabled, the DRM_PANEL_EARLY_EVENT_BLANK
notifier does not get called because of this touch early
suspend does not happen which leads to continuous touch
i2c transfer failure during suspend.

Change-Id: I6abaacb9f8343eec24d5642f7eda9e7c410fd8b7
Signed-off-by: Rajeev Nandan <rajeevny@codeaurora.org>
2020-09-17 13:52:00 +05:30
Xiaowen Wu
c60d3d5989 disp: msm: dp: fix dp-mst stream double disabled issue
There is a corner case when dp-mst stream is disabled twice:

1. stream 1 is enabled
2. cable plugged out, stream 1 is disabled by kernel
3. cable plugged in, enable stream 0 first
4. disable stream 1

Stream 1 is double disabled and will cause hw crash. This change
will add the check and skip stream_off if already disabled.

Change-Id: Icd1e815a1ed14cd4e784924f3db19b98eb06d571
Signed-off-by: Xiaowen Wu <wxiaowen@codeaurora.org>
Signed-off-by: Sankeerth Billakanti <sbillaka@codeaurora.org>
2020-09-16 06:25:38 -07:00
Rajeev Nandan
19a54c5650 disp: msm: dsi: enable xlog in critical paths
Enable xlog in critical paths to increase debug coverage.

Change-Id: I177acd3f2c2ab349f533bb9fbd8a8122539d524b
Signed-off-by: Rajeev Nandan <rajeevny@codeaurora.org>
2020-09-16 13:00:11 +05:30
Narendra Muppalla
6e8693a6ef disp: msm: sde: return latest rsvp_next pointer on poll timeouts
To avoid use after free issues this change gets latest rsvp_next pointer
in poll timeout scenario.

Change-Id: I4bd4ce1ce9d4f5f2df0e814ceb8babe544578fc6
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-09-15 17:57:06 -07:00
Amine Najahi
aca1fb3e5a disp: msm: sde: fix rounded corner region partial update logic
Currently driver determines the RC regions to enable/disable by
combining partial update ROI information and RC mask flag field.
This lead to invalid outcome when a transition from partial update
frame to full update frame occurs.

This change modifies the enable/disable logic to only use RC mask flags
from usermode client. It also adds the non-intersecting RC and ROI use
case to global use case table and fix the y_start programming when ROI
is only in bottom region.

Change-Id: Ie05c5ecba6bd0323d1c8fd6949e12cec1f56b477
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2020-09-15 15:42:26 -04:00
qctecmdr
1c5beba30c Merge "disp: msm: trigger same BW vote if rsc state updates" 2020-09-15 03:57:25 -07:00
Lei Chen
c44e0b42df disp: msm: check max FPS of DFPS to update UIDLE configurations
It is not applicable for all DFPS cases to update UIDLE state
according to current frame rate. If DFPS changes frame rate
through vertical front porch values, the SDE clocks and transfer
time will not get changed accordingly, and it always get fixed
at max frame rate configuration of DFPS.
Add this change to check max FPS of DFPS instead of current
frame rate for UIDLE update, if DFPS is enabled with VFP.

Change-Id: I7634bce6a9eb1af212ba19a267735be08b20ae1f
Signed-off-by: Lei Chen <chenlei@codeaurora.org>
2020-09-15 09:51:30 +08:00
Dhaval Patel
d87c6080bb disp: msm: trigger same BW vote if rsc state updates
SDE RSC and core perf avoids BW vote trigger if current
and previous AB/IB BW votes are same. This may cause
issue if target enters in idle power collapse state
with stale AMC vote. This invalidates the sleep vote
and does not remove disp_drv vote. This change triggers
BW vote on all rsc state updates.

Change-Id: Id738206ade0feeb067dfda3d06cc0c7e19d66df1
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
2020-09-14 11:07:38 -07:00
Yashwanth
4ec0f2a9e8 disp: msm: sde: remove previous pm qos irq vote during affinity change
In the current code during affinity change, irq cpu mask is
being updated without clearing previous pm qos vote. Due to
this, even after entering idle state, qos vote is still
present on other cpus. This change clears previous pm qos
vote before adding another.

Change-Id: Ic0326a09d37d03d5a8b0444362a6f1492993040c
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2020-09-14 14:39:00 +05:30
qctecmdr
683bf52ce0 Merge "disp: msm: sde: update crtc check in drm_check_dpms" 2020-09-12 19:19:50 -07:00
qctecmdr
5391d25fbc Merge "disp: msm: dp: do not skip disconnect when host is unready" 2020-09-12 11:26:36 -07:00
qctecmdr
7978e0d920 Merge "disp: msm: sde: add event to event_list after register is successful" 2020-09-12 07:12:30 -07:00
qctecmdr
952605d6fb Merge "Revert "disp: msm: sde: add event to event_list after register is successful"" 2020-09-12 04:59:46 -07:00
qctecmdr
b0775fe9da Merge "disp: msm: add allowed_mode_switch blob property" 2020-09-12 00:11:57 -07:00
qctecmdr
e253a5d57d Merge "disp: msm: dp: enable logs in key mst callflow operations" 2020-09-11 21:50:39 -07:00
qctecmdr
1f46ac0396 Merge "disp: msm: sde: properly reset LTM merge_mode bit and portrait_en bit" 2020-09-11 19:36:33 -07:00
qctecmdr
ef551ad4ae Merge "disp: msm: sde: release splash memory using memblock_free" 2020-09-11 16:46:33 -07:00
Ping Li
97a5b52ebd disp: msm: sde: add event to event_list after register is successful
Add event to event_list after msm_register_event is successful to avoid
use-after-free vulnerability.

Change-Id: I34fb39c99051978cbab64a852851964691a5ea9e
Signed-off-by: Ping Li <pingli@codeaurora.org>
2020-09-11 13:52:52 -07:00
Ping Li
76a1d81e9d Revert "disp: msm: sde: add event to event_list after register is successful"
This reverts commit 91fc51777c67ddc92d0ba1fcddf6cd149f7a0560.
The original fix missed to add the client to list in cases when count is
larger than zero and client doesn't need to be deleted from list if
msm_register_event fails as it was not added to list yet.
Revert this change to upload the correct fix.

Change-Id: I00923d65387753b05b6b03efec109c019826f5d5
Signed-off-by: Ping Li <pingli@codeaurora.org>
2020-09-11 13:52:05 -07:00
Rajat Gupta
02ad85b541 disp: msm: dp: skip attention requests on disconnect
Don't process any attention requests after hpd off. During automation
tests, scripts are doing a mst unplug after hpd off. But sometimes
disconnect thread freezes waiting for audio ack. During this freeze
unplug happens and uninstalls connector and free the panel and audio
objects due to which lock associated with completion variable causes an
exception.

Change-Id: I4038fd7debc383a96d60906eef17ec6e2163b326
Signed-off-by: Rajat Gupta <rajatgu@codeaurora.org>
2020-09-11 18:19:00 +05:30
Ping Li
b2fc08f8c2 disp: msm: sde: properly reset LTM merge_mode bit and portrait_en bit
Reset the LTM merge_mode bit and portrait_en bit if LTM histogram and
VLUT are both disabled.

Change-Id: Ica9f681e458afe8c7cd1dfe8ba718cf46eadac3b
Signed-off-by: Ping Li <pingli@codeaurora.org>
2020-09-11 00:14:23 -07:00
qctecmdr
155b0639d1 Merge "disp: msm: dsi: Handle pm_runtime_put_sync return value properly" 2020-09-10 18:45:36 -07:00
qctecmdr
0252310b1b Merge "disp: msm: sde: avoid registering vblank callback during CWB" 2020-09-10 18:45:36 -07:00
qctecmdr
6e0320c98a Merge "disp: msm: sde: avoid wb commit before cwb disable" 2020-09-10 18:45:36 -07:00
qctecmdr
52610a646b Merge "disp: msm: sde: update ctl v1 topology table" 2020-09-10 18:45:36 -07:00
qctecmdr
eeb99bc637 Merge "disp: msm: sde: update min_prefill lines for lito and lagoon" 2020-09-10 18:45:36 -07:00
Narendra Muppalla
9a26376b14 Revert "disp: msm: sde: add delay after porches changed"
This reverts commit 15ae91e806.

Change-Id: I11c795a8d16440a42e36e3a5bef27a6a78eec5fc
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-09-10 17:50:50 -07:00
Raviteja Tamatam
66d9e1e9ab disp: msm: sde: update crtc check in drm_check_dpms
In cases of adb shell stop, connector->state->crtc is
not updated which prevents panel power down
notification to be sent. In such cases updated crtc
from old connector state.

Change-Id: I94f9e5ad469d771cc673123b4e0cc65ea8f4653e
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-09-10 16:34:24 -07:00
Krishna Manikandan
2b492f05d9 disp: msm: add new mode to notify when there is a fps change
Add a new mode DRM_PANEL_BLANK_FPS_CHANGE whenever there is
a change in fps and the power mode remains the same.
This will avoid unnecessary resume operations in touch driver.

Change-Id: Id3d5884ba862c864782636360e3832854464bf65
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
2020-09-10 16:32:41 -07:00
Adrian Salido
fb50dda175 disp: msm: add low power mode notifier
Introduce low power mode so that listeners are aware when
display is going into low power mode. This requires moving notifier
inside sde code to be able to retrieve the low power state.

Change-Id: I8671e86af29c959d97e1b8ad758a07719ffa4bec
(cherry picked from commit c4b15f56dd63d24d6f4482deab2423809c700d7a)
Signed-off-by: Adrian Salido <salidoa@google.com>
[samtran@codeaurora.org: move changes to different file as
downstream use of notifier struct comes from different file]
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
Signed-off-by: Dhaval Patel <pdhaval@codeaurora.org>
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-09-10 16:28:22 -07:00
qctecmdr
d478974b21 Merge "disp: msm: sde: skip unnecessary cache register programming" 2020-09-10 10:30:19 -07:00
qctecmdr
11483a9d3d Merge "disp: msm: dp: return early if all streams are disabled" 2020-09-10 10:30:19 -07:00
Zhao, Yuan
7605176062 disp: msm: dp: do not skip disconnect when host is unready
usbpd_attention_cb will do dp_display_disconnect_sync, but will
not deinit dp host. usbpd_disconnect_cb can deinit dp host, so
need to check dp state, if dp is unready, should not skip
usbpd_disconnect, can deinit dp host now.

Change-Id: I5a149923ecb043b3a7db973e092bd0d49a715981
Signed-off-by: Zhao, Yuan <yzhao@codeaurora.org>
2020-09-10 09:58:33 -07:00