From patchwork Wed May 20 08:27:15 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 209758 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 92F64C433DF for ; Wed, 20 May 2020 08:28:35 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6E620207ED for ; Wed, 20 May 2020 08:28:35 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="iixtKacq" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726875AbgETI1y (ORCPT ); Wed, 20 May 2020 04:27:54 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56020 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726861AbgETI1u (ORCPT ); Wed, 20 May 2020 04:27:50 -0400 Received: from mail-pg1-x541.google.com (mail-pg1-x541.google.com [IPv6:2607:f8b0:4864:20::541]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0E93EC061A0F for ; Wed, 20 May 2020 01:27:50 -0700 (PDT) Received: by mail-pg1-x541.google.com with SMTP id c75so1103498pga.3 for ; Wed, 20 May 2020 01:27:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UvKiXyFjGQL6mEGXl9GNs9QeAqkLMuJ/VOPN9uDsdJo=; b=iixtKacqsnQStdJUEOJFhNx/FPZOdSj6V/szkRCGgRK7ASPIyBINBzNWt7jTeLSso8 SGedK+SpYlg+FfLCbDix4ZHrPemu8g9LVQngvIWbwk8xuts2Q3BpEqFRFVPIzWINuuuU CjUXkLY8LclUNIryhznaMPozlcgTrW0TNlfR4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UvKiXyFjGQL6mEGXl9GNs9QeAqkLMuJ/VOPN9uDsdJo=; b=nRonTxVxYrzPnbg+GoPrDpNcqBYt43Qik62UMRnYkHHiDHDkykl126D9vVEi4oWz7g IEN3sMWzb9ceftU6jeJpcJs/7T3eoByZ9jNyNDyxUUGi6uMhSEqFC3i3xb4rOFzCAeae ss0BBRhK5hu6TVzRxsKEnlW9c9jU0nQ0Hg6zoV/8XI0HIKI/yi9XxfzsTQdo3ZTxoyzi pQwae4rbnThExBGNdVGyF4aWuhGee+LwLd55s+UyGCHOdz/LcLSJqoW91bqFaucQxvAJ 7sOVrXqbpxnIx3mr0seuHDSFWw5b9cYo3Ym+j4UAYetHqFm3AYg48z5ofrMtm6Wx0jHM fhHA== X-Gm-Message-State: AOAM533/RVsz+9vE7zpEQfuh7hVebZ2PLFOLc1AvUAv9ML+6EFnbaXTd 2HSUpotEUWQsB9W5IB4GjgGb9g== X-Google-Smtp-Source: ABdhPJyrtKtrZGLTf2NgWTg5QvHLzXCA5ZS/vuHMMBoJybDb4z/UsgxvAILhqOr+sGnEgH0crYUt4A== X-Received: by 2002:a62:3785:: with SMTP id e127mr3251167pfa.210.1589963269462; Wed, 20 May 2020 01:27:49 -0700 (PDT) Received: from acourbot.tok.corp.google.com ([2401:fa00:8f:203:93d9:de4d:e834:3086]) by smtp.gmail.com with ESMTPSA id gg8sm1447775pjb.39.2020.05.20.01.27.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 01:27:48 -0700 (PDT) From: Alexandre Courbot To: Tiffany Lin , Andrew-CT Chen , Rui Wang , Yunfei Dong , Pi-Hsun Shih , Maoguang Meng Cc: linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Alexandre Courbot Subject: [PATCH 02/10] media: mtk-vcodec: add SCP firmware ops Date: Wed, 20 May 2020 17:27:15 +0900 Message-Id: <20200520082723.96136-3-acourbot@chromium.org> X-Mailer: git-send-email 2.26.2.761.g0e0b3e54be-goog In-Reply-To: <20200520082723.96136-1-acourbot@chromium.org> References: <20200520082723.96136-1-acourbot@chromium.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From: Yunfei Dong Add support for communicating with the SCP firmware, which will be used by MT8183. Signed-off-by: Yunfei Dong [acourbot: refactor, cleanup and split] Co-developed-by: Alexandre Courbot Signed-off-by: Alexandre Courbot --- drivers/media/platform/Kconfig | 2 + .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c | 3 + .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 3 + .../media/platform/mtk-vcodec/mtk_vcodec_fw.c | 56 +++++++++++++++++++ .../media/platform/mtk-vcodec/mtk_vcodec_fw.h | 2 + 5 files changed, 66 insertions(+) diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig index c57ee78fa99d..9b11dd6b1ef3 100644 --- a/drivers/media/platform/Kconfig +++ b/drivers/media/platform/Kconfig @@ -256,6 +256,8 @@ config VIDEO_MEDIATEK_VCODEC select VIDEOBUF2_DMA_CONTIG select V4L2_MEM2MEM_DEV select VIDEO_MEDIATEK_VPU + select MTK_SCP + default n help Mediatek video codec driver provides HW capability to encode and decode in a range of video formats diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c index 4f07a5fcce7f..5b5765b98e57 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c @@ -225,6 +225,9 @@ static int mtk_vcodec_probe(struct platform_device *pdev) if (!of_property_read_u32(pdev->dev.of_node, "mediatek,vpu", &rproc_phandle)) { fw_type = VPU; + } else if (!of_property_read_u32(pdev->dev.of_node, "mediatek,scp", + &rproc_phandle)) { + fw_type = SCP; } else { mtk_v4l2_err("Could not get vdec IPI device"); return -ENODEV; diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c index 4340ea10afd0..42530cd01a30 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c @@ -233,6 +233,9 @@ static int mtk_vcodec_probe(struct platform_device *pdev) if (!of_property_read_u32(pdev->dev.of_node, "mediatek,vpu", &rproc_phandle)) { fw_type = VPU; + } else if (!of_property_read_u32(pdev->dev.of_node, "mediatek,scp", + &rproc_phandle)) { + fw_type = SCP; } else { mtk_v4l2_err("Could not get venc IPI device"); return -ENODEV; diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c index 967bb100a990..f2a62ea62fc6 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.c @@ -19,6 +19,7 @@ struct mtk_vcodec_fw { enum mtk_vcodec_fw_type type; const struct mtk_vcodec_fw_ops *ops; struct platform_device *pdev; + struct mtk_scp *scp; }; static int mtk_vcodec_vpu_load_firmware(struct mtk_vcodec_fw *fw) @@ -71,6 +72,48 @@ static const struct mtk_vcodec_fw_ops mtk_vcodec_vpu_msg = { .ipi_send = mtk_vcodec_vpu_ipi_send, }; +static int mtk_vcodec_scp_load_firmware(struct mtk_vcodec_fw *fw) +{ + return rproc_boot(scp_get_rproc(fw->scp)); +} + +static unsigned int mtk_vcodec_scp_get_vdec_capa(struct mtk_vcodec_fw *fw) +{ + return scp_get_vdec_hw_capa(fw->scp); +} + +static unsigned int mtk_vcodec_scp_get_venc_capa(struct mtk_vcodec_fw *fw) +{ + return scp_get_venc_hw_capa(fw->scp); +} + +static void *mtk_vcodec_vpu_scp_dm_addr(struct mtk_vcodec_fw *fw, + u32 dtcm_dmem_addr) +{ + return scp_mapping_dm_addr(fw->scp, dtcm_dmem_addr); +} + +static int mtk_vcodec_scp_set_ipi_register(struct mtk_vcodec_fw *fw, int id, + mtk_vcodec_ipi_handler handler, const char *name, void *priv) +{ + return scp_ipi_register(fw->scp, id, handler, priv); +} + +static int mtk_vcodec_scp_ipi_send(struct mtk_vcodec_fw *fw, int id, void *buf, + unsigned int len, unsigned int wait) +{ + return scp_ipi_send(fw->scp, id, buf, len, wait); +} + +static const struct mtk_vcodec_fw_ops mtk_vcodec_rproc_msg = { + .load_firmware = mtk_vcodec_scp_load_firmware, + .get_vdec_capa = mtk_vcodec_scp_get_vdec_capa, + .get_venc_capa = mtk_vcodec_scp_get_venc_capa, + .map_dm_addr = mtk_vcodec_vpu_scp_dm_addr, + .ipi_register = mtk_vcodec_scp_set_ipi_register, + .ipi_send = mtk_vcodec_scp_ipi_send, +}; + static void mtk_vcodec_reset_handler(void *priv) { struct mtk_vcodec_dev *dev = priv; @@ -94,6 +137,7 @@ struct mtk_vcodec_fw *mtk_vcodec_fw_select(struct mtk_vcodec_dev *dev, const struct mtk_vcodec_fw_ops *ops; struct mtk_vcodec_fw *fw; struct platform_device *fw_pdev = NULL; + struct mtk_scp *scp = NULL; switch (type) { case VPU: @@ -106,6 +150,14 @@ struct mtk_vcodec_fw *mtk_vcodec_fw_select(struct mtk_vcodec_dev *dev, vpu_wdt_reg_handler(fw_pdev, mtk_vcodec_reset_handler, dev, rst_id); break; + case SCP: + ops = &mtk_vcodec_rproc_msg; + scp = scp_get(dev->plat_dev); + if (!scp) { + mtk_v4l2_err("could not get vdec scp handle"); + return ERR_PTR(-EPROBE_DEFER); + } + break; default: mtk_v4l2_err("invalid vcodec fw type"); return ERR_PTR(-EINVAL); @@ -118,6 +170,7 @@ struct mtk_vcodec_fw *mtk_vcodec_fw_select(struct mtk_vcodec_dev *dev, fw->type = type; fw->ops = ops; fw->pdev = fw_pdev; + fw->scp = scp; return fw; } @@ -129,6 +182,9 @@ void mtk_vcodec_fw_release(struct mtk_vcodec_fw *fw) case VPU: put_device(&fw->pdev->dev); break; + case SCP: + scp_put(fw->scp); + break; } } EXPORT_SYMBOL_GPL(mtk_vcodec_fw_release); diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h index ff25b0c19f74..ced1b6a10e07 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_fw.h @@ -4,6 +4,7 @@ #define _MTK_VCODEC_FW_H_ #include +#include #include "../mtk-vpu/mtk_vpu.h" @@ -11,6 +12,7 @@ struct mtk_vcodec_dev; enum mtk_vcodec_fw_type { VPU, + SCP, }; struct mtk_vcodec_fw; From patchwork Wed May 20 08:27:17 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 209762 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4780FC433E1 for ; Wed, 20 May 2020 08:27:59 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 217AB207ED for ; Wed, 20 May 2020 08:27:59 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="DMhNCLfE" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726936AbgETI15 (ORCPT ); Wed, 20 May 2020 04:27:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56044 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726925AbgETI14 (ORCPT ); Wed, 20 May 2020 04:27:56 -0400 Received: from mail-pl1-x642.google.com (mail-pl1-x642.google.com [IPv6:2607:f8b0:4864:20::642]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 38F51C061A0F for ; Wed, 20 May 2020 01:27:56 -0700 (PDT) Received: by mail-pl1-x642.google.com with SMTP id u22so1011156plq.12 for ; Wed, 20 May 2020 01:27:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y+8eNewBsXZJc60V3E/q/FW32E3cUEWT1BvYpjSBhUo=; b=DMhNCLfEDrDLgMLwU76zAF6e3ckXRQWQQ+5A5ODxvR04JcuL+CpFAL0NrMojrJBYTI BMxZsVlSVH9/v8XTcTr47ldDCI1sg6onhP5Fxl9iChzd6cXtMSQfXwR+9vLVipThCuJn Emes0RJhDfeQrnJzzNAjiDFEFJWQxqPFFxr5I= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y+8eNewBsXZJc60V3E/q/FW32E3cUEWT1BvYpjSBhUo=; b=VXKUwFjEs9jLOMhq/CTZG/pgluRfmAjfWt6olB13PHP06Ol/PXX+3tK6F4a4b3mebK HJTGEQ9WQZTLBV1smvfeHpTP7pEKy99W49VCQjEvODVnmajV1mc/gF1a/3sBe2e9huoz LiXGdV+alfHwSKtp3JT3tD3//DquFZM8jMARruoyVc6fRX+abQ/Lq6IntUhcV9D3hlCN Vwc7BffGaeepzC5WkD4tl1qIDS4O7DDzlChJCy+Hgwa0sFwVFLd5PNSelZrA9SesstYi QcFEFNhSDrguUzcamAdu5i4tP0bt8AqnUTBcibrGUTvG+a8MH7+xJPb/zmegRmlgZ4dP GvMA== X-Gm-Message-State: AOAM532X+94m+QiBz+YatdGwW7Sk3/iOFcw8Nij5CbrsYA9nrIKDpe2+ LR4ZW09RyViSL+7pmuqYHRhNSg== X-Google-Smtp-Source: ABdhPJwmEIh+IVpXwAkL9L48f5LyrS5lTD2flWdhA+4+MshBuJ7AdRa5G6VqU1WNUSyN9onU36enBg== X-Received: by 2002:a17:90b:80f:: with SMTP id bk15mr4108160pjb.51.1589963275724; Wed, 20 May 2020 01:27:55 -0700 (PDT) Received: from acourbot.tok.corp.google.com ([2401:fa00:8f:203:93d9:de4d:e834:3086]) by smtp.gmail.com with ESMTPSA id gg8sm1447775pjb.39.2020.05.20.01.27.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 01:27:55 -0700 (PDT) From: Alexandre Courbot To: Tiffany Lin , Andrew-CT Chen , Rui Wang , Yunfei Dong , Pi-Hsun Shih , Maoguang Meng Cc: linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Alexandre Courbot Subject: [PATCH 04/10] media: mtk-vcodec: venc: handle firmware version field Date: Wed, 20 May 2020 17:27:17 +0900 Message-Id: <20200520082723.96136-5-acourbot@chromium.org> X-Mailer: git-send-email 2.26.2.761.g0e0b3e54be-goog In-Reply-To: <20200520082723.96136-1-acourbot@chromium.org> References: <20200520082723.96136-1-acourbot@chromium.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Firmwares for encoders newer than MT8173 will include an ABI version number in their initialization ack message. Add the capacity to manage it and make initialization fail if the firmware ABI is of a version that we don't support. For MT8173, this ABI version field is reserved and thus undefined ; thus ignore it on this chip. There should only be one firmware version available for it anyway. Signed-off-by: Alexandre Courbot --- .../platform/mtk-vcodec/mtk_vcodec_drv.h | 8 ++++++ .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 1 + .../media/platform/mtk-vcodec/venc_ipi_msg.h | 9 ++++--- .../media/platform/mtk-vcodec/venc_vpu_if.c | 27 ++++++++++++++++--- 4 files changed, 38 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h index 45c8adfc6a0c..e7b155e7432e 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h @@ -300,13 +300,21 @@ struct mtk_vcodec_ctx { }; +enum mtk_chip { + MTK_MT8173, +}; + /** * struct mtk_vcodec_enc_pdata - compatible data for each IC * + * @chip: chip this encoder is compatible with + * * @uses_ext: whether the encoder uses the extended firmware messaging format * @has_lt_irq: whether the encoder uses the LT irq */ struct mtk_vcodec_enc_pdata { + enum mtk_chip chip; + bool uses_ext; bool has_lt_irq; }; diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c index 922bc8883811..c1365209263e 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c @@ -378,6 +378,7 @@ static int mtk_vcodec_probe(struct platform_device *pdev) } static const struct mtk_vcodec_enc_pdata mt8173_pdata = { + .chip = MTK_MT8173, .has_lt_irq = true, }; diff --git a/drivers/media/platform/mtk-vcodec/venc_ipi_msg.h b/drivers/media/platform/mtk-vcodec/venc_ipi_msg.h index 4cafbf92d9cd..31a3c76f7d0d 100644 --- a/drivers/media/platform/mtk-vcodec/venc_ipi_msg.h +++ b/drivers/media/platform/mtk-vcodec/venc_ipi_msg.h @@ -131,16 +131,17 @@ struct venc_vpu_ipi_msg_common { * @venc_inst: AP encoder instance (struct venc_vp8_inst/venc_h264_inst *) * @vpu_inst_addr: VPU encoder instance addr * (struct venc_vp8_vsi/venc_h264_vsi *) - * @reserved: reserved for future use. vpu is running in 32bit. Without - * this reserved field, if kernel run in 64bit. this struct size - * will be different between kernel and vpu + * @venc_abi_version: ABI version of the firmware. Kernel can use it to + * ensure that it is compatible with the firmware. + * For MT8173 the value of this field is undefined and + * should not be used. */ struct venc_vpu_ipi_msg_init { uint32_t msg_id; uint32_t status; uint64_t venc_inst; uint32_t vpu_inst_addr; - uint32_t reserved; + uint32_t venc_abi_version; }; /** diff --git a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c index 6c77bf025172..472503701003 100644 --- a/drivers/media/platform/mtk-vcodec/venc_vpu_if.c +++ b/drivers/media/platform/mtk-vcodec/venc_vpu_if.c @@ -4,6 +4,7 @@ * Author: PoChun Lin */ +#include "mtk_vcodec_drv.h" #include "mtk_vcodec_fw.h" #include "venc_ipi_msg.h" #include "venc_vpu_if.h" @@ -15,6 +16,23 @@ static void handle_enc_init_msg(struct venc_vpu_inst *vpu, const void *data) vpu->inst_addr = msg->vpu_inst_addr; vpu->vsi = mtk_vcodec_fw_map_dm_addr(vpu->ctx->dev->fw_handler, msg->vpu_inst_addr); + + /* Firmware version field value is unspecified on MT8173. */ + if (vpu->ctx->dev->venc_pdata->chip == MTK_MT8173) + return; + + /* Check firmware version. */ + mtk_vcodec_debug(vpu, "firmware version: 0x%x\n", + msg->venc_abi_version); + switch (msg->venc_abi_version) { + case 1: + break; + default: + mtk_vcodec_err(vpu, "unhandled firmware version 0x%x\n", + msg->venc_abi_version); + vpu->failure = 1; + break; + } } static void handle_enc_encode_msg(struct venc_vpu_inst *vpu, const void *data) @@ -35,6 +53,11 @@ static void vpu_enc_ipi_handler(void *data, unsigned int len, void *priv) mtk_vcodec_debug(vpu, "msg_id %x inst %p status %d", msg->msg_id, vpu, msg->status); + vpu->signaled = 1; + vpu->failure = (msg->status != VENC_IPI_MSG_STATUS_OK); + if (vpu->failure) + goto failure; + switch (msg->msg_id) { case VPU_IPIMSG_ENC_INIT_DONE: handle_enc_init_msg(vpu, data); @@ -51,9 +74,7 @@ static void vpu_enc_ipi_handler(void *data, unsigned int len, void *priv) break; } - vpu->signaled = 1; - vpu->failure = (msg->status != VENC_IPI_MSG_STATUS_OK); - +failure: mtk_vcodec_debug_leave(vpu); } From patchwork Wed May 20 08:27:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 209759 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 80A51C433E1 for ; Wed, 20 May 2020 08:28:26 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5FC8E20825 for ; Wed, 20 May 2020 08:28:26 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="mb0vm7TH" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726954AbgETI2A (ORCPT ); Wed, 20 May 2020 04:28:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56052 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726946AbgETI17 (ORCPT ); Wed, 20 May 2020 04:27:59 -0400 Received: from mail-pj1-x1041.google.com (mail-pj1-x1041.google.com [IPv6:2607:f8b0:4864:20::1041]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73E46C061A0E for ; Wed, 20 May 2020 01:27:59 -0700 (PDT) Received: by mail-pj1-x1041.google.com with SMTP id k7so895866pjs.5 for ; Wed, 20 May 2020 01:27:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Ac7V/sUfRNLpfMuOaTpdWcguR6PzK7tIy5O2XB2td3o=; b=mb0vm7THmbMkGIlT+BNV0Bdzt1EA5w/RCS6CHt4KC/+sQTXBdtcjiA3Q42mDlecffi xp5pybxLQn//gWp2qvkUNFotnb/QzwLoYdwkA5Bjiaxs34eBcCJ8mulwRWyIeDBGgsMf lS6Lm/MXj5NCeJTXxjiEWta1ylKRXrQw2m/CI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Ac7V/sUfRNLpfMuOaTpdWcguR6PzK7tIy5O2XB2td3o=; b=Rvn93ZElRSDtLrqji+icQc509Vx3Vf1DR+VnIOd1wcGzp2W/vrDeamYZdK8pomReAP b2Dpp6u3qOs/pm6Os2EVnnkuGlv6m+hMCyOWi9Q9faAO8pXHxKDlRKRP8d4Xi+ZaZKuw CQl2E+pdZivL+is+e/7g/3icUqd0d1w+gspRA5AXrm1NCkX0F7QorC583BKLhU1QkTgp Lx/Ge/qBR2wd15VFHwuIahMrrqLfFT8PZU6Qg3UIdmkWnm+rxc4aVakA8iKPGCobx2vA f6qDiW299g+L8mx3xSg7Z4BmNKvvQHVJYBdmyTxGLMklzzJkdxQhPJTCHdKqrVMCdnBc QHRw== X-Gm-Message-State: AOAM531LJyr4zXqpzRm4SY+Q0ah1l8QBikewVuujMT35vkClEUIIW0BC 0+Q37m7YNT+FoupXmOoylWgtXg== X-Google-Smtp-Source: ABdhPJzu7eB23OTwyBGbvS8Qm1mtpFj6KgSq8osEOzgiMFnzgKjLmUcoUhObMrSrUqAHbCvzHIG19A== X-Received: by 2002:a17:90a:150:: with SMTP id z16mr4175297pje.37.1589963279012; Wed, 20 May 2020 01:27:59 -0700 (PDT) Received: from acourbot.tok.corp.google.com ([2401:fa00:8f:203:93d9:de4d:e834:3086]) by smtp.gmail.com with ESMTPSA id gg8sm1447775pjb.39.2020.05.20.01.27.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 01:27:58 -0700 (PDT) From: Alexandre Courbot To: Tiffany Lin , Andrew-CT Chen , Rui Wang , Yunfei Dong , Pi-Hsun Shih , Maoguang Meng Cc: linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Alexandre Courbot Subject: [PATCH 05/10] media: mtk-vcodec: venc: specify bitrate range per-chip Date: Wed, 20 May 2020 17:27:18 +0900 Message-Id: <20200520082723.96136-6-acourbot@chromium.org> X-Mailer: git-send-email 2.26.2.761.g0e0b3e54be-goog In-Reply-To: <20200520082723.96136-1-acourbot@chromium.org> References: <20200520082723.96136-1-acourbot@chromium.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org Different chips have different supported bitrate ranges. Move the min and max supported bitrates to the platform data. Signed-off-by: Alexandre Courbot --- drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h | 4 ++++ drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c | 3 ++- drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h index e7b155e7432e..b8f913de8d80 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h @@ -311,12 +311,16 @@ enum mtk_chip { * * @uses_ext: whether the encoder uses the extended firmware messaging format * @has_lt_irq: whether the encoder uses the LT irq + * @min_birate: minimum supported encoding bitrate + * @max_bitrate: maximum supported encoding bitrate */ struct mtk_vcodec_enc_pdata { enum mtk_chip chip; bool uses_ext; bool has_lt_irq; + unsigned long min_bitrate; + unsigned long max_bitrate; }; /** diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c index d469ff6464b2..50ba9da59153 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc.c @@ -1232,7 +1232,8 @@ int mtk_vcodec_enc_ctrls_setup(struct mtk_vcodec_ctx *ctx) v4l2_ctrl_handler_init(handler, MTK_MAX_CTRLS_HINT); v4l2_ctrl_new_std(handler, ops, V4L2_CID_MPEG_VIDEO_BITRATE, - 1, 4000000, 1, 4000000); + ctx->dev->venc_pdata->min_bitrate, + ctx->dev->venc_pdata->max_bitrate, 1, 4000000); v4l2_ctrl_new_std(handler, ops, V4L2_CID_MPEG_VIDEO_B_FRAMES, 0, 2, 1, 0); v4l2_ctrl_new_std(handler, ops, V4L2_CID_MPEG_VIDEO_FRAME_RC_ENABLE, diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c index c1365209263e..221fa0303075 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c @@ -380,6 +380,8 @@ static int mtk_vcodec_probe(struct platform_device *pdev) static const struct mtk_vcodec_enc_pdata mt8173_pdata = { .chip = MTK_MT8173, .has_lt_irq = true, + .min_bitrate = 1, + .max_bitrate = 4000000, }; static const struct of_device_id mtk_vcodec_enc_match[] = { From patchwork Wed May 20 08:27:21 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 209761 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B9F5EC433E1 for ; Wed, 20 May 2020 08:28:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 9935F206C3 for ; Wed, 20 May 2020 08:28:11 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="C93DKS4x" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727020AbgETI2K (ORCPT ); Wed, 20 May 2020 04:28:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56092 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727017AbgETI2J (ORCPT ); Wed, 20 May 2020 04:28:09 -0400 Received: from mail-pj1-x1042.google.com (mail-pj1-x1042.google.com [IPv6:2607:f8b0:4864:20::1042]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2E708C061A0F for ; Wed, 20 May 2020 01:28:09 -0700 (PDT) Received: by mail-pj1-x1042.google.com with SMTP id t40so913429pjb.3 for ; Wed, 20 May 2020 01:28:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=7r9YYLSengfvIHUlMZpd1/OKiqgkBJxQNdhHXmT2kHQ=; b=C93DKS4xFKdMVXRIcDg5fcDM2zqHijY2EhSpnpYZsnMbYay2ejfBUKzqodhrnh3THR sC7lFT7pRwyack7HULavoEH9E7LXK/W8VCGIzA9e0FKPV0+P/CX239QSrjV0E+YjHP5B RghgWtPmBt2PrecXJNvZntTPB+L80s/MQ2gUQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=7r9YYLSengfvIHUlMZpd1/OKiqgkBJxQNdhHXmT2kHQ=; b=Vn404Tj4MKDV1zwMOftsPqpmER7rbcq0h/f4A605heSIg2XP5y+yn7P/YqvJXm9U8Z RlYGhYAd2DZHXGPK9Xwy5DS9XAVqh5/PQoG6Q57OwzWpMfQaU4zXUyK7U481ZviAp+sL s+Y+k/kTwlUX9kLiJVST7+OQNULFffafYwKbGb1kZsbc3P/JgKNxk8UvwY77EhtwvGfc U8u5Gq6Xa4VHK1MJxY7duWVOQR/OHcjL916wm7Hmw68Pe/5xCS80JBakxmlGKQCdhl9i UwGnuRNh7U1AcslQFSGuCkcYUm4JFw87RVvtUaVVL8/CvcVp7ot695U8RbMpt8rypGev 5YQQ== X-Gm-Message-State: AOAM531Qrle76VzFZmCyqQo4ykBnuugHa25YMS/ojzCJmxp6mDjlIJxq XUSZ2MeyLa/wPDGnHhJfIH59sg== X-Google-Smtp-Source: ABdhPJwK6gNDvdtF1BxVTkUj1Iwdy0j31hahJ+SecDW8ZT0OXwTdw7Ix5QWKcjBtqKtbFMdy09WdPA== X-Received: by 2002:a17:902:9a46:: with SMTP id x6mr3402053plv.52.1589963288729; Wed, 20 May 2020 01:28:08 -0700 (PDT) Received: from acourbot.tok.corp.google.com ([2401:fa00:8f:203:93d9:de4d:e834:3086]) by smtp.gmail.com with ESMTPSA id gg8sm1447775pjb.39.2020.05.20.01.28.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 01:28:07 -0700 (PDT) From: Alexandre Courbot To: Tiffany Lin , Andrew-CT Chen , Rui Wang , Yunfei Dong , Pi-Hsun Shih , Maoguang Meng Cc: linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Alexandre Courbot Subject: [PATCH 08/10] media: mtk-vcodec: add support for MT8183 encoder Date: Wed, 20 May 2020 17:27:21 +0900 Message-Id: <20200520082723.96136-9-acourbot@chromium.org> X-Mailer: git-send-email 2.26.2.761.g0e0b3e54be-goog In-Reply-To: <20200520082723.96136-1-acourbot@chromium.org> References: <20200520082723.96136-1-acourbot@chromium.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org From: Yunfei Dong Now that all the supporting blocks are present, enable encoder for MT8183. Signed-off-by: Yunfei Dong [acourbot: refactor, cleanup and split] Co-developed-by: Alexandre Courbot Signed-off-by: Alexandre Courbot --- .../platform/mtk-vcodec/mtk_vcodec_drv.h | 1 + .../platform/mtk-vcodec/mtk_vcodec_enc_drv.c | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h index 59b4b750666b..a271611750ad 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_drv.h @@ -302,6 +302,7 @@ struct mtk_vcodec_ctx { enum mtk_chip { MTK_MT8173, + MTK_MT8183, }; /** diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c index c8a4b85a81c4..b8fe408dd6c7 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_enc_drv.c @@ -62,6 +62,14 @@ static const struct mtk_video_fmt mtk_video_formats_capture_mt8173[] = { }, }; +static const struct mtk_video_fmt mtk_video_formats_capture_mt8183[] = { + { + .fourcc = V4L2_PIX_FMT_H264, + .type = MTK_FMT_ENC, + .num_planes = 1, + }, +}; + /* Wake up context wait_queue */ static void wake_up_ctx(struct mtk_vcodec_ctx *ctx, unsigned int reason) { @@ -424,8 +432,22 @@ static const struct mtk_vcodec_enc_pdata mt8173_pdata = { .max_bitrate = 4000000, }; +static const struct mtk_vcodec_enc_pdata mt8183_pdata = { + .chip = MTK_MT8183, + .has_lt_irq = false, + .uses_ext = true, + .capture_formats = mtk_video_formats_capture_mt8183, + .num_capture_formats = ARRAY_SIZE(mtk_video_formats_capture_mt8183), + /* MT8183 supports the same output formats as MT8173 */ + .output_formats = mtk_video_formats_output_mt8173, + .num_output_formats = ARRAY_SIZE(mtk_video_formats_output_mt8173), + .min_bitrate = 64, + .max_bitrate = 40000000, +}; + static const struct of_device_id mtk_vcodec_enc_match[] = { {.compatible = "mediatek,mt8173-vcodec-enc", .data = &mt8173_pdata}, + {.compatible = "mediatek,mt8183-vcodec-enc", .data = &mt8183_pdata}, {}, }; MODULE_DEVICE_TABLE(of, mtk_vcodec_enc_match); From patchwork Wed May 20 08:27:22 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Courbot X-Patchwork-Id: 209760 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.9 required=3.0 tests=DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH, MAILING_LIST_MULTI, SIGNED_OFF_BY, SPF_HELO_NONE, SPF_PASS, URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59CDAC433E0 for ; Wed, 20 May 2020 08:28:14 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 36AB720825 for ; Wed, 20 May 2020 08:28:14 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=chromium.org header.i=@chromium.org header.b="kI33MLAo" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727040AbgETI2N (ORCPT ); Wed, 20 May 2020 04:28:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56104 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727030AbgETI2M (ORCPT ); Wed, 20 May 2020 04:28:12 -0400 Received: from mail-pl1-x641.google.com (mail-pl1-x641.google.com [IPv6:2607:f8b0:4864:20::641]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7A960C061A0F for ; Wed, 20 May 2020 01:28:12 -0700 (PDT) Received: by mail-pl1-x641.google.com with SMTP id t7so1035093plr.0 for ; Wed, 20 May 2020 01:28:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=ll8NxVtMtfVOyEZFFQDfClPq5aIFoMbY7TDtR4kV3zQ=; b=kI33MLAoCd0TxRti1KqGfffMmFCe7Qu+9zJ9GzgvLmIhvWroMh2PK76BMUA9xvXNN3 BeTyj3uDBE9zEEC9mrGi7btmBWv1HKDYmi4AFLoegQbxFbzAiNC0xk//stOr6yOaHvmJ RFZ60+RwMPuvjP3Y2vhaAM16aSKaOTZXVNebc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=ll8NxVtMtfVOyEZFFQDfClPq5aIFoMbY7TDtR4kV3zQ=; b=C/mvW1OUVH6BXSoyYBtBYhEjVDNIqRB7Q8EwZzuXzxEuhRf43zFQGWYkQnNlhcC9Oz JsR/IhNqhleSBeBy4pV7Oa8/WypoAI/Z1dkBFCO4K9AqGlGzzt4Qv0mDoTQ72xbyfdvM hecvqoJOve3Rd9CY5B8RwjfWI93LdNBIa8WQpFmhrzo3hbNxQU9fMMtvhf3LcwePdEJ3 jfGUMoQex9/UWx0ZOMQ1SwWE9Vho93POJGld5lLHmwJqO/4/X2WSZIhgplvoYFPyuPv/ FQaha6AINJ0NmLH1gSzKEftZMDb1WwcZgkIu7twfyjGppPm0esBIESYDmN5XZ89sLmR7 0/Bg== X-Gm-Message-State: AOAM533W3ohKBuvanZZKO3lSuG3dRmGnQaRftwN7kOX/MCdjsQxpNdTU HgelJPR+qUTVfeoecL25dPndYA== X-Google-Smtp-Source: ABdhPJyLQteFuXuVc69SpcsEFfMjArlHWm8lgkG4Ws0al46mciJZZn5XJ5qdF3eWNGJdzMi89qu6gw== X-Received: by 2002:a17:902:bf43:: with SMTP id u3mr3434302pls.240.1589963292039; Wed, 20 May 2020 01:28:12 -0700 (PDT) Received: from acourbot.tok.corp.google.com ([2401:fa00:8f:203:93d9:de4d:e834:3086]) by smtp.gmail.com with ESMTPSA id gg8sm1447775pjb.39.2020.05.20.01.28.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 May 2020 01:28:11 -0700 (PDT) From: Alexandre Courbot To: Tiffany Lin , Andrew-CT Chen , Rui Wang , Yunfei Dong , Pi-Hsun Shih , Maoguang Meng Cc: linux-media@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-kernel@vger.kernel.org, Alexandre Courbot Subject: [PATCH 09/10] media: dt-bindings: mtk-vcodec: specify SCP node Date: Wed, 20 May 2020 17:27:22 +0900 Message-Id: <20200520082723.96136-10-acourbot@chromium.org> X-Mailer: git-send-email 2.26.2.761.g0e0b3e54be-goog In-Reply-To: <20200520082723.96136-1-acourbot@chromium.org> References: <20200520082723.96136-1-acourbot@chromium.org> MIME-Version: 1.0 Sender: linux-media-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-media@vger.kernel.org The mediatek codecs can use either the VPU or the SCP as their interface to firmware. Reflect this in the DT bindings. Signed-off-by: Alexandre Courbot --- Documentation/devicetree/bindings/media/mediatek-vcodec.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/media/mediatek-vcodec.txt b/Documentation/devicetree/bindings/media/mediatek-vcodec.txt index b6b5dde6abd8..7aef0a4fe207 100644 --- a/Documentation/devicetree/bindings/media/mediatek-vcodec.txt +++ b/Documentation/devicetree/bindings/media/mediatek-vcodec.txt @@ -19,7 +19,9 @@ Required properties: - iommus : should point to the respective IOMMU block with master port as argument, see Documentation/devicetree/bindings/iommu/mediatek,iommu.txt for details. -- mediatek,vpu : the node of video processor unit +One of the two following nodes: +- mediatek,vpu : the node of the video processor unit, if using VPU. +- mediatek,scp : the noode of the SCP unit, if using SCP. Example: