From patchwork Mon Feb 20 10:48:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Gaignard X-Patchwork-Id: 59367 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp1239678wrn; Mon, 20 Feb 2023 02:52:59 -0800 (PST) X-Google-Smtp-Source: AK7set+Irjsom4tDS54Jnso4Og7g3G0CIItb0VWEVpeEs1o2koMhoM9fHZVSSDS2jLh87cU/NDDt X-Received: by 2002:a17:902:e890:b0:199:2a4f:be84 with SMTP id w16-20020a170902e89000b001992a4fbe84mr3799919plg.58.1676890379688; Mon, 20 Feb 2023 02:52:59 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676890379; cv=none; d=google.com; s=arc-20160816; b=b5oJ72/Wvutu1TxYWxapQ4vQCUNpACQn07fjYT/t0nRQDg5Tj+67ABXUQEpIbw8OWB b5WbXXdoKAJn5IIHhCP6rrIlvZMJMK/ManAZQbyMGAM36OuyxCiyN0MoCEwIFwJd7BoV okN5egYikjyyne1qVp48gCso+bxUL6MkGLatrhe8YCX4GHVrBvBjmUWrGklaVnI4h7C1 rUEKWYR1D6KhiYoKoQBOM3hQJTlga/BVkK24TbtcaOmylY4jbdbUsmJ0oivL6InNJ4K1 uDGFjia/weBwkoCW0Yg/PmKEmuobwOlpLL+8kz06SUy9C+e5A3ac6Q6jmfI6GMb4foVb cJ0Q== 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=91rQZmNxQbWafvwmNl2fHvupW1z5sKT2M6yJDqhHEhA=; b=WrRnkT/Jc883+C5/UblW2h+Z3VdgJZDZXfuB040Qy2fDTjvtMWD2vybXYV4d/LGCtW 8Gwa9O5QiVl0s8mNxw4XgShr5xxthDVbJuollnNUxVNfSTZRIRx1m5Zb/PDWPfotbkaZ G+s4nSqCfH02eRY8CuIsqRZM/y+lZ57TH3QfItQucO0JfYYwC2IuEoGg0hZf0/dXHRLp uhbvkD3hZydjU4uKmaWSXOSFJOrR4grTVMp7EtZ0Z93A4jqoNuczK5+MpSVdT7gDN/R1 IaQqkwxaa10uKssaSrprzApGg9Ov391jJyWFTe0hc18v+m4zNbZ9Dn/ydKfh3GkbuWm9 VZqQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b="CHnsD/NN"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=collabora.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ky11-20020a170902f98b00b00194df2022dfsi4194302plb.440.2023.02.20.02.52.46; Mon, 20 Feb 2023 02:52:59 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@collabora.com header.s=mail header.b="CHnsD/NN"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=collabora.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231689AbjBTKtF (ORCPT + 99 others); Mon, 20 Feb 2023 05:49:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39912 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231643AbjBTKtB (ORCPT ); Mon, 20 Feb 2023 05:49:01 -0500 Received: from madras.collabora.co.uk (madras.collabora.co.uk [46.235.227.172]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CD1F1B77E; Mon, 20 Feb 2023 02:48:59 -0800 (PST) Received: from benjamin-XPS-13-9310.. (unknown [IPv6:2a01:e0a:120:3210:d30c:b155:96fb:dcc]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: benjamin.gaignard) by madras.collabora.co.uk (Postfix) with ESMTPSA id 362366602149; Mon, 20 Feb 2023 10:48:58 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=collabora.com; s=mail; t=1676890138; bh=nAuFKvKMZ2YBTXOWwp+TuprTbhS3UMLPUmAFqn4ND1I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CHnsD/NNj+DyMumjt9VtCfdS16dVMvfR3ArcmpJYFx/Jz0vIJYEWJzw8uxZoSTHXU l9Aw7fyj34YpCyfsKPVsAWnK7DyBfWDrEcsxFLMG1SN+cmPb91FhILwC4lA+sKwoVm KaatgDdQUjx7HjZw7iUY7nleWSw8vNZiB1+hohhq7gjPuhFrCmj9iGPzvOl3Hw4vVz /9mkuooij25y5/TAGjlIB4OM5RPxqMouecSXpetfUwMrkIqW/NuS1kL039IfoUJORo ThLaJ29gaVwZ49vMEU8E7p93XSe6noqvgODtt4S88ZauIK59Q41mmBL3oPZBq2p5Uy kg2/RzwBo06ww== From: Benjamin Gaignard To: ezequiel@vanguardiasur.com.ar, p.zabel@pengutronix.de, mchehab@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, hverkuil-cisco@xs4all.nl, nicolas.dufresne@collabora.co.uk, robert.mader@collabora.com Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, kernel@collabora.com, Benjamin Gaignard Subject: [PATCH v9 2/6] media: verisilicon: Do not use ctx fields as format storage when resetting Date: Mon, 20 Feb 2023 11:48:45 +0100 Message-Id: <20230220104849.398203-3-benjamin.gaignard@collabora.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230220104849.398203-1-benjamin.gaignard@collabora.com> References: <20230220104849.398203-1-benjamin.gaignard@collabora.com> MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_NONE,SPF_PASS autolearn=ham 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758347006722475263?= X-GMAIL-MSGID: =?utf-8?q?1758347006722475263?= Source and destination pixel formats fields of context structure should not be used as storage when resetting the format. Use local variables instead and let hantro_set_fmt_out() and hantro_set_fmt_cap() set them correctly later. Signed-off-by: Benjamin Gaignard Reviewed-by: Ezequiel Garcia --- .../media/platform/verisilicon/hantro_v4l2.c | 40 +++++++++---------- 1 file changed, 18 insertions(+), 22 deletions(-) diff --git a/drivers/media/platform/verisilicon/hantro_v4l2.c b/drivers/media/platform/verisilicon/hantro_v4l2.c index d8aa42bd4cd4..d94c99f875c8 100644 --- a/drivers/media/platform/verisilicon/hantro_v4l2.c +++ b/drivers/media/platform/verisilicon/hantro_v4l2.c @@ -378,47 +378,43 @@ static void hantro_reset_encoded_fmt(struct hantro_ctx *ctx) { const struct hantro_fmt *vpu_fmt; - struct v4l2_pix_format_mplane *fmt; + struct v4l2_pix_format_mplane fmt; vpu_fmt = hantro_get_default_fmt(ctx, true); + if (!vpu_fmt) + return; + hantro_reset_fmt(&fmt, vpu_fmt); + fmt.width = vpu_fmt->frmsize.min_width; + fmt.height = vpu_fmt->frmsize.min_height; if (ctx->is_encoder) - fmt = &ctx->dst_fmt; - else - fmt = &ctx->src_fmt; - - hantro_reset_fmt(fmt, vpu_fmt); - fmt->width = vpu_fmt->frmsize.min_width; - fmt->height = vpu_fmt->frmsize.min_height; - if (ctx->is_encoder) - hantro_set_fmt_cap(ctx, fmt); + hantro_set_fmt_cap(ctx, &fmt); else - hantro_set_fmt_out(ctx, fmt); + hantro_set_fmt_out(ctx, &fmt); } static void hantro_reset_raw_fmt(struct hantro_ctx *ctx) { const struct hantro_fmt *raw_vpu_fmt; - struct v4l2_pix_format_mplane *raw_fmt, *encoded_fmt; + struct v4l2_pix_format_mplane raw_fmt, *encoded_fmt; raw_vpu_fmt = hantro_get_default_fmt(ctx, false); + if (!raw_vpu_fmt) + return; - if (ctx->is_encoder) { - raw_fmt = &ctx->src_fmt; + if (ctx->is_encoder) encoded_fmt = &ctx->dst_fmt; - } else { - raw_fmt = &ctx->dst_fmt; + else encoded_fmt = &ctx->src_fmt; - } - hantro_reset_fmt(raw_fmt, raw_vpu_fmt); - raw_fmt->width = encoded_fmt->width; - raw_fmt->height = encoded_fmt->height; + hantro_reset_fmt(&raw_fmt, raw_vpu_fmt); + raw_fmt.width = encoded_fmt->width; + raw_fmt.height = encoded_fmt->height; if (ctx->is_encoder) - hantro_set_fmt_out(ctx, raw_fmt); + hantro_set_fmt_out(ctx, &raw_fmt); else - hantro_set_fmt_cap(ctx, raw_fmt); + hantro_set_fmt_cap(ctx, &raw_fmt); } void hantro_reset_fmts(struct hantro_ctx *ctx)