Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp125735ybt; Tue, 16 Jun 2020 18:42:00 -0700 (PDT) X-Google-Smtp-Source: ABdhPJztZFu35757/RFSNzLm9kmNtDeog9nqUm0WuCAp3hSKo1PeRYOeVbIxBS0248HXcNe3Mb7a X-Received: by 2002:a17:907:20db:: with SMTP id qq27mr5222328ejb.232.1592358120238; Tue, 16 Jun 2020 18:42:00 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1592358120; cv=none; d=google.com; s=arc-20160816; b=PMjEckwTjvxqyarwFnK6W9rjC7mv9EVBrlRa7a34GQfY76RDBTRLD5XRcE+4C8IsRt vdK1jHC4ah814wFXTUWb8j3KwJZ2NYjqXESJ+ZPJieoH2cSEBiyg94EUq7nHh7EcN6b/ fLFgHHBCj4xgS91sF8jRIHZ+UXtiWY/uHw0zkSNmz1KKRVS4eC84jh6kgo5T5fcm3MUb ojEeDmcbDftK8O6jZ0v93J4C71ckyWfPcUAJwSHn5lpsOhrq44klffqVNCTc1Pvf5d76 Ojb+z0cFbgacNquJcoXkHLAwHMuXdMoJsGQs4qvEimpdbxdSns6ZxPIxaIaMITLR0er6 oNyA== 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=GZyqGrSoezAr+SLhAHVA+xdU9g4LsW1lhpDfas4CIGUae+1irLM9LVzgIXcPhGtejR UynbB9B+uPSWZ0xA65N/+nMfzSlkYPLUxpDdTSy/btGAkHagdG7LCavjDNt7vpvWw2MM 4JqlNyac3UDIKnITCGMFS/CVdW5AXCQGzj5k89hqi53T9lLpER1qychCx0jtSHEUSgMb q3uYfi+Rj1yZWb4ppC06NZmn9V3Qxg7Qwee/4JWhH6+5UJ+9v0KUYfpqnAGQL8oLWz42 lJYHnTxxeSKdd5+Odl56yJ+N0BOnx5wv2gYZxTqMyYENUpNkZln23DSjQp4l39Vwfo35 irRA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nvidia.com header.s=n1 header.b=aTIouQcg; 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 i24si11663064edb.577.2020.06.16.18.41.38; Tue, 16 Jun 2020 18:42:00 -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=aTIouQcg; 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 S1726775AbgFQBjo (ORCPT + 99 others); Tue, 16 Jun 2020 21:39:44 -0400 Received: from hqnvemgate24.nvidia.com ([216.228.121.143]:19562 "EHLO hqnvemgate24.nvidia.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726706AbgFQBjh (ORCPT ); Tue, 16 Jun 2020 21:39:37 -0400 Received: from hqpgpgate101.nvidia.com (Not Verified[216.228.121.13]) by hqnvemgate24.nvidia.com (using TLS: TLSv1.2, DES-CBC3-SHA) id ; Tue, 16 Jun 2020 18:37:58 -0700 Received: from hqmail.nvidia.com ([172.20.161.6]) by hqpgpgate101.nvidia.com (PGP Universal service); Tue, 16 Jun 2020 18:39:36 -0700 X-PGP-Universal: processed; by hqpgpgate101.nvidia.com on Tue, 16 Jun 2020 18:39:36 -0700 Received: from HQMAIL107.nvidia.com (172.20.187.13) by HQMAIL105.nvidia.com (172.20.187.12) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Wed, 17 Jun 2020 01:39:36 +0000 Received: from rnnvemgw01.nvidia.com (10.128.109.123) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Wed, 17 Jun 2020 01:39:36 +0000 Received: from skomatineni-linux.nvidia.com (Not Verified[10.2.171.186]) by rnnvemgw01.nvidia.com with Trustwave SEG (v7,5,8,10121) id ; Tue, 16 Jun 2020 18:39:35 -0700 From: Sowjanya Komatineni To: , , , , , , , CC: , , , , , , , Subject: [RFC PATCH v2 07/18] media: tegra-video: Fix channel format alignment Date: Tue, 16 Jun 2020 18:41:23 -0700 Message-ID: <1592358094-23459-8-git-send-email-skomatineni@nvidia.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1592358094-23459-1-git-send-email-skomatineni@nvidia.com> References: <1592358094-23459-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=1592357878; 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=aTIouQcgByMRJ9NhRrcFmaaSZrlobZN5zHCw29VRXBlXOMjYq/y2ueRa87weqqEwA hWOA8tV3jePCJVWbiQs+eCKJjYZowbnG/JcFUxMWulx7Fw7utXOecvGyvdU4JuDaTu LIGImlg3LVa3skUioGvfTvX0uZP/ukNZpE86gWxMvqsszOVwmA7PVFft7+6iditwhy BG3/2t59DadkaD+9lr7XnqlNNnCAqVm97G22XQLVBHtlwce/u2/jOhOuG2EgQ8g1fZ hVsV1uj3JgQ4+cqpOLXaoqsnHc5MUun0yzttVTXecyFbMXvQhr47c73bOhNQ0v2l9R JtylBGI3Jybkg== 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