mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Stu Hsieh <stu.hsieh@mediatek.com>
To: CK Hu <ck.hu@mediatek.com>, Philipp Zabel <p.zabel@pengutronix.de>
Cc: David Airlie <airlied@linux.ie>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	<dri-devel@lists.freedesktop.org>,
	<linux-arm-kernel@lists.infradead.org>,
	<linux-mediatek@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>, <srv_heupstream@mediatek.com>,
	Stu Hsieh <stu.hsieh@mediatek.com>
Subject: [PATCH v4 05/14] drm/mediatek: add memory mode and layer_config for RDMA
Date: Thu, 9 Aug 2018 10:15:40 +0800	[thread overview]
Message-ID: <1533780949-30141-6-git-send-email-stu.hsieh@mediatek.com> (raw)
In-Reply-To: <1533780949-30141-1-git-send-email-stu.hsieh@mediatek.com>

This patch add memory mode for RDMA and layer_config for RDMA

If use RDMA to read data from memory, it should set memory mode to RDMA

Layer config set the data address and pitch to RDMA from plane setting.

Signed-off-by: Stu Hsieh <stu.hsieh@mediatek.com>
Reviewed-by: CK Hu <ck.hu@mediatek.com>
---
 drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
index 585943c81e1f..08866550740f 100644
--- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
+++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c
@@ -31,14 +31,20 @@
 #define RDMA_REG_UPDATE_INT				BIT(0)
 #define DISP_REG_RDMA_GLOBAL_CON		0x0010
 #define RDMA_ENGINE_EN					BIT(0)
+#define RDMA_MODE_MEMORY				BIT(1)
 #define DISP_REG_RDMA_SIZE_CON_0		0x0014
 #define DISP_REG_RDMA_SIZE_CON_1		0x0018
 #define DISP_REG_RDMA_TARGET_LINE		0x001c
+#define DISP_RDMA_MEM_SRC_PITCH			0x002c
+#define DISP_RDMA_MEM_GMC_SETTING_0		0x0030
 #define DISP_REG_RDMA_FIFO_CON			0x0040
 #define RDMA_FIFO_UNDERFLOW_EN				BIT(31)
 #define RDMA_FIFO_PSEUDO_SIZE(bytes)			(((bytes) / 16) << 16)
 #define RDMA_OUTPUT_VALID_FIFO_THRESHOLD(bytes)		((bytes) / 16)
 #define RDMA_FIFO_SIZE(rdma)			((rdma)->data->fifo_size)
+#define DISP_RDMA_MEM_START_ADDR		0x0f00
+
+#define RDMA_MEM_GMC				0x40402020
 
 struct mtk_disp_rdma_data {
 	unsigned int fifo_size;
@@ -138,12 +144,27 @@ static void mtk_rdma_config(struct mtk_ddp_comp *comp, unsigned int width,
 	writel(reg, comp->regs + DISP_REG_RDMA_FIFO_CON);
 }
 
+static void mtk_rdma_layer_config(struct mtk_ddp_comp *comp, unsigned int idx,
+				  struct mtk_plane_state *state)
+{
+	struct mtk_plane_pending_state *pending = &state->pending;
+	unsigned int addr = pending->addr;
+	unsigned int pitch = pending->pitch & 0xffff;
+
+	writel_relaxed(addr, comp->regs + DISP_RDMA_MEM_START_ADDR);
+	writel_relaxed(pitch, comp->regs + DISP_RDMA_MEM_SRC_PITCH);
+	writel(RDMA_MEM_GMC, comp->regs + DISP_RDMA_MEM_GMC_SETTING_0);
+	rdma_update_bits(comp, DISP_REG_RDMA_GLOBAL_CON,
+			 RDMA_MODE_MEMORY, RDMA_MODE_MEMORY);
+}
+
 static const struct mtk_ddp_comp_funcs mtk_disp_rdma_funcs = {
 	.config = mtk_rdma_config,
 	.start = mtk_rdma_start,
 	.stop = mtk_rdma_stop,
 	.enable_vblank = mtk_rdma_enable_vblank,
 	.disable_vblank = mtk_rdma_disable_vblank,
+	.layer_config = mtk_rdma_layer_config,
 };
 
 static int mtk_disp_rdma_bind(struct device *dev, struct device *master,
-- 
2.12.5.2.gbdf23ab


  parent reply	other threads:[~2018-08-09  2:16 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-09  2:15 [PATCH v4 00/14] Add RDMA memory mode support for mediatek SOC MT2712 Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 01/14] drm/mediatek: add connection from RDMA0 to DPI1 Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 02/14] drm/mediatek: add connection from RDMA0 to DSI1 Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 03/14] drm/mediatek: add connection from RDMA1 to DSI0 Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 04/14] drm/mediatek: add connection from RDMA2 " Stu Hsieh
2018-08-09  2:15 ` Stu Hsieh [this message]
2018-08-09  2:15 ` [PATCH v4 06/14] drm/mediatek: add RGB color format support for RDMA Stu Hsieh
2018-08-09  2:36   ` CK Hu
2018-08-09  2:15 ` [PATCH v4 07/14] drm/mediatek: add the comment about color format setting for OVL Stu Hsieh
2018-08-09  2:37   ` CK Hu
2018-08-09  2:15 ` [PATCH v4 08/14] drm/mediatek: add YUYV/UYVY color format support for RDMA Stu Hsieh
2018-08-09  2:41   ` CK Hu
2018-08-09  2:15 ` [PATCH v4 09/14] drm/mediatek: add function to get layer number for component Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 10/14] drm/mediatek: add function to return OVL layer number Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 11/14] drm/mediatek: add function to return RDMA " Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 12/14] drm/mediatek: use layer_nr function to get layer number to init plane Stu Hsieh
2018-08-09  2:46   ` CK Hu
2018-08-09  2:15 ` [PATCH v4 13/14] drm/mediatek: update some variable name from ovl to comp Stu Hsieh
2018-08-09  2:15 ` [PATCH v4 14/14] drm/mediatek: fix connection from RDMA2 to DSI1 Stu Hsieh
2018-08-15  1:55 ` [PATCH v4 00/14] Add RDMA memory mode support for mediatek SOC MT2712 CK Hu

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=1533780949-30141-6-git-send-email-stu.hsieh@mediatek.com \
    --to=stu.hsieh@mediatek.com \
    --cc=airlied@linux.ie \
    --cc=ck.hu@mediatek.com \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=p.zabel@pengutronix.de \
    --cc=srv_heupstream@mediatek.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®