Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp327676imm; Thu, 2 Aug 2018 20:13:54 -0700 (PDT) X-Google-Smtp-Source: AAOMgpfYI+/wRozqEk/4ECSMc0U0AVCIy+q6W186p3FTCfZ/LktGE+4dt7SQkj3XfGNcGUrq9yBy X-Received: by 2002:a17:902:4381:: with SMTP id j1-v6mr1865826pld.104.1533266034752; Thu, 02 Aug 2018 20:13:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533266034; cv=none; d=google.com; s=arc-20160816; b=NsEN2l4dmUMjBX2TYWMt3B76yozV/pdaX9vVnDKKW0FyeaWXn08oWMLyX5gOOMECI4 oqmSS53dbYWlbqcnCTX0GJ629Eh+df4vdmXRBrZulG6xpsncSXtzn8e/Klz09V1tlL1a u/Mbn3w8I/s6CRvDWwvPehFjcf66TwATYWquMTTEO0V+Z2MYaxylSQC1aTrVNHMK5ZmT A2VoP+WnCP+D+hNupyp8USCa4zsliXI+/lmXXN46oPpdxaOHCQtUxG1dJKbUBGST0TIk zC990clqhBEbYBvIPDdkqLSuVsDGHFRpM+dzaM/eWx1qfnIeTMHfeF9qsB/yNbOvHjnO UL4Q== 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=X8ZQIVl4UPqQd+ohkHHfh75ONiZRI+DH8GblYv/uXWw=; b=QrItNYJ8KplBrGlPW3Ge3rSxVYrt65wNQ+U5SrZs7En2l1MfwTkvr9409VdSRoQTow /w51jUpTrOWQdycKm5hUwJuLvuid1ugwnKAY0FsMsbheRUvX8hnt9qW4EnPtDOCObMNR vn7IaF3b81NgBpavGrseInLIBa2iAQgfXjVpukgsGqRgwr0oNjFGOuwJWPSV0v3Is5Hu 0uAzwYUgPqbZ/TATYd8y/3c1KbRe+KCcWHKJHYijs17E4/h0ClIsNbPLuytwzdzJY9KP OaFHwLGOVv3w4ZrvTL1dkl0lvO7CLMPo59zOlk+6U4icAnD2Btv/rNuZcOLSeTT2rN8/ Morw== 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 i3-v6si2727605plb.44.2018.08.02.20.13.40; Thu, 02 Aug 2018 20:13:54 -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 S1729867AbeHCFGf (ORCPT + 99 others); Fri, 3 Aug 2018 01:06:35 -0400 Received: from mailgw01.mediatek.com ([210.61.82.183]:10730 "EHLO mailgw01.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727171AbeHCFFg (ORCPT ); Fri, 3 Aug 2018 01:05:36 -0400 X-UUID: 719cd0b7a22347e0b0e31cc3391f060f-20180803 Received: from mtkcas07.mediatek.inc [(172.21.101.84)] by mailgw01.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 384554160; Fri, 03 Aug 2018 11:11:13 +0800 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs03n2.mediatek.inc (172.21.101.182) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Fri, 3 Aug 2018 11:11:11 +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; Fri, 3 Aug 2018 11:11:11 +0800 From: Stu Hsieh To: CK Hu , Philipp Zabel CC: David Airlie , Matthias Brugger , , , , , , Stu Hsieh Subject: [PATCH v2 05/15] drm/mediatek: add RDMA memory mode for crtc created Date: Fri, 3 Aug 2018 11:10:58 +0800 Message-ID: <1533265868-28110-6-git-send-email-stu.hsieh@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1533265868-28110-1-git-send-email-stu.hsieh@mediatek.com> References: <1533265868-28110-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 RDMA memory mode for crtc created For mt2712, the third ddp use RDMA engine to read data from dram. Therefore, when crtc created, crtc need to decide using OVL or RDMA by ddp to read data from dram. If this ddp use RDMA, the crtc should set this RDMA which in the crtc using memory mode. Signed-off-by: Stu Hsieh --- drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 5 ++++- drivers/gpu/drm/mediatek/mtk_drm_crtc.c | 8 ++++++++ drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c index 585943c81e1f..60851bb2dd63 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c @@ -150,6 +150,7 @@ static int mtk_disp_rdma_bind(struct device *dev, struct device *master, void *data) { struct mtk_disp_rdma *priv = dev_get_drvdata(dev); + struct mtk_ddp_comp *comp = &priv->ddp_comp; struct drm_device *drm_dev = data; int ret; @@ -160,8 +161,10 @@ static int mtk_disp_rdma_bind(struct device *dev, struct device *master, return ret; } - return 0; + comp->comp_mode = &priv->rdma_memory_mode; + + return 0; } static void mtk_disp_rdma_unbind(struct device *dev, struct device *master, diff --git a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c index 2d6aa150a9ff..4bf636e466f2 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_crtc.c +++ b/drivers/gpu/drm/mediatek/mtk_drm_crtc.c @@ -578,6 +578,7 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, enum mtk_ddp_comp_id comp_id = path[i]; struct mtk_ddp_comp *comp; struct device_node *node; + bool *rdma_memory_mode; node = priv->comp_node[comp_id]; comp = priv->ddp_comp[comp_id]; @@ -595,6 +596,13 @@ int mtk_drm_crtc_create(struct drm_device *drm_dev, goto unprepare; } + if (i == 0 && (comp_id == DDP_COMPONENT_RDMA0 || + comp_id == DDP_COMPONENT_RDMA1 || + comp_id == DDP_COMPONENT_RDMA2)) { + rdma_memory_mode = comp->comp_mode; + *rdma_memory_mode = true; + } + mtk_crtc->ddp_comp[i] = comp; } diff --git a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h index 7413ffeb3c9d..a1988ce15141 100644 --- a/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h +++ b/drivers/gpu/drm/mediatek/mtk_drm_ddp_comp.h @@ -93,6 +93,7 @@ struct mtk_ddp_comp { struct device *larb_dev; enum mtk_ddp_comp_id id; const struct mtk_ddp_comp_funcs *funcs; + void *comp_mode; }; static inline void mtk_ddp_comp_config(struct mtk_ddp_comp *comp, -- 2.12.5.2.gbdf23ab