From patchwork Tue Nov 14 11:25:34 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andy Yan X-Patchwork-Id: 744189 Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (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 6F4EB22F06 for ; Tue, 14 Nov 2023 11:26:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=163.com header.i=@163.com header.b="WapDRQvS" Received: from m12.mail.163.com (m12.mail.163.com [220.181.12.216]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id D51D1D9; Tue, 14 Nov 2023 03:26:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com; s=s110527; h=From:Subject:Date:Message-Id:MIME-Version; bh=QlSOJ R6xuGhJSA43BYYZBSnfhPce6GEiq7oGmKa3t6U=; b=WapDRQvSV8eRGx7nYfanf +2LRdt4egd9/gsC2jYDc5y2WlWYI5SkNvMxbE5XjQ+v1Dy8y0tNxn5Dkxr67NcLh D5x/XwI0Ouyrk0CYg0UwyFELv3C9acnF1Vgq2d9MZu9Mv+grgrbK8/uorxIIyB+w NBK6prOpkSIlM5nK10wQfk= Received: from ProDesk.. (unknown [58.22.7.114]) by zwqz-smtp-mta-g4-2 (Coremail) with SMTP id _____wDXn0AvWVNlhu50DA--.57639S2; Tue, 14 Nov 2023 19:25:39 +0800 (CST) From: Andy Yan To: heiko@sntech.de Cc: hjc@rock-chips.com, dri-devel@lists.freedesktop.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, krzysztof.kozlowski+dt@linaro.org, robh+dt@kernel.org, devicetree@vger.kernel.org, sebastian.reichel@collabora.com, kever.yang@rock-chips.com, chris.obbard@collabora.com, Andy Yan Subject: [PATCH 00/11] Add VOP2 support on rk3588 Date: Tue, 14 Nov 2023 19:25:34 +0800 Message-Id: <20231114112534.1770731-1-andyshrk@163.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: devicetree@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-CM-TRANSID: _____wDXn0AvWVNlhu50DA--.57639S2 X-Coremail-Antispam: 1Uf129KBjvJXoWxCrW7tr4UArW3uryDAF4rGrg_yoW5GrWkpa n8Cry5ZrWxCFW2qrn3Kwn5CrWft3ZrAayfKwn3G3ZFq3WSkF1UKwnxW3Z5Z39xXw17ZFy2 kr43J347Gr42qr7anT9S1TB71UUUUUUqnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDUYxBIdaVFxhVjvjDU0xZFpf9x07jolksUUUUU= X-Originating-IP: [58.22.7.114] X-CM-SenderInfo: 5dqg52xkunqiywtou0bp/1tbiTBYoXmI0cP1yEAAAsV From: Andy Yan This patch sets aims at enable the VOP2 support on rk3588. Main feature of VOP2 on rk3588: Four video ports: VP0 Max 4096x2160 VP1 Max 4096x2160 VP2 Max 4096x2160 VP3 Max 2048x1080 4 4K Cluster windows with AFBC/line RGB and AFBC-only YUV support 4 4K Esmart windows with line RGB/YUV support The current version support all the 8 windows with all the suppported plane format. And we don't have a upstreamed encoder/connector(HDMI/DP) for rk3588 yet, Cristian from collabora is working on adding upstream support for HDMI on rk3588. My current test is runing with a HDMI driver pick from downstream bsp kernel. A branch based on linux-6.7 rc1 containing all the series and HDMI driver(not compatible with rk3568) picked from downstream bsp kernel is available [0]. [0]https://github.com/andyshrk/linux/tree/rk3588-vop2-hdmi-upstream-linux-6.7-rc1-2023-11-14 Andy Yan (11): drm/rockchip: move output interface related definition to rockchip_drm_drv.h Revert "drm/rockchip: vop2: Use regcache_sync() to fix suspend/resume" drm/rockchip: vop2: set half_block_en bit in all mode drm/rockchip: vop2: clear afbc en and transform bit for cluster window at linear mode drm/rockchip: vop2: Set YUV/RGB overlay mode drm/rockchip: vop2: rename grf to sys_grf dt-bindings: soc: rockchip: add rk3588 vop/vo syscon dt-bindings: display: vop2: Add rk3588 support drm/rockchip: vop2: Add support for rk3588 drm/rockchip: vop2: Add debugfs support arm64: dts: rockchip: Add vop on rk3588 .../display/rockchip/rockchip-vop2.yaml | 25 + .../devicetree/bindings/soc/rockchip/grf.yaml | 2 + arch/arm64/boot/dts/rockchip/rk3588s.dtsi | 96 +++ .../gpu/drm/rockchip/analogix_dp-rockchip.c | 1 - drivers/gpu/drm/rockchip/cdn-dp-core.c | 1 - .../gpu/drm/rockchip/dw-mipi-dsi-rockchip.c | 1 - drivers/gpu/drm/rockchip/dw_hdmi-rockchip.c | 1 - drivers/gpu/drm/rockchip/inno_hdmi.c | 1 - drivers/gpu/drm/rockchip/rk3066_hdmi.c | 1 - drivers/gpu/drm/rockchip/rockchip_drm_drv.h | 18 + drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 12 +- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 790 +++++++++++++++++- drivers/gpu/drm/rockchip/rockchip_drm_vop2.h | 73 +- drivers/gpu/drm/rockchip/rockchip_lvds.c | 1 - drivers/gpu/drm/rockchip/rockchip_rgb.c | 1 - drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 215 +++++ include/dt-bindings/soc/rockchip,vop2.h | 4 + 17 files changed, 1185 insertions(+), 58 deletions(-)