From nobody Tue Apr 7 14:41:26 2026 Received: from mail-244123.protonmail.ch (mail-244123.protonmail.ch [109.224.244.123]) (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 69D073DA7D6; Thu, 12 Mar 2026 17:16:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=109.224.244.123 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773335790; cv=none; b=jUmeKKTe2O326rO0OFNiQAIpmT9yp9ExkY6vosLVSY/VCpuysiDdJwl7biiflA4RFDzXoPqzhB4b03WeWvZ7Xw3tYJ1mrMZ4sU/rCZM2t/5KgQ0kJneRFrB8HjsuTU/aEfaTiqOu7SGLLnBrc35txd99MOjcGK9KYFaSnKNVhEY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773335790; c=relaxed/simple; bh=NVMwtQlyC8e5SSHUET4w5SgeHLaqCvymevWoNkfb2/U=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=N9RbEeDk+N735/ohCKzImK2h7pQVlXAmmSGrZRcGSOnCTyVW4cwVwDmJ0iyJ8KPYa0WYIbMDmulfR/ICBR2OCUzkevl93xrvtKIm2ryqdnDXyTQqzDe4HMN3Q2vpsevtAiTnY8YRpMkbaR1um65VtfsRmQ5YRYiPZU2/kyxV/HU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me; spf=pass smtp.mailfrom=pm.me; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b=J6gR+VYv; arc=none smtp.client-ip=109.224.244.123 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pm.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b="J6gR+VYv" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1773335784; x=1773594984; bh=FzitFSVWOjlVYKdzVKhaIr96unT6y6nT6ms/8MK/Jvk=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=J6gR+VYv5/qL0XP++vtXfszfWdhRAdH/ZazeStweZWWJyMDRzTTSpKUjaCdFWRC8X 8R1UsDwCOfm1hT48tGdekjDFltOdvAM8Kl093Ql7h7OWkpG96tqqJ0T9WYf0lQVIl9 QlrM4tVffmiumg5hem4oEIp6lLZ6LMIUloSj6D6b7WPa5KBotun2YzwQ6HXZynYVh8 Q04bZhB7xCV4vltMV7nsTZ8IIAwrclNTj/8i/hvJ3FiImEMvIH4qGJdaO+TLn+V5TU WsNpNqwldE12pYtx3cBEgXNjNAjyQhZaznGYrWGEczFAWHz/savxZ5pyWy6y0SCRrJ 4sKdJ9IXawW6w== Date: Thu, 12 Mar 2026 17:16:20 +0000 To: Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ben Kao From: Alexander Koskovich Cc: Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Alexander Koskovich Subject: [PATCH v3 1/3] media: i2c: ov8856: free control handler on error in ov8856_init_controls() Message-ID: <20260312-ov8856-v4l2-props-v3-1-3771ab40a4c0@pm.me> In-Reply-To: <20260312-ov8856-v4l2-props-v3-0-3771ab40a4c0@pm.me> References: <20260312-ov8856-v4l2-props-v3-0-3771ab40a4c0@pm.me> Feedback-ID: 37836894:user:proton X-Pm-Message-ID: 5bb5d02937e49747ff967e760bb9685ea351a460 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" The control handler wasn't freed if adding controls failed, add an error exit label and convert the existing error return to use it. Fixes: 879347f0c258 ("media: ov8856: Add support for OV8856 sensor") Signed-off-by: Alexander Koskovich --- drivers/media/i2c/ov8856.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/media/i2c/ov8856.c b/drivers/media/i2c/ov8856.c index e2998cfa0d18..dd01e1d515ff 100644 --- a/drivers/media/i2c/ov8856.c +++ b/drivers/media/i2c/ov8856.c @@ -1951,12 +1951,18 @@ static int ov8856_init_controls(struct ov8856 *ov88= 56) V4L2_CID_HFLIP, 0, 1, 1, 0); v4l2_ctrl_new_std(ctrl_hdlr, &ov8856_ctrl_ops, V4L2_CID_VFLIP, 0, 1, 1, 0); - if (ctrl_hdlr->error) - return ctrl_hdlr->error; + if (ctrl_hdlr->error) { + ret =3D ctrl_hdlr->error; + goto err_ctrl_handler_free; + } =20 ov8856->sd.ctrl_handler =3D ctrl_hdlr; =20 return 0; + +err_ctrl_handler_free: + v4l2_ctrl_handler_free(ctrl_hdlr); + return ret; } =20 static void ov8856_update_pad_format(struct ov8856 *ov8856, --=20 2.53.0 From nobody Tue Apr 7 14:41:26 2026 Received: from mail-106120.protonmail.ch (mail-106120.protonmail.ch [79.135.106.120]) (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 900023FD15B for ; Thu, 12 Mar 2026 17:16:31 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=79.135.106.120 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773335795; cv=none; b=goVhZLqH1xpa949fWFH2Bu/vxnkOyYc2b5uEt039BhWfnTAtCPSoAikIFO6hnOKdSTo8hzj2S+tAkYaRYDv7WMgZKFHFcm4fUA8XUHA4iv261TakNF7xOQZ+Q1Gt4e33MBm+YjhNLzoMtZ7sOUtjuSMQ1jl/7IuXuCu7MKaptt4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773335795; c=relaxed/simple; bh=lcD0ZteKT5GGJo1t9L6bhlmJGNVueQby9aT0dEX2fx8=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=cW2dSu5zCCHasdfkFpAuar+tFhPf+PSD4J3ztIW8mp3/YW9FpjVbEJTLHYQsPtEgoodGn7ifKk5fREbMisXTwSW5NRKEImtbBF2oEnMXKXGcBzE4RO5tyYkp8YypuvC73OhA+KqGYTTebBU92bSVQRC96W1sWvi8Qdd3H+oHAes= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me; spf=pass smtp.mailfrom=pm.me; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b=Wig5FNg4; arc=none smtp.client-ip=79.135.106.120 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pm.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b="Wig5FNg4" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1773335788; x=1773594988; bh=n7d0VsbBwYG6FHREX5HIxATigiqtht2U3hbiXwAHuOc=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=Wig5FNg4mARli+IRk83KuuSdFkGsQ5fY/sOM9K15//2nnmiFZdRdd788Xn6O33hxu Y+pLx9un/qKnd9alJe8ro6D3G1hoCVL1WXH6UIJOQrckVuhO8XE92efYF1PxGOObaT tnJ1LtiKvLgnG9SjR+Zfb262cYlHjszaBZMllH9kvIjflxCJ6BHgu/Hl2SUJ32TqD1 HkbSqZ4VjNH9f+XCO2y4wESek+p5ca08zSfAyfWoA6gA3vRR5WI4DNcsEUyBXFZK+u kl78Eh66L9W1kZ8z7KursRKSsEljHQdIqVotDXmlbIb5kHNJriclO/puAu3p7r9GUI Fn//VpuFDqY/Q== Date: Thu, 12 Mar 2026 17:16:24 +0000 To: Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ben Kao From: Alexander Koskovich Cc: Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Alexander Koskovich , Krzysztof Kozlowski Subject: [PATCH v3 2/3] media: dt-bindings: ovti,ov8856: Allow orientation & rotation props Message-ID: <20260312-ov8856-v4l2-props-v3-2-3771ab40a4c0@pm.me> In-Reply-To: <20260312-ov8856-v4l2-props-v3-0-3771ab40a4c0@pm.me> References: <20260312-ov8856-v4l2-props-v3-0-3771ab40a4c0@pm.me> Feedback-ID: 37836894:user:proton X-Pm-Message-ID: 69488b2c521ee5f71a8952091e04ad3de31a3888 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Allow the orientation and rotation properties from video-interface-devices to be specified. The sensor can be front or rear facing and can be mounted at any rotation. Reviewed-by: Krzysztof Kozlowski Signed-off-by: Alexander Koskovich --- Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml b= /Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml index fa71f24823f2..d0f577363f93 100644 --- a/Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml +++ b/Documentation/devicetree/bindings/media/i2c/ovti,ov8856.yaml @@ -18,6 +18,9 @@ description: |- through I2C and two-wire SCCB. The sensor output is available via CSI-2 serial data output (up to 4-lane). =20 +allOf: + - $ref: /schemas/media/video-interface-devices.yaml# + properties: compatible: const: ovti,ov8856 @@ -57,6 +60,9 @@ properties: This corresponds to the hardware pin XSHUTDOWN which is physically active low. =20 + orientation: true + rotation: true + port: $ref: /schemas/graph.yaml#/$defs/port-base additionalProperties: false --=20 2.53.0 From nobody Tue Apr 7 14:41:26 2026 Received: from mail-4322.protonmail.ch (mail-4322.protonmail.ch [185.70.43.22]) (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 C57003FE356; Thu, 12 Mar 2026 17:16:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.70.43.22 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773335797; cv=none; b=AdeNCYnItOZr4patbCGTXXmwIu1kV2144n7XdDdMriTT46CWB3Nvft+qneweBtnrdJi+MGaCV41CDoUPJSbGzBFZKIyrMakvCml3RgnjcrG+Yhydo2CI8+92iPC24oVElFJfRBftko/AjK0aEtJ8lU5git/9Qr0SSpvk6MP18d4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773335797; c=relaxed/simple; bh=VHwg5MUxzEK7wOWuAbvHaAaBfbz4LN/tW8AFhcKVB/g=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: MIME-Version:Content-Type; b=DKWE2EhLmXhlbStmV9K0W1weq6WNi6sOHkpuTGr1bf8v12nHcvtQ83n5qMtHfmQ8b7jCz6YQYjkNoTuvHl0IENJLgPZc7Gqdqb27yyHjskB8hHJFvzUavD9HWqVdd3UTiBCMzbqFUKx+UXa/pf7iEL/a9rRDVw82KjeND13dUxI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me; spf=pass smtp.mailfrom=pm.me; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b=NODXxHQy; arc=none smtp.client-ip=185.70.43.22 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=pm.me Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pm.me Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pm.me header.i=@pm.me header.b="NODXxHQy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pm.me; s=protonmail3; t=1773335792; x=1773594992; bh=4G2O0xmDvSeKaWNCXXRz8HN+oJP7MY3SAgRZC2ST2Tw=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=NODXxHQykYDsDcXzAMdeEZhwjHqOVshfV8bDJ95pUVA1drFBqU/JKIcSN0+bHm6y3 j/4kSW9Cd8LZsdi9HiLXLYBXOQUNlmnPAVr2mE9SC6+VfkMmWiAzPFM55j7dvXaaqP lTNkb97OMatcwPlBTbuyl3mGpzyFzi32V7mXPhd8l4OlkcMgflh7qZXtLbPh6RDvV+ 6NWBPtHOSW2cW3AQOf3eM2G3qnfK5rNfuZTGkBtnwVoSMZzxytp5drzQ/jdKeuIBJ9 xBbDCiYN51IM8lRmzxtqfdE4Vm15HROduUpRB3Sf/q4JbTL41FormizEbr+lVtFo8o 5LldWh8USioTg== Date: Thu, 12 Mar 2026 17:16:28 +0000 To: Sakari Ailus , Mauro Carvalho Chehab , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Ben Kao From: Alexander Koskovich Cc: Laurent Pinchart , linux-media@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Mauro Carvalho Chehab , Alexander Koskovich Subject: [PATCH v3 3/3] media: i2c: ov8856: parse and register V4L2 device tree properties Message-ID: <20260312-ov8856-v4l2-props-v3-3-3771ab40a4c0@pm.me> In-Reply-To: <20260312-ov8856-v4l2-props-v3-0-3771ab40a4c0@pm.me> References: <20260312-ov8856-v4l2-props-v3-0-3771ab40a4c0@pm.me> Feedback-ID: 37836894:user:proton X-Pm-Message-ID: 133d3e790956b494aa640149e14cd0411ce1317f Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Parse V4L2 device tree properties and register controls for them. Signed-off-by: Alexander Koskovich --- drivers/media/i2c/ov8856.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/drivers/media/i2c/ov8856.c b/drivers/media/i2c/ov8856.c index dd01e1d515ff..8bedb47cd7cf 100644 --- a/drivers/media/i2c/ov8856.c +++ b/drivers/media/i2c/ov8856.c @@ -1887,12 +1887,14 @@ static const struct v4l2_ctrl_ops ov8856_ctrl_ops = =3D { =20 static int ov8856_init_controls(struct ov8856 *ov8856) { + struct i2c_client *client =3D v4l2_get_subdevdata(&ov8856->sd); + struct v4l2_fwnode_device_properties props; struct v4l2_ctrl_handler *ctrl_hdlr; s64 exposure_max, h_blank; int ret; =20 ctrl_hdlr =3D &ov8856->ctrl_handler; - ret =3D v4l2_ctrl_handler_init(ctrl_hdlr, 8); + ret =3D v4l2_ctrl_handler_init(ctrl_hdlr, 10); if (ret) return ret; =20 @@ -1956,6 +1958,15 @@ static int ov8856_init_controls(struct ov8856 *ov885= 6) goto err_ctrl_handler_free; } =20 + ret =3D v4l2_fwnode_device_parse(&client->dev, &props); + if (ret) + goto err_ctrl_handler_free; + + ret =3D v4l2_ctrl_new_fwnode_properties(ctrl_hdlr, &ov8856_ctrl_ops, + &props); + if (ret) + goto err_ctrl_handler_free; + ov8856->sd.ctrl_handler =3D ctrl_hdlr; =20 return 0; --=20 2.53.0