From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.18]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AD4D271456 for ; Mon, 16 Feb 2026 14:56:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.18 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771253814; cv=none; b=c9cJlJdKcHLQyUMCQbxqki+1vLMplbPp67qxWqy0Ycs1dAn4aKcJ1te6RzS7TJVSmMRzKny/6IpaXPXgUPWDfLvLoFcTKD0pNfz0lhBlF2sm3tUAmVS8LkavaU1sD9upgkUc9oZ2xUr2q23BudJxWoWMztdHKi1cMYQyI0wScsw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771253814; c=relaxed/simple; bh=2HBXHXJmKKSSppv6LfuT5JP8JJjGH9rvGHiBwKrCMI0=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=mbKR2rjbC3Hghb6B62KYjrq2tXb3Pf4q054dCTaB07+mek6HDgTlh+Pvy3p8H7P4SsZRBNo0kpqTHEkWAiHExRZLYgIdJVS2C9uqJ85w4zWegk4ts4d4zZV3lIkbPRXSmS3SCvA/T15fdbHt+O8sUHiaOlVctDOdsQT8uhMaYtg= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com; spf=pass smtp.mailfrom=linux.intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=k2CT1QkD; arc=none smtp.client-ip=198.175.65.18 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="k2CT1QkD" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1771253813; x=1802789813; h=message-id:date:mime-version:subject:to:cc:references: from:in-reply-to:content-transfer-encoding; bh=2HBXHXJmKKSSppv6LfuT5JP8JJjGH9rvGHiBwKrCMI0=; b=k2CT1QkDqYecArg1SFrXBrp6WvBPdGhyRzkL0bqjTUXIg3weiqGwjswl s3FWyxk2MK1dJIOXVfAE+1F1cHVtNNPnR+Mg0xMTT26nr4xJCKUbRZRtd GWhAcLI0J5418tI0tQyiudPeYBDk2yYVhgScd89bmayzFIYqUdueJA0+a gmieveW6e9c9lglkE2W3jhNUFclXvnQQJ9p+k05h5ov77zqNiQXa1F99N WWR/HJA31Lu6MHX6WTA6aJltcWLY7WKv4H45eWRiRH1VcE8vUpvIp1Qfp Lbc/fWscwHByTpN5Wcm00KbtURPRuDvQgifNsQibGf1j+rkHSX5KpSHyU A==; X-CSE-ConnectionGUID: z2nrRbJcQviOyaOJzJUhiw== X-CSE-MsgGUID: PCMK94vWRKG6hGI79J2xRg== X-IronPort-AV: E=McAfee;i="6800,10657,11702"; a="72376837" X-IronPort-AV: E=Sophos;i="6.21,294,1763452800"; d="scan'208";a="72376837" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by orvoesa110.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Feb 2026 06:56:52 -0800 X-CSE-ConnectionGUID: DleU0ORnQyGf2Rx3AmowgQ== X-CSE-MsgGUID: XnvkmfuyQxGXxT3wMS5A4w== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,294,1763452800"; d="scan'208";a="218165716" Received: from abityuts-desk.ger.corp.intel.com (HELO [10.245.245.13]) ([10.245.245.13]) by orviesa004-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Feb 2026 06:56:46 -0800 Message-ID: Date: Mon, 16 Feb 2026 15:56:44 +0100 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v7 0/4] Introduce BACKGROUND_COLOR DRM CRTC property To: Cristian Ciocaltea , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Sandy Huang , =?UTF-8?Q?Heiko_St=C3=BCbner?= , Andy Yan , Louis Chauvet , Haneen Mohammed , Melissa Wen , Jani Nikula , Andy Shevchenko Cc: Robert Mader , kernel@collabora.com, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, =?UTF-8?B?TsOtY29sYXMgRi4gUi4gQS4gUHJhZG8=?= , Diederik de Haas , AngeloGioacchino Del Regno , Matt Roper References: <20260204-rk3588-bgcolor-v7-0-78d1d01c5ca1@collabora.com> Content-Language: en-US From: Maarten Lankhorst In-Reply-To: <20260204-rk3588-bgcolor-v7-0-78d1d01c5ca1@collabora.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hey, Den 2026-02-04 kl. 21:02, skrev Cristian Ciocaltea: > Some display controllers can be hardware-configured to present non-black > colors for pixels which are not covered by any plane (or are exposed > through transparent regions of higher planes). > > The 1st patch of the series provides DIV_ROUND_CLOSEST() to uapi, as a > prerequisite to the 2nd patch introducing the BACKGROUND_COLOR DRM > property that can be attached to a CRTC via a dedicated helper function. > A 64-bit ARGB color value format is also defined and can be manipulated > with the help of a few utility macros. > > Note this is a reworked version of the patch [1] submitted (many) years > ago by Matt Roper. The main changes are: > > * Renamed DRM_ARGB_() to DRM_ARGB64_GET_BPC() while providing > convenience wrappers to extract all 16 bits of a specific color via > DRM_ARGB64_GET() > * Replaced drm_argb() function with DRM_ARGB64_PREP_BPC() macro, to > improve uAPI consistency and readability; additionally fixed a bug in > case of using bpc < 16: the unused least-significant bits of a given > component in the output value would contain the unused > most-significant bits of the following component in the input value, > instead of being set to 0 > * Replaced GENMASK_ULL(63, 0) with U64_MAX when calling > drm_property_create_range() to create the BACKGROUND_COLOR property > * Moved crtc_state->bgcolor initialization from > __drm_atomic_helper_crtc_reset() to > __drm_atomic_helper_crtc_state_reset() > * Replaced '*bgcolor*' occurrences to '*background_color*' for > consistency with the actual property name in both storage field and > helper functions names > > The subsequent patches add background color support to VKMS and the VOP2 > display controller used in the RK3568, RK3576, and RK3588 Rockchip SoC > families. > > The validation has been done using a dedicated IGT test [2] - see the > reported results below. > > On the userland side, a Weston merge request [3] is available, providing > support for the BACKGROUND_COLOR CRTC property to the DRM backend. It > relies on the already existing background-color setting in weston.ini: > > [shell] > background-color=0xAARRGGBB > > [1] https://lore.kernel.org/all/20190930224707.14904-2-matthew.d.roper@intel.com/ > [2] https://lore.kernel.org/all/20251219-crtc-bgcolor-v3-1-31b589911588@collabora.com/ > [3] https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1845 > > IGT kms_crtc_background_color test results > ========================================== > > * VKMS > > virtme-ng$ IGT_FORCE_DRIVER=vkms build/tests/kms_crtc_background_color > > IGT-Version: 2.3-g6b07138e8 (x86_64) (Linux: 6.19.0-rc1-virtme x86_64) > Using IGT_SRANDOM=1766149634 for randomisation > Opened device: /dev/dri/card0 > Starting subtest: background-color-red > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.071s) > Subtest background-color-red: SUCCESS (0.073s) > Starting subtest: background-color-green > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.074s) > Subtest background-color-green: SUCCESS (0.074s) > Starting subtest: background-color-blue > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.074s) > Subtest background-color-blue: SUCCESS (0.074s) > Starting subtest: background-color-yellow > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.072s) > Subtest background-color-yellow: SUCCESS (0.073s) > Starting subtest: background-color-purple > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.072s) > Subtest background-color-purple: SUCCESS (0.074s) > Starting subtest: background-color-cyan > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.074s) > Subtest background-color-cyan: SUCCESS (0.074s) > Starting subtest: background-color-black > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.072s) > Subtest background-color-black: SUCCESS (0.072s) > Starting subtest: background-color-white > Starting dynamic subtest: pipe-A-Virtual-1 > Dynamic subtest pipe-A-Virtual-1: SUCCESS (0.073s) > Subtest background-color-white: SUCCESS (0.074s) > > * Radxa ROCK 5B (RK3588) > > rock5b$ build/tests/kms_crtc_background_color --device drm:/dev/dri/card1 > > IGT-Version: 2.2-g3e4ec308e (aarch64) (Linux: 6.18.0-rc1 aarch64) > Using IGT_SRANDOM=1762774806 for randomisation > Opened device: /dev/dri/card1 > Starting subtest: background-color-red > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.491s) > Subtest background-color-red: SUCCESS (0.493s) > Starting subtest: background-color-green > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.533s) > Subtest background-color-green: SUCCESS (0.535s) > Starting subtest: background-color-blue > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.541s) > Subtest background-color-blue: SUCCESS (0.544s) > Starting subtest: background-color-yellow > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.535s) > Subtest background-color-yellow: SUCCESS (0.537s) > Starting subtest: background-color-purple > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.536s) > Subtest background-color-purple: SUCCESS (0.538s) > Starting subtest: background-color-cyan > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.539s) > Subtest background-color-cyan: SUCCESS (0.541s) > Starting subtest: background-color-black > Starting dynamic subtest: pipe-C-DP-1 > (kms_crtc_background_color:744) igt_pipe_crc-WARNING: Warning on condition all_zero in function crc_sanity_checks, file ../lib/igt_pipe_crc.c:475 > (kms_crtc_background_color:744) igt_pipe_crc-WARNING: Suspicious CRC: All values are 0. > (kms_crtc_background_color:744) igt_pipe_crc-WARNING: Warning on condition all_zero in function crc_sanity_checks, file ../lib/igt_pipe_crc.c:475 > (kms_crtc_background_color:744) igt_pipe_crc-WARNING: Suspicious CRC: All values are 0. > Dynamic subtest pipe-C-DP-1: SUCCESS (0.535s) > Subtest background-color-black: SUCCESS (0.537s) > Starting subtest: background-color-white > Starting dynamic subtest: pipe-C-DP-1 > Dynamic subtest pipe-C-DP-1: SUCCESS (0.540s) > Subtest background-color-white: SUCCESS (0.542s) > > Signed-off-by: Cristian Ciocaltea > --- > Changes in v7: > - Consistently put "({" on a separate line for all macro definitions > (Andy Shevchenko) > - Rebased series onto latest drm-misc-next > - Link to v6: https://lore.kernel.org/r/20260129-rk3588-bgcolor-v6-0-c15f755a4055@collabora.com > > Changes in v6: > - Collected Acked-by & Reviewed-by tags from Andy S & Angelo > - Handled feedback from Andy Shevchenko > * Fixed up styling for __KERNEL_DIV_ROUND_CLOSEST() macro > * Made use of __GENMASK() helper in __DRM_ARGB64_PREP*() and > __DRM_ARGB64_GET*() definitions > * Introduced DRM_ARGB64_GET*_BPCS() as an alternative for > DRM_ARGB64_GET*_BPC() to help when performance is more important > than accuracy, e.g. used it along with FIELD_MODIFY() in the vop2 > related patch to simplify a bit the bgcolor operations > - Link to v5: https://lore.kernel.org/r/20260127-rk3588-bgcolor-v5-0-b25aa8613211@collabora.com > > Changes in v5: > - Collected Reviewed-by & Tested-by tags from Nícolas & Diederik > - Dumped background_color prop value in drm_atomic_crtc_print_state() > and updated comment in drm_crtc_state (Nícolas) > - Documented the reasons of not using the DRM_ARGB64_GET*_BPC() helpers > in vop2 related patch (Nícolas) > - Rebased series onto latest drm-misc-next > - Link to v4: https://lore.kernel.org/r/20251219-rk3588-bgcolor-v4-0-2ff1127ea757@collabora.com > > Changes in v4: > - Switched to simple bit-shifting approach when performing the bpc > conversion in the vop2 driver, to avoid the expensive division since > we shouldn't be concerned anymore about the precision (Chaoyi) > - Rebased series onto latest drm-misc-next > - Link to v3: https://lore.kernel.org/r/20251118-rk3588-bgcolor-v3-0-a2cc909428ea@collabora.com > > Changes in v3: > - Added new patches: > * uapi: Provide DIV_ROUND_CLOSEST() > * drm/vkms: Support setting custom background color > - Improved DRM_ARGB64_{PREP|GET}*() helpers by using a conversion ratio > for better color approximation when dealing with less than 16 bits of > precision > - Mentioned the IGT test in the cover letter while documenting the > validation results; also dropped references to the now useless > modetest wrapper script and its generated report > - Rebased series onto latest drm-misc-next > - Link to v2: https://lore.kernel.org/r/20251013-rk3588-bgcolor-v2-0-25cc3810ba8c@collabora.com > > Changes in v2: > - Improved uAPI consistency and readability by introducing > DRM_ARGB64_PREP*() and DRM_ARGB64_GET*() helper macros > - Updated several code comment sections > - Referenced the counterpart Weston support in the cover letter > - Rebased series onto v6.18-rc1 > - Link to v1: https://lore.kernel.org/r/20250902-rk3588-bgcolor-v1-0-fd97df91d89f@collabora.com > > --- > Cristian Ciocaltea (4): > uapi: Provide DIV_ROUND_CLOSEST() > drm: Add CRTC background color property > drm/vkms: Support setting custom background color > drm/rockchip: vop2: Support setting custom background color > > drivers/gpu/drm/drm_atomic.c | 1 + > drivers/gpu/drm/drm_atomic_state_helper.c | 1 + > drivers/gpu/drm/drm_atomic_uapi.c | 4 ++ > drivers/gpu/drm/drm_blend.c | 39 ++++++++++++-- > drivers/gpu/drm/drm_mode_config.c | 6 +++ > drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 17 +++++- > drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 4 ++ > drivers/gpu/drm/vkms/vkms_composer.c | 10 +++- > drivers/gpu/drm/vkms/vkms_crtc.c | 3 ++ > include/drm/drm_blend.h | 4 +- > include/drm/drm_crtc.h | 12 +++++ > include/drm/drm_mode_config.h | 5 ++ > include/linux/math.h | 18 +------ > include/uapi/drm/drm_mode.h | 80 ++++++++++++++++++++++++++++ > include/uapi/linux/const.h | 18 +++++++ > 15 files changed, 197 insertions(+), 25 deletions(-) > --- > base-commit: cff3f89ffbdd4b6c43a117c01aaf5b290ff80803 > change-id: 20250829-rk3588-bgcolor-c1a7b9a507bc Excellent, I still have the original patches in a branch somewhere for intel/display. Will rebase once this lands!