All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Yan <andyshrk@163.com>
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 <andy.yan@rock-chips.com>
Subject: [PATCH v3 05/14] drm/rockchip: vop2: Add write mask for VP config done
Date: Thu, 30 Nov 2023 20:23:26 +0800	[thread overview]
Message-ID: <20231130122326.13014-1-andyshrk@163.com> (raw)
In-Reply-To: <20231130122001.12474-1-andyshrk@163.com>

From: Andy Yan <andy.yan@rock-chips.com>

The write mask bit is used to make sure when writing
config done bit for one VP will not overwrite the other.

Unfortunately, the write mask bit is missing on
rk3566/8, that means when we write to these bits,
it will not take any effect.

We need this to make the vop work properly after
rk3566/8 variants.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>

---

Changes in v3:
- split from the vop2 driver patch

 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index a019cc9bbd54..25c1f33c5622 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -268,12 +268,23 @@ static bool vop2_cluster_window(const struct vop2_win *win)
 	return win->data->feature & WIN_FEATURE_CLUSTER;
 }
 
+/*
+ * Note:
+ * The write mask function is missing on rk3566/8, write
+ * to this bit has no effect, for the other soc(rk3588 and
+ * the following...), this function works well.
+ *
+ * GLB_CFG_DONE_EN doesn't have a write mask bit
+ *
+ */
 static void vop2_cfg_done(struct vop2_video_port *vp)
 {
 	struct vop2 *vop2 = vp->vop2;
+	u32 val = RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN;
+
+	val |= BIT(vp->id) | (BIT(vp->id) << 16);
 
-	regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE,
-			BIT(vp->id) | RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN);
+	regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, val);
 }
 
 static void vop2_win_disable(struct vop2_win *win)
-- 
2.34.1


WARNING: multiple messages have this Message-ID (diff)
From: Andy Yan <andyshrk@163.com>
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 <andy.yan@rock-chips.com>
Subject: [PATCH v3 05/14] drm/rockchip: vop2: Add write mask for VP config done
Date: Thu, 30 Nov 2023 20:23:26 +0800	[thread overview]
Message-ID: <20231130122326.13014-1-andyshrk@163.com> (raw)
In-Reply-To: <20231130122001.12474-1-andyshrk@163.com>

From: Andy Yan <andy.yan@rock-chips.com>

The write mask bit is used to make sure when writing
config done bit for one VP will not overwrite the other.

Unfortunately, the write mask bit is missing on
rk3566/8, that means when we write to these bits,
it will not take any effect.

We need this to make the vop work properly after
rk3566/8 variants.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>

---

Changes in v3:
- split from the vop2 driver patch

 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index a019cc9bbd54..25c1f33c5622 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -268,12 +268,23 @@ static bool vop2_cluster_window(const struct vop2_win *win)
 	return win->data->feature & WIN_FEATURE_CLUSTER;
 }
 
+/*
+ * Note:
+ * The write mask function is missing on rk3566/8, write
+ * to this bit has no effect, for the other soc(rk3588 and
+ * the following...), this function works well.
+ *
+ * GLB_CFG_DONE_EN doesn't have a write mask bit
+ *
+ */
 static void vop2_cfg_done(struct vop2_video_port *vp)
 {
 	struct vop2 *vop2 = vp->vop2;
+	u32 val = RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN;
+
+	val |= BIT(vp->id) | (BIT(vp->id) << 16);
 
-	regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE,
-			BIT(vp->id) | RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN);
+	regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, val);
 }
 
 static void vop2_win_disable(struct vop2_win *win)
-- 
2.34.1


_______________________________________________
Linux-rockchip mailing list
Linux-rockchip@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-rockchip

WARNING: multiple messages have this Message-ID (diff)
From: Andy Yan <andyshrk@163.com>
To: heiko@sntech.de
Cc: devicetree@vger.kernel.org, chris.obbard@collabora.com,
	hjc@rock-chips.com, dri-devel@lists.freedesktop.org,
	linux-kernel@vger.kernel.org, kever.yang@rock-chips.com,
	linux-rockchip@lists.infradead.org, robh+dt@kernel.org,
	krzysztof.kozlowski+dt@linaro.org,
	Andy Yan <andy.yan@rock-chips.com>,
	sebastian.reichel@collabora.com
Subject: [PATCH v3 05/14] drm/rockchip: vop2: Add write mask for VP config done
Date: Thu, 30 Nov 2023 20:23:26 +0800	[thread overview]
Message-ID: <20231130122326.13014-1-andyshrk@163.com> (raw)
In-Reply-To: <20231130122001.12474-1-andyshrk@163.com>

From: Andy Yan <andy.yan@rock-chips.com>

The write mask bit is used to make sure when writing
config done bit for one VP will not overwrite the other.

Unfortunately, the write mask bit is missing on
rk3566/8, that means when we write to these bits,
it will not take any effect.

We need this to make the vop work properly after
rk3566/8 variants.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>

---

Changes in v3:
- split from the vop2 driver patch

 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index a019cc9bbd54..25c1f33c5622 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -268,12 +268,23 @@ static bool vop2_cluster_window(const struct vop2_win *win)
 	return win->data->feature & WIN_FEATURE_CLUSTER;
 }
 
+/*
+ * Note:
+ * The write mask function is missing on rk3566/8, write
+ * to this bit has no effect, for the other soc(rk3588 and
+ * the following...), this function works well.
+ *
+ * GLB_CFG_DONE_EN doesn't have a write mask bit
+ *
+ */
 static void vop2_cfg_done(struct vop2_video_port *vp)
 {
 	struct vop2 *vop2 = vp->vop2;
+	u32 val = RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN;
+
+	val |= BIT(vp->id) | (BIT(vp->id) << 16);
 
-	regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE,
-			BIT(vp->id) | RK3568_REG_CFG_DONE__GLB_CFG_DONE_EN);
+	regmap_set_bits(vop2->map, RK3568_REG_CFG_DONE, val);
 }
 
 static void vop2_win_disable(struct vop2_win *win)
-- 
2.34.1


  parent reply	other threads:[~2023-11-30 12:23 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-30 12:20 [PATCH v3 00/14] Add VOP2 support on rk3588 Andy Yan
2023-11-30 12:20 ` Andy Yan
2023-11-30 12:20 ` Andy Yan
2023-11-30 12:22 ` [PATCH v3 01/14] drm/rockchip: move output interface related definition to rockchip_drm_drv.h Andy Yan
2023-11-30 12:22   ` Andy Yan
2023-11-30 12:22   ` Andy Yan
2023-11-30 12:22 ` [PATCH v3 02/14] Revert "drm/rockchip: vop2: Use regcache_sync() to fix suspend/resume" Andy Yan
2023-11-30 12:22   ` Andy Yan
2023-11-30 12:22   ` Andy Yan
2023-11-30 12:23 ` [PATCH v3 03/14] drm/rockchip: vop2: set half_block_en bit in all mode Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23 ` [PATCH v3 04/14] drm/rockchip: vop2: clear afbc en and transform bit for cluster window at linear mode Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23 ` Andy Yan [this message]
2023-11-30 12:23   ` [PATCH v3 05/14] drm/rockchip: vop2: Add write mask for VP config done Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23 ` [PATCH v3 06/14] drm/rockchip: vop2: Set YUV/RGB overlay mode Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23 ` [PATCH v3 07/14] drm/rockchip: vop2: rename grf to sys_grf Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:23   ` Andy Yan
2023-11-30 12:24 ` [PATCH v3 08/14] dt-bindings: soc: rockchip: add rk3588 vop/vo syscon Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-11-30 12:24 ` [PATCH v3 09/14] dt-bindings: display: vop2: Add rk3588 support Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-12-01  8:17   ` Krzysztof Kozlowski
2023-12-01  8:17     ` Krzysztof Kozlowski
2023-12-01  8:17     ` Krzysztof Kozlowski
2023-11-30 12:24 ` [PATCH v3 10/14] dt-bindings: rockchip, vop2: Add more endpoint definition Andy Yan
2023-11-30 12:24   ` [PATCH v3 10/14] dt-bindings: rockchip,vop2: " Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-11-30 12:24 ` [PATCH v3 11/14] drm/rockchip: vop2: Add support for rk3588 Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-12-05  9:29   ` Sascha Hauer
2023-12-05  9:29     ` Sascha Hauer
2023-12-05  9:29     ` Sascha Hauer
2023-12-05  9:44     ` Andy Yan
2023-12-05  9:44       ` Andy Yan
2023-12-05  9:44       ` Andy Yan
2023-12-05  9:48       ` Sascha Hauer
2023-12-05  9:48         ` Sascha Hauer
2023-12-05  9:48         ` Sascha Hauer
2023-12-14 21:37   ` kernel test robot
2023-11-30 12:24 ` [PATCH v3 12/14] drm/rockchip: vop2: Add debugfs support Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-11-30 12:24   ` Andy Yan
2023-12-05  9:15   ` Sascha Hauer
2023-12-05  9:15     ` Sascha Hauer
2023-12-05  9:15     ` Sascha Hauer
2023-12-06 10:20     ` Andy Yan
2023-12-06 10:20       ` Andy Yan
2023-12-06 10:20       ` Andy Yan
2023-12-06 11:20       ` Sascha Hauer
2023-12-06 11:20         ` Sascha Hauer
2023-12-06 11:20         ` Sascha Hauer
2023-12-06 11:27         ` Andy Yan
2023-12-06 11:27           ` Andy Yan
2023-12-06 11:27           ` Andy Yan
2023-11-30 12:25 ` [PATCH v3 13/14] dt-bindings: iommu: rockchip: Add Rockchip RK3588 Andy Yan
2023-11-30 12:25   ` Andy Yan
2023-11-30 12:25   ` Andy Yan
2023-11-30 22:46   ` Heiko Stübner
2023-11-30 22:46     ` Heiko Stübner
2023-11-30 22:46     ` Heiko Stübner
2023-11-30 12:25 ` [PATCH v3 14/14] arm64: dts: rockchip: Add vop on rk3588 Andy Yan
2023-11-30 12:25   ` Andy Yan
2023-11-30 12:25   ` Andy Yan

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=20231130122326.13014-1-andyshrk@163.com \
    --to=andyshrk@163.com \
    --cc=andy.yan@rock-chips.com \
    --cc=chris.obbard@collabora.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=heiko@sntech.de \
    --cc=hjc@rock-chips.com \
    --cc=kever.yang@rock-chips.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=robh+dt@kernel.org \
    --cc=sebastian.reichel@collabora.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.