Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp937244pxf; Wed, 7 Apr 2021 15:32:09 -0700 (PDT) X-Google-Smtp-Source: ABdhPJy+76WzVx8uT/yKp99wvCoyhJ4/Fpkf8nAySlJyG/7VCn9RElqV1acU5jcHUM1C4WAKOTBe X-Received: by 2002:aa7:db95:: with SMTP id u21mr7325264edt.152.1617834729625; Wed, 07 Apr 2021 15:32:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1617834729; cv=none; d=google.com; s=arc-20160816; b=sP5xxrUMGzlHkOSNiho2wXof5SOvHBgCJ8RXRorgWUrOtP8/d8/Xi1USeRv7nI90bh PS78amRjmqPt133Obzao0EDo4WbB61VTSWnjoBNhdGhpXj1Gk+kdBAhT317fASGAfESo xTc5daOMObtfIH2eyH1UWkOsKmYT28IgkUW5zdjJsTBbzWgWrpRlCBIqgW4fbWqL/rNV NI3B5SjTI6vPz56BcRibDEmnlUEk8SeyYjptyGF6HG6ZBskJF1HWuRDFazKE98hbTIyA ZM0EEwl9DePrcSo3lxOlvtSKKDOGTHWUBsUn2akdcy+ZtJ44Iep2EyDFX44z8PoAK4NW /+gQ== 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; bh=uph+W/hTtlgqe2EQ2RH1KFrw/zKQVr2zL/XokijSkXo=; b=rMCjS0XVzOLJ8mdupdcicCvOOSByEoW3GsaIf24N60AvzX4BLM6gJhPEDZUOuSZJMk GDIQOgUh3PELaFURVHQ1M/j/EXKt9mi/8dV5FXHW0wgYnqCoXNwj4XTCnWFnxKfJm1EA l1mn/dt765lDKXMCERRJ6mQZzE8iCtYw3ArWko8ygeGoXydl2X8TREKxEhH6s7pDPBMN nrlqDJQbqXS9onSj7U1K3GSg5PnswcWFkcMI9zWQOc4Dx1aZxxTMiF2pJ+wwOnvdjhah v4yVeBkGHE32AUMp6EPs4vVFu7Uk1oDoV9PHLU/0dnLBwzFJZGCtywtlKd+gQG/Ny73w KC/w== 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 b13si21455998ede.383.2021.04.07.15.31.46; Wed, 07 Apr 2021 15:32:09 -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; 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 S1349548AbhDGHg3 (ORCPT + 99 others); Wed, 7 Apr 2021 03:36:29 -0400 Received: from bhuna.collabora.co.uk ([46.235.227.227]:55316 "EHLO bhuna.collabora.co.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1346800AbhDGHgH (ORCPT ); Wed, 7 Apr 2021 03:36:07 -0400 Received: from [127.0.0.1] (localhost [127.0.0.1]) (Authenticated sender: benjamin.gaignard) with ESMTPSA id F29FE1F44F89 From: Benjamin Gaignard To: ezequiel@collabora.com, p.zabel@pengutronix.de, mchehab@kernel.org, robh+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, festevam@gmail.com, lee.jones@linaro.org, gregkh@linuxfoundation.org, mripard@kernel.org, paul.kocialkowski@bootlin.com, wens@csie.org, jernej.skrabec@siol.net, hverkuil-cisco@xs4all.nl, emil.l.velikov@gmail.com Cc: kernel@pengutronix.de, linux-imx@nxp.com, 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, cphealy@gmail.com, Benjamin Gaignard Subject: [PATCH v9 08/13] media: hantro: Only use postproc when post processed formats are defined Date: Wed, 7 Apr 2021 09:35:29 +0200 Message-Id: <20210407073534.376722-9-benjamin.gaignard@collabora.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210407073534.376722-1-benjamin.gaignard@collabora.com> References: <20210407073534.376722-1-benjamin.gaignard@collabora.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org If the variant doesn't support postprocessed formats make sure it will be ok. Signed-off-by: Benjamin Gaignard Reviewed-by: Ezequiel Garcia --- version 9: - Corrections in commit message version 8: - add Ezequiel review tag drivers/staging/media/hantro/hantro.h | 8 ++------ drivers/staging/media/hantro/hantro_postproc.c | 14 ++++++++++++++ drivers/staging/media/hantro/hantro_v4l2.c | 4 +++- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/drivers/staging/media/hantro/hantro.h b/drivers/staging/media/hantro/hantro.h index edb4561a6887..7a5ad93466c8 100644 --- a/drivers/staging/media/hantro/hantro.h +++ b/drivers/staging/media/hantro/hantro.h @@ -414,12 +414,8 @@ hantro_get_dst_buf(struct hantro_ctx *ctx) return v4l2_m2m_next_dst_buf(ctx->fh.m2m_ctx); } -static inline bool -hantro_needs_postproc(const struct hantro_ctx *ctx, - const struct hantro_fmt *fmt) -{ - return !ctx->is_encoder && fmt->fourcc != V4L2_PIX_FMT_NV12; -} +bool hantro_needs_postproc(const struct hantro_ctx *ctx, + const struct hantro_fmt *fmt); static inline dma_addr_t hantro_get_dec_buf_addr(struct hantro_ctx *ctx, struct vb2_buffer *vb) diff --git a/drivers/staging/media/hantro/hantro_postproc.c b/drivers/staging/media/hantro/hantro_postproc.c index 6d2a8f2a8f0b..ed8916c950a4 100644 --- a/drivers/staging/media/hantro/hantro_postproc.c +++ b/drivers/staging/media/hantro/hantro_postproc.c @@ -50,6 +50,20 @@ const struct hantro_postproc_regs hantro_g1_postproc_regs = { .display_width = {G1_REG_PP_DISPLAY_WIDTH, 0, 0xfff}, }; +bool hantro_needs_postproc(const struct hantro_ctx *ctx, + const struct hantro_fmt *fmt) +{ + struct hantro_dev *vpu = ctx->dev; + + if (ctx->is_encoder) + return false; + + if (!vpu->variant->postproc_fmts) + return false; + + return fmt->fourcc != V4L2_PIX_FMT_NV12; +} + void hantro_postproc_enable(struct hantro_ctx *ctx) { struct hantro_dev *vpu = ctx->dev; diff --git a/drivers/staging/media/hantro/hantro_v4l2.c b/drivers/staging/media/hantro/hantro_v4l2.c index 1bc118e375a1..77d7fe62ce81 100644 --- a/drivers/staging/media/hantro/hantro_v4l2.c +++ b/drivers/staging/media/hantro/hantro_v4l2.c @@ -55,7 +55,9 @@ static const struct hantro_fmt * hantro_get_postproc_formats(const struct hantro_ctx *ctx, unsigned int *num_fmts) { - if (ctx->is_encoder) { + struct hantro_dev *vpu = ctx->dev; + + if (ctx->is_encoder || !vpu->variant->postproc_fmts) { *num_fmts = 0; return NULL; } -- 2.25.1