Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp5634682pxb; Mon, 28 Mar 2022 15:16:27 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzhs/90fy27fj3we+im7k9Nw1aaO4FrXv7sm6kdO2xI31pe/1zgI9+00TVNn08oZa4dc9M1 X-Received: by 2002:a17:90a:4306:b0:1b9:80b3:7a3d with SMTP id q6-20020a17090a430600b001b980b37a3dmr1285551pjg.66.1648505786222; Mon, 28 Mar 2022 15:16:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648505786; cv=none; d=google.com; s=arc-20160816; b=GLP3si3NvUWMdG96BjZh1Kjlyn7vfwUsilz46n4S/rA/kLcn1hn9EKm51EOA15kGgC uG+4koWBvc+cUugXg0rUlY9dvMbMZlwoLgehtKIyCYbasft+MfdnRRB6B5kluUskreEX rPMkj4s3+1qIFwVRHjutXIGWnf/Vdpqq8itu3y0nTM+IZKxI/cUegFjsfCl7BC0VnqeD J4m/aX+J/BN5lUYXjD+troPo2Jg0TNKtkWmXO3knEItVElQnyd+fMzzkaQw8pjMLAhAo QpuFB2Ogr0OvYOf9mL6Ua4yw4bMsIOPbIaL6TD61XFAQ5cgTj+e+2amiXK2YEOLFfVqQ F6Ow== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=WcQUEGnU7/ohyWY5g110BCf5qDeRCu+3MjlnH9h6s2U=; b=UtU8Mfb5rJh/F4ql/iz61B1B2Po/6npDhxd0IM6QidGySoTirDcEdZnbEC4Npj88zY x722sI6CRoLYBj/OLy0PpcARFRa446OHc8ELgOwjtLeXPmHJSYVe13g47jD4gbSEj+5m YNOrp15DtPKbpsu2EgvLrY6QZSyApA1WuiAWFlTMIpR3T+8xr1TRWXwEQRwlVaPWkFse f/BjEiFGnmyAlG51wLvb+1E1AIwwf4g6TYSkLK3kcTLWYZ+DsmMYj7un3IkBgarnZSz+ pn6rYfe3/ou5gsyJe4h9sDo8MI7uKQnrkaeKFQqobt2Ub/ACZ27cvhTvQIe2xLS1pgAs jFVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=nQy6Ul9u; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id hk11-20020a17090b224b00b001c638bda95bsi984312pjb.6.2022.03.28.15.16.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 28 Mar 2022 15:16:26 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b=nQy6Ul9u; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=collabora.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 2F25417B0FA; Mon, 28 Mar 2022 14:34:33 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1344406AbiC1UCw (ORCPT + 99 others); Mon, 28 Mar 2022 16:02:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55910 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1344253AbiC1UCU (ORCPT ); Mon, 28 Mar 2022 16:02:20 -0400 Received: from bhuna.collabora.co.uk (bhuna.collabora.co.uk [IPv6:2a00:1098:0:82:1000:25:2eeb:e3e3]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2019F5B3E1; Mon, 28 Mar 2022 13:00:21 -0700 (PDT) Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: nicolas) with ESMTPSA id AEA9B1F438B1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1648497619; bh=BQgi4WXn9GkaikKLBxnmXBJ9Op1ly9b7u96QvOVoYaY=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nQy6Ul9u9ZNQiDPpimTjQGgDKJ4dMDUQ4QHsaH6Vtmdydoas4nbQmvrWD/vVrf/6p Y8vXWtMlaovLs7s5bcR2TGA55jiDeiHt7oE5atDSNWmLCPtAvU9dAAE8oy0uGCbJAK eORjbvoA3MGKEmj1cQ9EBllZ52/2Or5tpTLLIwClMzg2CrZ0CZV5FDkJJV2g+9oOBb 2YKnVer0ahF5asTI39s2dK0CAI756v9o04AvIxR2jUPP4FSJ1vxow6dUBx24PH/ZsI 6/j03Rhfs4mas3bS5A/U3P0UNrfJZYUhQEcG0bqtakc6I2n8i5/vuxc3a0b6kzqI/e 5Eb+8DiJGY0gQ== From: Nicolas Dufresne To: Ezequiel Garcia , Philipp Zabel , Mauro Carvalho Chehab , Greg Kroah-Hartman Cc: kernel@collabora.com, linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-staging@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v1 20/24] media: hantro: Enable HOLD_CAPTURE_BUF for H.264 Date: Mon, 28 Mar 2022 15:59:32 -0400 Message-Id: <20220328195936.82552-21-nicolas.dufresne@collabora.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20220328195936.82552-1-nicolas.dufresne@collabora.com> References: <20220328195936.82552-1-nicolas.dufresne@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This is needed to optimizing field decoding. Each field will be decoded in the same capture buffer, so to make use of the queues we need to be able to ask the driver to keep the capture buffer. Signed-off-by: Nicolas Dufresne --- drivers/staging/media/hantro/hantro_v4l2.c | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/drivers/staging/media/hantro/hantro_v4l2.c b/drivers/staging/media/hantro/hantro_v4l2.c index 67148ba346f5..50d636678ff3 100644 --- a/drivers/staging/media/hantro/hantro_v4l2.c +++ b/drivers/staging/media/hantro/hantro_v4l2.c @@ -409,6 +409,30 @@ hantro_update_requires_request(struct hantro_ctx *ctx, u32 fourcc) } } +static void +hantro_update_requires_hold_capture_buf(struct hantro_ctx *ctx, u32 fourcc) +{ + struct vb2_queue *vq; + + vq = v4l2_m2m_get_vq(ctx->fh.m2m_ctx, + V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE); + + switch (fourcc) { + case V4L2_PIX_FMT_JPEG: + case V4L2_PIX_FMT_MPEG2_SLICE: + case V4L2_PIX_FMT_VP8_FRAME: + case V4L2_PIX_FMT_HEVC_SLICE: + case V4L2_PIX_FMT_VP9_FRAME: + vq->subsystem_flags &= ~(VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF); + break; + case V4L2_PIX_FMT_H264_SLICE: + vq->subsystem_flags |= VB2_V4L2_FL_SUPPORTS_M2M_HOLD_CAPTURE_BUF; + break; + default: + break; + } +} + static int hantro_set_fmt_out(struct hantro_ctx *ctx, struct v4l2_pix_format_mplane *pix_mp) { @@ -472,6 +496,7 @@ static int hantro_set_fmt_out(struct hantro_ctx *ctx, ctx->dst_fmt.quantization = pix_mp->quantization; hantro_update_requires_request(ctx, pix_mp->pixelformat); + hantro_update_requires_hold_capture_buf(ctx, pix_mp->pixelformat); vpu_debug(0, "OUTPUT codec mode: %d\n", ctx->vpu_src_fmt->codec_mode); vpu_debug(0, "fmt - w: %d, h: %d\n", -- 2.34.1