Commit Graph
1242 Commits
Author SHA1 Message Date
Pawan Chilka 7f067beb28 Revert "disp: msm: sde: handle partial update transitions in rounded corner".
This reverts commit 99041a16f2.

Change-Id: I332ba310680fb173d234c54feda29656ea44a0d1
2021-09-30 15:23:04 +05:30
Narender Ankam 5b6aedd27f disp: msm: dp: parse displayport label dt property
Add logic in DP driver to parse "label" dt property.
This info will be useful to configure DP as primary
or secondary.

Change-Id: I708179c5940c82256034bc6c8338b01ee52f2f79
Signed-off-by: Narender Ankam <nankam@codeaurora.org>
2021-09-29 15:29:50 +05:30
Anjaneya Prasad Musunuri e121bd2026 disp: msm: sde: handle partial update transitions in rounded corner
This change handles partial update use case transitions. Rounded
corner should be programmed to full ROI when transitioning out of
partial update use case.
This change also clear cached ROIs when rounded corner feature is
disabled to ensure full frame ROI for first frame when feature
is enabled again. This change depends on HAL change to disable PU
for one frame when RC mask config is set.
This change also moves cached rectangles from crtc state to crtc
structure to avoid cached rectangles being incorrect due to race
conditions between updating cached rectangles in crtc state and
duplicating crtc state when next commit starts.

Change-Id: I4c48ccd3f64409d1b0fa19f0e6f92eab5f86d099
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-09-27 09:25:06 +05:30
Anjaneya Prasad Musunuri 99041a16f2 disp: msm: sde: handle partial update transitions in rounded corner
This change handles partial update use case transitions. Rounded
corner should be programmed to full ROI when transitioning out of
partial update use case.
This change also clear cached ROIs when rounded corner feature is
disabled to ensure full frame ROI for first frame when feature
is enabled again.

Change-Id: I4c48ccd3f64409d1b0fa19f0e6f92eab5f86d099
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-09-23 23:01:02 -07:00
Linux Build Service Account 9c33c63ee6 Merge 1ff0a561f0 on remote branch
Change-Id: I586c56d820355246b038a561b3929fbd84238f29
2021-09-19 21:52:12 -07:00
qctecmdr 1ff0a561f0 Merge "disp: msm: sde: handle partial update use case in rounded corner" 2021-09-13 01:44:53 -07:00
Anjaneya Prasad Musunuri aedd309e71 disp: msm: sde: clear partial update mask during last close
Clear partial update mask during last close to avoid
rounded corner to be programmed without valid mask during
shell stop/start operations.

Change-Id: I378adc62b5bc5913abfc32fa3528c8e28ea273d4
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-09-12 23:36:46 -07:00
Anjaneya Prasad Musunuri 2cb29de376 disp: msm: sde: handle partial update use case in rounded corner
Currently, driver expects usermode to set RC blob flags based on
the RC PU use case, which causes issue when commits are staggered
and is unnecessarily reprogramming RC mask data on every PU frame.
This change uses existing driver logic to internally determine the
RC PU use case and programs the RC region enable bits accordingly.
It also adds essential logging in RC functions to help debugging.

Change-Id: I19ae59a79dbee20f357b384c12acd7d2a6a93fb4
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-09-05 12:02:55 +05:30
Anjaneya Prasad Musunuri c219fc2bd2 disp: msm: sde: clear partial update mask during last close
Clear partial update mask during last close to avoid
rounded corner to be programmed without valid mask during
shell stop/start operations.

Change-Id: I378adc62b5bc5913abfc32fa3528c8e28ea273d4
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-09-01 12:04:04 +05:30
Linux Build Service Account 52a34db1c8 Merge 9f479d9b1c on remote branch
Change-Id: I00c3019f37f9db1782ca6a1f3080b12eda598c59
2021-08-23 01:59:06 -07:00
Ravikanth Tuniki 9f479d9b1c disp: pll: Improve logging for 7nm dsi pll
For the targets not having slave pll, "slave pll unavailable"
warning gets logged on suspend, resume and idle power collapse.
Change pr_warn to pr_debug to avoid extra logging.

Change-Id: I2f06d88f3ea8ceb03e30095439c24a6729daae97
Signed-off-by: Ravikanth Tuniki <rtunik@codeaurora.org>
2021-08-11 13:11:45 +05:30
Linux Build Service Account 0732a3546b Merge a9e1515eaa on remote branch
Change-Id: Ib813dd7a99248b196e0a05bafd593bd3f63f31a1
2021-08-01 21:36:49 -07:00
Jayaprakash Madisetty b915116d39 disp: msm: sde: update rsvp_cur when poll is enabled for rsvp_nxt
This change updates rsvp_cur pointer to latest to avoid use
after free issues. rsvp_cur pointer can be freed in few cases due
to the unlock, wait and lock of rm_lock present in
_sde_rm_poll_get_rsvp_nxt_locked.

Change-Id: I389048188e8a615edc3e75dd1102d4ca8c74af65
Signed-off-by: Jayaprakash Madisetty <jmadiset@codeaurora.org>
2021-07-28 18:06:58 +05:30
qctecmdr a9e1515eaa Merge "disp: msm: sde: updating DSI command packet creation for MIPI flags" 2021-07-21 21:47:17 -07:00
qctecmdr 95740622de Merge "disp: msm: sde: add null check for drm file in msm_release" 2021-07-21 21:47:17 -07:00
Nilaan Gunabalachandran c577e924d0 disp: msm: sde: poll for rsvp nxt after idle
During mode enable after idle, rsvp next would be set without
rsvp cur. Back to back test only should be serialized, but currently
this would be possible right after idle. This is established by
commit 11aab5f9c382 ("disp: msm: sde: Fix null dereference errors").
This change updates the condition to poll for rsvp next clear
during this usecase as well.

Change-Id: I300254967cbec69fff8b31545b8d659afc56f283
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2021-07-15 16:05:52 +05:30
Krishna Manikandan f7fd6250d7 disp: msm: sde: add null check for drm file in msm_release
Drm file is not set to NULL after freeing it from drm
release. This can result in use-after-free issues in
some scenarios. Add a mutex lock and other proper null
checks to prevent such issues.

Change-Id: Ic35b0a76166b0f47a354b1737e6f4c3ac1437ed4
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
Signed-off-by: Althaf Neelanchirayil <aneelanc@codeaurora.org>
2021-07-09 00:39:24 -07:00
Linux Build Service Account cfab0dd695 Merge 5d77c36d39 on remote branch
Change-Id: I88f7ed5e86512a47239b2d1336595cd6693bdb9e
2021-07-02 00:03:38 -07:00
qctecmdr 5d77c36d39 Merge "disp: msm: sde: add support for hardware based rounded corner" 2021-06-22 01:05:28 -07:00
Rajesh Bharathwaj 319c3bc894 disp: msm: sde: updating DSI command packet creation for MIPI flags
At present, code is checking only for MSM_REQ_ACK flag which is set for
read commands and ignores all other flag states.
This fix takes all the different states that are configured as the DSI
Command MIPI Flag states and sets it.
Also, added the backlight brightness control support with different DCS
command(0xC2) to update backlight brightness.

Change-Id: I689e902e7d997afcb629084e89e42361bf1c685b
Signed-off-by: Rajesh Bharathwaj <rajeshbharathwaj@codeaurora.org>
2021-06-21 10:08:37 -07:00
qctecmdr 8c0a3f661b Merge "disp: rotator: add rev checks for rotator for khaje target" 2021-06-21 06:31:43 -07:00
qctecmdr 2d3ebd8ea2 Merge "disp: msm: sde: add rev checks for khaje target" 2021-06-21 06:31:43 -07:00
Anjaneya Prasad Musunuri 4d21a3502a disp: msm: sde: add support for hardware based rounded corner
Add support for hardware based rounded corner part of
color processing framework.

Change-Id: Ie05c5ecba6bd0323d1c8fd6949e12cec1f56b477
Signed-off-by: Anjaneya Prasad Musunuri <aprasad@codeaurora.org>
2021-06-18 14:58:40 +05:30
Mahadevan 345c21e7d4 disp: msm: sde: add rev checks for khaje target
Add required revision checks from display for
khaje target.

Change-Id: Ia146f2fec566aa5f138bad7163e7f1c894b2ae9e
Signed-off-by: Mahadevan <mahap@codeaurora.org>
2021-06-18 14:39:28 +05:30
Mahadevan 58ec60d22b disp: rotator: add rev checks for rotator for khaje target
Add revision checks required for rotator for khaje
target.

Change-Id: I5bc2bbfd4fe3962660f55a010bffed86d4dff5bf
Signed-off-by: Mahadevan <mahap@codeaurora.org>
2021-06-18 12:03:47 +05:30
Krishna Manikandan 6847592245 disp: msm: sde: avoid using spinlock for register log
Add support to use atomic variable instead of
spinlock for register logs during register
write. In the current architecture, register
writes are serialised and happen in commit
context.

Change-Id: I2a0b8ae404c94807ef06141867ee427909498ebf
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
2021-05-24 16:23:18 +05:30
Linux Build Service Account da35cc4e83 Merge 8545340274 on remote branch
Change-Id: I7616a7e4b36f003f6a0540a2221a6984ee3938e3
2021-05-07 01:34:21 -07:00
Raviteja Tamatam 8545340274 disp: msm: sde: avoid zero bus vote when display is active
In targets where rsc is not supported minimum vote is not
present which might result in command fetch failures when
there is null commit. Made change to have minimum vote in such
cases.

Change-Id: Id7b58611cc9af8999b7112093fcf235950c8a1ee
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
2021-04-01 10:21:03 +05:30
qctecmdr 2f39b1a783 Merge "disp: msm: sde: add cached lut flag in sde plane" 2021-03-30 21:50:15 -07:00
Yashwanth 681404ac00 disp: msm: sde: add cached lut flag in sde plane
Below is the sequence during which issue is observed
while using stale lut values:

1) Scaler block is enabled in the VIG pipe along with the
valid lut configuration.

2) Idle work gets scheduled and GDSC is turned off erasing
the saved lut values.

3) At the same time, userspace sends a commit assuming lut
values are still valid resulting in artifacts on the
screen.

In the plane state scaler config, only lut flag will be
reset for subsequent commits and remaining properties such
as filter cfgs, lut_idx etc. remains same. This change
caches the lut flag in sde plane whenever the lut is being
set and reuses this flag to handle above issue.

Change-Id: Ia6a2f3fb3fe2368f8accb4453082d11d7d75756b
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-03-22 11:32:20 +05:30
Linux Build Service Account 2029ff8c5f Merge 5134cb67ea on remote branch
Change-Id: I5271f8ab598e5afbb91748ac6805c8176cb380c5
2021-01-21 20:53:00 -08:00
Yashwanth 5134cb67ea disp: msm: sde: update encoder atomic check during qsync usecase
During cwb usecases, connectors_changed flag will be
set and needs modeset condition will be set to true. This
change updates qsync concurrency check with modeset to
fail atomic check only if there is seamless poms, dms or
dynamic clock change scenario.

Change-Id: I78c214f9a6b08890b9b1618396becd3181c4a19b
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>
2021-01-04 19:24:13 +05:30
qctecmdr 41e653b993 Merge "disp: msm: sde: add msm_preclose operation as part of msm_release" 2020-12-31 00:47:41 -08:00
qctecmdr 5a29ee8cd9 Merge "disp: msm: sde: add check for external vote triggered by sysfs node" 2020-12-31 00:47:41 -08:00
Jayaprakash 721d4f1a19 disp: msm: sde: add msm_preclose operation as part of msm_release
Add changes to handle msm_preclose as part of msm_release
operation and remove preclose callback handler since legacy
feature is not supported for msm_driver.

Change-Id: I3e9930a96d8928586b1f76e9be4e3b334250cb7e
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-12-29 11:37:08 +05:30
Andhavarapu Karthik 2ad29060a2 disp: msm: sde: add check for external vote triggered by sysfs node
Changes are made in check for external vote. So that, vote triggered
by change in control node at /sys/class/drm/card0/device/power is
considered to allow gdsc toggle.

Change-Id: I4644cae15930d9f92a7125f4d200f0502d53f0cd
Signed-off-by: Andhavarapu Karthik <kartkart@codeaurora.org>
2020-12-24 15:28:14 +05:30
Linux Build Service Account 161578fc38 Merge 35e5304089 on remote branch
Change-Id: I118a5b741dd7b9d327a83ab090885aeeb74d2cea
2020-12-23 02:25:49 -08:00
qctecmdr a9dcc6e2b0 Merge "disp: msm: sde: add optional sde register writes in event logs" 2020-12-16 23:07:54 -08:00
Jayaprakash fdb3668280 disp: msm: sde: remove fb's attached to a drm_file in preclose
Add changes to remove framebuffers attached to a drm_file
in preclose whose refcount is not managed by composer kill
and issue null flush to hardware in such cases. This will
avoid upstream issuing drm_atomic_commit's in drm_fb_release
which is leading to artifacts on screen or atomic_check failures
due to atomically unstaging each fb from plane_state and
committing remaining planes on hardware.

Change-Id: Ic197fb596a1dcfd1ebe2c83e759e619a1ab2f798
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-12-16 14:12:41 +05:30
Jayaprakash 7c91338088 disp: msm: sde: clear dim_layers as part of null commit
Add changes to clear any dim_layers present in the crtc_state
as part of null commit.

Change-Id: Iaa5d01d7d512445e1524bac85012adda6be6c4a9
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-12-16 14:08:28 +05:30
Jayaprakash f0e165a896 disp: msm: sde: add helper function for setting crtc to conn state
Add changes to move the state operations for setting crtc to
connector state to a helper api. This can be reused during
preclose operation for issuing a drm commit.

Change-Id: I8daf4f2119c8d0e54c123a07255cb8119c2040ea
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-12-16 12:57:16 +05:30
Mahadevan 94eaa86901 disp: msm: enable event log and disp ramdump without DEBUG_FS
This change allows event log and display ramdump
module compilation when DEBUG_FS config is in disabled
state.

Change-Id: Iae4f695da34aec1eb12581c74a101643e1a36669
Signed-off-by: Mahadevan <mahap@codeaurora.org>
2020-12-16 09:36:33 +05:30
Jayaprakash 302e4e0fe6 disp: msm: sde: add optional sde register writes in event logs
Add changes to configure register writes in the event
log dump. The register writes can be enabled in the dump
through the debug_fs command.

Change-Id: I08154e193f670999746fbb30291a866db85c8c8d
Signed-off-by: Jayaprakash <jmadiset@codeaurora.org>
2020-12-15 03:24:31 -08:00
qctecmdr a5efd1f088 Merge "disp: msm: sde: save register write logs in dump" 2020-12-11 02:41:47 -08:00
Sudarsan Ramesh b080a9f098 disp: msm: dp: validate edid before dereferencing
Currently, when using custom edid from debugfs, the
extensions data inside the edid block is not validated
before dereferencing the extension block.

The fix adds a edid validation function to validate
any custom edids before accessing any members in the
edid block.

Change-Id: I8a2cc45477416a8f8c4cff882bd53d14012e29f4
Signed-off-by: Sudarsan Ramesh <sudarame@codeaurora.org>
2020-12-10 23:13:37 -08:00
qctecmdr c8a629f173 Merge "disp: msm: sde: return latest rsvp_next pointer on poll timeouts" 2020-12-09 15:27:25 -08:00
qctecmdr 35e5304089 Merge "disp: msm: sde: add secure session flag in sde_crtc state" 2020-12-08 06:02:54 -08:00
Narendra Muppalla 75dc75b0d6 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-12-07 19:40:39 -08:00
Andhavarapu Karthik 9c5880443c disp: msm: sde: save register write logs in dump
Changes are made to add register write logs to memory dump.
This can be extracted from crash dumps and used for analysis.

Change-Id: I02038f62ecee86a9c82a913c6ed24bdd18465686
Signed-off-by: Andhavarapu Karthik <kartkart@codeaurora.org>
2020-12-07 20:59:27 +05:30
Linux Build Service Account 0d7cef919b Merge 213d04499e on remote branch .
Change-Id: Ic8d757fc10153db290600bae3b1daa1211e440dc
2020-11-29 17:04:18 +08:00