Add support for absolute mdss addressing lutdma payload. This will
allow any mdss register to be programmed using lutdma.
Change-Id: I3af3a85182a75a0583c49c797d6adf99b6ba2ee7
Signed-off-by: Amine Najahi <anajahi@codeaurora.org>
This change adds the hooks to enable the active signal override
in power collapse sequence. Active signal override is needed to
disable the clock gating when the power collapse sequence
is running.
Change-Id: I9edaed7960b236b3d0179cb67f9cc2c9b3546c9d
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
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>
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>
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>
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>
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>
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>
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>
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>
This change updates the initial lines calculation implementation
to support dsc 1.2.
Change-Id: I322057efc5a4be94d42c29680437d1923ee3547e
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
* 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
* changes:
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
dmac_flush_range api is no longer avaialable on latest kernel.
Use dma_map_single to flush the scm buffer before switching to
higher execution previlege.
Change-Id: Ia1c18a6ab9a9c80f5f9ce79816d9dbd3777474b0
Signed-off-by: Abhijit Kulkarni <kabhijit@codeaurora.org>
Migrate to icb framework API in drm and sde driver. And
also removes old msm_bus custom APIs from the driver.
Change-Id: Ifcf6d6f157594638075742fe328b29a9be065bca
Signed-off-by: Yuan Zhao <yzhao@codeaurora.org>
Since clock set flags api is deprecated for new target, this
change removes sde wrapper and removes LUT memeory retention logic
from crtc module.
Change-Id: If37ec780913668c1a43f8a71e79249679526bd34
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
Set the INTF TE capability bit only on interfaces which have a non-zero
value in the device tree node qcom,sde-intf-tear-irq-off instead of
enabling it for all interfaces based only on the HW version. The HW
doesn't support TE programming for non-TE enabled interfaces, so this
patch only populates the TE ops for those which support it.
Change-Id: I00518e846dc44e1e0808a049625dc14099656e11
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
New required programming in CTL. Fetch active informs the HW
of the active fetch pipes. Group ID informs HW of which VM owns
that CTL. Force this group ID to default/disabled until
virtualization support is enabled in SW.
Change-Id: Id9d68ae725a640893a4e347b69ad2b506a998f25
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Refactor the SDE interrupts module to use the offsets in the catalog.
This avoids hard-coding offsets for interrupts within a block's
address space so when that block's base address is relocated the
interrupts for that block are shifted as well.
Change-Id: I08f66c0e93bbe102dfe67350c97c5c7a4fb5039a
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
The INTF TEAR IRQ block offsets can shift between targets. Therefore,
to allow dynamically setting these offsets they should be specified
in the sde device tree node qcom,sde-intf-tear-irq-off.
Change-Id: I2948bc6eaa31fe5e180379770d88e7be72b6d345
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Rename sde_intr_enum members to prefix with SDE instead of
the old MDSS naming used in legacy display driver.
Change-Id: I21bc67b4a79b7e53af0ac1beaebb6e9482015b0f
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Add version checks for Lahaina (MDSS v7.0.0) and enable
all kona features.
Change-Id: I79acaf8310a437fff3d203656b856b44cdfdfb48
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
Remove the version checks used to populate some mixer and VBIF
ops, and check when constant color should be disabled in SSPP.
These are replaced with feature bits set by the catalog.
Change-Id: I2f8ffe6ebfe3e61c44588589f55ede7cba74e841
Signed-off-by: Steve Cohen <cohens@codeaurora.org>
This snapshot change adds downstream support
for drm 5.x+(msm_lahaina branch) linux kernel.
Change-Id: Ia691c95da155a00e449c91a2f1a5b20a8e71aed4
Signed-off-by: Narendra Muppalla <NarendraM@codeaurora.org>
Add revision checks to support bengal target
for dpu and rotation driver.
Change-Id: I7eb8bd2943b94ab246889b1f74cd9613aeee2b2f
Signed-off-by: Yashwanth <yvulapu@codeaurora.org>