Commit gráf

1913 Commit-ok

Szerző SHA1 Üzenet Dátum
Jeykumar Sankaran
8b7ed7dc0c disp: msm: dsi: validate display probe dependencies early
DSI display configuration can be either DT or firmware file driven.
When probed with firmware path, asynchronous firmware file read
callback function will be too late to check for dependencies and
defer the probe when the dependencies are not met.

Move all the dependency checks before the firmware file read request.
Since the panel data will not be available before the DT/firmware read,
this change limits the check to the dsi display layer.

Change-Id: Ib26ed7839389027c2fe2dc15f70a572df3990ed9
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-24 12:59:51 -07:00
Jeykumar Sankaran
9956819d55 Revert "disp: msm: dsi: reorder resource validation in probe"
This reverts commit 23734fc295.

Reverting this change as it does not address all the below uses cases for Waipio
- Supporting PROBE deferral based on dsi ctrl availability
- Dual DSI path with optional single DSI node
- Firmware DT blob parsing for single / dual dsi panels

Change-Id: Ifc747befadd85eb76995b6cb1f72407fa5dccdbb
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2021-03-22 10:47:25 -07:00
qctecmdr
ae6a089b20 Merge "disp: msm: sde: refactor sde_connector_atomic_set_property function" 2021-03-19 20:51:27 -07:00
qctecmdr
7dcef410b1 Merge "disp: msm: sde: prepare encoders during enable commit" 2021-03-19 19:52:30 -07:00
Amine Najahi
6a1cea8457 disp: msm: sde: refactor sde_connector_atomic_set_property function
Reduce cyclomatic code complexity of sde_connector_atomic_set_property function from 34 to 22
by moving OUT_FP and RELEASE_FENCE property setting code to separate
helper functions.

Change-Id: I8ac171fa5b8631c7133d276dd872a6c79c5e3114
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
2021-03-17 17:26:33 -04:00
Gopikrishnaiah Anandan
1d39b8a5a9 disp: msm: sde: add checks for hfc feature enablement of demura
HFC feature of demura needs a skip blend plane to be set. If skip blend
plane is not set and HFC feature is requested to be enabled, driver
should skip turning on HFC demura feature. Change adds checks to ensure
that HFC is always enabled with skip blend plane staged.

Change-Id: I923359c7cb143867660b4c1e667f56ed42fa51c9
2021-03-17 11:22:08 -07:00
Christopher Braga
15cc307f2a disp: msm: sde: add on/off and payload size logging for LUTDMA
Debugging of LUTDMA has proven to be difficult due to lacking
information. Add logging for payload sizing, feature on / off,
and dumping of 64-bit buffer addresses.

Change-Id: I6d421f65172a782b79e915501ec9ea00d05dbcdd
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:08 -07:00
Gopikrishnaiah Anandan
0c2aa527bf disp: msm: sde: fix partial update offset calculation
Panel height and width should be passed for partial update offset
calculation. Change passes the offsets to demura partial update
function.

Change-Id: Ic4113d46e8c1643a855f672e7a2bdd848ef99adc
2021-03-17 11:22:08 -07:00
Gopikrishnaiah Anandan
d9187ba0d9 disp: msm: sde: stop crtc features during encoder disable
Encoder is disabling planes and unstaging layers from layer mixer. Some
of the crtc features are dependent on the plane being staged. Change
adds api that encoder can call on crtc to stop the features that are
dependent on source pipes.

Change-Id: I4d875155ceb8f66acfe6ce0096141ca7253bb140
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2021-03-17 11:22:08 -07:00
Gopikrishnaiah Anandan
16c3eae807 disp: msm: sde: fix cp state handling
When states are duplicated ensure that payload addresses are not copied
for range overloaded properties. Allocate the memory and copy the
payload so that each state has its own heap pointer.

Change-Id: I0fb8941f69216a48f73aba9b59338ace9916e179
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2021-03-17 11:22:08 -07:00
Gopikrishnaiah Anandan
9161487a45 msm: sde: Add partial update support for demura
Demura HW block needs to be programmed with different sequence for
partial update use-cases. Change adds support for partial update
programming sequence.

Change-Id: I3ea38354b1120d7c545f6680562c47304cd1126b
2021-03-17 11:22:08 -07:00
Gopikrishnaiah Anandan
39ed53d660 disp: msm: dsi: notify panel id during callback registration
Clients of dsi driver can register to be notified of panel id
information. Dsi is probed early during the device boot-up. If the panel
id is available with dsi driver none of the clients have registered
that early. Once clients probe and they register with the dsi driver
panel id is not passed onto clients until power on of the dsi. Change
adds support to notify the dsi clients during registration if panel id
is valid.

Change-Id: Ic475060cbec5f5b645aed865939fffe66aef071b
2021-03-17 11:22:08 -07:00
Gopikrishnaiah Anandan
d5df6af063 disp: msm: sde: fix dual demura configuration
When dual layer mixer topology is used for demura, left and right demura
blocks need different programming sequence. Change adds support
to program the required offsets for dual layer mixer demura topology.

Change-Id: I6c15e27148f12459098fa0d01650cd05b16817c6
2021-03-17 11:22:08 -07:00
Christopher Braga
d2511cbe2f disp: msm: dsi: handle invalid and dummy panel IDs from DTSI
For Demura continuous splash hand-off, the DTB must already have
a definition for a demura panel ID. This is necessary
as ABL currently only updates this node and will not add it in
if missing.

Introduce special handling to identify a panel ID of 0 as a dummy
node, and set all invalid cases to the panel id ~0x0.

Change-Id: I70315c1b32cce9bcd2f6142515f2355a489d470b
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:08 -07:00
Christopher Braga
dc1af2c9d5 disp: msm: sde: read demura plane status registers on cont-splash boot
Extrapolate the Demura plane configuration from the Demura DSPP block
on cont-splash boot, and pass this information to DRM clients via a
CRTC property. This will allow user-space to be aware of all plane
reservations, and avoid plane mangling in multi display use-cases.

Change-Id: I6d216f555fcddbd19c18b6209dc830c21f6be5a4
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
c8f9e73f0e disp: msm: dsi: move demura panel ID fetching to DTSI
Previous design had the demura panel ID passed in on the Linux kernel
command line. Update the DSI driver to read this information from the
DTSI instead.

Change-Id: I7697bb34a313f1837b80ba5ff78e720e8131a819
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
c654f1b014 disp: msm: sde: add management of demura shared memory region
In cont-splash use cases the bootloader's Demura configuration
must stay operational until user space takes over display control.
Introduce Demura shared memory region handling to ensure
Demura configuration data stays consistent and accessible to the
hardware.

Change-Id: I5ef20ad9286574904b3d33a4179629d5a16746cf
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Gopikrishnaiah Anandan
580638dba2 disp: msm: sde: update demura property name
Add prefix of sde to demura properties to keep it consistent with other
sde property names.

Change-Id: I7b666b8a3c1ef79a112911999a736bba368b0cf0
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
4815caf222 disp: msm: sde: add DSPP and DEMURA count to CRTC capability blob
Expose overall DSPP and DEMURA counts on CRTC object to allow
DRM clients to make better policy decisions.

Change-Id: I59d795cafc829e8b2fe6a3f2fe597c7d5925105d
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Gopikrishnaiah Anandan
4c37786c1e msm: sde: support dual layer mixer topology for demura
Built-in display can switch to dual layer mixer topology. In this
topology if demura is enabled in dpu, then 2 demura blocks have to be
configured as left & right blocks. Change adds support to add dual layer
mixer support.

Change-Id: I82d1726d8d48ffc58af156837521efc5429572a7
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
812782e76b disp: msm: sde: check fetch active registers for active data planes
Continuous splash setup checks the CTL configuration to determine and
log all planes that have been enabled for continuous splash boot.
This logic currently only checks the planes mapped to each LM on
a given control path, resulting in data planes being missed.

Update the boot plane enumeration logic to additionally check the CTL
fetch active registers to detect and log missed planes. This logic
checks against all planes found through the original enumeration path
to avoid logging the same plane twice. Note that planes found via the
fetch registers are assumed to be used across both rectangles due to
hardware logging limitations.

Change-Id: Ic1f4aaba94111fe096ba9764eeaef242beb6adf5
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
db39b61a5f disp: msm: sde: populate DRM pipeline setup during cont-splash
Declare the continuous splash pipeline setup to userspace by filling
in the DRM states for all plane, crtc, encoder, and connector objects
in use. This information will be treated as an 'informative' state,
and will be cleared at the start of the first commit to maintain
the DRM methodology of DRM clients being the only controller of
the pipeline. This ensures any configuration provided by userspace
is accepted and applied, even if it may already align with the setup
done by continuous splash.

This DRM state configuration is done via manual modification of the
DRM object states. Modification via the exposed DRM UAPI functions
is not possible due to no drm_atomic_state object linking the DRM
pipeline objects together.

Change-Id: I67650e05aafbb4e799cf60939f0595bc3786fc6e
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
484abb02a1 disp: msm: sde: cleanup data scope of _sde_kms_get_splash_data
In order to assign a 'type' to the accumulated sde_splash_data,
the function _sde_kms_get_splash_data was extended to
receive the entire sde_kms object. This change is unnecessary
as the sde_splash_data structure to modify is already provided.

Update _sde_kms_get_splash_data to no longer receive
the sde_kms structure, and instead set the type on the provided
splash_data struct.

Change-Id: I6faf2c54c84a0157597d339c0123a2033e1dc632
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Christopher Braga
87e6558847 disp: msm: sde: cleanup naming in sde_color_processing
As the number of cp features has continued to grow, the file
sde_color_processing has become increasingly harder to parse.
Update function and parameter names to better identify internal
functions and increase readability.

Change-Id: Ib82d6c9a45b36b932ab3a2d573b7cbe13a6c10bc
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
Gopikrishnaiah Anandan
320ae88cf1 disp: msm: sde: avoid caching color processing properties in validate
Recent investigation shows that color processing properties are
incorrectly being cached in validate. This can result in unwanted
color processing properties being applied if a previous commit
failed or was validate only.

Add color processing properties to sde crtc state instead of marking
them dirty in color processing driver. When atomic commit is called
properties from state will be marked as dirty and applied.

Change-Id: If231a1f028e4cbd0b50eb0a947f4d58f94390a0c
Signed-off-by: Gopikrishnaiah Anandan <agopik@codeaurora.org>
Signed-off-by: Christopher Braga <cbraga@codeaurora.org>
2021-03-17 11:22:07 -07:00
qctecmdr
2d9a52fe5c Merge "disp: msm: extend the maximum value of backlight scale" 2021-03-15 20:52:16 -07:00
qctecmdr
de7a10fd68 Merge "disp: msm: sde: add inline rotation support for UBWC_RGBA1010102" 2021-03-15 10:32:42 -07:00
qctecmdr
33b4fc3e8d Merge "disp: msm: sde: change noise layer device tree log into info" 2021-03-14 23:48:20 -07:00
qctecmdr
95acc8bbab Merge "disp: msm: add dp register & debugbus dump support" 2021-03-14 21:10:39 -07:00
qctecmdr
3d61ecfa30 Merge "disp: msm: add rscc wrapper debugbus support" 2021-03-14 20:14:15 -07:00
qctecmdr
af5cc7d9ca Merge "disp: msm: add capability to dump limited debugbus info in logs" 2021-03-14 19:09:24 -07:00
qctecmdr
f593f27385 Merge "disp: msm: format register/debugbus dumping in logs" 2021-03-14 18:13:07 -07:00
qctecmdr
e21e941c87 Merge "disp: msm: refactor debugbus to use same helpers" 2021-03-14 17:19:35 -07:00
qctecmdr
8554b1aeae Merge "disp: msm: sde: reduce log level of thermal backlight device" 2021-03-10 17:47:04 -08:00
qctecmdr
52f55ac353 Merge "disp: msm: dsi: update DSI PHY programming" 2021-03-10 16:50:04 -08:00
qctecmdr
125cc02596 Merge "disp: msm: dsi: fix mutiplier frac_bits assignment" 2021-03-10 15:55:31 -08:00
Satya Rama Aditya Pinapala
26b26c8422 disp: msm: sde: reduce log level of thermal backlight device
The change reduces the log level if the thermal backlight device
registration fails. This is not a fatal use case and hence shouldn't
be an error log.

Change-Id: I08d4014a2629c5181bd7219c4836affb81da96ae
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-10 14:43:00 -08:00
qctecmdr
8308435276 Merge "disp: msm: sde: move DRM_EVENT_CRTC_POWER trigger" 2021-03-10 07:18:44 -08:00
qctecmdr
0d0a538bf6 Merge "disp: msm: dsi: parse PLL dfps data only if dynamic clock is enabled" 2021-03-10 06:25:39 -08:00
qctecmdr
685a464505 Merge "disp: msm: add check for null pointer dereferencing" 2021-03-10 02:49:06 -08:00
qctecmdr
1ae6847345 Merge "disp: msms: dsi: avoid hardcoding pll_lockdet_rate" 2021-03-10 01:56:06 -08:00
Samantha Tran
0ff34fb3c2 disp: msm: sde: add inline rotation support for UBWC_RGBA1010102
This change adds UBWC_RGBA1010102 to the list of formats which inline
rotation supports.

Change-Id: I6e0374895dd27bf21f19d9b97e84a8f343777874
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-03-09 16:26:31 -08:00
Samantha Tran
10a48e58f6 disp: msm: sde: move DRM_EVENT_CRTC_POWER trigger
Currently, power on and off are being triggered prematurely.
This changes moves both calls to the end of enable and disable
functions to better align with events. It also creates a common
function to simplify event notifications.

Change-Id: I0291747a84991deb139552b2bff476a6436d5409
Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2021-03-09 15:08:18 -08:00
Satya Rama Aditya Pinapala
18d245cad8 disp: msm: dsi: parse PLL dfps data only if dynamic clock is enabled
PLL codes from devicetree are only required if dynamic clock is enabled
for video mode panels. This change ensures that unnecessary error logs are
not seen for all other panels, by parsing the data only if the panel property
is set.

Change-Id: I206520aab65b7a5613909c8ff527e88303533617
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-09 11:42:05 -08:00
Satya Rama Aditya Pinapala
7eef141621 disp: msms: dsi: avoid hardcoding pll_lockdet_rate
This change avoids hardcoding the PLL_LOCKDET_RATE_1 register
value, rather using the variable with the same name that has
been initialized in dsi_pll_regs.

Change-Id: Ideb2c2b593156a4361feeb071df41f65e52c3beb
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-08 19:23:45 -08:00
Satya Rama Aditya Pinapala
ddbd9adaaf disp: msm: dsi: fix mutiplier frac_bits assignment
While recalculating VCO rate, currently the frac_bits value
is being hardcoded. The change instead uses the initialized
value from the 5nm PLL configuration.

Change-Id: I245574f4810a7b036d512ff1a347aa7e296702d1
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-08 19:23:35 -08:00
Satya Rama Aditya Pinapala
1b2b7a6c93 disp: msm: dsi: allocate DSI command buffer during bind
The DMA buffer allocation for DSI happens during the first
command transfer. This change moves this allocation to happen during
bind.

Change-Id: I7969a019a8b84282e8a153f5393c9a3de5a28043
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-08 18:03:37 -08:00
Gopikrishnaiah Anandan
ddda68fe06 disp: msm: sde: change noise layer device tree log into info
Noise layer feature is not mandatory feature, if device tree entry is
missing or hardware doesn't support the feature print a info log instead
of error print. Change updates the driver to change print as info.

Change-Id: I73f82d9f0877bcc859096c9f86b722871574e736
2021-03-08 17:52:58 -08:00
Satya Rama Aditya Pinapala
1d0cb57f98 disp: msm: dsi: update DSI PHY programming
The change updates DSI DPHY and CPHY programming for
PHY version 4_3.

Change-Id: Id6b5cfefdce9530891e1e0f5a34814606954d843
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2021-03-08 15:50:28 -08:00
Veera Sundaram Sankaran
84ec84696e disp: msm: add dp register & debugbus dump support
Add support to the dump the DP register space and debugbus information.

Change-Id: I903471b07fdd1926b0fc505a980b2a5048387b69
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2021-03-08 14:38:28 -08:00