Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp373212pxa; Fri, 31 Jul 2020 14:36:19 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzLVSe7HSlPOjycZzdxfpJgvwUVN3JGsNqWV2rQKU3b0BE9TOjgTIj6iH0uCBHDpXGmlfZC X-Received: by 2002:a17:906:c187:: with SMTP id g7mr6305598ejz.108.1596231379012; Fri, 31 Jul 2020 14:36:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596231379; cv=none; d=google.com; s=arc-20160816; b=XoFSuC4nlho8WA/IXISGwLscl0B9B56DvYnr5mHlCr/bJrFFu99znwNivJiCnlFp/f jBua1nmDcQ/UnjuK30UNg/GQHAgB+a8B9FHZEi8GIQLPzs2kgGNz9k+ZawsAERT8TR40 kaLPzIDZHcHHlsxl/oknPtpdP6Bl/IKY4AmBMnoGf6ZpEiJEBDZw7ETu2Loa57SwjsML 88aAGZXCUawkdGFVD/TahZdrD3rjLltmzLa2hHg0kQZLI9XOqYJuxQMImfdzTpIrWmya WV3tFmfsvxBrcBDWyEjo7YoIeFnTrwHf3+vEFbBPwntoHfjpYqoK06l1l4geuPYVIwvF ZHUw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:dkim-signature:mime-version:references :in-reply-to:message-id:date:subject:cc:to:from; bh=8GJbUvoTqNXQhoilqMQO06MgCPv5IgO6eahUeR7/0ig=; b=H4TPVZiza3JVa6ZXJbOHEDrVzjtw5iS0Rh1OQ+LtbCZ0rfYoUCIlCj/3Z/ACkBy0yM 3fm9B7/cMuWZJiljpNWOZFO21C43ThZjITCqd/iWWzKVYrkzCpIZU2upo4mtOV2crIsm fA70cAtyRSL7tbk2nVoSjlF1M7owfVnTYExsrS5h07+TQuAqYIY+f07KI3OhdRRXi3n5 xMNl10Y3edB67u89JLt5fjsMAA7musVCiIpHZqQrzsdH5EAAi2AVQ2fPxaXna7HL8LrG HLh6G7hW2e01TsuXI4fo828JZNTEooxmLBZVJmJVeMuRqz6aewuibDupwA1SF0YmbryW 39bQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=kf7dh7xB; 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=nvidia.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id h1si5084566ejb.4.2020.07.31.14.35.56; Fri, 31 Jul 2020 14:36:18 -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=@nvidia.com header.s=n1 header.b=kf7dh7xB; 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=nvidia.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729193AbgGaVca (ORCPT + 99 others); Fri, 31 Jul 2020 17:32:30 -0400 Received: from hqnvemgate26.nvidia.com ([216.228.121.65]:18234 "EHLO hqnvemgate26.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728055AbgGaVc3 (ORCPT ); Fri, 31 Jul 2020 17:32:29 -0400 Received: from hqpgpgate102.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate26.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Fri, 31 Jul 2020 14:32:15 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate102.nvidia.com (PGP Universal service); Fri, 31 Jul 2020 14:32:28 -0700 X-PGP-Universal: processed; by hqpgpgate102.nvidia.com on Fri, 31 Jul 2020 14:32:28 -0700 Received: from HQMAIL111.nvidia.com (172.20.187.18) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 31 Jul 2020 21:32:28 +0000 Received: from hqnvemgw03.nvidia.com (10.124.88.68) by HQMAIL111.nvidia.com (172.20.187.18) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Fri, 31 Jul 2020 21:32:28 +0000 Received: from skomatineni-linux.nvidia.com (Not Verified[10.2.167.221]) by hqnvemgw03.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Fri, 31 Jul 2020 14:32:28 -0700 From: Sowjanya Komatineni To: , , , , , , , CC: , , , , , Subject: [PATCH v7 01/10] media: tegra-video: Fix channel format alignment Date: Fri, 31 Jul 2020 14:32:15 -0700 Message-ID: <1596231144-12554-2-git-send-email-skomatineni@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1596231144-12554-1-git-send-email-skomatineni@nvidia.com> References: <1596231144-12554-1-git-send-email-skomatineni@nvidia.com> X-NVConfidentiality: public MIME-Version: 1.0 Content-Type: text/plain DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nvidia.com; s=n1; t=1596231135; bh=8GJbUvoTqNXQhoilqMQO06MgCPv5IgO6eahUeR7/0ig=; h=X-PGP-Universal:From:To:CC:Subject:Date:Message-ID:X-Mailer: In-Reply-To:References:X-NVConfidentiality:MIME-Version: Content-Type; b=kf7dh7xBvwW7kBNLqeMyPx2jK1tq4ZBEFVe9o/GJEeZoTFkcqIpKwG/HLMkAMYHIO eMD1BjVDyWtpGZWSnUPdrAO0P/0iUrP+jIsJ08kawQdTDHqBQqyjUJrA9ugFXoli+H osiVlxU4i8wraZxhXp1NYkDJ4xgMJEJ2gkmu7AkYPw+ClDmXbRJe5xcUdkqKBvfCD0 L1wfrO/T2xU+FQtNHFVhFcg3KE5BdUaja7UiZ4/0NgjDJvLJa9s0iM475CnsbNP+HE ihEwfgmL5pfPDs3AHgwdFQyy64Yx8/UpIZxk4Q1/p+KxyVIjqgKoI05tEZfOID+7fR YzPyry4zuUXEQ== Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Pixel format width is mistakenly aligned to surface align bytes and altering width to aligned value may force sensor mode change other than the requested one and also cause mismatch in width programmed between sensor and vi which can lead to capture errors. This patch removes width alignment and clamps width as per Tegra minimum and maximum limits. Signed-off-by: Sowjanya Komatineni --- drivers/staging/media/tegra-video/vi.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/staging/media/tegra-video/vi.c b/drivers/staging/media/tegra-video/vi.c index 1b5e660..d621ebc 100644 --- a/drivers/staging/media/tegra-video/vi.c +++ b/drivers/staging/media/tegra-video/vi.c @@ -359,25 +359,15 @@ static void tegra_channel_fmt_align(struct tegra_vi_channel *chan, struct v4l2_pix_format *pix, unsigned int bpp) { - unsigned int align; - unsigned int min_width; - unsigned int max_width; - unsigned int width; unsigned int min_bpl; unsigned int max_bpl; unsigned int bpl; /* - * The transfer alignment requirements are expressed in bytes. Compute - * minimum and maximum values, clamp the requested width and convert - * it back to pixels. Use bytesperline to adjust the width. + * The transfer alignment requirements are expressed in bytes. + * Clamp the requested width and height to the limits. */ - align = lcm(SURFACE_ALIGN_BYTES, bpp); - min_width = roundup(TEGRA_MIN_WIDTH, align); - max_width = rounddown(TEGRA_MAX_WIDTH, align); - width = roundup(pix->width * bpp, align); - - pix->width = clamp(width, min_width, max_width) / bpp; + pix->width = clamp(pix->width, TEGRA_MIN_WIDTH, TEGRA_MAX_WIDTH); pix->height = clamp(pix->height, TEGRA_MIN_HEIGHT, TEGRA_MAX_HEIGHT); /* Clamp the requested bytes per line value. If the maximum bytes per -- 2.7.4