Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp4679083pxj; Wed, 12 May 2021 10:42:33 -0700 (PDT) X-Google-Smtp-Source: ABdhPJz5j3Z9Rkdg3WSQ/KtSfBp5VBL9uIG9o9oexJqwzLb9MiCsJdqsFPi7/oDvnnrvXDYn9vYe X-Received: by 2002:a17:906:cc48:: with SMTP id mm8mr38986722ejb.344.1620841352776; Wed, 12 May 2021 10:42:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1620841352; cv=none; d=google.com; s=arc-20160816; b=YQpv+vkwcQf39EYX6Q6pBuV3yX6G1qy08xco/N3cu2qPUzDXc0shcbGya3tnDOtIwM b4Q3cvZt65F5UoexdQgU4tHfygaSKtpwGvmOt1zngHpOrd9lNdP9/snUhw91mbN1br0B I7MRe3lZWrBhlxCM8w6cGJaNUci285MkhRycaJkO4cRcxu7M9rBRkwIpFk1w/wUlYUjK 2vQ0O+x/QeZKQ4NhSooKP3lDW7lvT+PXJHhxty3jrwMFyWADZVxHX+7SB/OjTCzU5Yfu w3iAyAyhjZlQ8i4OYK+8xmR0aXcGlFs7J1V5g1dm3TT1jwNbk1LBQLznsGw7ywVtAB/l gbGQ== 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:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=E6DVkTr9zIe2+armQ9fS0OJQJkcwwqvCYerLkaB/c4Q=; b=vcfN5TA0jQgW3u0zdqnMNSCFTel4qvpVpumwpZjHs4G+lbzPe0Lytj66h+sqM60hm9 kpQOjw/DdV9wIaTa+oTFK2/SBus/LvKqjWVrjvxaoxPfKe4zfoBwKnthaCX0LLAJaKwB nDgStuUbp/MPn5jR2zmiIgjFZ8XzRFow4R0N0zMa0vTXPvXV48SlPRUCHFJjuwkGaoaV fLeQhh03qFbmog68C8LqyQQT6ucN8hBS2NNVH+paWsdPbHES5jzPIeipWZOf8j0B0TBp MWdgp6K74n/amUxdHCMzdG9ufv0Yhh+hlN3hn3l46B6OSbSvs6SMe2NZc9+s4W1SBQPu Wa2w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=tV00o3I5; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id jl6si488366ejc.751.2021.05.12.10.42.08; Wed, 12 May 2021 10:42:32 -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=@linuxfoundation.org header.s=korg header.b=tV00o3I5; 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=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233613AbhELRcK (ORCPT + 99 others); Wed, 12 May 2021 13:32:10 -0400 Received: from mail.kernel.org ([198.145.29.99]:34570 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235131AbhELQIM (ORCPT ); Wed, 12 May 2021 12:08:12 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id DC234619A8; Wed, 12 May 2021 15:39:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1620833947; bh=aeyliFnMX8FRphcdwB9MWrJ0v4MexZ4IASV8eDF7pDM=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=tV00o3I5AbVwb5AyWY//woDuOIrKmDEuGEEio90/scUo97+1JuJ2kM8CMNeCK5Kjn mj1Tco8VmvDX+EtiGOVmlDyPivQaLgnuPnKXeYR87y8dJ7wvzqfw5UVYiyCQc9tm6G F5bZGSZk1f8KG3t3/8QPTAnbARMoQfUoFzE9ALvc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Daniel Almeida , Ezequiel Garcia , Hans Verkuil , Mauro Carvalho Chehab , Sasha Levin Subject: [PATCH 5.11 350/601] media: rkvdec: Do not require all controls to be present in every request Date: Wed, 12 May 2021 16:47:07 +0200 Message-Id: <20210512144839.321181088@linuxfoundation.org> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210512144827.811958675@linuxfoundation.org> References: <20210512144827.811958675@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Daniel Almeida [ Upstream commit 54676d5f5630b79f7b00c7c43882a58c1815aaf9 ] According to the v4l2 api, it is allowed to skip setting a control if its contents haven't changed for performance reasons: userspace should only update the controls that changed from last frame rather then updating them all. Still some ancient code that checks for mandatory controls has been left in this driver. Remove it. Fixes: cd33c830448b ("media: rkvdec: Add the rkvdec driver") Signed-off-by: Daniel Almeida Reviewed-by: Ezequiel Garcia Signed-off-by: Hans Verkuil Signed-off-by: Mauro Carvalho Chehab Signed-off-by: Sasha Levin --- drivers/staging/media/rkvdec/rkvdec.c | 48 +-------------------------- drivers/staging/media/rkvdec/rkvdec.h | 1 - 2 files changed, 1 insertion(+), 48 deletions(-) diff --git a/drivers/staging/media/rkvdec/rkvdec.c b/drivers/staging/media/rkvdec/rkvdec.c index aa4f8c287618..b1507f29fcc5 100644 --- a/drivers/staging/media/rkvdec/rkvdec.c +++ b/drivers/staging/media/rkvdec/rkvdec.c @@ -55,16 +55,13 @@ static const struct v4l2_ctrl_ops rkvdec_ctrl_ops = { static const struct rkvdec_ctrl_desc rkvdec_h264_ctrl_descs[] = { { - .mandatory = true, .cfg.id = V4L2_CID_STATELESS_H264_DECODE_PARAMS, }, { - .mandatory = true, .cfg.id = V4L2_CID_STATELESS_H264_SPS, .cfg.ops = &rkvdec_ctrl_ops, }, { - .mandatory = true, .cfg.id = V4L2_CID_STATELESS_H264_PPS, }, { @@ -585,25 +582,7 @@ static const struct vb2_ops rkvdec_queue_ops = { static int rkvdec_request_validate(struct media_request *req) { - struct media_request_object *obj; - const struct rkvdec_ctrls *ctrls; - struct v4l2_ctrl_handler *hdl; - struct rkvdec_ctx *ctx = NULL; - unsigned int count, i; - int ret; - - list_for_each_entry(obj, &req->objects, list) { - if (vb2_request_object_is_buffer(obj)) { - struct vb2_buffer *vb; - - vb = container_of(obj, struct vb2_buffer, req_obj); - ctx = vb2_get_drv_priv(vb->vb2_queue); - break; - } - } - - if (!ctx) - return -EINVAL; + unsigned int count; count = vb2_request_buffer_cnt(req); if (!count) @@ -611,31 +590,6 @@ static int rkvdec_request_validate(struct media_request *req) else if (count > 1) return -EINVAL; - hdl = v4l2_ctrl_request_hdl_find(req, &ctx->ctrl_hdl); - if (!hdl) - return -ENOENT; - - ret = 0; - ctrls = ctx->coded_fmt_desc->ctrls; - for (i = 0; ctrls && i < ctrls->num_ctrls; i++) { - u32 id = ctrls->ctrls[i].cfg.id; - struct v4l2_ctrl *ctrl; - - if (!ctrls->ctrls[i].mandatory) - continue; - - ctrl = v4l2_ctrl_request_hdl_ctrl_find(hdl, id); - if (!ctrl) { - ret = -ENOENT; - break; - } - } - - v4l2_ctrl_request_hdl_put(hdl); - - if (ret) - return ret; - return vb2_request_validate(req); } diff --git a/drivers/staging/media/rkvdec/rkvdec.h b/drivers/staging/media/rkvdec/rkvdec.h index 77a137cca88e..52ac3874c5e5 100644 --- a/drivers/staging/media/rkvdec/rkvdec.h +++ b/drivers/staging/media/rkvdec/rkvdec.h @@ -25,7 +25,6 @@ struct rkvdec_ctx; struct rkvdec_ctrl_desc { - u32 mandatory : 1; struct v4l2_ctrl_config cfg; }; -- 2.30.2