Received: by 2002:ab2:60d1:0:b0:1f7:5705:b850 with SMTP id i17csp548570lqm; Wed, 1 May 2024 08:30:18 -0700 (PDT) X-Forwarded-Encrypted: i=3; AJvYcCWmO24AO4o5Cgr98eJ0JwH7aSgN8hC54by7Gpu1uFCegm/6QCHl7h0+fgYoskCVFNGxb61pMdqsRuTKfEgmUf53uvDPkcG8jq0R6jRU4g== X-Google-Smtp-Source: AGHT+IFrEhOgcLuOgh6AYWawrDcAJo2wQ6hmC7+q69k0dzCHEifIqLreKUsKKArPGGNlxzOwGdyK X-Received: by 2002:a17:90a:684e:b0:2b1:817d:9827 with SMTP id e14-20020a17090a684e00b002b1817d9827mr2802846pjm.22.1714577418095; Wed, 01 May 2024 08:30:18 -0700 (PDT) ARC-Seal: i=2; a=rsa-sha256; t=1714577418; cv=pass; d=google.com; s=arc-20160816; b=Y6LLVghWy/D1sLjkAAG4Ibl4G42SOOHSn+Tm1Ku4o2R7t95D88+CN8SyOuVzJTz9VH 7AQDwd3z+xxP5hNOwlyYaoYi/7YJQy+yyFNmH6GiY6wdKT4On17L9kjW/f5l6x/4Z5NL JoAnKVvnjisq9Voo6lcN1oIZaEtYqdz5FQmC4vrmAILZ+BD7JRdPLu5HtZiMlpZpiG1R 6e6K8qIEHkMQSgszWW/66c3FOjIuSsiR+B5I/kDmjNGJBEDq4ygCHQq0t9Bl0x3G5lAq xm6cvZCRbpyljrD9Q++vRmepTe5B6hI95YGBy84LtYf0JLVBMeTY0dotovfhQ3fnOAtk hBHQ== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:message-id:date:subject:cc:to :from:dkim-signature; bh=9fd1WG4wcM9VhDUCqkT94Cc+eRxvqfQ5BlXSqcGrRWY=; fh=ng0FUFwPgHHqIHtWcUlLUSBs0e7fHIUGeuUhfcQSRgA=; b=wgN1RXReHDMmhqvnZvm/P1cmKuuof1GX8zBefGFP2Z3dhbKkb4urGVZ+5KKw4b25Gl oA3NuMDoMh9yg6YI6pbEasz6aoXspGhE3gorEAhuytVCEMelUJXZDj6h1sjdENKVav5w 45HeU72CZnOR9bRn4Bqns+e0lyUinYZafFQ/x3PzkQvM9NnE5gKveq1/suLd8GcKmKuP hJLmnDDETcyYYrq1ViMeVomq5cp88kGCFZLAysF8MRKGt/IoUyysjjPNPHqnWIG5UaF6 Iq/So/nz7jt0/ZoyoAXL3VtPbRnmUw5HKWLReEObV3IXnHNnm404YVb2qe0S2cMZZIaa qQ7w==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=fail header.i=@luigi311.com header.s=x header.b=gB9JxAcj; arc=pass (i=1 spf=pass spfdomain=luigi311.com dkim=pass dkdomain=luigi311.com); spf=pass (google.com: domain of linux-kernel+bounces-165475-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-165475-linux.lists.archive=gmail.com@vger.kernel.org" Return-Path: Received: from sv.mirrors.kernel.org (sv.mirrors.kernel.org. [139.178.88.99]) by mx.google.com with ESMTPS id 22-20020a17090a0f1600b002b10c240b1esi1635851pjy.159.2024.05.01.08.30.17 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 01 May 2024 08:30:18 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel+bounces-165475-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) client-ip=139.178.88.99; Authentication-Results: mx.google.com; dkim=fail header.i=@luigi311.com header.s=x header.b=gB9JxAcj; arc=pass (i=1 spf=pass spfdomain=luigi311.com dkim=pass dkdomain=luigi311.com); spf=pass (google.com: domain of linux-kernel+bounces-165475-linux.lists.archive=gmail.com@vger.kernel.org designates 139.178.88.99 as permitted sender) smtp.mailfrom="linux-kernel+bounces-165475-linux.lists.archive=gmail.com@vger.kernel.org" Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by sv.mirrors.kernel.org (Postfix) with ESMTPS id 19FF92817DF for ; Wed, 1 May 2024 15:30:15 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id E5BF912FB13; Wed, 1 May 2024 15:30:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=fail reason="signature verification failed" (2048-bit key) header.d=luigi311.com header.i=@luigi311.com header.b="gB9JxAcj" Received: from mail-108-mta91.mxroute.com (mail-108-mta91.mxroute.com [136.175.108.91]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7E33454FA1 for ; Wed, 1 May 2024 15:30:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=136.175.108.91 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714577404; cv=none; b=hcbOmU1MVl/HSReEZnui18Di3Z4K4VNEGVzf8oKlKDhJi6ck2NZMHa9mr7E8jcqvgvR8pv9tFJUDyGz0Ee5b9Bj8XC6nXOwrpMU6lVviLs7eEW2yCIEM2ry09qs6jSOnmf0gXWpHSwFltWckL9tg/sJpVWc1kXjHcoRPWUp2RTw= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1714577404; c=relaxed/simple; bh=/pRCtSseLzYkCvXz7LcflhT9f5jyHTqpeVpOZcybRX8=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version:Content-Type; b=Gmm+lk9JCTC3iZ88TpjuuCfjnq5naOj3SbBQSlXd0wkyvfQ+E9wKrwKYXMZvvKuSPszBBY7veA6zTKiKi0tasdC7r62bvum4QUotMsgHXhXzg48XRhgEbyZCTvoJuzFJHRJav70eH7T2m8jnhJjQT9p7T6Y5YnPZJYDJsVld7XI= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=luigi311.com; spf=pass smtp.mailfrom=luigi311.com; dkim=pass (2048-bit key) header.d=luigi311.com header.i=@luigi311.com header.b=gB9JxAcj; arc=none smtp.client-ip=136.175.108.91 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=luigi311.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=luigi311.com Received: from filter006.mxroute.com ([136.175.111.2] filter006.mxroute.com) (Authenticated sender: mN4UYu2MZsgR) by mail-108-mta91.mxroute.com (ZoneMTA) with ESMTPSA id 18f34c228370008ca2.010 for (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384); Wed, 01 May 2024 15:24:50 +0000 X-Zone-Loop: d981a713a71d7049d96b1b66606dbf9c980a3dcda974 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=luigi311.com; s=x; h=Content-Transfer-Encoding:Content-Type:MIME-Version: Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=9fd1WG4wcM9VhDUCqkT94Cc+eRxvqfQ5BlXSqcGrRWY=; b=gB9JxAcjgsgJGpTreOxML+Glj+ g4//pBQBOvFdzLV2baYfGNX2hv6xYVPH86yvkkoRdt/emmeNz2OINfVEu/caOcSQSn4448U/g7qrZ lp8VO9awzTsz9UepRJ7gPyBUwQ5OzqYjFKbQLUt0RJs8BRtGkaEzjG6cwHDW/2mRRCszEMYCi80jy 4ikjmUpKZ8ttClAHewrJZopsN5PUIlgYpNpi8rzB5Ffd0m7sxps98tGFtx/lt9eQSlNWVihTbKYwi utFfF2M5Jpsw4pu4+vav2tKG6fqALqk+tl9dEl3MQFhuxHPzLHIe3EuJf4g7DE5JUkYI3anQbA8Af sS2cCxaw==; From: git@luigi311.com To: linux-media@vger.kernel.org Cc: dave.stevenson@raspberrypi.com, jacopo.mondi@ideasonboard.com, mchehab@kernel.org, robh@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, sakari.ailus@linux.intel.com, devicetree@vger.kernel.org, imx@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, pavel@ucw.cz, phone-devel@vger.kernel.org, Luis Garcia Subject: [PATCH v5 00/25] imx258 improvement series Date: Wed, 1 May 2024 09:24:17 -0600 Message-ID: <20240501152442.1072627-1-git@luigi311.com> 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: 8bit X-Authenticated-Id: personal@luigi311.com From: Luis Garcia v5: - Changed ownership of a few patches to Ondrej Jirman - Implement feedback from Tommy Merciai - media: i2c: imx258: Add support for reset gpio - media: i2c: imx258: Use v4l2_link_freq_to_bitmap helper - media: i2c: imx258: Convert to new CCI register access helpers v4: - Swapped out the use macro patch for a patch that uses the new CCI register access helpers per Sakari Ailus - Fix order of reset and powerdown gpio before disable regulators - Fix formating of all patches - Implemented feedback from Pavel Machek - media: i2c: imx258: Follow normal V4L2 behaviours - media: i2c: imx258: Allow configuration of clock - Implemented feedback from Sakari Ailus - media: i2c: imx258: Add support for powerdown gpio v3 Luis Garcia - Add Use v4l2_link_freq_to_bitmap helper patch per Sakari Ailus - Separate dt-bindings for powerdown per Rob Herring - Fix dt-bindings for imx258.yaml - Fix sign offs per Dang Huynh - Fix versioning per Conor Dooley and Kieran Bingham - Use scripts to validate and fix patches - Implemented feedback from Sakari Ailus - media: i2c: imx258: Add support for 24MHz clock - media: i2c: imx258: Add support for running on 2 CSI data lanes - Implemented feedback from Rob Herring - dt-bindings: media: imx258: Add alternate compatible strings v2 Luis Garcia - Add use macros patch - Add support for powerdown gpio patch - Add support for reset gpio patch - Dropped Add support for long exposure modes patch - Implemented feedback from Jacopo Mondi - media: i2c: imx258: Add regulator control - media: i2c: imx258: Add support for 24MHz clock - media: i2c: imx258: Add support for running on 2 CSI data lanes - media: i2c: imx258: Add get_selection for pixel array information - media: i2c: imx258: Issue reset before starting streaming - media: i2c: imx258: Set pixel_rate range to the same as the value - dt-bindings: media: imx258: Add alternate compatible strings - media: i2c: imx258: Change register settings for variants of the sensor - media: i2c: imx258: Make HFLIP and VFLIP controls writable This adds a few more patches and drops one. The long exposure mode patch was dropped due to the bug that Jacopo found. The powerdown and reset gpio patches were added as that fixes support for the Pinephone Pro, without them the sensor doesn't initialize correctly. Tested on a Pinephone Pro by forcing 24 mhz clock. The two lower resolutions had some artifacts but that is expected as more changes are required to fix them for the Pinephone Pro specifically, kept all registers the same as Dave's original patch since that works on dedicated imx258 hardware and the artifacts are PPP specific so it shouldn't be a regression. v1 Dave Stevenson This is a set of patches for imx258 that allow it to work with alternate clock frequencies, over either 2 or 4 lanes, and generally adding flexibility to the driver. Tested with an IMX258 module from Soho Enterprises that has a 24MHz oscillator. Both 2 and 4 lane configurations work with correct link frequencies and pixel rates. Jacopo has tested on a PinePhone Pro which has an ~19.2MHz clock fed from the SoC, He confirms that the two lower resolution modes work, but not the full res mode. Comparing to the BSP it looks like they have some weird clock configuration in the 4208x3120 mode (nominally 1224Mb/s/lane instead of 1267). As it has never previously worked directly with the mainline driver this isn't a regression but may indicate that there is a need for support of additional link frequencies in the future. The last patch that makes HFLIP and VFLIP configurable may be contentious as I've retained the default configuration of inverted from the original driver. I know this was discussed recently, but I can't recall the final outcome. I am relying on someone from Intel testing this out, as correcting the cropping and supporting flips has changed the Bayer order. Seeing as this is all above board in V4L2 terms I really hope that the layers above it behave themselves. Dave Stevenson (20): media: i2c: imx258: Remove unused defines media: i2c: imx258: Make image geometry meet sensor requirements media: i2c: imx258: Disable digital cropping on binned modes media: i2c: imx258: Remove redundant I2C writes. media: i2c: imx258: Add regulator control media: i2c: imx258: Make V4L2_CID_VBLANK configurable. media: i2c: imx258: Split out common registers from the mode based ones media: i2c: imx258: Add support for 24MHz clock media: i2c: imx258: Add support for running on 2 CSI data lanes media: i2c: imx258: Follow normal V4L2 behaviours for clipping exposure media: i2c: imx258: Add get_selection for pixel array information media: i2c: imx258: Allow configuration of clock lane behaviour media: i2c: imx258: Correct max FRM_LENGTH_LINES value media: i2c: imx258: Issue reset before starting streaming media: i2c: imx258: Set pixel_rate range to the same as the value media: i2c: imx258: Support faster pixel rate on binned modes dt-bindings: media: imx258: Rename to include vendor prefix dt-bindings: media: imx258: Add alternate compatible strings media: i2c: imx258: Change register settings for variants of the sensor media: i2c: imx258: Make HFLIP and VFLIP controls writable Luis Garcia (2): media: i2c: imx258: Use v4l2_link_freq_to_bitmap helper media: i2c: imx258: Convert to new CCI register access helpers Ondrej Jirman (3): dt-bindings: media: imx258: Add binding for powerdown-gpio media: i2c: imx258: Add support for powerdown gpio media: i2c: imx258: Add support for reset gpio .../i2c/{imx258.yaml => sony,imx258.yaml} | 15 +- MAINTAINERS | 2 +- drivers/media/i2c/Kconfig | 1 + drivers/media/i2c/imx258.c | 1451 ++++++++++------- 4 files changed, 850 insertions(+), 619 deletions(-) rename Documentation/devicetree/bindings/media/i2c/{imx258.yaml => sony,imx258.yaml} (86%) -- 2.44.0