1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/arm
hongchi.peng 258905cb9a drm: komeda: Fix an issue related to normalized zpos
We use komeda_crtc_normalize_zpos to normalize zpos of affected planes
to their blending zorder in CU. If there's only one slave plane in
affected planes and its layer_split property is enabled, order++ for
its split layer, so that when calculating the normalized_zpos
of master planes, the split layer of the slave plane is included, but
the max_slave_zorder does not include the split layer and keep zero
because there's only one slave plane in affacted planes, although we
actually use two slave layers in this commit.

In most cases, this bug does not result in a commit failure, but assume
the following situation:
    slave_layer 0: zpos = 0, layer split enabled, normalized_zpos =
    0;(use slave_layer 2 as its split layer)
    master_layer 0: zpos = 2, layer_split enabled, normalized_zpos =
    2;(use master_layer 2 as its split layer)
    master_layer 1: zpos = 4, normalized_zpos = 4;
    master_layer 3: zpos = 5, normalized_zpos = 5;
    kcrtc_st->max_slave_zorder = 0;
When we use master_layer 3 as a input of CU in function
komeda_compiz_set_input and check it with function
komeda_component_check_input, the parameter idx is equal to
normailzed_zpos minus max_slave_zorder, the value of idx is 5
and is euqal to CU's max_active_inputs, so that
komeda_component_check_input returns a -EINVAL value.

To fix the bug described above, when calculating the max_slave_zorder
with the layer_split enabled, count the split layer in this calculation
directly.

Signed-off-by: hongchi.peng <hongchi.peng@siengine.com>
Acked-by: Liviu Dudau <liviu.dudau@arm.com>
Signed-off-by: Liviu Dudau <liviu.dudau@arm.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240826024517.3739-1-hongchi.peng@siengine.com
2024-08-30 13:44:12 +01:00
..
display drm: komeda: Fix an issue related to normalized zpos 2024-08-30 13:44:12 +01:00
hdlcd_crtc.c drm/arm/hdlcd: plane: use drm managed resources 2022-11-07 20:47:36 +00:00
hdlcd_drv.c drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
hdlcd_drv.h drm/arm/hdlcd: replace drm->dev_private with drm_to_hdlcd_priv() 2022-11-07 20:47:34 +00:00
hdlcd_regs.h drm: Add support for ARM's HDLCD controller. 2016-02-10 13:44:16 +00:00
Kconfig drm/arm: Make ARM devices menu depend on DRM 2023-07-10 18:55:21 +02:00
Makefile treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
malidp_crtc.c drm/drm_property: make replace_property_blob_from_id a DRM helper 2023-12-13 15:09:53 -05:00
malidp_drv.c drm: Call drm_atomic_helper_shutdown() at shutdown time for misc drivers 2023-09-21 10:41:04 -07:00
malidp_drv.h drm/arm/malidp: replace drm->dev_private with drm_to_malidp() 2022-11-16 10:33:41 +00:00
malidp_hw.c drm/arm/malidp: replace drm->dev_private with drm_to_malidp() 2022-11-16 10:33:41 +00:00
malidp_hw.h drm/arm/mali-dp: Add display QoS interface configuration for Mali DP500 2019-10-08 16:13:36 +01:00
malidp_mw.c drm/arm/malidp: fix a possible null pointer dereference 2024-04-12 12:57:59 +01:00
malidp_mw.h drm: mali-dp: Add writeback connector 2018-07-05 15:19:03 +01:00
malidp_planes.c drm/arm/malidp: plane: use drm managed resources 2022-11-16 10:33:44 +00:00
malidp_regs.h drm/arm: Fix spelling typo in comments 2022-07-22 12:54:51 +01:00