Commit Graph

85 Commits

Author SHA1 Message Date
qctecmdr
50e8ef62d3 Merge "disp: msm: add proper null checks and propagate error" 2019-08-11 20:21:19 -07:00
qctecmdr
2a9da1c03b Merge "disp: msm: dp: fix register read/write delays" 2019-08-08 16:50:41 -07:00
qctecmdr
28022d54f0 Merge "disp: msm: dp: fix dp_display module's state handling" 2019-08-08 16:50:40 -07:00
qctecmdr
6cdf3b339e Merge "disp: msm: dp: synchronize debug and aux common buffer handling" 2019-08-08 16:50:40 -07:00
qctecmdr
c19743bbc6 Merge "drm/msm/dp: remove qfprom reference from dp driver Remove qfprom regmap reference from DP driver as it is not used anymore." 2019-08-08 07:09:16 -07:00
Ajay Singh Parmar
4ca56193c5 disp: msm: dp: synchronize debug and aux common buffer handling
DP debug module is run by external script for automation testing.
DP aux and debug modules operate on shared buffers. In some race
conditions, aux and debug module can go out of sync resulting in
automation failures. Lock the buffers to make sure there are no
race conditions.

Change-Id: If0ae370c22cf035f3177666bd714221d6b3cd56e
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-08-06 15:32:21 -07:00
Samantha Tran
c00bf10768 disp: msm: add proper null checks and propagate error
Fix possible null pointer dereferencing and propagate error
code during early return.

Signed-off-by: Samantha Tran <samtran@codeaurora.org>
2019-08-06 14:47:18 -07:00
Ajay Singh Parmar
9eb1b41671 disp: msm: dp: fix register read/write delays
Currently, for every DP hardware register read/write, there
is a string comparison to determine the execution mode. This
adds up an extra delay while powering up/down which does a
large number of register reads and writes. During stress
testing and automation, this can cause an issue resulting
in failures. Remove the unnecessary delays by using common
APIs for register reads and writes. Switch these APIs only
in case of execution mode change.

Change-Id: I9403873a29b3466c606297b2aa386d0885bb2dc7
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-08-06 12:55:48 -07:00
Ajay Singh Parmar
488cb89f09 disp: msm: dp: fix dp_display module's state handling
Currently the DP display's states are not able to handle
the use cases like suspend/resume. The required steps of
host initialization and ready are not properly followed
in such cases. Define proper DP display states, set and
unset at the right places to make sure dp is in proper
state in such cases.

Change-Id: Ibf6d35dec3ab373a7225b30ac1c2f9864bb6ff78
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-08-02 17:26:39 -07:00
qctecmdr
c70f647143 Merge "disp: msm: dp: correct the resolution width check in get_mode_info" 2019-08-02 13:42:29 -07:00
qctecmdr
3aa07c4957 Merge "drm/msm/dp: add checks to prevent buffer overflows" 2019-08-02 07:47:14 -07:00
RAJAT GUPTA
d0a2630e5f drm/msm/dp: add checks to prevent buffer overflows
Add checks to prevent buffer overflows through debugfs.

Change-Id: I1242a6e94b3182a9a3b0cbef4b04a9f8b14a4103
Signed-off-by: RAJAT GUPTA <rajatgu@codeaurora.org>
2019-07-30 11:58:38 +05:30
Tatenda Chipeperekwa
0ca2e2dc14 disp: msm: dp: send hotplug notification on state change
Send the hotplug notification to the user space only when there
is a state change e.g. from connect to disconnect, or vice versa.
This ensures that there are no spurious notifications that are
sent to the user space.

CRs-Fixed: 2478822
Change-Id: Ic3fdc95de5f2573a14cb526203d7e4ab58c567ba
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2019-07-29 16:08:43 -07:00
qctecmdr
60d59191c8 Merge "disp: msm: dp: add colorspace property for MSM DP" 2019-07-28 01:12:00 -07:00
qctecmdr
42aaee7d8c Merge "disp: msm: dp: enhance dpcd debugfs to parse extended capability information" 2019-07-28 01:12:00 -07:00
qctecmdr
9908bdb083 Merge "disp: msm: dp: Enable pre-emphasis level 3" 2019-07-27 07:06:22 -07:00
Ajay Singh Parmar
2d4ac9b559 disp: msm: dp: Enable pre-emphasis level 3
Enable the pre-emphasis level 3 as per hardware recommendations.

CRs-Fixed: 2490128
Change-Id: I649b0cb79c1c5f5d92d2265d9ff2058c2ca81c16
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-07-25 14:43:40 -07:00
Abhinav Kumar
1286b854ae disp: msm: dp: enhance dpcd debugfs to parse extended capability information
Add support to pass extended capability information to the DPCD
debugfs node. This will help to validate features like VSC support
using debugfs node.

Usage will be the same as before and the change will automatically
detect the presence of extended capability field and expect
additional bytes of information.

Change-Id: If541fd8837aac4794c3db0fa3badeab4143ff9c3
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2019-07-24 18:23:54 -07:00
Abhinav Kumar
14e02e4b02 disp: msm: dp: add colorspace property for MSM DP
Add the colorspace property for DP controller for MSM. Also, change
the default method to send the colorimetry information to the sink
from MISC bits of MSA to VSC SDP packets if the sink supports it. This
helps to avoid dynamic switches between the packet types for sending
the colorimetry information during BT2020 and DCI-P3 use-cases.

Change-Id: I7ddf879a187b023fcf7404d64028e4d19b031119
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2019-07-24 17:24:27 -07:00
Abhinav Kumar
7f5f73ff41 disp: msm: dp: separate hdr data into individual packets
Currently a lot of information is packed into the HDR data structure of
the catalog panel making it difficult to individually control the
parameters like colorimetry and other information sent using
VSC SDP packets.

Break up the structure into individual VSC SDP colorimetry, HDR
infoframe and DHDR VSIF packets.

This makes it easier to control each of these parameters independently.
For example, when only the colorspace is changed its sufficient to
update only the VSC SDP colorimetry packets.

Also align these packets with the upstream DP helper header defines.

Change-Id: Ia208f30a480fd203192624fe4f3d99c1c89350dc
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2019-07-24 14:00:45 -07:00
Abhinav Kumar
c79760ba97 disp: msm: dp: populate supported colorspace property for DP
Populate the supported colorspaces property for DP
as part of getting the display modes.

This will expose the supported colorspaces of the sink to
userspace and in-turn the userspace shall pick the colorspace
suitable for the use-case.

Change-Id: I70408c719610bc63f9c06dad8cd50f7fa5d94908
Signed-off-by: Abhinav Kumar <abhinavk@codeaurora.org>
2019-07-24 13:54:00 -07:00
Ajay Singh Parmar
9af9987d3d disp: msm: dp: add support for test pattern #4
DP specification mandate test pattern #4 for CTS 1.4a. Add
support for the same in link training #2 as per specification.

CRs-Fixed: 2490128
Change-Id: I2f72fec340b56270e7fd1c2940adafe1068bab43
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-07-23 15:43:26 -07:00
Satya Rama Aditya Pinapala
aacd9e9585 disp: msm: dp: adding prefix for logs
Adding prefixes for error, debug and info
messages in dp files. To enable debug logs
run "echo 0x100 > /sys/module/drm/parameters/debug"

CRs-Fixed: 2493739
Change-Id: Ibf509e837f527be6bff6b7a1c34b0cde2921b388
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2019-07-23 09:14:04 -07:00
Sankeerth Billakanti
9d0591d86f disp: msm: dp: correct the resolution width check in get_mode_info
Use two layer mixers only if the resolution of the display exceeds
the linewidth of the given layer mixer.

Change-Id: I1892587816c0718280765353df7eabf82d6d7a18
2019-07-23 04:13:13 -07:00
Ajay Singh Parmar
59008eabf8 disp: msm: dp: split host init and deinit
Break the host initialization and de-initialization to
create late initialization and early de-initialization.
Call host init/deinit on physical connect/disconnect only
As attention messages from sink doesn't change the physical
cable configurations, call only late init/early deinit in
this case to avoid unnecessary hardware resources
re-initialization.

CRs-Fixed: 2490128
Change-Id: Ib930d250724ab3ea811a7388c7ad0aeae1164e21
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-07-19 13:45:56 -07:00
qctecmdr
dbbb358a92 Merge "disp: pll: fix sequence as per hardware recommendations" 2019-07-16 17:21:08 -07:00
qctecmdr
ab1d40154f Merge "disp: msm: dp: Reset dp sink power state during panel init" 2019-07-13 02:06:28 -07:00
qctecmdr
b700d98e0e Merge "disp: msm: dp: filter modes based on sde resource availability" 2019-07-12 16:50:22 -07:00
Ajay Singh Parmar
e0e4280214 disp: pll: fix sequence as per hardware recommendations
Update the PLL and PHY power on and clock set sequence as per
the hardware recommendations. Move the post link clock phy enable
part to the catalog so that it can be programmed after enabling
link clock.

Change-Id: I9b3b49e5a9ac93bebcb1cb7da63b715a8d5ed85c
Signed-off-by: Ajay Singh Parmar <aparmar@codeaurora.org>
2019-07-12 16:44:05 -07:00
RAJAT GUPTA
31aadfab0e drm/msm/dp: remove qfprom reference from dp driver
Remove qfprom regmap reference from DP driver as it is not
used anymore.

Change-Id: I2e90363a68e50e24a07b0f2d173c14de5ff513cc
Signed-off-by: RAJAT GUPTA <rajatgu@codeaurora.org>
2019-07-12 16:13:24 +05:30
qctecmdr
3ab9638e45 Merge "disp: msm: add resource caps structure and api changes" 2019-07-12 02:20:32 -07:00
Fuad Hossain
8247a33d6b disp: msm: dp: Reset dp sink power state during panel init
Reset the dp sink power state during panel init.
Sinks may still be in old power states from
previous sessions, so reset the power to allow
for a clean start to the dp session.

CRs-Fixed: 2453351
Change-Id: I7e2a4c9bcdb8f69d2562ba098d80a1c7e8f9f620
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
2019-07-11 18:18:59 -04:00
Tatenda Chipeperekwa
c36e7e01be disp: msm: dp: update the connected state during clean up
Update the connected state to false during display clean up. This
will allow subsequent connections to be processed correctly in
the face of disconnect failures due to unresponsive user mode
clients.

Change-Id: If30f5d722bf742060c9d4d2dec2207d7baf27fc2
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2019-07-09 17:42:42 -07:00
Tatenda Chipeperekwa
d532f14537 disp: msm: dp: add timeout state for simulated AUX transfers
Add a new state to indicate timeout failures in simulation mode.
This can be used by test scripts to trigger a retry of the
session.

Change-Id: I9e250ba7d42fcb318698d8456b3acc5b55081abc
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2019-07-09 17:42:42 -07:00
Tatenda Chipeperekwa
d2c24e44e2 disp: msm: dp: disable audio during display clean up
Disable audio for every active panel during display clean
up use cases when the driver times out waiting for the
video path to tear down. This ensures that the audio
subsystem is notified before the clean up shuts down the
timing engine, and also ensures that the audio module
state is correctly updated to indicate that the session
has ended. This change will reduce the likelihood of the
audio subsystem attempting to program DP audio, and also
ensure that the state checks will correctly prevent any
attempts to program audio after the session has ended.

Change-Id: I937f894e80b55164f9700f021d852863aeb18959
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2019-07-09 17:37:52 -07:00
qctecmdr
84fc2163e1 Merge "disp: msm: dp: Improvements to dp mst simulator mode" 2019-07-08 16:05:02 -07:00
Nilaan Gunabalachandran
98434934c6 disp: msm: dp: filter modes based on sde resource availability
Not considering the currently available sde resources and
caps while filtering/validating a mode will report unavailable
modes and result in an atomic commit failure.
DP should calculate the number of required lms and verify
if lms/3dmux are available before a validating a mode.

Change-Id: Idadcc655c30f5a831c47cf22b60085052b5b9fcd
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-07-02 17:34:55 -04:00
Nilaan Gunabalachandran
d92000cdd4 disp: msm: add resource caps structure and api changes
Create a data structure to maintain available hardware resources
and track capabilities. This data structure is used to send
the current available resources and caps information to
connector ops get_mode_info, get_modes and validate_mode to
process the display mode.

Change-Id: If38fc628ee5ab4729821f88c0050ab45375187b8
Signed-off-by: Nilaan Gunabalachandran <ngunabal@codeaurora.org>
2019-07-02 17:34:49 -04:00
qctecmdr
84f87add48 Merge "disp: msm: dp: skip audio notify wait for completion" 2019-06-30 01:14:19 -07:00
qctecmdr
fc92a6d9f6 Merge "disp: msm: dp: Implement dsc slice selection logic based on sink caps" 2019-06-27 09:50:51 -07:00
Zube Molokwu
e23e3e27bf disp: msm: dp: skip audio notify wait for completion
Skip the wait on audio subsystem response in case of external display
connect event.

Change-Id: Id7a0ac48f540f025293717e60c28967b83ad46ee
Signed-off-by: Zube Molokwu <zmolokwu@codeaurora.org>
2019-06-25 18:26:22 -07:00
qctecmdr
6a9e397c73 Merge "disp: msm: dp: add session check for audio register programming" 2019-06-25 18:13:35 -07:00
qctecmdr
3c4d5f3557 Merge "disp: msm: dp: Ensure peak pxl rate does not exceed maximum supported by sink" 2019-06-19 05:21:38 -07:00
qctecmdr
f49f2c2153 Merge "disp: msm: dp: fix the dsc line buf bit depth selection for dp dsc" 2019-06-19 03:51:13 -07:00
qctecmdr
d50b6d456c Merge "disp: msm: dp: fix dsc parameters for 10bpp compression" 2019-06-19 02:21:30 -07:00
Tatenda Chipeperekwa
68f8b1a047 disp: msm: dp: add session check for audio register programming
Add a check to ensure that audio registers are programmed only
when the DP timing engine (audio session) is enabled. This will
reduce the likelihood of un-clocked register access for audio
related operations.

Change-Id: I6fe59cf53dc721b5470ad4cf7d84e8606800a246
CRs-Fixed: 2465406
Signed-off-by: Tatenda Chipeperekwa <tatendac@codeaurora.org>
2019-06-17 17:06:50 -07:00
Fuad Hossain
33284a9f4c disp: msm: dp: Implement dsc slice selection logic based on sink caps
The dp sink explicitly states the numbers of
slices it can support. When calculating the
number of slices for dsc configuration, ensure
that the sink supports the calculated number of
slices.

If the sink does not support the calculated
number of slices, keep rechecking sink support
for the subsequent slice increment, until we
reach the highest number of slices possible
according to the dp spec. If no compatible
sink slice support is found, do not enable dsc.

CRs-Fixed: 2325207
Change-Id: I485adacd258963cdec9cc52aa041373883ecadc7
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
2019-06-17 12:25:44 -04:00
Fuad Hossain
5cb73d66bc disp: msm: dp: fix dsc parameters for 10bpp compression
Add configuration data to handle 10bpp 3:1
compression ratio based on hardware recommended
settings.

CRs-Fixed: 2325207
Change-Id: I7086dc235e0063a79c661fa8cee77d4e47e9c826
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
2019-06-13 15:51:19 -04:00
Fuad Hossain
a9028ef4cf disp: msm: dp: Ensure peak pxl rate does not exceed maximum supported by sink
Ensure that the dp dsc peak pxl rate does not
exceed the maximum supported by the sink device.
If the mode's peak pxl rate per slice exceeds the
max, mark the mode as invalid.

CRs-Fixed: 2325207
Change-Id: Ic8904c759b8621c3aff258206599e1994f70e26e
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
2019-06-13 15:19:26 -04:00
Fuad Hossain
b706052927 disp: msm: dp: fix the dsc line buf bit depth selection for dp dsc
The line buffer bit depth is used as part of dp
dsc calculations. Read the max supported line buf
bit depth supported by sink, and use that
restriction as part of the dsc calculations.

CRs-Fixed: 2325207
Change-Id: I4c995acad5f484edd1b438bdbf6c145b2d35ee41
Signed-off-by: Fuad Hossain <fhossain@codeaurora.org>
2019-06-13 13:37:44 -04:00