Received: by 2002:a25:7ec1:0:0:0:0:0 with SMTP id z184csp628459ybc; Tue, 12 Nov 2019 06:55:37 -0800 (PST) X-Google-Smtp-Source: APXvYqzOGaF7LRokOVwbFRTWluVeBNlKA2JfJaRFgCNaXTwo931PUnOKiG3NrEJwZGX9kdzjqL00 X-Received: by 2002:a17:906:cc93:: with SMTP id oq19mr12417279ejb.316.1573570537491; Tue, 12 Nov 2019 06:55:37 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573570537; cv=none; d=google.com; s=arc-20160816; b=Sv0FDfjcKW0G81ad3KjjD5oJFW1nGfUhdtU+wROv4qWjFzH59PITW30t1Ll0fXn22u DqFnDxjIxK6dBh6lsv4jUN5ZDjaMWERIF8F6i9CgJ5lUcIcGR94C9OrJbEXqLddQkd+8 cKNjt1/dg9PL8sAm5Kygvjwj2P7hxhnp/XL4fSqrt31p/ZY3jSqDW0EtBqbNNd82wDlY 37GJsqm8H+et6T5SPiAY/r8339K6kjPOfBt6ZuPHDTeor5Uq/VdpzIB1YwGZy19ziWoI qNMQJvsFuEVOSkmW7Cc4QWeil/jT8DUoQJSsQBzEF+1D0fGqVO5NMc0bMzvNaEAiyC1w JjUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:dkim-signature; bh=VPcCHoz83EUA010ZU1nWEatZxpJu9dEalZ7log4olLA=; b=OIUfXfUqyPY5JJA2qrSfXht6MOBnRf8rq1NlG5tfhMWM8jBTsLzOAbcJyKkSZZAUwx MiUjYbJ2SaBa6RN8pvGfIYjnkuP7fPIuqC/KTubgfk078Nw/sujFLKp+PwRSHQkVf7R5 Q4Eek8RNdAnkhT+SE11Vk4APFOfBUs4nJ11Oj3t/LL2LIlEybPbhZt9Tf0fmhEYFI2FO 7EBkF63+NuPyTJKrDAjQd3XOwk5e7ZTgn3ubKYARfxORSgP81637SYlAXyqcdjqZVCM3 NJp+6SHFmotRewkSixeULQW0jvqa50FR1wvl6j4YQ46ZJ9PFKRTqxxcbS0agpMXfl3Rt 0qTg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=wJVgoHL4; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r18si97261eja.211.2019.11.12.06.55.13; Tue, 12 Nov 2019 06:55:37 -0800 (PST) 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; dkim=pass header.i=@ti.com header.s=ti-com-17Q1 header.b=wJVgoHL4; 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; dmarc=pass (p=QUARANTINE sp=NONE dis=NONE) header.from=ti.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727590AbfKLOvx (ORCPT + 99 others); Tue, 12 Nov 2019 09:51:53 -0500 Received: from lelv0142.ext.ti.com ([198.47.23.249]:41694 "EHLO lelv0142.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727340AbfKLOvF (ORCPT ); Tue, 12 Nov 2019 09:51:05 -0500 Received: from lelv0266.itg.ti.com ([10.180.67.225]) by lelv0142.ext.ti.com (8.15.2/8.15.2) with ESMTP id xACEp3X0105837; Tue, 12 Nov 2019 08:51:03 -0600 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ti.com; s=ti-com-17Q1; t=1573570263; bh=VPcCHoz83EUA010ZU1nWEatZxpJu9dEalZ7log4olLA=; h=From:To:CC:Subject:Date:In-Reply-To:References; b=wJVgoHL4zGbqXutwu08LTCuzTLUhglmZCrjTL5DZ9APR2nqYyUBi/Yk2gK6LuIIst 8kxVAGAxq3x2BY4dtKmZB//cie5dUebRubW4zaplXxlvItwdr5UlUV8KxGX1xjOGET 64r0NuPJWL9l6c0sxL9JczFJdskoY9mDiSuDdCY8= Received: from DLEE110.ent.ti.com (dlee110.ent.ti.com [157.170.170.21]) by lelv0266.itg.ti.com (8.15.2/8.15.2) with ESMTPS id xACEp2Na024088 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=FAIL); Tue, 12 Nov 2019 08:51:03 -0600 Received: from DLEE101.ent.ti.com (157.170.170.31) by DLEE110.ent.ti.com (157.170.170.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3; Tue, 12 Nov 2019 08:50:45 -0600 Received: from lelv0327.itg.ti.com (10.180.67.183) by DLEE101.ent.ti.com (157.170.170.31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1847.3 via Frontend Transport; Tue, 12 Nov 2019 08:50:45 -0600 Received: from uda0869644b.dal.design.ti.com (ileax41-snat.itg.ti.com [10.172.224.153]) by lelv0327.itg.ti.com (8.15.2/8.15.2) with ESMTP id xACEokf3068428; Tue, 12 Nov 2019 08:51:02 -0600 From: Benoit Parrot To: Hans Verkuil , Sakari Ailus , Rob Herring CC: , , , Benoit Parrot Subject: [RESEND Patch v3 17/20] media: ti-vpe: cal: Properly calculate max resolution boundary Date: Tue, 12 Nov 2019 08:53:44 -0600 Message-ID: <20191112145347.23519-18-bparrot@ti.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20191112145347.23519-1-bparrot@ti.com> References: <20191112145347.23519-1-bparrot@ti.com> MIME-Version: 1.0 Content-Type: text/plain X-EXCLAIMER-MD-CONFIG: e1e8a2fd-e40a-4ac6-ac9b-f7e9cc9ee180 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently we were using an arbitrarily small maximum resolution mostly based on available sensor capabilities. However the hardware DMA limits are much higher than the statically define maximum resolution we were using. There we rework the boundary check code to handle the maximum width and height based on the maximum line width in bytes and re-calculating the pixel width based on the given pixel format. Signed-off-by: Benoit Parrot --- drivers/media/platform/ti-vpe/cal.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/drivers/media/platform/ti-vpe/cal.c b/drivers/media/platform/ti-vpe/cal.c index 5b5ff32b6120..091119bee8fc 100644 --- a/drivers/media/platform/ti-vpe/cal.c +++ b/drivers/media/platform/ti-vpe/cal.c @@ -34,8 +34,8 @@ #define CAL_MODULE_NAME "cal" -#define MAX_WIDTH 1920 -#define MAX_HEIGHT 1200 +#define MAX_WIDTH_BYTES (8192 * 8) +#define MAX_HEIGHT_LINES 16383 #define CAL_VERSION "0.1.0" @@ -1330,15 +1330,21 @@ static int cal_calc_format_size(struct cal_ctx *ctx, const struct cal_fmt *fmt, struct v4l2_format *f) { - u32 bpl; + u32 bpl, max_width; if (!fmt) { ctx_dbg(3, ctx, "No cal_fmt provided!\n"); return -EINVAL; } - v4l_bound_align_image(&f->fmt.pix.width, 48, MAX_WIDTH, 2, - &f->fmt.pix.height, 32, MAX_HEIGHT, 0, 0); + /* + * Maximum width is bound by the DMA max width in bytes. + * We need to recalculate the actual maxi width depending on the + * number of bytes per pixels required. + */ + max_width = MAX_WIDTH_BYTES / (ALIGN(fmt->bpp, 8) >> 3); + v4l_bound_align_image(&f->fmt.pix.width, 48, max_width, 2, + &f->fmt.pix.height, 32, MAX_HEIGHT_LINES, 0, 0); bpl = (f->fmt.pix.width * ALIGN(fmt->bpp, 8)) >> 3; f->fmt.pix.bytesperline = ALIGN(bpl, 16); -- 2.17.1