Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp1105651imm; Thu, 6 Sep 2018 15:41:44 -0700 (PDT) X-Google-Smtp-Source: ANB0VdaDwfCryP+/hK/54xFfdpd4z3zDg+bfrpcnufTkhJsxJdT9WwiCCr67SjLZcdMqL9jHWC3Y X-Received: by 2002:a17:902:b595:: with SMTP id a21-v6mr5012476pls.23.1536273704467; Thu, 06 Sep 2018 15:41:44 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536273704; cv=none; d=google.com; s=arc-20160816; b=O5tTBK5si6O73FhU75vqw7kEcdxUXVE0bN6YdC1oV+VJJnkwAbbwV/VLJrc93Tr38N PbxXhtmfk/v5fmwvsKct57/ZYP8KRDsnSGxoaH/I2MUiuyTttY3MMscLyTM8PhsOVD8L 9jDH5gSRsHKDJWWc+4gjzIbHgHFUs7TPnatSXdl+Gcs4J3hndmKxHIRmgsu3/i7MF8oL Lb9z8f9b0PKW7j13ATtVp0bhc2C1rK38FLTJPlwKP33DkCE0+1ApWuIeDsLwG+lM57Dr eKg3O3EmqD0Wn5qn7YCCDu9B0bNVz2Tx3DB3LVBMmPozVHQb1/e3Zgw29BsH9yg5kspK XQOQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from; bh=VW4jjE5cTmKKTQ4nCnup5LgA4rC2/d/4alPuCAxMgAM=; b=Hx4PtnZik3SZG/T6dIAd6YcrLwyBFigXp/mavLsRNONpfjhon9RQJOEilhfrCmyi00 e8B7RCG+LWh2xHUibQUu4+7p0ZN8IY3q5YC0/JjKTsqgVcToiBBIeR7UP/XbT5Es8Rxp dfauX/bqQEYgLKi0A5vCnES0DOMYO46XkyT4PI6PJIlnF89MTsJpWCErdVO5a289K6em towiGSWh0XhhKN9922oXzlH8aIPw7vUjRztCM5xQ/PIqc3QeYldWYaIabMuZNndh6/zL 6nnRB4Zu0xMPWHbEAw9iKcZf6IEaSVYaZOB8PnwXLHN/ja2k1h/WseSWweyDHNRHKj2W u0Yg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 3-v6si6016793plz.351.2018.09.06.15.41.29; Thu, 06 Sep 2018 15:41:44 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728682AbeIGDEy (ORCPT + 99 others); Thu, 6 Sep 2018 23:04:54 -0400 Received: from leonov.paulk.fr ([185.233.101.22]:56552 "EHLO leonov.paulk.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728665AbeIGDEx (ORCPT ); Thu, 6 Sep 2018 23:04:53 -0400 Received: from gagarine.paulk.fr (gagarine [192.168.1.127]) by leonov.paulk.fr (Postfix) with ESMTPS id 57924C00A2; Fri, 7 Sep 2018 00:27:15 +0200 (CEST) Received: by gagarine.paulk.fr (Postfix, from userid 114) id 02B28C0F6B; Fri, 7 Sep 2018 00:27:13 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on gagarine.paulk.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable autolearn_force=no version=3.4.1 Received: from localhost.localdomain (collins [192.168.1.129]) by gagarine.paulk.fr (Postfix) with ESMTP id A6596C0F58; Fri, 7 Sep 2018 00:25:05 +0200 (CEST) From: Paul Kocialkowski To: linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org Cc: Mauro Carvalho Chehab , Rob Herring , Mark Rutland , Maxime Ripard , Chen-Yu Tsai , Greg Kroah-Hartman , Paul Kocialkowski , Thomas Petazzoni , linux-sunxi@googlegroups.com, Randy Li , Hans Verkuil , Ezequiel Garcia , Tomasz Figa , Alexandre Courbot , Philipp Zabel , Laurent Pinchart , Sakari Ailus , Paul Kocialkowski Subject: [PATCH v9 1/9] media: videobuf2-core: Rework and rename helper for request buffer count Date: Fri, 7 Sep 2018 00:24:34 +0200 Message-Id: <20180906222442.14825-2-contact@paulk.fr> X-Mailer: git-send-email 2.18.0 In-Reply-To: <20180906222442.14825-1-contact@paulk.fr> References: <20180906222442.14825-1-contact@paulk.fr> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The helper indicating whether buffers are associated with the request is reworked and renamed to return the number of associated buffer objects. This is useful for drivers that need to check how many buffers are in the request to validate it. Existing users of the helper don't need particular adaptation since the meaning of zero/non-zero remains consistent. Signed-off-by: Paul Kocialkowski --- .../media/common/videobuf2/videobuf2-core.c | 18 ++++++++---------- .../media/common/videobuf2/videobuf2-v4l2.c | 2 +- include/media/videobuf2-core.h | 4 ++-- 3 files changed, 11 insertions(+), 13 deletions(-) diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c index cb86b02afd4a..194b9188ad3e 100644 --- a/drivers/media/common/videobuf2/videobuf2-core.c +++ b/drivers/media/common/videobuf2/videobuf2-core.c @@ -1368,23 +1368,21 @@ bool vb2_request_object_is_buffer(struct media_request_object *obj) } EXPORT_SYMBOL_GPL(vb2_request_object_is_buffer); -bool vb2_request_has_buffers(struct media_request *req) +unsigned int vb2_request_buffer_cnt(struct media_request *req) { struct media_request_object *obj; unsigned long flags; - bool has_buffers = false; + unsigned int buffer_cnt = 0; spin_lock_irqsave(&req->lock, flags); - list_for_each_entry(obj, &req->objects, list) { - if (vb2_request_object_is_buffer(obj)) { - has_buffers = true; - break; - } - } + list_for_each_entry(obj, &req->objects, list) + if (vb2_request_object_is_buffer(obj)) + buffer_cnt++; spin_unlock_irqrestore(&req->lock, flags); - return has_buffers; + + return buffer_cnt; } -EXPORT_SYMBOL_GPL(vb2_request_has_buffers); +EXPORT_SYMBOL_GPL(vb2_request_buffer_cnt); int vb2_core_prepare_buf(struct vb2_queue *q, unsigned int index, void *pb) { diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c index 6831a2eb1859..a17033ab2c22 100644 --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c @@ -1139,7 +1139,7 @@ int vb2_request_validate(struct media_request *req) struct media_request_object *obj; int ret = 0; - if (!vb2_request_has_buffers(req)) + if (!vb2_request_buffer_cnt(req)) return -ENOENT; list_for_each_entry(obj, &req->objects, list) { diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h index 6c76b9802589..e86981d615ae 100644 --- a/include/media/videobuf2-core.h +++ b/include/media/videobuf2-core.h @@ -1191,10 +1191,10 @@ int vb2_verify_memory_type(struct vb2_queue *q, bool vb2_request_object_is_buffer(struct media_request_object *obj); /** - * vb2_request_has_buffers() - return true if the request contains buffers + * vb2_request_buffer_cnt() - return the number of buffers in the request * * @req: the request. */ -bool vb2_request_has_buffers(struct media_request *req); +unsigned int vb2_request_buffer_cnt(struct media_request *req); #endif /* _MEDIA_VIDEOBUF2_CORE_H */ -- 2.18.0