From mboxrd@z Thu Jan 1 00:00:00 1970 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 C186D3148D8 for ; Thu, 30 Jul 2026 00:26:38 +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=1785371202; cv=none; b=j1UMa8HTw2NjSyZzURErPgbE/hlz5TAQbN2joFSwiTRum369q3RAKaASXfOqmCY276+KmdJSluscXlIvoWF/HpMWxwTTgg9QqmK3tPxpoDSkNNQ1ghhoznLZSSn4cgdNOTSDF+wYL7hVxSnDxKaWZz8KirF0orqYv2HeujFXD4I= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785371202; c=relaxed/simple; bh=X028VEPWbVZ83VYEvDD9bC4grIw364Mj1cenLAtdtb8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=tJTj/Lgj5D/n/c7rhWhtu2Lc9bjNr821j1nExzE8hCwLSURNgPdazjzvTrL8s0yfUM8LnZcFOBs+EvfW8I6Jku1S2NdwTCm3tPVggzt1OCJcfDzcrWcPKM5EAXyOuGDk8go52r2JfBJqEfawN2gxSFZmaYGjVyQIpvNWTlU+5xo= 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 1FF024015A649 for ; Thu, 30 Jul 2026 08:24:56 +0900 (JST) Received: from e3.valueserver.jp (e3.valueserver.jp [157.7.184.13]) by mail-gw-fk003.vdone.jp (Proxmox) with ESMTPS id 8E20D401583B3 for ; Thu, 30 Jul 2026 08:24:54 +0900 (JST) Received: (qmail 287325 invoked by uid 89); 30 Jul 2026 08:24:54 +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); 30 Jul 2026 08:24:54 +0900 From: Tomonori Nakagawa To: 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] drm/rockchip: vop2: give rk3576 VP2 a primary plane Date: Thu, 30 Jul 2026 08:24:50 +0900 Message-ID: <20260729232450.13797-1-jack@supremeoverlordjabs.co> X-Mailer: git-send-email 2.54.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The rk3576 VOP2 has three video ports. VP0 and VP1 each have a Cluster window that acts as their primary plane, but VP2 - the port wired to the DesignWare DP controller - only has Esmart windows, all typed DRM_PLANE_TYPE_OVERLAY. The driver requires every active video port to own a DRM_PLANE_TYPE_PRIMARY plane. When VP2 is driven (a board that uses the DP output) it finds none, CRTC creation returns -ENOENT, and the whole VOP2 bind fails, taking down the entire display subsystem. Promote Esmart0 to DRM_PLANE_TYPE_PRIMARY so VP2 has a primary plane. Esmart0's possible_vp_mask already includes VP2 (BIT(2)) and its layer_sel_id[2] = 0 is a valid VP2 layer slot, while VP0 keeps Cluster0 as its primary, so the existing VP0/VP1 assignments are unchanged: VP0: primary=Cluster0, overlay=Esmart2 VP1: primary=Cluster1, overlays=Esmart1, Esmart3 VP2: primary=Esmart0, overlays=Esmart1, Esmart2, Esmart3 Tested on Anbernic RG Vita Pro (rk3576) with the DP alt-mode output. Signed-off-by: Tomonori Nakagawa --- 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[] = { .format_modifiers = format_modifiers, .layer_sel_id = { 2, 0xf, 0, 0xf }, .supported_rotations = DRM_MODE_REFLECT_Y, - .type = DRM_PLANE_TYPE_OVERLAY, + .type = DRM_PLANE_TYPE_PRIMARY, .axi_bus_id = 0, .axi_yrgb_r_id = 0x10, .axi_uv_r_id = 0x11, -- 2.54.0