Commit Graph

372 Commits

Author SHA1 Message Date
qctecmdr
20db960f01 Merge "disp: msm: dsi: do not enable PWM when setting bl to 0" 2020-09-09 18:55:26 -07:00
qctecmdr
26112d7b3b Merge "disp: msm: dsi: Update pll delay calculation as per latest DSI HPG" 2020-09-09 02:29:19 -07:00
qctecmdr
d6eccf2b10 Merge "disp: msm: dsi: Add support to keep display reset pin high" 2020-09-09 02:29:19 -07:00
qctecmdr
3ee7b6f685 Merge "disp: msm: dsi: Skip soft reset during display disable" 2020-09-09 02:29:19 -07:00
qctecmdr
eabc896956 Merge "disp: msm: dsi: initialize display before request_firmware" 2020-09-08 23:07:45 -07:00
qctecmdr
370f3ad937 Merge "disp: msm: dsi: Mask overflow error for Broadcast command" 2020-09-08 23:07:45 -07:00
Zhao, Yuan
8050179062 disp: msm: dsi: do not enable PWM when setting bl to 0
Check backlight value, if it's 0, do not enable PWM.

Change-Id: I6fccb42555731bf3faa88a93cbf1a36a417ff49d
Signed-off-by: Zhao, Yuan <yzhao@codeaurora.org>
2020-09-08 19:02:14 -07:00
Satya Rama Aditya Pinapala
03f9c40e7d disp: msm: add allowed_mode_switch blob property
The change adds a new mode property allowed_mode_switch. The new
property is a 32bit bitmask that indicates the modes each mode
can switch to. This change is required to pass the driver mode
switching capabilities, so that user mode can reject any mode switch
that is not supported by the driver.

Change-Id: I76d1733a07a6d57487ba9f461055270d7e60e060
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-09-04 17:58:46 -07:00
Harigovindan P
a976e8c7fa disp: msm: dsi: dual dsi constant fps porch calculation
This change adds porch calculation support to maintain
constant fps during clock switch for dual DSI controller.

Change-Id: I9a7e6d1f6d028355dba30aafe0234fc30c153059
Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 22:23:45 -04:00
Ray Zhang
9fc2eec97a disp: msm: dsi: initialize display before request_firmware
dsi_display_init has to be called after dsi_display has valid
device info, so initialize it before calling request_firmware
in dsi firmware case.

Change-Id: Iec59882c776eb4bd19ce68d3ded052629c344d17
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 19:15:37 -04:00
Ritesh Kumar
269ead80c7 disp: msm: dsi: Add support to keep display reset pin high
This change adds support to keep display reset pin high during
suspend state.

Change-Id: I8fab43d8f7b30fce72cc95277d016b72b914aa99
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 19:14:56 -04:00
Harigovindan P
25b6a3e7d1 disp: msm: dsi: Mask overflow error for Broadcast command
Currently, for Dual DSI Broadcast command, Overflow error
is masked only for master controller. This changes add
support to mask overflow error for slave controller as well.

Change-Id: Ida73c4166e996fcf2c8c936d0c76d0a89a220d89
Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 19:14:29 -04:00
Harigovindan P
4a86b80a50 disp: msm: dsi: cphy constant fps porch calculation
This change adds porch calculation support to maintain
constant fps during clock switch for CPhy.

Change-Id: I74b2f0e064441fba7f452b06438ece7fe3b373eb
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
2020-08-25 19:13:56 -04:00
Harigovindan P
662ac3ab89 disp: msm: dsi: Add support for C-PHY dynamic clock switch
This change adds support for C-PHY dynamic clock switch feature.
Also add support for phy ver 4.0 C-PHY timing parameters calculation
to be used for clock switch.

Change-Id: I8292860fd8c93a7ba7988ec8c44ea9683f45b6e6
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
Signed-off-by: Harigovindan P <harigovi@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 19:13:56 -04:00
Ritesh Kumar
998dec67d8 disp: msm: dsi: Skip soft reset during display disable
As per DSI HPG, Soft reset is not required to disable
video mode operation for version 1.3.0 and later. So,
add check to skip it during display disable.

Change-Id: If6d263bdf22f8a6fbef76d78d04bb9d11be05945
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-08-25 19:12:33 -04:00
Ritesh Kumar
fc571a94aa disp: msm: dsi: Update pll delay calculation as per latest DSI HPG
As per DSI HPG, pll delay should be 25usec for phy ver 4.0 and
100usec for phy ver 2.0 and 3.0. This change updates pll delay
calculation during dynamic DSI clock switch accordingly.

Change-Id: Ief5cbdc9304cf5ad025fe3bbe689b93834a1f710
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
2020-08-25 19:10:11 -04:00
Ritesh Kumar
a81e6a55fe disp: msm: dsi: Fix pll delay calculation during clock switch
During clock switch, Pll delay is calculated considering escape
clock to be in KHz. But escape clock is in Hz. This leads to wrong
pll delay calculation.

Change-Id: I616d16cc3d775a37e77c7c35bb860c23b1f9e37a
Signed-off-by: Ritesh Kumar <riteshk@codeaurora.org>
2020-08-25 19:10:11 -04:00
qctecmdr
f1b667341c Merge "disp: msm: add connector API to disable cont_splash resource votes" 2020-08-25 09:23:14 -07:00
Vara Reddy
f206b420c0 disp: msm: dsi: do NULL check before accessing controller node
Add NULL pointer checks, before accessing the controller node.

Change-Id: If24c4fd4352ef5ab7642c817ddaa61a80b725c99
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2020-08-24 16:49:36 -07:00
qctecmdr
ead6a35953 Merge "disp: msm: dsi: add parsing logic for panel gpio pins/address" 2020-08-21 12:36:22 -07:00
qctecmdr
86d25d0c03 Merge "disp: msm: dsi: update min prefill lines for lahaina" 2020-08-21 12:36:22 -07:00
Linux Build Service Account
0af93447c5 Merge "disp: msm: dsi: enable dfps trigger at mdp intf flush" into display-kernel.lnx.5.4 2020-08-20 21:52:52 -07:00
Vara Reddy
c9cb9f51f3 disp: msm: dsi: enable dfps trigger at mdp intf flush
This change allows dynamic refresh trigger to sw trigger
and mdp intf flush. With this we can make sure that DSI
timing/clock update and mdp intf timings are updated in
one vsync.

Change-Id: Ic807f498e2e47be6dd0f1e11ff1fc0896a8ec758
Signed-off-by: Vara Reddy <varar@codeaurora.org>
2020-08-20 12:48:32 -07:00
Chandan Uddaraju
35b60f6208 disp: msm: add connector API to disable cont_splash resource votes
The panel regulator votes are added by default during
dsi probe to make sure sync state driver doesn't disable
these regulators for cont_splash use case. These regulator
votes need to be removed when cont_splash feature is
disabled. Add a new connector API to handle this.

CRs-Fixed: 2734419
Change-Id: Ie54c8f246877a042afacddaeae8b90440652116f
Signed-off-by: Chandan Uddaraju <chandanu@codeaurora.org>
2020-08-17 16:18:01 -07:00
Veera Sundaram Sankaran
30757e8c8a disp: msm: dsi: add parsing logic for panel gpio pins/address
Add parsing code for getting the TLMM base address and size
of each GPIO pin register space along with the GPIO pins
used for the specific panel. This list is used to lend
these IO ranges to trusted vm during the trusted UI usecase.

Change-Id: I10429cfa14265d52e898815c6cf94be27daa5677
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-08-17 09:47:49 -07:00
Yuan Zhao
c810238fb4 disp: msm: dsi: support LP mode for DCS brightness setting
DCS brightness settng can only use HS mode. Add a new
DT property for LP mode choose for DCS brightness setting.

Change-Id: Ibe5867fe344776871eb3a410a8d79d347775f3d4
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
2020-08-12 23:08:06 -07:00
qctecmdr
faf4a8b1c8 Merge "disp: msm: dsi: add debug ability to read TE read pointer line count" 2020-08-06 22:45:51 -07:00
Satya Rama Aditya Pinapala
ec6f97fd9d disp: msm: dsi: update min prefill lines for lahaina
Change updates minimum prefill lines for lahaina target.

Change-Id: Ic3c4f498eb2b73ddfc4445d94850c72dd242d575
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-08-06 17:26:26 -07:00
Satya Rama Aditya Pinapala
3deb5c353e disp: msm: dsi: add debug ability to read TE read pointer line count
The change adds register mapping of MDP_INTF_[1/2]_TEAR_INT_COUNT_VAL
register to DSI controller. This allows for the controller to read the
line count and frame count of the read pointer during trigger and
successful transfer of DMA command.

To enable the debug feature:
echo 1 > /d/<panel_name>/dsi-ctrl-0/enable_cmd_dma_stats.

To disable the debug feature
echo 0 > /d/<panel_name>/dsi-ctrl-0/enable_cmd_dma_stats.

To read line count value:
cat /d/<panel_name>/dsi-ctrl-0/cmd_dma_stats.

Change-Id: I5cdeb54ca941af05b226a9d7ab332b899ecc5797
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-08-06 13:54:52 -07:00
Satya Rama Aditya Pinapala
50af1eb43b disp: msm: dsi: add support for DMA CMD scheduling for CMD mode panels
The change allows for configuring a command DMA window during which
the command is triggered. The DMA window must not intersect with the
MDP tear check window. Once the command transfer is successful, the
trigger control needs to reset to the default DMA trigger specified
by the panel.

Change-Id: I5485ca1f8e141ed92dc8c77c2daf579634271022
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-08-05 20:31:24 -07:00
qctecmdr
447de1a67d Merge "disp: msm: update seamless check for connector" 2020-08-01 23:23:29 -07:00
qctecmdr
ecf7bd7696 Merge "disp: msm: dsi: reorder operations during DSI display pre kickoff" 2020-07-24 14:10:40 -07:00
qctecmdr
da06015241 Merge "disp: msm: dsi: update MDP/DSI transfer time calculation" 2020-07-24 14:10:39 -07:00
qctecmdr
32251009e0 Merge "disp: msm: dsi: fixes in GKI cleanup path" 2020-07-24 11:17:20 -07:00
Yuan Zhao
b54107cfa3 disp: msm: dsi: add a new PWM pinctrl configure
The default PWM gpio pin mode was not right for PWM backlight
control. If needs to use PWM backlight, must config the
gpio pinctrl.

Change-Id: I5fd6b947d379b53ef4c358be1b935a2ad4970f99
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
2020-07-23 19:54:02 -07:00
Satya Rama Aditya Pinapala
b03e4eceb8 disp: msm: dsi: reorder operations during DSI display pre kickoff
During a dynamic mode switch if the DSI clocks need to be changed,
it would result in a sequence of clock off and on operations. If
this happens after a partial update even though the commands are
sent with an asynchronous wait flag, the clock off forces the commit
thread to wait  till the DSI command wait_for_done thread is
scheduled and completed. The change ensures that the clock change is
the first operation that occurs during pre kickoff.

Change-Id: I1b4e765cd0281f1539fc4af309247f3bc0867c1b
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-07-23 18:56:12 -07:00
Satya Rama Aditya Pinapala
ab5d2638de disp: msm: dsi: update MDP/DSI transfer time calculation
This change ensure that in cases panel transfer time is specified,
the final transfer time is calculated in accordance with the minimum
threshold time allowed.

Change-Id: I3442d4d3e8a27ec30d93725cb96b229bb94f2ce2
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-07-23 18:55:40 -07:00
Krishna Manikandan
35d72973e0 disp: msm: update seamless check for connector
During CWB case where writeback connector is disabled
and connectors_changed is set, add support to allow
disabling of corresponding encoder for this connector.
Modify the seamless check for connector to handle
the same. With this cwb + dfps concurrency can
be handled.

Change-Id: Ia8f86bd12ac3c5ab622334fb04cdcb2e2b60f111
Signed-off-by: Krishna Manikandan <mkrishn@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-07-23 14:46:22 -04:00
Linux Build Service Account
004c899d2f Merge "disp: msm: dsi: drive backlight enable gpio low during power off" into display-kernel.lnx.5.4 2020-07-23 07:19:17 -07:00
Satya Rama Aditya Pinapala
19c01f38bc disp: msm: dsi: drive backlight enable gpio low during power off
Change drives the LCD panel backlight enable GPIO low during panel
power off sequence.

Change-Id: Icfd22cf8d5216fcff857bbeab9c183dfb02b83bd
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-07-19 23:14:20 -07:00
Orion Brody
ee9c09b8b3 disp: msm: dsi: fixes in GKI cleanup path
Creates a deep copy of a struct which previously was shallow.
Also adds null checks which prevent segmentation faults.

Change-Id: I9155f632736fdb30e31f28f55ebe92954956a82d
Signed-off-by: Orion Brody <obrody@codeaurora.org>
2020-07-15 17:32:17 -07:00
Rajeev Nandan
7cf728f3a6 disp: msm: dsi: add DSI PLL support for 10nm-LPU
This change adds DSI pll support for 10nm architecture.

Change-Id: I3819dd828dbcc168b115bd718c5d656ea9fd12c8
Signed-off-by: Rajeev Nandan <rajeevny@codeaurora.org>
2020-07-14 00:05:36 -07:00
Jeykumar Sankaran
962fd4faca disp: msm: dsi: register io resource collection VM event hook
Add support to read register ranges and IRQ lines that needs
isolation during VM switch in dsi ctrl and dsi phy.
Register for VM resource collection event providing the
callback function.

Change-Id: I5eae4699b0a97ffed438627ccea855c401b3fbeb
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-12 15:16:32 -07:00
Jeykumar Sankaran
4b27380f07 disp: msm: dsi: reuse continuous splash path for trusted vm
Display in trusted VM works in a handover mode i.e, all
display components need to be initialized by the primary VM
before switching to trusted VM on the usecase boundary.
That makes it a hard requirement for the trusted VM not to
re-program any of the display configuration registers before
it could hand the HW back to the primary VM.

Also, most of the linux framework drivers including pintrl, clocks
are not enabled in the trusted VM.

In order to address the above two limitations and to control the
probe/commit sequences, this change adapts the same path as that
of continuous splash to bypass some of the critical functions
which are identified to be HW intrusive. Based on the DT property
read from SDE handle, dsi drivers will choose to bypass
enable/disable HW state updates when executing in the vm environment.

Change-Id: Ica71c924d189ab65fe3be5b0ac870633e3b749e1
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
2020-07-12 15:00:09 -07:00
Jeykumar Sankaran
ea2fdb01f7 disp: msm: dsi: avoid sharing ctrl hw ops across versions
Avoid sharing and have dedicated dsi HW ctrl ops across versions
even if they are identical. It helps to stub out a specific
version of ops if needed.

Change-Id: Ic14c206b526ebe03dd5f47f62701820e7e542670
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-12 15:00:09 -07:00
Jeykumar Sankaran
e452acf2fb disp: msm: dsi: skip pll clock registration for trusted vm
Trusted VM will be granted access to MDSS HW dynamically on
usecase boundary. As a result, all the attempts to access
HW before the assignment, including the probe time access
will result in Stage 2 faults. This change skips the
PLL clock registration during probe as the clocks will not
be controlled by the VM.

Change-Id: I326f4a775796cd95dcf398449b08f2682e4aca43
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
2020-07-12 15:00:09 -07:00
qctecmdr
12017ce26f Merge " disp: msm: dsi: update DSI DPHY and CPHY settings" 2020-07-09 08:51:57 -07:00
qctecmdr
5c92c5ac78 Merge "disp: msm: debugfs interface for sde connector to do DSI read" 2020-07-08 13:03:55 -07:00
qctecmdr
9ec78e3339 Merge "disp: msm: sde: dump clock state before entering suspend" 2020-07-06 23:49: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