Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp6784069pxb; Wed, 17 Feb 2021 13:23:19 -0800 (PST) X-Google-Smtp-Source: ABdhPJz/6Pp0cJ/rB97ce/QkNI52EwBJPR3CIrXLn1Zf7fpsydBUVaDSBr/jNpCyE2/BmkqPXsFF X-Received: by 2002:a17:907:98d7:: with SMTP id kd23mr846821ejc.283.1613596999089; Wed, 17 Feb 2021 13:23:19 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613596999; cv=none; d=google.com; s=arc-20160816; b=nAZpSAQmipOTFOck7V2MHBUpyh7QKIJNHIBNbZwr13xsKcO9/5PJcqBeZgKfxXOV0W tm8RZ87uvDyfrq7PZbaZQ3eI5vffka0Lm9TSf59hy951SNNaHqMKXLqweVuW2h5hxpal QanEbDw1WeWw+jL7mIIo7eK6onnjgfTq1OIFKoqDZUj/unQN3VyY2tK+v8dqleWZ7A8q yGj13lB/DqOSmXGTIsRFS4M51PjYHn83vX4ZI10/90Tjd5hXvINZPgvrSH+dETvnd44O 5RUHzMU9K6Nux+vmpLO9CPa1mqXWQfhOCkAjrf+eGc2OBSA7O5yOTUubLEsBsziV5e2f k1qg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:organization:references:in-reply-to:date:cc:to:from :subject:message-id; bh=AcA2d1UiiW/MfWfQ4wiEJ92INVEVpxW5RJTbwnW6zfI=; b=orml9wtAsJsaX9ZgB2lZDqHWE3PIvN8vjmCGLiRn+tljiyNszhhwJycjrwiZ2e8Wgd QB3xpuTEMvOhFHru9i7bhX0lasxuCMkZKxjQi78qlGVYDqcHkPuIMRHrmSRkvAGpjKJJ pIw3SLNq9t1fFKDqjGHXSG/YD+40WwtjcNFwaqlHq+zDY78rZ7koLV6J+k21+FYmlAid Rt+g8JTC89glu/IFvw0I7PYk9UdVJ8Z6S+ASofNn8834lJD6lw25ore6EX2WJNp9OCeh zgwfwjwY74fUuqzm19wCtI0RVxDuvMyU3SQZMJpGfnCxLxsoZzyrnD9MsWOY96WMUODo jBLQ== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id g5si2120970edj.194.2021.02.17.13.22.53; Wed, 17 Feb 2021 13:23:19 -0800 (PST) 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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233394AbhBQT7S (ORCPT + 99 others); Wed, 17 Feb 2021 14:59:18 -0500 Received: from bhuna.collabora.co.uk ([46.235.227.227]:59356 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232862AbhBQT7Q (ORCPT ); Wed, 17 Feb 2021 14:59:16 -0500 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: ezequiel) with ESMTPSA id D16DE1F4580A Message-ID: Subject: Re: [PATCH v1 05/18] media: controls: Add control for HEVC codec From: Ezequiel Garcia To: Benjamin Gaignard , p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, krzk@kernel.org, shengjiu.wang@nxp.com, adrian.ratiu@collabora.com, aisheng.dong@nxp.com, peng.fan@nxp.com, Anson.Huang@nxp.com, hverkuil-cisco@xs4all.nl Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devel@driverdev.osuosl.org, kernel@collabora.com Date: Wed, 17 Feb 2021 16:58:22 -0300 In-Reply-To: <20210217080306.157876-6-benjamin.gaignard@collabora.com> References: <20210217080306.157876-1-benjamin.gaignard@collabora.com> <20210217080306.157876-6-benjamin.gaignard@collabora.com> Organization: Collabora Content-Type: text/plain; charset="UTF-8" User-Agent: Evolution 3.38.2-1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Benjamin, On Wed, 2021-02-17 at 09:02 +0100, Benjamin Gaignard wrote: > Add HEVC decode params and scaling matrix controls. > > Signed-off-by: Benjamin Gaignard > Signed-off-by: Ezequiel Garcia > Signed-off-by: Adrian Ratiu > --- >  drivers/media/v4l2-core/v4l2-ctrls.c | 36 ++++++++++++++++++++++------ >  1 file changed, 29 insertions(+), 7 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-ctrls.c b/drivers/media/v4l2-core/v4l2-ctrls.c > index 016cf6204cbb..5e45333fd862 100644 > --- a/drivers/media/v4l2-core/v4l2-ctrls.c > +++ b/drivers/media/v4l2-core/v4l2-ctrls.c > @@ -1028,6 +1028,8 @@ const char *v4l2_ctrl_get_name(u32 id) >         case V4L2_CID_MPEG_VIDEO_HEVC_SPS:                      return "HEVC Sequence Parameter Set"; >         case V4L2_CID_MPEG_VIDEO_HEVC_PPS:                      return "HEVC Picture Parameter Set"; >         case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS:             return "HEVC Slice Parameters"; > +       case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS:            return "HEVC Decode Parameters"; > +       case V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX:           return "HEVC Scaling Matrix"; I would move all the SCALING_MATRIX changes to their own patches. >         case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_MODE:              return "HEVC Decode Mode"; >         case V4L2_CID_MPEG_VIDEO_HEVC_START_CODE:               return "HEVC Start Code"; >   > @@ -1482,6 +1484,12 @@ void v4l2_ctrl_fill(u32 id, const char **name, enum v4l2_ctrl_type *type, >         case V4L2_CID_MPEG_VIDEO_HEVC_SLICE_PARAMS: >                 *type = V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS; >                 break; > +       case V4L2_CID_MPEG_VIDEO_HEVC_DECODE_PARAMS: > +               *type = V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS; > +               break; > +       case V4L2_CID_MPEG_VIDEO_HEVC_SCALING_MATRIX: > +               *type = V4L2_CTRL_TYPE_HEVC_SCALING_MATRIX; > +               break; >         case V4L2_CID_UNIT_CELL_SIZE: >                 *type = V4L2_CTRL_TYPE_AREA; >                 *flags |= V4L2_CTRL_FLAG_READ_ONLY; > @@ -1833,6 +1841,7 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, >         struct v4l2_ctrl_hevc_sps *p_hevc_sps; >         struct v4l2_ctrl_hevc_pps *p_hevc_pps; >         struct v4l2_ctrl_hevc_slice_params *p_hevc_slice_params; > +       struct v4l2_ctrl_hevc_decode_params *p_hevc_decode_params; >         struct v4l2_area *area; >         void *p = ptr.p + idx * ctrl->elem_size; >         unsigned int i; > @@ -2108,26 +2117,33 @@ static int std_validate_compound(const struct v4l2_ctrl *ctrl, u32 idx, >                 zero_padding(*p_hevc_pps); >                 break; >   > -       case V4L2_CTRL_TYPE_HEVC_SLICE_PARAMS: > -               p_hevc_slice_params = p; > +       case V4L2_CTRL_TYPE_HEVC_DECODE_PARAMS: > +               p_hevc_decode_params = p; >   > -               if (p_hevc_slice_params->num_active_dpb_entries > > +               if (p_hevc_decode_params->num_active_dpb_entries > I suspect this change should be squashed with the patch that moves num_active_dpb_entries from the slice control, or otherwise this code won't compile. >                     V4L2_HEVC_DPB_ENTRIES_NUM_MAX) >                         return -EINVAL; >   > -               zero_padding(p_hevc_slice_params->pred_weight_table); > - > -               for (i = 0; i < p_hevc_slice_params->num_active_dpb_entries; > +               for (i = 0; i < p_hevc_decode_params->num_active_dpb_entries; >                      i++) { >                         struct v4l2_hevc_dpb_entry *dpb_entry = > -                               &p_hevc_slice_params->dpb[i]; > +                               &p_hevc_decode_params->dpb[i]; >   Ditto. Thanks, Ezequiel