Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3439451imm; Mon, 6 Aug 2018 04:59:56 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfu11dENUGX7cZdg2M6/uiiKZk1StOLyDmaARclzORPcDRmEYMUjMdidfX7EaSI3KoWwaRA X-Received: by 2002:a63:8548:: with SMTP id u69-v6mr14225532pgd.346.1533556796748; Mon, 06 Aug 2018 04:59:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533556796; cv=none; d=google.com; s=arc-20160816; b=QhjFSU8+oPHTEv0XyyOpZ/7e2HeFvFw7Shnp49TPaVih2ZV9/ShLyjU5ozudKqvRKj +Uq34/V6mMM3LjCOsFNfcM1uMnMVTybiBqpeoQESa+Heh/EAZry2FmgVPVbj9EI+g7rI lfIASwAGkrBMrYk7fhAKTHoq2Ir+OfRRSAeL1CsuMAyDQdTcsibntIjvqAqEHwFZPC58 rc9oj1purPl4aae32mGgN6JgEbAo0xQbm5Bb06sbIDIpwRYMINSh1qncTmwhg65EadQ8 2FfSzqk9qWda19CK8FALRSpoo2YcEokIvhX5OCj0L1Qi93jt05ep7zjSFBHV+ZKmA5Mf +Xtw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:arc-authentication-results; bh=//vFpBP/tnaGTjCzDYzx9KYY7jBIeWQmpHQv73QUaMs=; b=gAl5tsCW5SdshC+oIl6GSOy5klXaoMPnJthvWXsrMg4w9s62L8m4EeJwwesvaAeeLR VGKYAeFSLc4aULZGY40Tf64NtW2xjRIsErw3ljQ6EG7nPCEj3IAGOjHMUeMwf7DEg6FW X5A5AKX1tM2TpuGP7xQDUTN9fcx4E7KTXqjXiujMJ6gN0pWSqcI0qWZihxobUm8FvT+8 wGy1ijgGxcK/zYgLPZ9GjTcudgcxshg5wJiDupY8qyVd9Eu/3wbGYu/6X5a0SQE0d4at 49DppotBZ48EDFPsVTo9TsOmqAuL45D0LOMmlt9/YMQoE/upXniP36eMnh22orIZaUV0 kZFA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a5-v6si10897070pgd.400.2018.08.06.04.59.42; Mon, 06 Aug 2018 04:59:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732036AbeHFOHT (ORCPT + 99 others); Mon, 6 Aug 2018 10:07:19 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:3495 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1731574AbeHFOHS (ORCPT ); Mon, 6 Aug 2018 10:07:18 -0400 X-UUID: 04f7b53956ba48ff8506c242241048ee-20180806 Received: from mtkcas08.mediatek.inc [(172.21.101.126)] by mailgw02.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 600681818; Mon, 06 Aug 2018 19:58:27 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs01n1.mediatek.inc (172.21.101.68) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 6 Aug 2018 19:58:22 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1210.3 via Frontend Transport; Mon, 6 Aug 2018 19:58:23 +0800 From: Stu Hsieh To: CK Hu , Philipp Zabel CC: David Airlie , Matthias Brugger , , , , , , Stu Hsieh Subject: [PATCH v3 05/13] drm/mediatek: add memory mode and layer_config for RDMA Date: Mon, 6 Aug 2018 19:58:12 +0800 Message-ID: <1533556700-26525-6-git-send-email-stu.hsieh@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1533556700-26525-1-git-send-email-stu.hsieh@mediatek.com> References: <1533556700-26525-1-git-send-email-stu.hsieh@mediatek.com> MIME-Version: 1.0 Content-Type: text/plain X-MTK: N Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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