From: Tiffany Lin <tiffany.lin@mediatek.com>
To: Alexandre Courbot <acourbot@chromium.org>
Cc: Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
Maoguang Meng <maoguang.meng@mediatek.com>,
Rui Wang <gtk_ruiwang@mediatek.com>,
Yunfei Dong <yunfei.dong@mediatek.com>,
linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org,
Pi-Hsun Shih <pihsun@chromium.org>,
linux-media@vger.kernel.org
Subject: Re: [PATCH 02/10] media: mtk-vcodec: add SCP firmware ops
Date: Mon, 8 Jun 2020 18:47:14 +0800 [thread overview]
Message-ID: <1591613234.18435.8.camel@mtksdaap41> (raw)
In-Reply-To: <20200520082723.96136-3-acourbot@chromium.org>
On Wed, 2020-05-20 at 17:27 +0900, Alexandre Courbot wrote:
> From: Yunfei Dong <yunfei.dong@mediatek.com>
>
> Add support for communicating with the SCP firmware, which will be used
> by MT8183.
>
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> [acourbot: refactor, cleanup and split]
> Co-developed-by: Alexandre Courbot <acourbot@chromium.org>
> Signed-off-by: Alexandre Courbot <acourbot@chromium.org>
> ---
> 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));
Does rproc_boot and scp_get_rproc depend on the other kernel module?
where are they defineded?
> +}
> +
> +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 <linux/remoteproc.h>
> +#include <linux/remoteproc/mtk_scp.h>
>
> #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;
_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek
WARNING: multiple messages have this Message-ID (diff)
From: Tiffany Lin <tiffany.lin@mediatek.com>
To: Alexandre Courbot <acourbot@chromium.org>
Cc: Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
Rui Wang <gtk_ruiwang@mediatek.com>,
Yunfei Dong <yunfei.dong@mediatek.com>,
"Pi-Hsun Shih" <pihsun@chromium.org>,
Maoguang Meng <maoguang.meng@mediatek.com>,
<linux-media@vger.kernel.org>,
<linux-mediatek@lists.infradead.org>,
<linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 02/10] media: mtk-vcodec: add SCP firmware ops
Date: Mon, 8 Jun 2020 18:47:14 +0800 [thread overview]
Message-ID: <1591613234.18435.8.camel@mtksdaap41> (raw)
In-Reply-To: <20200520082723.96136-3-acourbot@chromium.org>
On Wed, 2020-05-20 at 17:27 +0900, Alexandre Courbot wrote:
> From: Yunfei Dong <yunfei.dong@mediatek.com>
>
> Add support for communicating with the SCP firmware, which will be used
> by MT8183.
>
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> [acourbot: refactor, cleanup and split]
> Co-developed-by: Alexandre Courbot <acourbot@chromium.org>
> Signed-off-by: Alexandre Courbot <acourbot@chromium.org>
> ---
> 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));
Does rproc_boot and scp_get_rproc depend on the other kernel module?
where are they defineded?
> +}
> +
> +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 <linux/remoteproc.h>
> +#include <linux/remoteproc/mtk_scp.h>
>
> #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;
next prev parent reply other threads:[~2020-06-08 10:50 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-20 8:27 [PATCH 00/10] media: mtk-vcodec: venc: support for MT8183 Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-05-20 8:27 ` [PATCH 01/10] media: mtk-vcodec: abstract firmware interface Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-08 9:29 ` Tiffany Lin
2020-06-08 9:29 ` Tiffany Lin
2020-06-08 10:16 ` Tiffany Lin
2020-06-08 10:16 ` Tiffany Lin
2020-06-08 10:41 ` Tiffany Lin
2020-06-08 10:41 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 02/10] media: mtk-vcodec: add SCP firmware ops Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-08 10:47 ` Tiffany Lin [this message]
2020-06-08 10:47 ` Tiffany Lin
2020-06-16 13:17 ` Alexandre Courbot
2020-06-16 13:17 ` Alexandre Courbot
2020-06-24 7:56 ` Tiffany Lin
2020-06-24 7:56 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 03/10] media: mtk-vcodec: venc: support SCP firmware Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-10 7:22 ` Tiffany Lin
2020-06-10 7:22 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 04/10] media: mtk-vcodec: venc: handle firmware version field Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-16 9:04 ` Tiffany Lin
2020-06-16 9:04 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 05/10] media: mtk-vcodec: venc: specify bitrate range per-chip Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-16 9:06 ` Tiffany Lin
2020-06-16 9:06 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 06/10] media: mtk-vcodec: venc: specify supported formats per-chip Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-19 7:26 ` Tiffany Lin
2020-06-19 7:26 ` Tiffany Lin
2020-06-22 12:44 ` Alexandre Courbot
2020-06-23 1:28 ` Tiffany Lin
2020-06-26 4:54 ` Alexandre Courbot
2020-06-26 4:54 ` Alexandre Courbot
2020-05-20 8:27 ` [PATCH 07/10] media: mtk-vcodec: venc: remove redundant code Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-19 6:59 ` Tiffany Lin
2020-06-19 6:59 ` Tiffany Lin
2020-06-22 13:10 ` Alexandre Courbot
2020-06-23 1:37 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 08/10] media: mtk-vcodec: add support for MT8183 encoder Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-19 7:12 ` Tiffany Lin
2020-06-19 7:12 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 09/10] media: dt-bindings: mtk-vcodec: specify SCP node Alexandre Courbot
2020-05-20 8:27 ` Alexandre Courbot
2020-06-19 7:13 ` Tiffany Lin
2020-06-19 7:13 ` Tiffany Lin
2020-05-20 8:27 ` [PATCH 10/10] media: dt-bindings: mtk-vcodec: document mediatek, mt8183-vcodec-enc Alexandre Courbot
2020-05-20 8:27 ` [PATCH 10/10] media: dt-bindings: mtk-vcodec: document mediatek,mt8183-vcodec-enc Alexandre Courbot
2020-07-26 14:33 ` [PATCH 00/10] media: mtk-vcodec: venc: support for MT8183 Ezequiel Garcia
2020-07-26 14:33 ` Ezequiel Garcia
2020-07-27 9:06 ` Alexandre Courbot
2020-07-27 9:06 ` Alexandre Courbot
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=1591613234.18435.8.camel@mtksdaap41 \
--to=tiffany.lin@mediatek.com \
--cc=acourbot@chromium.org \
--cc=andrew-ct.chen@mediatek.com \
--cc=gtk_ruiwang@mediatek.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=maoguang.meng@mediatek.com \
--cc=pihsun@chromium.org \
--cc=yunfei.dong@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.