From nobody Fri Oct 2 11:42:47 2026 Received: from mail-gw-fk003.vdone.jp (mail-gw-fk003.vdone.jp [160.251.152.193]) (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 8DAA424B28 for ; Sat, 1 Aug 2026 22:35:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=160.251.152.193 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785623736; cv=none; b=l3rLTgE3DUacfGWdE4IM2tF4rNEy1glKky29XnDcxVrUlmwr21O4gxeyX5t/7S3qY7wbqGRb7k6srZPUMb3F2UFO3I9xtr6A+RQC/rNTqy7gdnT3Mwu70xuGIRO3W1iUpwy2SRvv0aprV8sM4Q1ueo409ySMgbYiHMG1WYzR76Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785623736; c=relaxed/simple; bh=2PkaF4vgSGypAZhJSn0KHJC3ZZv5Yn3YOG3933R34Y0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=O80KJr6OeY8B1ErIEcD7aPbMpPpROzR1VCMT04o+NGZItGkP1JwOLcixEIApTC2d1KSP84lb/wc5mNtmGKlAY9JXezHV0cXJ0EZjtdz/CM4yyx4ZUNlTY9beUWWy8zHQUowNgOzlCCSr5EgzJy1zO/nFNeybu0Pl4dmkgdhQRnc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=supremeoverlordjabs.co; spf=fail smtp.mailfrom=supremeoverlordjabs.co; arc=none smtp.client-ip=160.251.152.193 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=supremeoverlordjabs.co Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=supremeoverlordjabs.co Received: from mail-gw-fk003.vdone.jp (localhost.localdomain [127.0.0.1]) by mail-gw-fk003.vdone.jp (Proxmox) with ESMTP id E9EE3401449DB for ; Sun, 2 Aug 2026 07:35:26 +0900 (JST) Received: from e3.valueserver.jp (e3.valueserver.jp [157.7.184.13]) by mail-gw-fk003.vdone.jp (Proxmox) with ESMTPS id 6A34540177F9A for ; Sun, 2 Aug 2026 07:35:25 +0900 (JST) Received: (qmail 849831 invoked by uid 89); 2 Aug 2026 07:35:24 +0900 Received: from p1706034-ipxg06601niigatani.niigata.ocn.ne.jp (HELO localhost.localdomain) (jack@supremeoverlordjabs.co) by e3.valueserver.jp with ESMTPSA (TLS_AES_256_GCM_SHA384 encrypted, authenticated); 2 Aug 2026 07:35:24 +0900 From: Tomonori Nakagawa To: Chaoyi Chen , Sandy Huang , =?UTF-8?q?Heiko=20St=C3=BCbner?= , Andy Yan Cc: Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , dri-devel@lists.freedesktop.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Tomonori Nakagawa Subject: [PATCH v2] drm/rockchip: vop2: give rk3576 VP2 a primary plane Date: Sun, 2 Aug 2026 07:35:20 +0900 Message-ID: <20260801223520.8661-1-jack@supremeoverlordjabs.co> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260729232450.13797-1-jack@supremeoverlordjabs.co> References: <20260729232450.13797-1-jack@supremeoverlordjabs.co> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" On rk3576 the two Cluster windows are the only windows typed DRM_PLANE_TYPE_PRIMARY, and both have possible_vp_mask =3D BIT(0) | BIT(1), so they can only be attached to VP0 or VP1. VP2's only attachable windows are the Esmart windows, which are all DRM_PLANE_TYPE_OVERLAY. vop2_create_crtcs() requires every video port a board wires up (an output endpoint on video_portN) to own a DRM_PLANE_TYPE_PRIMARY plane. On a board whose DT routes any interface to VP2, no attachable primary plane is found and probe fails with -ENOENT ("no primary plane for vp 2"), tearing down the whole VOP2. Promote Esmart0 to DRM_PLANE_TYPE_PRIMARY. Its possible_vp_mask is BIT(0) | BIT(2); since vop2_create_crtcs() assigns primaries in window array order and Cluster0/Cluster1 precede Esmart0, VP0 and VP1 still take Cluster0/Cluster1, and only VP2 gains Esmart0 as its primary: VP0: primary Cluster0 VP1: primary Cluster1 VP2: primary Esmart0 Tested on Anbernic RG Vita Pro (rk3576), which routes its DP output to VP2. Signed-off-by: Tomonori Nakagawa --- v2: reword the commit message per Chaoyi Chen's review - VP2 is not DP-specific; describe the plane topology instead (the two PRIMARY-typed Cluster windows are limited to VP0/VP1 by possible_vp_mask, so VP2 has no attachable primary). No functional change. drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm= /rockchip/rockchip_vop2_reg.c index 17eda592b..e7d013dc3 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -894,7 +894,7 @@ static const struct vop2_win_data rk3576_vop_win_data[]= =3D { .format_modifiers =3D format_modifiers, .layer_sel_id =3D { 2, 0xf, 0, 0xf }, .supported_rotations =3D DRM_MODE_REFLECT_Y, - .type =3D DRM_PLANE_TYPE_OVERLAY, + .type =3D DRM_PLANE_TYPE_PRIMARY, .axi_bus_id =3D 0, .axi_yrgb_r_id =3D 0x10, .axi_uv_r_id =3D 0x11, --=20 2.54.0