Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp1506827imm; Wed, 8 Aug 2018 19:19:16 -0700 (PDT) X-Google-Smtp-Source: AA+uWPyqisKSArwwWaAH0FlS5VqjrXv2I6h7SjmFC+V7JJn34PTevS0wKIMdY9W4nAf56lXNNFZG X-Received: by 2002:a63:df50:: with SMTP id h16-v6mr216482pgj.300.1533781156299; Wed, 08 Aug 2018 19:19:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1533781156; cv=none; d=google.com; s=arc-20160816; b=UCmiNl/I2XOH+zbU1ZUw9/TNytjuX7hL6GCN+dkGKWa1zPzRcwBk0I6aOBRR9S3MnU pqxStYCg6+dJOfd1EW33iT48GNFNXG+XuDOAc5m8+L4mWqc2h74nSGdiBngKDQhKUNxJ i2Y6R1f07Dl6jdxp7WabUxtvPA/w4lkFnxJpz0VkUXlwr66tgmnaqqJhtUNsQ/q4AKp3 7TDDwjQ2YNewXtHRb9Ilm29j+pdYCgkkaM/Fo+NUDZIjoNBWnzaxf2mT3Ow+So6hT0js AiJcCpf5WxEQHcJZcDzxiY/YCksfzh+4/82ejrHW/q2XZ3J7lCz3AQpCL5v+GM98FnVH cDrg== 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=AXg3Z9bgbtnf/1AF3SxaY2aC1COQa1OMgDmYjulrGko=; b=VuBQpZ/rCaE/leLzQo7pMfen49QnoPOmll6VJuqjcT9liUL3gVPC4kqOzWH2TLLVvm o7FJvh4ruPh6HglyvE6+tVB8JpXZcs8tEstFqtuak+gXLV5oCvXXcTH9AUc1W5dX1GYG YoQiVf5XiuksDgDC/fJP6Hqh2HKXbUOCWQ4XLKVUnaAU9rYgcRiLbzHYjYprhaibf5dK E+9GshA+oK7P86azNB9bAI5nHjOCJRfgsWHJcpu0wpfFu0vMfeXoGuyc+bRTiTcW1qhS la1j/w3Io5YjNLoBdof8hmRH5tLiWXzdXRoti3blWj/fwW28wtD3wwdnGYVs7SkReLeo 5Sww== 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 g1-v6si4453781plo.176.2018.08.08.19.19.02; Wed, 08 Aug 2018 19:19:16 -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 S1728665AbeHIEj2 (ORCPT + 99 others); Thu, 9 Aug 2018 00:39:28 -0400 Received: from mailgw02.mediatek.com ([210.61.82.184]:49144 "EHLO mailgw02.mediatek.com" rhost-flags-OK-FAIL-OK-FAIL) by vger.kernel.org with ESMTP id S1727197AbeHIEib (ORCPT ); Thu, 9 Aug 2018 00:38:31 -0400 X-UUID: 8e3d27850d9a4e59847611d37ab9ad83-20180809 Received: from mtkexhb01.mediatek.inc [(172.21.101.102)] by mailgw02.mediatek.com (envelope-from ) (mhqrelay.mediatek.com ESMTP with TLS) with ESMTP id 447028751; Thu, 09 Aug 2018 10:15:53 +0800 Received: from mtkcas07.mediatek.inc (172.21.101.84) by mtkmbs03n1.mediatek.inc (172.21.101.181) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Thu, 9 Aug 2018 10:15:52 +0800 Received: from mtksdccf07.mediatek.inc (172.21.84.99) by mtkcas07.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1210.3 via Frontend Transport; Thu, 9 Aug 2018 10:15:51 +0800 From: Stu Hsieh To: CK Hu , Philipp Zabel CC: David Airlie , Matthias Brugger , , , , , , Stu Hsieh Subject: [PATCH v4 08/14] drm/mediatek: add YUYV/UYVY color format support for RDMA Date: Thu, 9 Aug 2018 10:15:43 +0800 Message-ID: <1533780949-30141-9-git-send-email-stu.hsieh@mediatek.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1533780949-30141-1-git-send-email-stu.hsieh@mediatek.com> References: <1533780949-30141-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 YUYV/UYVY color format support for RDMA and transform matrix for YUYV/UYVY. Signed-off-by: Stu Hsieh --- drivers/gpu/drm/mediatek/mtk_disp_rdma.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c index 1f57f86c7910..8b015c2d4418 100644 --- a/drivers/gpu/drm/mediatek/mtk_disp_rdma.c +++ b/drivers/gpu/drm/mediatek/mtk_disp_rdma.c @@ -33,6 +33,8 @@ #define RDMA_ENGINE_EN BIT(0) #define RDMA_MODE_MEMORY BIT(1) #define DISP_REG_RDMA_SIZE_CON_0 0x0014 +#define RDMA_MATRIX_ENABLE BIT(17) +#define RDMA_MATRIX_INT_MTX_BT601_to_RGB (6 << 20) #define DISP_REG_RDMA_SIZE_CON_1 0x0018 #define DISP_REG_RDMA_TARGET_LINE 0x001c #define DISP_RDMA_MEM_CON 0x0024 @@ -46,12 +48,15 @@ #define RDMA_FIFO_SIZE(rdma) ((rdma)->data->fifo_size) #define DISP_RDMA_MEM_START_ADDR 0x0f00 +#define RDMA_MATRIX_INT_MTX_SEL GENMASK(23, 20) #define RDMA_MEM_GMC 0x40402020 #define MEM_MODE_INPUT_FORMAT_RGB565 0x0 #define MEM_MODE_INPUT_FORMAT_RGB888 (0x001 << 4) #define MEM_MODE_INPUT_FORMAT_RGBA8888 (0x002 << 4) #define MEM_MODE_INPUT_FORMAT_ARGB8888 (0x003 << 4) +#define MEM_MODE_INPUT_FORMAT_UYVY (0x004 << 4) +#define MEM_MODE_INPUT_FORMAT_YUYV (0x005 << 4) struct mtk_disp_rdma_data { unsigned int fifo_size; @@ -181,6 +186,10 @@ static unsigned int rdma_fmt_convert(struct mtk_disp_rdma *rdma, case DRM_FORMAT_XBGR8888: case DRM_FORMAT_ABGR8888: return MEM_MODE_INPUT_FORMAT_RGBA8888 | MEM_MODE_INPUT_SWAP; + case DRM_FORMAT_UYVY: + return MEM_MODE_INPUT_FORMAT_UYVY; + case DRM_FORMAT_YUYV: + return MEM_MODE_INPUT_FORMAT_YUYV; } } @@ -197,6 +206,17 @@ static void mtk_rdma_layer_config(struct mtk_ddp_comp *comp, unsigned int idx, con = rdma_fmt_convert(rdma, fmt); writel_relaxed(con, comp->regs + DISP_RDMA_MEM_CON); + if (fmt == DRM_FORMAT_UYVY || fmt == DRM_FORMAT_YUYV) { + rdma_update_bits(comp, DISP_REG_RDMA_SIZE_CON_0, + RDMA_MATRIX_ENABLE, RDMA_MATRIX_ENABLE); + rdma_update_bits(comp, DISP_REG_RDMA_SIZE_CON_0, + RDMA_MATRIX_INT_MTX_SEL, + RDMA_MATRIX_INT_MTX_BT601_to_RGB); + } else { + rdma_update_bits(comp, DISP_REG_RDMA_SIZE_CON_0, + RDMA_MATRIX_ENABLE, 0); + } + 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); -- 2.12.5.2.gbdf23ab