All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steve Cho <stevecho@google.com>
To: "yunfei.dong@mediatek.com" <yunfei.dong@mediatek.com>
Cc: Andrew-CT Chen <andrew-ct.chen@mediatek.com>,
	Dafna Hirschfeld <dafna.hirschfeld@collabora.com>,
	dri-devel <dri-devel@lists.freedesktop.org>,
	Irui Wang <irui.wang@mediatek.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Benjamin Gaignard <benjamin.gaignard@collabora.com>,
	Project_Global_Chrome_Upstream_Group@mediatek.com,
	Fritz Koenig <frkoenig@chromium.org>,
	linux-media@vger.kernel.org, devicetree@vger.kernel.org,
	Tzung-Bi Shih <tzungbi@chromium.org>,
	Tomasz Figa <tfiga@google.com>, Rob Herring <robh+dt@kernel.org>,
	linux-mediatek@lists.infradead.org,
	Hsin-Yi Wang <hsinyi@chromium.org>,
	Matthias Brugger <matthias.bgg@gmail.com>,
	Tiffany Lin <tiffany.lin@mediatek.com>,
	linux-arm-kernel@lists.infradead.org,
	Alexandre Courbot <acourbot@chromium.org>,
	srv_heupstream@mediatek.com, linux-kernel@vger.kernel.org,
	Hans Verkuil <hverkuil-cisco@xs4all.nl>
Subject: Re: [PATCH v11, 01/19] media: mtk-vcodec: Get numbers of register bases from DT
Date: Thu, 2 Dec 2021 08:38:58 -0800	[thread overview]
Message-ID: <CAN0yncFnrea=FHc8O4YLopXxN8WksrEDN1Z-X7VUOfcv_Y5n=Q@mail.gmail.com> (raw)
In-Reply-To: <90950d579c6613fa52500ff5f2e7602b483dcb3d.camel@mediatek.com>

[-- Attachment #1: Type: text/plain, Size: 3710 bytes --]

Thanks,
Steve

On Wed, Dec 1, 2021 at 6:38 PM yunfei.dong@mediatek.com <
yunfei.dong@mediatek.com> wrote:

> Hi Steve,
>
> Thanks for your suggestion.
> On Wed, 2021-12-01 at 15:36 -0800, Steve Cho wrote:
>
> LGTM with few nits.
>
> Thanks,
> Steve
>
> On Sun, Nov 28, 2021 at 7:44 PM Yunfei Dong <yunfei.dong@mediatek.com>
> wrote:
>
> Different platform may has different numbers of register bases. Gets the
> numbers of register bases from DT (sizeof(u32) * 4 bytes for each)
>
> Few nits.
> s/platform/platforms/
> s/has/have/
>
> Fix, DT is dts.
> Btw, what is DT?
>
>
> Reviewed-by: Tzung-Bi Shih<tzungbi@google.com>
> Signed-off-by: Yunfei Dong <yunfei.dong@mediatek.com>
> ---
>  .../platform/mtk-vcodec/mtk_vcodec_dec_drv.c  | 37 ++++++++++++++-----
>  1 file changed, 28 insertions(+), 9 deletions(-)
>
> 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 e6e6a8203eeb..59caf2163349 100644
> --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec_drv.c
> @@ -78,6 +78,30 @@ static irqreturn_t mtk_vcodec_dec_irq_handler(int irq,
> void *priv)
>         return IRQ_HANDLED;
>  }
>
> +static int mtk_vcodec_get_reg_bases(struct mtk_vcodec_dev *dev)
> +{
>
> I see that dev is already checked before entering into this function, but
> null check for dev would still be nice.
>
>
> Dev is never null in this function, whether it looks not very reasonable?
>
That is correct with current code. In Chromium world, reviewers still
suggest to null check in similar situations.
Up to you. It is fine with me as it is.


> Best Regards,
> Yunfei Dong
>
> +       struct platform_device *pdev = dev->plat_dev;
> +       int reg_num, i;
> +
> +       /* Sizeof(u32) * 4 bytes for each register base. */
> +       reg_num = of_property_count_elems_of_size(pdev->dev.of_node, "reg",
> +               sizeof(u32) * 4);
> +       if (reg_num <= 0 || reg_num > NUM_MAX_VDEC_REG_BASE) {
> +               dev_err(&pdev->dev, "Invalid register property size:
> %d\n", reg_num);
> +               return -EINVAL;
> +       }
> +
> +       for (i = 0; i < reg_num; i++) {
> +               dev->reg_base[i] = devm_platform_ioremap_resource(pdev, i);
> +               if (IS_ERR(dev->reg_base[i]))
> +                       return PTR_ERR(dev->reg_base[i]);
> +
> +               mtk_v4l2_debug(2, "reg[%d] base=%p", i, dev->reg_base[i]);
> +       }
> +
> +       return 0;
> +}
> +
>  static int fops_vcodec_open(struct file *file)
>  {
>         struct mtk_vcodec_dev *dev = video_drvdata(file);
> @@ -206,7 +230,7 @@ static int mtk_vcodec_probe(struct platform_device
> *pdev)
>         struct resource *res;
>         phandle rproc_phandle;
>         enum mtk_vcodec_fw_type fw_type;
> -       int i, ret;
> +       int ret;
>
>         dev = devm_kzalloc(&pdev->dev, sizeof(*dev), GFP_KERNEL);
>         if (!dev)
> @@ -238,14 +262,9 @@ static int mtk_vcodec_probe(struct platform_device
> *pdev)
>                 goto err_dec_pm;
>         }
>
> -       for (i = 0; i < NUM_MAX_VDEC_REG_BASE; i++) {
> -               dev->reg_base[i] = devm_platform_ioremap_resource(pdev, i);
> -               if (IS_ERR((__force void *)dev->reg_base[i])) {
> -                       ret = PTR_ERR((__force void *)dev->reg_base[i]);
> -                       goto err_res;
> -               }
> -               mtk_v4l2_debug(2, "reg[%d] base=%p", i, dev->reg_base[i]);
> -       }
> +       ret = mtk_vcodec_get_reg_bases(dev);
> +       if (ret)
> +               goto err_res;
>
>         res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
>         if (res == NULL) {
>
>

[-- Attachment #2: Type: text/html, Size: 6218 bytes --]

  reply	other threads:[~2021-12-02 16:39 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-29  3:41 [PATCH v11, 00/19] Support multi hardware decode using of_platform_populate Yunfei Dong
2021-11-29  3:41 ` Yunfei Dong
2021-11-29  3:41 ` Yunfei Dong
2021-11-29  3:41 ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 01/19] media: mtk-vcodec: Get numbers of register bases from DT Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-30 13:20   ` Benjamin Gaignard
2021-11-30 13:20     ` Benjamin Gaignard
2021-11-30 13:20     ` Benjamin Gaignard
2021-11-30 13:20     ` Benjamin Gaignard
2021-12-02  2:24     ` yunfei.dong
2021-12-02  2:24       ` yunfei.dong
2021-12-02  2:24       ` yunfei.dong
2021-12-02  2:24       ` yunfei.dong
2021-12-01 23:36   ` Steve Cho
2021-12-02  2:38     ` yunfei.dong
2021-12-02 16:38       ` Steve Cho [this message]
2021-11-29  3:41 ` [PATCH v11, 02/19] media: mtk-vcodec: Align vcodec wake up interrupt interface Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-12-01 23:55   ` Steve Cho
2021-12-01 23:55     ` Steve Cho
2021-12-01 23:55     ` Steve Cho
2021-12-01 23:55     ` Steve Cho
2021-12-01 23:58     ` Steve Cho
2021-12-01 23:58       ` Steve Cho
2021-12-01 23:58       ` Steve Cho
2021-12-01 23:58       ` Steve Cho
2021-11-29  3:41 ` [PATCH v11, 03/19] media: mtk-vcodec: Refactor vcodec pm interface Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-12-02  0:10   ` Steve Cho
2021-12-02  0:10     ` Steve Cho
2021-12-02  0:10     ` Steve Cho
2021-12-02  0:10     ` Steve Cho
2021-11-29  3:41 ` [PATCH v11, 04/19] media: mtk-vcodec: export decoder pm functions Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-30 13:34   ` Benjamin Gaignard
2021-11-30 13:34     ` Benjamin Gaignard
2021-11-30 13:34     ` Benjamin Gaignard
2021-11-30 13:34     ` Benjamin Gaignard
2021-12-03  1:50     ` yunfei.dong
2021-12-03  1:50       ` yunfei.dong
2021-12-03  1:50       ` yunfei.dong
2021-12-03  1:50       ` yunfei.dong
2021-12-01 12:09   ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 23:59     ` Steve Cho
2021-12-01 23:59       ` Steve Cho
2021-12-01 23:59       ` Steve Cho
2021-12-01 23:59       ` Steve Cho
2021-11-29  3:41 ` [PATCH v11, 05/19] media: mtk-vcodec: Support MT8192 Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-12-01 12:09   ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 23:58     ` Steve Cho
2021-12-01 23:58       ` Steve Cho
2021-12-01 23:58       ` Steve Cho
2021-12-01 23:58       ` Steve Cho
2021-11-29  3:41 ` [PATCH v11, 06/19] media: mtk-vcodec: Add to support multi hardware decode Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 07/19] dt-bindings: media: mtk-vcodec: Separate video encoder and decoder dt-bindings Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 08/19] media: mtk-vcodec: Use pure single core for MT8183 Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 09/19] media: mtk-vcodec: Add irq interface for multi hardware Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-12-01 12:09   ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-11-29  3:41 ` [PATCH v11, 10/19] media: mtk-vcodec: Add msg queue feature for lat and core architecture Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-12-01 12:09   ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-03  1:55     ` yunfei.dong
2021-12-03  1:55       ` yunfei.dong
2021-12-03  1:55       ` yunfei.dong
2021-12-03  1:55       ` yunfei.dong
2021-11-29  3:41 ` [PATCH v11, 11/19] media: mtk-vcodec: Generalize power and clock on/off interfaces Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-12-01 12:09   ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-11-29  3:41 ` [PATCH v11, 12/19] media: mtk-vcodec: Add new interface to lock different hardware Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 13/19] media: mtk-vcodec: Add work queue for core hardware decode Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 14/19] media: mtk-vcodec: Support 34bits dma address for vdec Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` [PATCH v11,14/19] " Yunfei Dong
2021-12-01 12:09   ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-12-01 12:09     ` AngeloGioacchino Del Regno
2021-11-29  3:41 ` [PATCH v11, 15/19] dt-bindings: media: mtk-vcodec: Adds decoder dt-bindings for mt8192 Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 16/19] media: mtk-vcodec: Add core dec and dec end ipi msg Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41 ` [PATCH v11, 17/19] media: mtk-vcodec: Use codec type to separate different hardware Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:41   ` Yunfei Dong
2021-11-29  3:42 ` [PATCH v11, 18/19] media: mtk-vcodec: Remove mtk_vcodec_release_dec_pm Yunfei Dong
2021-11-29  3:42   ` Yunfei Dong
2021-11-29  3:42   ` Yunfei Dong
2021-11-29  3:42   ` Yunfei Dong
2021-12-01 12:08   ` AngeloGioacchino Del Regno
2021-12-01 12:08     ` AngeloGioacchino Del Regno
2021-12-01 12:08     ` AngeloGioacchino Del Regno
2021-12-01 12:08     ` AngeloGioacchino Del Regno
2021-11-29  3:42 ` [PATCH v11, 19/19] media: mtk-vcodec: Remove mtk_vcodec_release_enc_pm Yunfei Dong
2021-11-29  3:42   ` Yunfei Dong
2021-11-29  3:42   ` Yunfei Dong
2021-11-29  3:42   ` Yunfei Dong
2021-12-01 12:08   ` AngeloGioacchino Del Regno
2021-12-01 12:08     ` AngeloGioacchino Del Regno
2021-12-01 12:08     ` AngeloGioacchino Del Regno
2021-12-01 12:08     ` AngeloGioacchino Del Regno

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='CAN0yncFnrea=FHc8O4YLopXxN8WksrEDN1Z-X7VUOfcv_Y5n=Q@mail.gmail.com' \
    --to=stevecho@google.com \
    --cc=Project_Global_Chrome_Upstream_Group@mediatek.com \
    --cc=acourbot@chromium.org \
    --cc=andrew-ct.chen@mediatek.com \
    --cc=benjamin.gaignard@collabora.com \
    --cc=dafna.hirschfeld@collabora.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=frkoenig@chromium.org \
    --cc=hsinyi@chromium.org \
    --cc=hverkuil-cisco@xs4all.nl \
    --cc=irui.wang@mediatek.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=matthias.bgg@gmail.com \
    --cc=mchehab@kernel.org \
    --cc=robh+dt@kernel.org \
    --cc=srv_heupstream@mediatek.com \
    --cc=tfiga@google.com \
    --cc=tiffany.lin@mediatek.com \
    --cc=tzungbi@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.