Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp1398911pxj; Fri, 21 May 2021 13:17:03 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyykAOl/zSnyVx22CWorBlMdh6rIUX91prMo3wnryPwxULTq/8VQjWgfpYB9zEvWAHMJHlD X-Received: by 2002:a92:cf0f:: with SMTP id c15mr605706ilo.288.1621628223640; Fri, 21 May 2021 13:17:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1621628223; cv=none; d=google.com; s=arc-20160816; b=I35603ec83C/voNV7/6r+8twHusVVCOLMknSouiycIfRK2r2mBwvPN82wzR5q4/mYq 4F+bOAkBmb94Z2sQG6o9YobMtR/DYs1O9Wr7u562c4lxSxpVmnqHyjAQoRuPMrBOzPwH 9ecbvU8f+8eTsbQrPTe9QZ9n+fIAT+HY9cKyL6fE1PY1U1IpWn+Ayf5Q61PsIMTU3+EO 4WDwS3BmFSYq3mphqxtm+wDgnAhx+hrgwybrS2DgEzN0RtBRIFr0pu7SsIi/efKVPpmF tJDoLvtlU5VEbgaKyv77/c+GddWohG1tscxqdxcYXCv1LMLCOpHkP3dRS7ZKqHFKIENc uD1w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=P8K4c4I3E0ScqatNpdtAdPPA1ppP33415CwioITRQ28=; b=Xh95soAZ3fwR6ZBzwv4cjT39NKB0QbJ087O2EmGzrIXvW13rw7XxXvYnync363jH4n 0wuDK5CcIv3cABi7BSg8+MtTNpH2wRoZ/MwWoU9EpFiGeBjFP2tbVQ5CpCZS1ehii/Ey eKc5jLA57jw7lREXt7U3JIRN4Zjo/WFVHGhfe701qNQ9h6XnHPGp6jhv++iYtTdzMHZu NXjv6v88ydXZswMchGjuHQi9FCu/rHglszNKA1KiCIGGn1FkwNWr4D0692CUCkKq9D/L cUxI2QJ15RIkLPvFr6WZBoNdyIMpF/rNo2Nlffww2zQMbhvmhd8OkNEeSsW5RKWj0MFX BN4w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=WvVKiwzh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w14si4388947ilv.110.2021.05.21.13.16.51; Fri, 21 May 2021 13:17:03 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=WvVKiwzh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231795AbhEUNkP (ORCPT + 99 others); Fri, 21 May 2021 09:40:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:58400 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236261AbhEUNjy (ORCPT ); Fri, 21 May 2021 09:39:54 -0400 Received: from mail-io1-xd2a.google.com (mail-io1-xd2a.google.com [IPv6:2607:f8b0:4864:20::d2a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AE2EFC061344 for ; Fri, 21 May 2021 06:38:25 -0700 (PDT) Received: by mail-io1-xd2a.google.com with SMTP id k132so6546778iof.4 for ; Fri, 21 May 2021 06:38:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=P8K4c4I3E0ScqatNpdtAdPPA1ppP33415CwioITRQ28=; b=WvVKiwzhtpchBrgwnrtu/VPArYkX35BZT0jVz2d3peS1iXg6p8KiiuIH8jzggDnNbr yVrse6NVTrPmjE13XP0shAgyR6vrOPr4U+8BCzEgDpoetP1EvMdhiy01IkSobFcBO+tl Mk2kr2gTuf9ODLYRqzppYHHEJGi6vKBENrmpg5YimFUu0StPEtOSKjdBlrr3PyXpgM63 x+f5H8Wbimx1f1jScGC0mXwSoguiTIz0BHscM9OXDPR6I7deEJDecbuSxOy5nisEi9On gpn+r1UM7x/iX6z/r4bi1rMgMW3VtAEiVPGX6Ru1XTV/RByNIDbbQ887CRW3fpP7AOXd 4sUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=P8K4c4I3E0ScqatNpdtAdPPA1ppP33415CwioITRQ28=; b=l98zNpHbI0xPa1mmcYfF7j0CpoXGLwrBOXoB8JyU/RXadvRiGa7kNGnDv9DOJwYiS4 rsotuMXMAN/g86fP/D29kGjwGpgVidQq+SZ8EIrMG5ulWPomxrScjH1z4ehYq0UJVBar 4w1eR9V4FY9HOgREyDDNZMAVOTGvQNBLYjheNbcz0Ap7uhEc1ywrEK1CH23qMo9+IZ/y c7/Eg7VFmQDSJTJYrg3hZbV6Rfz/JcmU8DEqVoiEcQ5EBsMTJIZFHBrCGrsQMHgbvQ0n rD8dJLMYLoVjh/juuJ/zeF6gcv/KWpTD0h9D4ktsHZEuukhphAW7Rzydflek1W1BC6/v v4Sw== X-Gm-Message-State: AOAM533OR5Yuh9ZorEWK4/+191UeXRHF221dnIZnjMkX9mXFb1/klw8L gFFD9oOudniA462U3RyfHPQXaP0Zx5AgXgey6fF41g== X-Received: by 2002:a05:6638:3010:: with SMTP id r16mr4601269jak.126.1621604304927; Fri, 21 May 2021 06:38:24 -0700 (PDT) MIME-Version: 1.0 References: <20210519143011.1175546-1-acourbot@chromium.org> <20210519143011.1175546-12-acourbot@chromium.org> In-Reply-To: <20210519143011.1175546-12-acourbot@chromium.org> From: Tzung-Bi Shih Date: Fri, 21 May 2021 21:38:13 +0800 Message-ID: Subject: Re: [PATCH v5 11/14] media: mtk-vcodec: vdec: support stateless H.264 decoding To: Alexandre Courbot Cc: Tiffany Lin , Andrew-CT Chen , Hans Verkuil , Dafna Hirschfeld , Yunfei Dong , Mauro Carvalho Chehab , linux-media@vger.kernel.org, Linux Kernel Mailing List , "moderated list:ARM/Mediatek SoC support" Content-Type: text/plain; charset="UTF-8" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, May 19, 2021 at 10:31 PM Alexandre Courbot wrote: > +#include "../vdec_drv_if.h" > +#include "../mtk_vcodec_util.h" > +#include "../mtk_vcodec_dec.h" > +#include "../mtk_vcodec_intr.h" > +#include "../vdec_vpu_if.h" > +#include "../vdec_drv_base.h" Would be good practice to sort them. > +static int allocate_predication_buf(struct vdec_h264_slice_inst *inst) > +{ > + int err = 0; No need to initialize. It will be overridden soon. > +static void free_predication_buf(struct vdec_h264_slice_inst *inst) > +{ > + struct mtk_vcodec_mem *mem = NULL; > + > + mtk_vcodec_debug_enter(inst); > + > + inst->vsi_ctx.pred_buf_dma = 0; > + mem = &inst->pred_buf; Is it possible to inline to the variable declaration? Or mem no need to initialize. > +static int alloc_mv_buf(struct vdec_h264_slice_inst *inst, > + struct vdec_pic_info *pic) > +{ > + int i; > + int err; > + struct mtk_vcodec_mem *mem = NULL; No need to initialize. It will be overridden soon. > +static void free_mv_buf(struct vdec_h264_slice_inst *inst) > +{ > + int i; > + struct mtk_vcodec_mem *mem = NULL; No need to initialize. It will be overridden soon. > +static int vdec_h264_slice_init(struct mtk_vcodec_ctx *ctx) > +{ > + struct vdec_h264_slice_inst *inst = NULL; No need to initialize. It will be overridden soon. > +static void vdec_h264_slice_deinit(void *h_vdec) > +{ > + struct vdec_h264_slice_inst *inst = > + (struct vdec_h264_slice_inst *)h_vdec; No need to cast from void *. > +static int vdec_h264_slice_decode(void *h_vdec, struct mtk_vcodec_mem *bs, > + struct vdec_fb *fb, bool *res_chg) > +{ > + struct vdec_h264_slice_inst *inst = > + (struct vdec_h264_slice_inst *)h_vdec; No need to cast from void *. > + const struct v4l2_ctrl_h264_decode_params *dec_params = > + get_ctrl_ptr(inst->ctx, V4L2_CID_STATELESS_H264_DECODE_PARAMS); > + struct vdec_vpu_inst *vpu = &inst->vpu; > + uint32_t data[2]; > + uint64_t y_fb_dma; > + uint64_t c_fb_dma; > + int err; > + > + /* bs NULL means flush decoder */ > + if (bs == NULL) To neat, !bs. > +static int vdec_h264_slice_get_param(void *h_vdec, > + enum vdec_get_param_type type, void *out) > +{ > + struct vdec_h264_slice_inst *inst = > + (struct vdec_h264_slice_inst *)h_vdec; No need to cast from void *.