* [PATCH] arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core
@ 2026-07-27 17:55 ` Fabio Estevam
0 siblings, 0 replies; 3+ messages in thread
From: Fabio Estevam @ 2026-07-27 17:55 UTC (permalink / raw)
To: heiko
Cc: robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
The panel-simple schema only allows data-mapping overrides for panels
whose mapping is not fixed by their compatible. Consequently, the property
on the Ampire AM-1280800N3TZQW-T00H panel fails validation:
(ampire,am-1280800n3tzqw-t00h): False schema does not allow ['vesa-24']
The panel descriptor already selects 8 bits per color and
MEDIA_BUS_FMT_RGB888_1X7X4_SPWG. The DRM OF helpers translate
"vesa-24" to that exact bus format, and panel-simple falls back to the
descriptor's format when the property is absent. Removing the property
therefore has no functional effect.
Drop the redundant property to satisfy the binding.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
.../boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts b/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
index 47aa30505a42..aa636ce45e3a 100644
--- a/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
+++ b/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
@@ -28,7 +28,6 @@ panel {
compatible = "ampire,am-1280800n3tzqw-t00h";
backlight = <&backlight>;
power-supply = <&vcc3v3_lcd>;
- data-mapping = "vesa-24";
port {
panel_in_lvds: endpoint {
--
2.43.0
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH] arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core
@ 2026-07-27 17:55 ` Fabio Estevam
0 siblings, 0 replies; 3+ messages in thread
From: Fabio Estevam @ 2026-07-27 17:55 UTC (permalink / raw)
To: heiko
Cc: robh, krzk+dt, conor+dt, devicetree, linux-arm-kernel,
linux-rockchip, Fabio Estevam
The panel-simple schema only allows data-mapping overrides for panels
whose mapping is not fixed by their compatible. Consequently, the property
on the Ampire AM-1280800N3TZQW-T00H panel fails validation:
(ampire,am-1280800n3tzqw-t00h): False schema does not allow ['vesa-24']
The panel descriptor already selects 8 bits per color and
MEDIA_BUS_FMT_RGB888_1X7X4_SPWG. The DRM OF helpers translate
"vesa-24" to that exact bus format, and panel-simple falls back to the
descriptor's format when the property is absent. Removing the property
therefore has no functional effect.
Drop the redundant property to satisfy the binding.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
---
.../boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts b/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
index 47aa30505a42..aa636ce45e3a 100644
--- a/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
+++ b/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
@@ -28,7 +28,6 @@ panel {
compatible = "ampire,am-1280800n3tzqw-t00h";
backlight = <&backlight>;
power-supply = <&vcc3v3_lcd>;
- data-mapping = "vesa-24";
port {
panel_in_lvds: endpoint {
--
2.43.0
_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core
2026-07-27 17:55 ` Fabio Estevam
(?)
@ 2026-07-27 18:06 ` sashiko-bot
-1 siblings, 0 replies; 3+ messages in thread
From: sashiko-bot @ 2026-07-27 18:06 UTC (permalink / raw)
To: Fabio Estevam; +Cc: devicetree, conor+dt, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
New issues:
- [High] Removing the `data-mapping` property causes a regression in the Rockchip LVDS controller, silently defaulting the PHY format to 18-bit VESA instead of 24-bit VESA.
Pre-existing issues:
- [High] The `px30_lvds_grf_config` function incorrectly passes a dynamic value as the mask to `regmap_update_bits`, preventing it from clearing format configuration bits.
--
--- Patch [1]: [PATCH] arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core ---
commit 9e01384e585886fe7dfe0bda8fec7f830eade509
Author: Fabio Estevam <festevam@gmail.com>
arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core
The commit removes the data-mapping property from the panel node to satisfy
the panel-simple DT schema. The commit message states this has no functional
effect because the DRM OF helpers translate the bus format, falling back to
the descriptor's format when the property is absent.
> diff --git a/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts b/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
> index 47aa30505a42e..aa636ce45e3a9 100644
> --- a/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
> +++ b/arch/arm64/boot/dts/rockchip/px30-engicam-px30-core-ctouch2-of10.dts
> @@ -28,7 +28,6 @@ panel {
> compatible = "ampire,am-1280800n3tzqw-t00h";
> backlight = <&backlight>;
> power-supply = <&vcc3v3_lcd>;
> - data-mapping = "vesa-24";
[Severity: High]
Does removing this property inadvertently break the host LVDS controller
configuration?
The commit message assumes only the panel-simple driver uses this property,
but the rockchip LVDS host controller driver bypasses the framework and
reads it directly from the remote panel device tree node:
drivers/gpu/drm/rockchip/rockchip_lvds.c:rockchip_lvds_bind() {
...
if (of_property_read_string(remote, "data-mapping", &name))
/* default set it as format vesa 18 */
lvds->format = LVDS_VESA_18;
...
}
By removing the property, will this fallback to LVDS_VESA_18 be triggered,
causing a mismatch with the 24-bit VESA panel and corrupting the display
output?
[Severity: High]
This isn't a bug introduced by this patch, but while reviewing the rockchip
LVDS driver's format configuration, I noticed a potential issue with how
the register bits are cleared:
drivers/gpu/drm/rockchip/rockchip_lvds.c:px30_lvds_grf_config() {
...
return regmap_update_bits(lvds->grf, PX30_LVDS_GRF_PD_VO_CON1,
PX30_LVDS_FORMAT(lvds->format),
PX30_LVDS_FORMAT(lvds->format));
}
Does this incorrectly pass the dynamic value PX30_LVDS_FORMAT(lvds->format)
as both the mask and the value?
Because regmap_update_bits() uses the mask argument to determine which
bits to clear in the lower 16 bits, passing the value as the mask means any
0-bits in the format will be 0 in the mask and ignored instead of cleared.
If the bootloader left the format in a different state (e.g., LVDS_JEIDA_18),
will the kernel fail to clear the necessary bits to switch it to LVDS_VESA_24?
>
> port {
> panel_in_lvds: endpoint {
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260727175502.2585290-1-festevam@gmail.com?part=1
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-07-27 18:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-27 17:55 [PATCH] arm64: dts: rockchip: Drop data-mapping from Engicam PX30 Core Fabio Estevam
2026-07-27 17:55 ` Fabio Estevam
2026-07-27 18:06 ` sashiko-bot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.