Commit Graph

958 Commits

Author SHA1 Message Date
Linux Build Service Account
8e660ebeaf Merge "disp: msm: sde: add support for 4k aligned memory pools" into display-kernel.lnx.5.4 2020-01-23 14:19:31 -08:00
Linux Build Service Account
bb0ca40080 Merge "disp: msm: sde: add support for new dspp flush" into display-kernel.lnx.5.4 2020-01-23 14:19:30 -08:00
Linux Build Service Account
6f6d795a77 Merge "disp: msm: update reg bus scaling APIs in RSC" into display-kernel.lnx.5.4 2020-01-23 14:18:31 -08:00
Linux Build Service Account
0a36198742 Merge "disp: msm: sde: check correct field for XIN idle status" into display-kernel.lnx.5.4 2020-01-23 14:18:29 -08:00
Abhijit Kulkarni
616c59b000 disp: msm: sde: add support for 3d_mux DSC topology
This change adds support for dsc using the 3d mux hw block.
The 3d_mux hw block merges the input from layer mixer before passing to
dsc block for compression.

Change-Id: I21544c33fff2c1e604c0ae712a036a127d25afcf
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 13:58:06 -08:00
Abhijit Kulkarni
af5306875f disp: msm: sde: add ctl api to enable/disable sub-blocks
Certain sub-blocks need to be enabled disabled dynamically on a
seemless mode switch (for ex. partial update) CWB is another example
where control path interface configuration needs to be dynamically
changed on enable/disable of concurrent writeback. Similarly
3d mux needs to be enabled/disabled for partial update use cases.
This change modfies the current api update_cwb_cfg and makes it
more generic and adds support to enable/disable only the 3d mux.

Change-Id: I5e5a6e78b0599f689cb2f83d0d626a5f392eff6e
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 13:58:06 -08:00
Abhijit Kulkarni
1ef5cee6ca disp: msm: add api to get active status of hw blocks
This change introduces new ctl path api read_active_status to check
if a particular hw block is active or not in the current control path.
This is specially required in continuous splash use case when bootloader
has programmed certain blocks and the kernel driver tries to find
out the same configuration. This is used to ascertain which DSC block
is active in continuous splash case since DSC blocks are not tied to
mixer blocks.

Change-Id: I8dd590aa2dc764bd340727c166e1133ef9ce7af5
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 13:57:55 -08:00
Abhijit Kulkarni
e2726c7b1a disp: msm: sde: allocate dsc block based on capability
Certain DSC hw blocks only support 444 mode, while others
support both 444 and 422 modes. This change adds support in
resource manager to check the hw resource requirement with
the capability of the block and then reserve the correct
hw resource.

Change-Id: If85beb2f2f25e9eb7f8a8321c94b57878d048369
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Abhijit Kulkarni
d3d3f808d4 disp: msm: sde: use pp dsc api only if hw supports
This change checks the capabilities of pingpong block to
check if it needs to call the pingpong api to enable or
disable the dsc. Certain hw versions do not have support
in pingpong block to enable/disable the dsc instead the
dsc block itself have the hooks to control the DSC.

Change-Id: I17dd45479cc33ff2e81f6a6e5a5a8704562dfd24
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Abhijit Kulkarni
a00714beae disp: msm: sde: add DSC 1.2 implementation
This change adds implementation to configure DSC 1.2 block
registers to enable both dsc1.1 and dsc1.2 specifications.

Change-Id: I2307d7dace05bf20384d3221e9aca65e296b12bd
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Abhijit Kulkarni
6be579d992 disp: msm: sde: parse dsc_1_2 hw sub-blks
This change adds additional dsc hw sub-blks and their
advertized capabilities. These are required for supporting dsi 1.2 hw
and making the code backward compatible with older hw version.

Change-Id: I84d86ad4f6ac2dd76324bbfd5600b010738b3310
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Abhijit Kulkarni
acb8d98e66 disp: msm: use upstream dsc config data
This change enforces dp, dsi and the sde drivers to use the
drm framework defined dsc_config data structure. As a part of this,
it introduces the sde_dsc_helper API to configure the dsc params
and creating a PPS command. Earlier each driver implemented it's
private versions leading to duplication of code. Additionaly the
helper api supports DSC spec 1.2 422 and 420 mode.

Change-Id: I25933fab08cdabbc6787079926885d1a78945e97
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Abhijit Kulkarni
673ebb896c disp: msm: sde: update initial lines calculation for dscv1.2
This change updates the initial lines calculation implementation
to support dsc 1.2.

Change-Id: I322057efc5a4be94d42c29680437d1923ee3547e
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:24 -08:00
Abhijit Kulkarni
62eecded22 disp: msm: sde: support a single dsc setup function
This change adds a single setup function for different dsc topologies.
This simplifies the dsc code and allows for additional topologies
support.

Change-Id: Iaaddd6e51a2fa53d113d618328dee2bf63e30cab
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:23 -08:00
Abhijit Kulkarni
a8f60081ae disp: msm: sde: add api to query topology details.
This change adds new resource manager api to get number of
ctl paths, interfaces and compression encoders used in the
current topology. This API is required to support both dsc
and vdc encoders and make implementation more generic.

Change-Id: I6cc25e51574cf71cd39f479049572ee7b7e0ead0
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:23 -08:00
Abhijit Kulkarni
ac8ae6b85f disp: msm: sde: use dce api to configure dsc
This change introduces dce api to the encoder component to
configure supported compression hw. This allows encoder to
remain independent of the compression type and specification
supported by the hw.

Change-Id: I6bc35289495b05f57a83323cbab1ea14e9e15db0
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:33:14 -08:00
Abhijit Kulkarni
dc8e0291e4 disp: msm: sde: move dsc implementation to a new file
This change moves the DSC implementation into a separate file.
This is required to add support for new compression algorithms.
This cleanup change also, moves struct sde_encoder_virt
declaration to the encoder header file.

Change-Id: Idc3b96e65fcce2a7ee6e17af604cec0cb574f6f7
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-22 12:30:43 -08:00
Steve Cohen
391f478a8c disp: msm: sde: refactor use of master_plane_id
During plane setup, when a master plane ID is provided it means we
are initializing a slave plane for HW shared by the given master ID.
When master plane ID is 0 it means this is the master. This change
refactors the code to make this clear.

Change-Id: Ia2e3430e6f9f7e105eaf26f121753b676110abe5
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-21 16:23:18 -08:00
Steve Cohen
93e8f4896f disp: msm: sde: check correct field for XIN idle status
Current code is checking the HALT_ACK instead of HALT_IDLE
fields which leads to unnecessarily issuing halt requests
on ports that are already idle.

Change-Id: I2269ce6364dab3bb8a52a0fb1b1e68e9b92b6444
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-21 16:22:59 -08:00
Steve Cohen
3f4a79d45a disp: msm: sde: add support for 4k aligned memory pools
Add support for HDR memory pool blocks aligned to a 4k page
address. This feature must be enabled by setting the
corresponding feature bit for supported targets.

Change-Id: I696ffb6ce3b607741f26496d40e2296c4c5bdb4b
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-21 16:22:24 -08:00
Prabhanjan Kandula
fd60107c88 disp: msm: sde: add support for new dspp flush
SDE HW from lahaina has moved the DSPP flush bits from CTL_FLUSH
to new CTL_DSPP_x_FLUSH registers. This change brings in
support for programming the new DSPP flush registers which
allow more fine-grained control over what sub-blocks within
each DSPP get flushed.

Change-Id: Ie16c9b153d607bd7627ba02480813ab588bbe2ea
Signed-off-by: Prabhanjan Kandula <pkandula@codeaurora.org>
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-21 16:08:50 -05:00
Steve Cohen
95e39b842b disp: msm: sde: use single open function for debugfs
Combine 2 functions that have identical code in to a single
generic one that can be shared by multiple debugfs nodes.

Change-Id: I053c1c5be7bb8f990ea178df240202c9fab0aa45
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-21 15:15:30 -05:00
Steve Cohen
0d827f1476 disp: msm: update reg bus scaling APIs in RSC
Update RSC to use the register bus scaling APIs from SDE
power handle module.

Change-Id: I90aa9abcdc1e2253f940fc33b51cc7b2a723ee8c
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-21 15:15:30 -05:00
Abhijit Kulkarni
4239b90e3d makefile:enable display techpack only for QGKI variant
This change enables the display compilation only for qgki
variant until all the dependencies are resolved.

Change-Id: I55577367921df7c7f10e68ef4dad28feea826748
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2020-01-21 10:39:54 -08:00
Satya Rama Aditya Pinapala
649c6b973d disp: msm: dsi: update DSI command buffer for MSM
This change takes care of swapping the byte order in
the packet header to work with MSM hardware.

Change-Id: I38b92a277aa4677d53e263ce343721b8f2b48497
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-01-20 17:47:04 -08:00
Steve Cohen
5a24970f70 disp: msm: sde: fix min pre-downscale check
De-couple the horizontal and vertical pre-downscale checks since
this block can be used in cases where only X-axis downscaling
is needed.

Change-Id: I2e7d30863baed98e9f7fa0a328837691f0bc75a5
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-20 18:12:55 -05:00
Steve Cohen
8469b7be9e disp: msm: use iterator APIs to walk the connector list
Use the DRM APIs for walking the list of connectors. This ensures
the proper locks are taken to prevent possible corruption by other
threads.

Change-Id: Iacdd1c6ad8eab224ceac550e0229489851a09706
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2020-01-17 18:21:38 -05:00
Linux Build Service Account
bfbb5f63e7 Merge "Config: enable techpack display driver compilation for lahaina" into display-kernel.lnx.5.4 2020-01-14 20:46:01 -08:00
Narendra Muppalla
a0b168f7b3 Config: enable techpack display driver compilation for lahaina
This change enables display drivers code compilation
for lahaina target and current location of header files
is replacing the header files in usr/include/drm directory
before installing display specific header files. This change
ensures both the drm and msm_drv header files are exported
to user mode clients.

Change-Id: If6fc347598b902e670b7206dbcb82fe0740b3984
Signed-off-by: Shashank Babu Chinta Venkata <sbchin@codeaurora.org>
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
2020-01-14 14:10:45 -08:00
Satya Rama Aditya Pinapala
5694bc2eee disp: msm: dsi: move dsi pll as subnode to dsi PHY
DSI PLL is tightly coupled with DSI PHY. This change removes
separate DSI pll driver and makes DSI pll as a subnode to DSI
PHY which is an accurate way of representation. In addition, this
change adds support for 5nm DSI ctrl and PHY revisions and adds
DSI pll support for 5nm. Remove support for older DSI pll revisions
such as 7nm, 10nm, 14nm, 20nm, 28nm.

Change-Id: Ic8b886a9fe24b906e4ec5130720600efa1e59b68
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2020-01-10 17:06:58 -08:00
Linux Build Service Account
beb705e598 Merge "disp: Update secure world communication from display" into display-kernel.lnx.5.4 2020-01-02 14:31:13 -08:00
Alisha Thapaliya
05c7c88471 Merge remote-tracking branch 'quic/display-kernel.lnx.1.0' into display-kernel.lnx.5.4
* quic/display-kernel.lnx.1.0:
  disp: msm: sde: determine rotation capabilities from version
  disp: msm: sde: remove inline prefill properties
  disp: msm: sde: pre-downscale support for inline rotation v2
  disp: msm: sde: new formats added for true inline rotation v2
  disp: include: add pre-downscale fields to scaler config

Change-Id: I1427bf6b7add895fb226678935b21c3de84c5187
2019-12-17 15:55:57 -08:00
Prasad Sodagudi
91721d8d2f disp: Update secure world communication from display
As scm_call2 is deprecated, update the secure world
communication.

Change-Id: Id971b2b71af9203340eab892d6a3398dbb943370
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2019-12-16 22:13:00 -08:00
Steve Cohen
1579af15fc disp: msm: sde: determine rotation capabilities from version
Determine inline rotation capabilities and parameter values
from the inline rotator revision. This reduces the number of
capabilities required to be added for each new target.

Change-Id: I3ae02938d51be5a5419b50303c1f244be12b8c47
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-16 08:08:27 -08:00
Steve Cohen
2f6b16af77 disp: msm: sde: remove inline prefill properties
Don't expose the prefill requirements for inline rotation.
These values are not used within the driver, so move these
settings to user-space.

Change-Id: Ie1038c5804047fafe0ee3129b993d83d4d31b386
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-16 08:08:27 -08:00
Steve Cohen
60133f5ebb disp: msm: sde: pre-downscale support for inline rotation v2
Add support for enabling pre-downscale block to increase the
maximum downscale capability for true inline rotation use cases.

Change-Id: Ifa544bb0ae69439abef4bd427134290090fe7230
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-16 08:07:24 -08:00
Steve Cohen
5a55e2d121 disp: msm: sde: new formats added for true inline rotation v2
Advertise the new formats supported with true inline rotation v2 HW
(ABGR8888 compressed and P010).

Change-Id: I0a1b6dfd6bcfd82d9bc61e87680d2c584615e113
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-13 20:30:53 -08:00
Steve Cohen
75ef403bfe disp: include: add pre-downscale fields to scaler config
Add fields required by kernel for setting up the pre-downscale
HW block during an inline rotation session. This increases
the inline rotation maximum downscale ratio for targets which
have the pre-downscale hardware.

Change-Id: I7aa43af2ede740fb0fe3ab6c9a715d1aebad6417
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-13 20:29:28 -08:00
Alisha Thapaliya
e5d0b99899 Merge remote-tracking branch 'quic/display-kernel.lnx.1.0' into display-kernel.lnx.5.4
* quic/display-kernel.lnx.1.0:
  disp: msm: sde: update shmbridge header file path
  disp: msm: sde: remove all preclose logic
  disp: msm: make kms a DRM client for lastclose logic
  disp: msm: delay msm_drv probe
  disp: msm: sde: use dma_map_single to flush the buffer
  disp: msm: remove support for Cx iPeak mitigation
  disp: msm: rotator: migrated the new BUS driver for rotator on lahaina
  disp: msm: dsi: remove dsi bus scaling setting
  disp: msm: sde: migrated new sde icb bus scaling driver for lahaina
  display: add uapi and shared headers to techpack folder
  disp: msm: sde: remove sde wrapper for clock set flags
  disp: msm: sde: use device tree node to enable INTF TE capability
  drm/msm/sde: add FETCH_ACTIVE logic and set default group ID
  disp: msm: attach address space to msm_gem_object
  disp: msm: sde: refactor sde_hw_interrupts to use offsets from catalog
  disp: msm: sde: get INTF TEAR IRQ offsets from device tree
  disp: msm: sde: rename MDSS_INTR_* enums to SDE_INTR_*
  disp: msm: sde: add Lahaina version checks
  disp: msm: sde: move all hw version checks in to the catalog
  Disp: Snapshot change for lahaina display driver
  disp: add rev checks for bengal target

Change-Id: I0e09d1bcfca50e86deaf4b00ba8c228c003495bd
2019-12-11 10:30:23 -08:00
Linux Build Service Account
6ad6641d3a Merge changes I36a55b91,Icc225bd1 into display-kernel.lnx.1.0
* changes:
  disp: msm: sde: update shmbridge header file path
  disp: msm: delay msm_drv probe
2019-12-09 12:26:54 -08:00
Linux Build Service Account
afc6d5a444 Merge changes I95474cd5,I543392fe into display-kernel.lnx.1.0
* changes:
  disp: msm: sde: remove all preclose logic
  disp: msm: make kms a DRM client for lastclose logic
2019-12-09 12:26:54 -08:00
Abhijit Kulkarni
a92ea43b94 disp: msm: sde: update shmbridge header file path
Update the header file path in the code as it has moved to a
new location.

Change-Id: I36a55b91a121b9bb3d89641da1e4e22407f55b68
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2019-12-09 11:55:20 -08:00
Steve Cohen
ae2dceb0b6 disp: msm: sde: remove all preclose logic
The DRM framework only calls the driver's preclose callback
function if the LEGACY driver feature is enabled. Therefore
strip out this logic as it never gets executed since LEGACY
is not supported for msm_drm driver.

Change-Id: I95474cd5424423ef194faae12f1241698f3e467e
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-09 08:36:00 -08:00
Steve Cohen
ff5365a1e0 disp: msm: make kms a DRM client for lastclose logic
Since some APIs previously used during lastclose are no longer
exposed to drivers (__drm_atomic_helper_disable_plane, and
__drm_atomic_helper_set_config), make kms a DRM client and use
the drm_client_modeset_commit_force API to do lastclose cleanup.

Change-Id: I543392fe79558a3996e326a0f222793c56d71e4f
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
2019-12-09 10:57:54 -05:00
Abhijit Kulkarni
29fecbebc7 disp: msm: delay msm_drv probe
This change delays the probe of msm_drv by changing the init call
order to ensure that all the dependent resource drivers are
probed and all resources are available for use by the msm_drv.

Change-Id: Icc225bd14052a8d83e9976fbaa9c83c17f5319aa
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
2019-12-06 10:19:45 -08:00
Linux Build Service Account
3c31bbf469 Merge "disp: msm: sde: use dma_map_single to flush the buffer" into display-kernel.lnx.1.0 2019-12-04 17:43:19 -08:00
Linux Build Service Account
18295fa2a9 Merge "disp: msm: attach address space to msm_gem_object" into display-kernel.lnx.1.0 2019-12-04 17:43:17 -08:00
Linux Build Service Account
230741fe20 Merge "disp: msm: remove support for Cx iPeak mitigation" into display-kernel.lnx.1.0 2019-12-04 17:41:49 -08:00
Linux Build Service Account
8a4e84105b Merge changes I00518e84,I08f66c0e,I2948bc6e,I21bc67b4,I79acaf83,I2f8ffe6e into display-kernel.lnx.1.0
* changes:
  disp: msm: sde: use device tree node to enable INTF TE capability
  disp: msm: sde: refactor sde_hw_interrupts to use offsets from catalog
  disp: msm: sde: get INTF TEAR IRQ offsets from device tree
  disp: msm: sde: rename MDSS_INTR_* enums to SDE_INTR_*
  disp: msm: sde: add Lahaina version checks
  disp: msm: sde: move all hw version checks in to the catalog
2019-12-04 17:27:54 -08:00
Linux Build Service Account
8e2dde8420 Merge changes If37ec780,Ia691c95d into display-kernel.lnx.1.0
* changes:
  disp: msm: sde: remove sde wrapper for clock set flags
  Disp: Snapshot change for lahaina display driver
2019-12-04 17:27:51 -08:00