From nobody Mon Feb 9 09:00:33 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 601ED271441; Fri, 17 Oct 2025 08:14:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760688869; cv=none; b=lpfMBFTVHA34caIdBLyDrt2bZDcuN32N2o3XIUJhWvE+vQjNAn8XKjMT7i41rzCdwFGgq/uzdtEYuK9SWhlE4Z5tuK89F7914QOggy4Rl42vfIwJ/w18QnmJwjTIUkmhdoj6lxO32yQQcNeon/U9d+vDVL+c7h1dQhTpFFwGs7Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760688869; c=relaxed/simple; bh=Oofl3IFmbQbxGrlpyCmCAZh1xKDxPMsqOUsZ45j7OsM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=dlPaYITJigcJ6nSnJiFzj+O0JSzJupRK1mqc4NtMEpuE5N6tZFrdBbL4a605h+eaWOfQgoEJsvEcnH987CMG0B1XvlrH/kBRvDIZ4vwF/v/pTl/8o6PosZlrQkg5u4I4C0SaWComVMl/j26+UZAKMbI3LxwmwC8S+4CK7bg7oas= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=Tdx3Movb; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Tdx3Movb" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c68:2112:eb18:6ce9:5a39:76a2]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 0030C1E2F; Fri, 17 Oct 2025 10:12:38 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1760688759; bh=Oofl3IFmbQbxGrlpyCmCAZh1xKDxPMsqOUsZ45j7OsM=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Tdx3Movb0bDVeilteFdX+v/sx4Y3hXIHRrBYCx24+1fe/kbQur5VfKrOHOSyJEfCp Cz02PPEgCJSno6i6WkKEyUWAbX+cEeXFXn0mIjIIJzEm5iHcp+xzdwghZb2t3GFbeE Ve9jHgE60DfoI8j0+L+6cNkjo+3krsnvj5OdWg1Q= From: Jai Luthra Date: Fri, 17 Oct 2025 13:43:49 +0530 Subject: [PATCH 1/2] media: i2c: imx219: Fix 1920x1080 mode to use 1:1 pixel aspect ratio Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251017-imx219-1080p-v1-1-9173d5a47a0c@ideasonboard.com> References: <20251017-imx219-1080p-v1-0-9173d5a47a0c@ideasonboard.com> In-Reply-To: <20251017-imx219-1080p-v1-0-9173d5a47a0c@ideasonboard.com> To: Sakari Ailus , Dave Stevenson , Mauro Carvalho Chehab , Laurent Pinchart , Hans Verkuil , Jacopo Mondi Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Tomi Valkeinen , =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= , Jai Luthra , stable@vger.kernel.org X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=2005; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=8SZm99f+rftgGOpRtMJy2AmvPN5HZJgT0f6H4Q0hi/k=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBo8frObKqqluFD5NttMK5T7EaqA7TTxx1jqlGIl J3lFUwSkAGJAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCaPH6zgAKCRBD3pH5JJpx RSVgEAC1x/2H1siWB6rfMrCrFgnFQeNA3mF7O3mUsPq5OutPeQ25rbeOvU7FD4QUgAWK/yqqhi9 WmVK/QueTiqqXMWMoqaq34XCSqvoxpSEv9r59CWO+261mxfVvZ6j3j+Z3oOQ1lmbgSceft+f6c9 V4HgJPOzPBEf8CdycadC3yGXc8GR4WD6+j2Uq8dHz52wYRsrgBezGsEy6k6eNFdzkiu64xzsXP0 4R/2YIJVnRME5nEUeLBEHnKvIw9pep+32BoRtgWNdKdTudQbx7rELBCEpjd3Oh6FyhHZd23KMw9 oOJPYLM+YvnV2TQj2E+Yjc81GKQOw3mlxJEa77gIPBaTc1EpwDwoVeQBWG+6ckIAKYnAQoQyC38 oFOimJIpJL6TRGXv7xZ5YNHJUg65Onyy9/e0+JX+uWEvd6MB+vW3TAzL+tdKxZEBPJl1AJhfBsw UZZRAPzVtqvyUvOrqslJKFXrrTCM7MGg8GDdreD8jbM3qrqqLT9f8jfyQirvxhqAvmWtlfJLZTL qh/sx9IyrmfkA/Pw4wkpk7rZ8hsEHnr4bYnyaQ4/auI8cqp9B2y3ebg5qw8iIYqQYlm4U3XM8tr 20EB7PVHXAQ0yAXUdzONBekCEUd/CqdMbrhGMpmIKDqSgWv+Aa9IYd5iCGdRlBAq0Jr+gx9Qkph UaIu7fxkm9adF+A== X-Developer-Key: i=jai.luthra@ideasonboard.com; a=openpgp; fpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145 From: Dave Stevenson Commit 0af46fbc333d ("media: i2c: imx219: Calculate crop rectangle dynamically") meant that the 1920x1080 mode switched from using no binning to using vertical binning but no horizontal binning, which resulted in stretched pixels. Until proper controls are available to independently select horizontal and vertical binning, restore the original 1:1 pixel aspect ratio by forcing binning to be uniform in both directions. Cc: stable@vger.kernel.org Fixes: 0af46fbc333d ("media: i2c: imx219: Calculate crop rectangle dynamica= lly") Signed-off-by: Dave Stevenson [Add comment & reword commit message] Signed-off-by: Jai Luthra Reviewed-by: Jacopo Mondi --- drivers/media/i2c/imx219.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index c680aa6c3a55a9d865e79ad337b258cb681f98fe..300935b1ef2497050fe2808e4ce= edda389a75b50 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -856,7 +856,7 @@ static int imx219_set_pad_format(struct v4l2_subdev *sd, const struct imx219_mode *mode; struct v4l2_mbus_framefmt *format; struct v4l2_rect *crop; - u8 bin_h, bin_v; + u8 bin_h, bin_v, binning; u32 prev_line_len; =20 format =3D v4l2_subdev_state_get_format(state, 0); @@ -877,9 +877,12 @@ static int imx219_set_pad_format(struct v4l2_subdev *s= d, bin_h =3D min(IMX219_PIXEL_ARRAY_WIDTH / format->width, 2U); bin_v =3D min(IMX219_PIXEL_ARRAY_HEIGHT / format->height, 2U); =20 + /* Ensure bin_h and bin_v are same to avoid 1:2 or 2:1 stretching */ + binning =3D min(bin_h, bin_v); + crop =3D v4l2_subdev_state_get_crop(state, 0); - crop->width =3D format->width * bin_h; - crop->height =3D format->height * bin_v; + crop->width =3D format->width * binning; + crop->height =3D format->height * binning; crop->left =3D (IMX219_NATIVE_WIDTH - crop->width) / 2; crop->top =3D (IMX219_NATIVE_HEIGHT - crop->height) / 2; =20 --=20 2.51.0 From nobody Mon Feb 9 09:00:33 2026 Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D99A4272E71; Fri, 17 Oct 2025 08:14:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=213.167.242.64 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760688869; cv=none; b=OZT2EfLULVl/afTnEhSPDoWo9qk85zgTDRwoQS/9dXKhxr+UF1TeLH1QLFpm6N/29+vdaQy/fBQ5aYrgyCGHGnB+CNJTfo///Zp9K1JGqq6Yw0Ycrdoj8L/NeocB+W0eNl03hfVrK0J2CPyPyBPGcjyaA9Y89Zno25MgKDcFyl4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760688869; c=relaxed/simple; bh=bLLF7pXnroAzoxCACwBuR51ZVSysgYA8p6ZxfKRG/c0=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RU4pGQ7yl1wyHTxhVnM5Ys2K18rkbu12f42KgWr4IGk8QAt3Vy9XNcZXevXAEjLn97fWtEmlgkpfjidKhyNp67VW/1rUW7YhjgRvR3SLGIwzTAef50EABGwq2HLmOgWtnrstDw7kDx1jZDdE0NUg+3JZSf9b1KjIHvGi2LwYJKs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com; spf=pass smtp.mailfrom=ideasonboard.com; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b=Isezijib; arc=none smtp.client-ip=213.167.242.64 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ideasonboard.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="Isezijib" Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c68:2112:eb18:6ce9:5a39:76a2]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id B7C6B1E33; Fri, 17 Oct 2025 10:12:44 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1760688765; bh=bLLF7pXnroAzoxCACwBuR51ZVSysgYA8p6ZxfKRG/c0=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=Isezijib5jCA15pS9llY+/Jjx/HQSX3bp9jQvBydKLBKBYzYn3b6vhoWl32edbRS/ 7lmihndSwnuZbQV+c2UMSGUn+HsxLGMGIRGLwxqn7QHOV14CxhQPSAywXzau0Tqi4p Oh0Yb3jO7uUlz4RNRBombIwMQRMvPVnkYs9JZpDc= From: Jai Luthra Date: Fri, 17 Oct 2025 13:43:50 +0530 Subject: [PATCH 2/2] media: i2c: imx219: Simplify imx219_get_binning() function Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251017-imx219-1080p-v1-2-9173d5a47a0c@ideasonboard.com> References: <20251017-imx219-1080p-v1-0-9173d5a47a0c@ideasonboard.com> In-Reply-To: <20251017-imx219-1080p-v1-0-9173d5a47a0c@ideasonboard.com> To: Sakari Ailus , Dave Stevenson , Mauro Carvalho Chehab , Laurent Pinchart , Hans Verkuil , Jacopo Mondi Cc: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, Tomi Valkeinen , =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= , Jai Luthra X-Mailer: b4 0.14.2 X-Developer-Signature: v=1; a=openpgp-sha256; l=1387; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=bLLF7pXnroAzoxCACwBuR51ZVSysgYA8p6ZxfKRG/c0=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBo8frPWqQaztPUJfPqg51uYx8mzvFjGkEpByfBF ZNK6Wq6BGKJAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCaPH6zwAKCRBD3pH5JJpx RbAYD/9SrUJjZaryC15JIFZUaHeCH/uYMD3KPWjDC9vl9fzW3xXIeTpHd+GPUMQNFWMcr3YsI7n o39pKsR6K2luImh3TtNfN4xv/++Xp8DvxuZiwnwg6EK2LsFoZz1ktMSTY+AlZ7OH+qLiCVvf1Qk x/ZmpYO74uVeUSbGPPM/8zwa5r3CZMQYdirxFk8xCbTGJP2mw7j7NSBc0POAhpOqGgbQKjp94A9 1PDKEKv3tAPtCd+VheTB8nMslhk1ps1dEFoJB0HTrpqJpwYq/PTQSwGuLws+LGwys6z9DrEljtg PX2FJEufXJ/hWj3SCmG6e3Dhqy2zLjNn5dON950rl4eDV5TmNfvdnbgajHKbToOJcf8HZPou142 SWY1S03oXq408s6ChsipdVanYei6yX8iTSGLOVtNR/QQRXTpIZrw/g80XwYqUDZKZvOzVSlglJE 6Zq8vr+swhAazr+JS+yfh5r+cr63ru/JEAWa23TOtPsTbWkMfhnTZyxilAUTThDokYk4G1UrvE/ ED7YeLyaYfAoL08KaSBV4TB81nQwH33Ua1eLOUUkOy96YIx/qfWMW6VlSbDxBCqhuEl2z1eAA5W uzQYG2U+Oox9LgSSnoZyBz1fCpUwksxY3w9YhpN3uDe0/9NbjGEkyk6rHM7VUQpnCK6lJW//Utw 7j19DBtszu4pI+A== X-Developer-Key: i=jai.luthra@ideasonboard.com; a=openpgp; fpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145 In imx219_set_pad_format() there is now a constraint to enforce hbin =3D=3D vbin. So, simplify the logic in imx219_get_binning() function by removing dead code that handles the case where hbin !=3D vbin. Signed-off-by: Jai Luthra Reviewed-by: Jacopo Mondi Tested-by: Jacopo Mondi --- drivers/media/i2c/imx219.c | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/drivers/media/i2c/imx219.c b/drivers/media/i2c/imx219.c index 300935b1ef2497050fe2808e4ceedda389a75b50..48efdcd2a8f96b678f9819223e0= f9895fb4025ea 100644 --- a/drivers/media/i2c/imx219.c +++ b/drivers/media/i2c/imx219.c @@ -409,24 +409,14 @@ static void imx219_get_binning(struct v4l2_subdev_sta= te *state, u8 *bin_h, u32 hbin =3D crop->width / format->width; u32 vbin =3D crop->height / format->height; =20 - *bin_h =3D IMX219_BINNING_NONE; - *bin_v =3D IMX219_BINNING_NONE; - - /* - * Use analog binning only if both dimensions are binned, as it crops - * the other dimension. - */ if (hbin =3D=3D 2 && vbin =3D=3D 2) { *bin_h =3D IMX219_BINNING_X2_ANALOG; *bin_v =3D IMX219_BINNING_X2_ANALOG; - - return; + } else { + *bin_h =3D IMX219_BINNING_NONE; + *bin_v =3D IMX219_BINNING_NONE; } =20 - if (hbin =3D=3D 2) - *bin_h =3D IMX219_BINNING_X2; - if (vbin =3D=3D 2) - *bin_v =3D IMX219_BINNING_X2; } =20 static inline u32 imx219_get_rate_factor(struct v4l2_subdev_state *state) --=20 2.51.0