Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp4400700pxy; Tue, 27 Apr 2021 04:18:35 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxuK4my5VBTjFzhR8F+E6UsKrsBNYm3qwBMG08laQhI0cWDRVipuhJn5pCuNlGG2/+afCJP X-Received: by 2002:a63:144e:: with SMTP id 14mr21296924pgu.53.1619522315161; Tue, 27 Apr 2021 04:18:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619522315; cv=none; d=google.com; s=arc-20160816; b=QHVdGgD8pER8r1NTDf7cXNAPE3A0G2QmcpXnvsY6j1mlbWFuhI9bTZdSK3ovmL2YwX NIeOTfqoZULCp1ZnsiEqTpXnWFkSlyAOJhxgFRHfoRgkoOUzZ6mIiMTtueTbC1b0szYS sA7dGec5Lf4zXti1T5qX+j2J1ZDclqZVmPJLdXbTNzuOUivCtrDl45jaxtLSBvOCMM/o 79GTPXXanXGVxeZS/CbskWKCV1fi0iS6S1Lq1Pgk+cmDUAzUcmKx5LaYY5kv2KeFtC6p S8cYdxQCBCbhI7RZ7tBFwduaAz/rPzpo5KoXzgF5NPXB0zrlZYZjYZCnM/cqdZ58ueYx 2u2A== 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=NeuaYr+AFNS6zFyhjEclvaB+RiQlE5bnT3MqlgX4tYM=; b=ODHEODNUK0wHiDl+sLpYGitC7JPi95tYd2WU2V7UtMxksrpM7GDM8fBwvV9e4j1s1d NVNezUaSK6QE/3TydmvmrEoHD7P0Fl1vL/qulmdGlkq+CRqM6q4s71r1+O+CUNLSz3UL UfXP5t9TlgWCrZY4E2tfMAoLs5YXPsBdWj9fCcaFQ1IT5MSQk7yJLDykL/jGFdQwVF4G yXZYDTQXOq8tQGVPIhO91WlPC/LBnoDj8keDODv6qQD0tgSLvFzC80c5+JsR9kcGEByQ PRuvgwhWt5F5XKn4uweVC9NoFQqBnmDSS0KDKHVNwts6WaMf/11x/VtL0fS+NgH00f5w FTiA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@chromium.org header.s=google header.b=NM92Kqfk; 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=chromium.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x126si3033467pfb.117.2021.04.27.04.18.22; Tue, 27 Apr 2021 04:18:35 -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=@chromium.org header.s=google header.b=NM92Kqfk; 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=chromium.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237609AbhD0LRY (ORCPT + 99 others); Tue, 27 Apr 2021 07:17:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39882 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235999AbhD0LQx (ORCPT ); Tue, 27 Apr 2021 07:16:53 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A96E6C061574 for ; Tue, 27 Apr 2021 04:16:10 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id f6-20020a17090a6546b029015088cf4a1eso7018920pjs.2 for ; Tue, 27 Apr 2021 04:16:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NeuaYr+AFNS6zFyhjEclvaB+RiQlE5bnT3MqlgX4tYM=; b=NM92KqfkwK8D3MAj2A2IAOebWPxBDpy9nSUs6JX+LRjwpxE0EIEV6xkPFinBPMwPcJ 7z4RGCGDQ1uTLDWFAbWnbv131GzqbJY3okRp8m3cMGKPOVIsWF3TlS8P+ko8Pe8XwWgf 4/Ju9NNy1J/ngY8tL+zqPRbuxYBveekRdsRnA= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NeuaYr+AFNS6zFyhjEclvaB+RiQlE5bnT3MqlgX4tYM=; b=ACcj6hXhL4ddxIJGOzXL7EymgEBYsU9pAAM4w0Fv29v7rIAmS+GRHt8KnoeHyBAocQ C0i8nJQlzBQ1R4uS7hjcVLLYQ/g5tr0VToVK50t5R8tatA9U9+LsRLiiO+hUGOb8Z/rU s7/n5F8al6ix4AzrHkKwxOd8HEz8dmFktJOlVR0IcSdpw3yI05n+LNCzefdgT9ho6V8z D+S4k1BwqTUoBCVfjt9VutcPzqmwDFQfS2QaczbdLB6cA/j0STqv1sRADqxUyxfXqqLi 0sislVfwNAqsFHkrTRM0UUJ6klqsDJ1HZXFUC1wpXUxe6729nikd1UsqQqJZPXiKumnM zwHw== X-Gm-Message-State: AOAM531BlQFk/DrBC31Ve2SaR1tF/lQayleMImmeZ6mgG2GSaNa0uGqq XtKGZLcQKN36MDL0EfJLWrPhrQ== X-Received: by 2002:a17:902:9a0a:b029:e6:bf00:8a36 with SMTP id v10-20020a1709029a0ab02900e6bf008a36mr24255695plp.51.1619522170256; Tue, 27 Apr 2021 04:16:10 -0700 (PDT) Received: from acourbot.tok.corp.google.com ([2401:fa00:8f:203:b182:d363:32d0:53a2]) by smtp.gmail.com with ESMTPSA id c21sm2347210pfc.165.2021.04.27.04.16.07 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 27 Apr 2021 04:16:09 -0700 (PDT) From: Alexandre Courbot To: Tiffany Lin , Andrew-CT Chen , Rob Herring , Yunfei Dong Cc: Mauro Carvalho Chehab , Hans Verkuil , linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, Alexandre Courbot Subject: [PATCH v4 12/15] media: mtk-vcodec: vdec: clamp OUTPUT resolution to hardware limits Date: Tue, 27 Apr 2021 20:15:23 +0900 Message-Id: <20210427111526.1772293-13-acourbot@chromium.org> X-Mailer: git-send-email 2.31.1.498.g6c1eba8ee3d-goog In-Reply-To: <20210427111526.1772293-1-acourbot@chromium.org> References: <20210427111526.1772293-1-acourbot@chromium.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Calling S_FMT or TRY_FMT on the OUTPUT queue should adjust the resolution to the limits supported by the hardware. Until now this was only done on the CAPTURE queue, which could make clients believe that unsupported resolutions can be used when they set the coded size on the OUTPUT queue. In the case of the stateless decoder, the problem was even bigger since subsequently calling G_FMT on the CAPTURE queue would result in the unclamped resolution being returned, further inducing the client into error. Signed-off-by: Alexandre Courbot --- drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c index 4ef4b68ec9bd..0fafe8f9e1b9 100644 --- a/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c +++ b/drivers/media/platform/mtk-vcodec/mtk_vcodec_dec.c @@ -223,19 +223,19 @@ static int vidioc_try_fmt(struct v4l2_format *f, pix_fmt_mp->field = V4L2_FIELD_NONE; + pix_fmt_mp->width = clamp(pix_fmt_mp->width, + MTK_VDEC_MIN_W, + MTK_VDEC_MAX_W); + pix_fmt_mp->height = clamp(pix_fmt_mp->height, + MTK_VDEC_MIN_H, + MTK_VDEC_MAX_H); + if (f->type == V4L2_BUF_TYPE_VIDEO_OUTPUT_MPLANE) { pix_fmt_mp->num_planes = 1; pix_fmt_mp->plane_fmt[0].bytesperline = 0; } else if (f->type == V4L2_BUF_TYPE_VIDEO_CAPTURE_MPLANE) { int tmp_w, tmp_h; - pix_fmt_mp->height = clamp(pix_fmt_mp->height, - MTK_VDEC_MIN_H, - MTK_VDEC_MAX_H); - pix_fmt_mp->width = clamp(pix_fmt_mp->width, - MTK_VDEC_MIN_W, - MTK_VDEC_MAX_W); - /* * Find next closer width align 64, heign align 64, size align * 64 rectangle -- 2.31.1.498.g6c1eba8ee3d-goog