From: keith zhao <keith.zhao@starfivetech.com>
To: devicetree@vger.kernel.org, dri-devel@lists.freedesktop.org
Cc: andrzej.hajda@intel.com, neil.armstrong@linaro.org,
rfoss@kernel.org, Laurent.pinchart@ideasonboard.com,
jonas@kwiboo.se, jernej.skrabec@gmail.com,
maarten.lankhorst@linux.intel.com, mripard@kernel.org,
tzimmermann@suse.de, airlied@gmail.com, simona@ffwll.ch,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org,
hjc@rock-chips.com, heiko@sntech.de, andy.yan@rock-chips.com,
william.qiu@starfivetech.com, xingyu.wu@starfivetech.com,
kernel@esmil.dk, paul.walmsley@sifive.com, palmer@dabbelt.com,
aou@eecs.berkeley.edu, p.zabel@pengutronix.de,
changhuang.liang@starfivetech.com, keith.zhao@starfivetech.com,
jack.zhu@starfivetech.com, linux-kernel@vger.kernel.org
Subject: [PATCH v5 5/9] drm/vs: Add Base API for VS Mode Configuration
Date: Wed, 20 Nov 2024 14:18:44 +0800 [thread overview]
Message-ID: <20241120061848.196754-6-keith.zhao@starfivetech.com> (raw)
In-Reply-To: <20241120061848.196754-1-keith.zhao@starfivetech.com>
This commit adds a base API for configuring VS modes,
which will streamline the setup and management of display modes
in the VS DRM subsystem.
In this implementation, we are using drm_atomic_helper_commit_tail_rpm()
instead of drm_atomic_helper_commit_tail() to ensure that
we skip planes related to inactive CRTCs.
This helps to optimize the commit process and reduces unnecessary overhead
when dealing with inactive display resources.
Signed-off-by: keith zhao <keith.zhao@starfivetech.com>
---
drivers/gpu/drm/verisilicon/Makefile | 3 ++-
drivers/gpu/drm/verisilicon/vs_modeset.c | 31 ++++++++++++++++++++++++
drivers/gpu/drm/verisilicon/vs_modeset.h | 10 ++++++++
3 files changed, 43 insertions(+), 1 deletion(-)
create mode 100644 drivers/gpu/drm/verisilicon/vs_modeset.c
create mode 100644 drivers/gpu/drm/verisilicon/vs_modeset.h
diff --git a/drivers/gpu/drm/verisilicon/Makefile b/drivers/gpu/drm/verisilicon/Makefile
index 7da54b259940..842867dad4cb 100644
--- a/drivers/gpu/drm/verisilicon/Makefile
+++ b/drivers/gpu/drm/verisilicon/Makefile
@@ -1,5 +1,6 @@
# SPDX-License-Identifier: GPL-2.0
-vs_drm-objs := vs_dc_hw.o
+vs_drm-objs := vs_dc_hw.o \
+ vs_modeset.o
obj-$(CONFIG_DRM_VERISILICON_DC8200) += vs_drm.o
diff --git a/drivers/gpu/drm/verisilicon/vs_modeset.c b/drivers/gpu/drm/verisilicon/vs_modeset.c
new file mode 100644
index 000000000000..0873a3465143
--- /dev/null
+++ b/drivers/gpu/drm/verisilicon/vs_modeset.c
@@ -0,0 +1,31 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) VeriSilicon Holdings Co., Ltd.
+ */
+#include <drm/drm_atomic_helper.h>
+#include <drm/drm_fb_helper.h>
+#include <drm/drm_gem_framebuffer_helper.h>
+
+#include "vs_modeset.h"
+
+static const struct drm_mode_config_funcs vs_mode_config_funcs = {
+ .fb_create = drm_gem_fb_create,
+ .atomic_check = drm_atomic_helper_check,
+ .atomic_commit = drm_atomic_helper_commit,
+};
+
+static struct drm_mode_config_helper_funcs vs_mode_config_helpers = {
+ .atomic_commit_tail = drm_atomic_helper_commit_tail_rpm,
+};
+
+void vs_mode_config_init(struct drm_device *dev)
+{
+ int ret;
+
+ ret = drmm_mode_config_init(dev);
+ if (ret)
+ return;
+
+ dev->mode_config.funcs = &vs_mode_config_funcs;
+ dev->mode_config.helper_private = &vs_mode_config_helpers;
+}
diff --git a/drivers/gpu/drm/verisilicon/vs_modeset.h b/drivers/gpu/drm/verisilicon/vs_modeset.h
new file mode 100644
index 000000000000..bd04f81d2ad2
--- /dev/null
+++ b/drivers/gpu/drm/verisilicon/vs_modeset.h
@@ -0,0 +1,10 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2020 VeriSilicon Holdings Co., Ltd.
+ */
+
+#ifndef __VS_MODESET_H__
+#define __VS_MODESET_H__
+
+void vs_mode_config_init(struct drm_device *dev);
+#endif /* __VS_FB_H__ */
--
2.34.1
next prev parent reply other threads:[~2024-11-20 6:21 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-11-20 6:18 [PATCH v5 0/9] drm/verisilicon : support DC8200 and inno hdmi keith zhao
2024-11-20 6:18 ` [PATCH v5 1/9] dt-bindings: display: bindings for starfive,JH7110 display pipeline keith zhao
2024-11-20 6:18 ` [PATCH v5 1/9] dt-bindings: display: bindings for starfive, JH7110 " keith zhao
2024-11-21 8:23 ` [PATCH v5 1/9] dt-bindings: display: bindings for starfive,JH7110 " Krzysztof Kozlowski
2024-11-21 9:52 ` Keith Zhao
2024-11-21 9:52 ` [PATCH v5 1/9] dt-bindings: display: bindings for starfive, JH7110 " Keith Zhao
2024-11-20 6:18 ` [PATCH v5 2/9] riscv: dts: Add display property keith zhao
2024-11-20 16:48 ` Conor Dooley
2024-11-20 6:18 ` [PATCH v5 3/9] drm: bridge: inno-hdmi: add inno bridge driver keith zhao
2024-11-20 7:38 ` Krzysztof Kozlowski
2024-11-21 2:15 ` Keith Zhao
2024-11-21 10:03 ` Krzysztof Kozlowski
2024-11-20 14:55 ` Uwe Kleine-König
2024-11-21 2:06 ` Keith Zhao
2024-11-21 14:04 ` Uwe Kleine-König
2024-11-21 23:41 ` Dmitry Baryshkov
2024-11-21 23:53 ` Dmitry Baryshkov
2024-11-21 23:57 ` Dmitry Baryshkov
2024-11-20 6:18 ` [PATCH v5 4/9] drm/vs: Add Hardware Functions for VS DC8200 keith zhao
2024-11-22 0:05 ` Dmitry Baryshkov
2024-11-22 2:28 ` kernel test robot
2024-11-27 19:50 ` kernel test robot
2024-11-20 6:18 ` keith zhao [this message]
2024-11-22 0:08 ` [PATCH v5 5/9] drm/vs: Add Base API for VS Mode Configuration Dmitry Baryshkov
2024-11-20 6:18 ` [PATCH v5 6/9] drm/vs: Add CRTC Functions keith zhao
2024-11-22 0:16 ` Dmitry Baryshkov
2024-11-20 6:18 ` [PATCH v5 7/9] drm/vs: Add VS Plane API keith zhao
2024-11-22 0:30 ` Dmitry Baryshkov
2024-11-20 6:18 ` [PATCH v5 8/9] drm/vs: Add Innosilicon HDMI Support keith zhao
2024-11-21 23:52 ` Dmitry Baryshkov
2024-11-20 6:18 ` [PATCH v5 9/9] drm/vs: Add VS DRM Master Driver for JH7110 SoC keith zhao
2024-11-22 0:40 ` Dmitry Baryshkov
2025-03-11 7:42 ` [PATCH v5 0/9] drm/verisilicon : support DC8200 and inno hdmi Maud Spierings
2025-06-14 18:53 ` Michal Wilczynski
2025-06-17 6:00 ` Maud Spierings
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20241120061848.196754-6-keith.zhao@starfivetech.com \
--to=keith.zhao@starfivetech.com \
--cc=Laurent.pinchart@ideasonboard.com \
--cc=airlied@gmail.com \
--cc=andrzej.hajda@intel.com \
--cc=andy.yan@rock-chips.com \
--cc=aou@eecs.berkeley.edu \
--cc=changhuang.liang@starfivetech.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=heiko@sntech.de \
--cc=hjc@rock-chips.com \
--cc=jack.zhu@starfivetech.com \
--cc=jernej.skrabec@gmail.com \
--cc=jonas@kwiboo.se \
--cc=kernel@esmil.dk \
--cc=krzk+dt@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mripard@kernel.org \
--cc=neil.armstrong@linaro.org \
--cc=p.zabel@pengutronix.de \
--cc=palmer@dabbelt.com \
--cc=paul.walmsley@sifive.com \
--cc=rfoss@kernel.org \
--cc=robh@kernel.org \
--cc=simona@ffwll.ch \
--cc=tzimmermann@suse.de \
--cc=william.qiu@starfivetech.com \
--cc=xingyu.wu@starfivetech.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.