This series is a follow-up of what was discussed in [1] and on #wayland IRC channel regarding policy and userspace expectations on changes in colorop properties and the current status of the color pipeline in which the colorop is part of. In short, we agreed that userspace can change properties of colorops that are currently part of an active color pipeline or when the pipeline is switching status in the same commit. However, userspace cannot change colorop properties of inactive color pipeline in the expactation that it will be activated at some point in the future.
Userspace also expects persistence of color pipeline already set, even if it becomes inactive for a while, when activated, colorop settings previouly set should be preserved. In addition, I found some bugs on IGT tests when this policy is applied. So I sent bug fixes to kms_colorop and kms_properties to behave according to this contract [2]. The rest of the series in [1] was detached in [3] since there is no dependency between them. [v1] https://lore.kernel.org/dri-devel/[email protected]/ Changes: - define a macro to walk in the color pipeline (Alex H.) - fix checkpatch warning (Alex H.) [v2] https://lore.kernel.org/dri-devel/[email protected]/ Changes: - [Drop] drm/atomic: duplicate state of all colorops If inactive colorops state are duplicated on resume, the commit will be rejected. - [New] Four new patches to make AMD driver match the policy of colorop updates only for colorops in active color pipelines plus individual colorop updates. It also tries to untangle COLOR_PIPELINE = Bypass from colorop BYPASS prop = true. I think patches 3-5 can be cherry-picked and applied if it looks correct for AMD, I just included them here for context (for example, Sashiko reported an issue in the previous version of this series). [1] https://lore.kernel.org/dri-devel/[email protected]/ [2] https://lore.kernel.org/igt-dev/[email protected] [3] https://lore.kernel.org/igt-dev/[email protected]/ Melissa Melissa Wen (7): drm/atomic: only add states of active or transient active colorops drm/atomic: reject colorop update from inactive color pipeline drm/amd/display: don't check colorop status if its in an inactive pipeline drm/amd/display: truly bypass plane colorop 3x4 matrix and hdr mult drm/amd/display: make shaper bypass mode cleaner drm/amd/display: fix bnld colorop bypass mode drm/amd/display: allow individual colorop changes .../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 31 ++- .../amd/display/amdgpu_dm/amdgpu_dm_color.c | 178 +++++++----------- drivers/gpu/drm/drm_atomic.c | 125 +++++++++++- include/drm/drm_colorop.h | 3 + 4 files changed, 207 insertions(+), 130 deletions(-) -- 2.53.0
