From: Mikhail Rudenko <mike.rudenko@gmail.com>
To: linux-media@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: Sakari Ailus <sakari.ailus@linux.intel.com>,
Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
Jacopo Mondi <jacopo@jmondi.org>,
Tommaso Merciai <tommaso.merciai@amarulasolutions.com>,
Christophe JAILLET <christophe.jaillet@wanadoo.fr>,
Dave Stevenson <dave.stevenson@raspberrypi.com>,
Mauro Carvalho Chehab <mchehab@kernel.org>,
Mikhail Rudenko <mike.rudenko@gmail.com>
Subject: [PATCH 00/19] Omnivision OV4689 refactoring and improvements
Date: Mon, 11 Dec 2023 20:50:03 +0300 [thread overview]
Message-ID: <20231211175023.1680247-1-mike.rudenko@gmail.com> (raw)
Hi,
This series contains refactoring and new features implementation for
the Omnivision OV4689 sensor driver. Specifically, patches 1, 2, 4, 5,
6, 9, 14, 15, 17, and 18 are refactorings, and are not supposed to
introduce any functional change. Patches 3 and 7 perform migration to
CCI helpers and subdevice active state respectively, and should not
introduce any hardware- and/or user-visible change either.
Patches 10-13 expose more sensor controls to the userspace, such as
(read-write) HBLANK, VFLIP/HFLIP, digital gain, and color
balance. Patch 16 implements configurable analogue crop rectangle via
.set_selection callback. And finally, patch 19 enables 2x2 binning
option. It should be noted that publicly available sensor
documentation is lacking description of many registers and their value
ranges, so a lot of values had to be found by experimentation.
Any comments and reviews are welcome!
Mikhail Rudenko (19):
media: i2c: ov4689: Clean up and annotate the register table
media: i2c: ov4689: Fix typo in a comment
media: i2c: ov4689: CCI conversion
media: i2c: ov4689: Remove i2c_client from ov4689 struct
media: i2c: ov4689: Refactor ov4689_set_ctrl
media: i2c: ov4689: Set gain in one 16 bit write
media: i2c: ov4689: Use sub-device active state
media: i2c: ov4689: Enable runtime PM before registering sub-device
media: i2c: ov4689: Remove max_fps field from struct ov4689_mode
media: i2c: ov4689: Make horizontal blanking configurable
media: i2c: ov4689: Implement vflip/hflip controls
media: i2c: ov4689: Implement digital gain control
media: i2c: ov4689: Implement manual color balance controls
media: i2c: ov4689: Move pixel array size out of struct ov4689_mode
media: i2c: ov4689: Set timing registers programmatically
media: i2c: ov4689: Configurable analogue crop
media: i2c: ov4689: Eliminate struct ov4689_mode
media: i2c: ov4689: Refactor ov4689_s_stream
media: i2c: ov4689: Implement 2x2 binning
drivers/media/i2c/Kconfig | 1 +
drivers/media/i2c/ov4689.c | 951 ++++++++++++++++++++++---------------
2 files changed, 579 insertions(+), 373 deletions(-)
--
2.43.0
next reply other threads:[~2023-12-11 17:50 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-11 17:50 Mikhail Rudenko [this message]
2023-12-11 17:50 ` [PATCH 01/19] media: i2c: ov4689: Clean up and annotate the register table Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 02/19] media: i2c: ov4689: Fix typo in a comment Mikhail Rudenko
2023-12-11 18:01 ` Laurent Pinchart
2023-12-12 12:22 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 03/19] media: i2c: ov4689: CCI conversion Mikhail Rudenko
2023-12-11 18:08 ` Laurent Pinchart
2023-12-11 17:50 ` [PATCH 04/19] media: i2c: ov4689: Remove i2c_client from ov4689 struct Mikhail Rudenko
2023-12-11 18:09 ` Laurent Pinchart
2023-12-11 17:50 ` [PATCH 05/19] media: i2c: ov4689: Refactor ov4689_set_ctrl Mikhail Rudenko
2023-12-11 18:11 ` Laurent Pinchart
2023-12-12 12:25 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 06/19] media: i2c: ov4689: Set gain in one 16 bit write Mikhail Rudenko
2023-12-11 18:11 ` Laurent Pinchart
2023-12-11 17:50 ` [PATCH 07/19] media: i2c: ov4689: Use sub-device active state Mikhail Rudenko
2023-12-11 18:15 ` Laurent Pinchart
2023-12-12 12:27 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 08/19] media: i2c: ov4689: Enable runtime PM before registering sub-device Mikhail Rudenko
2023-12-11 18:19 ` Laurent Pinchart
2023-12-12 12:32 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 09/19] media: i2c: ov4689: Remove max_fps field from struct ov4689_mode Mikhail Rudenko
2023-12-11 18:19 ` Laurent Pinchart
2023-12-11 17:50 ` [PATCH 10/19] media: i2c: ov4689: Make horizontal blanking configurable Mikhail Rudenko
2023-12-11 22:08 ` Laurent Pinchart
2023-12-12 12:37 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 11/19] media: i2c: ov4689: Implement vflip/hflip controls Mikhail Rudenko
2023-12-11 22:10 ` Laurent Pinchart
2023-12-12 12:42 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 12/19] media: i2c: ov4689: Implement digital gain control Mikhail Rudenko
2023-12-11 22:15 ` Laurent Pinchart
2023-12-12 12:52 ` Mikhail Rudenko
2023-12-12 12:52 ` Mikhail Rudenko
2023-12-18 18:04 ` Laurent Pinchart
2023-12-18 20:10 ` Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 13/19] media: i2c: ov4689: Implement manual color balance controls Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 14/19] media: i2c: ov4689: Move pixel array size out of struct ov4689_mode Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 15/19] media: i2c: ov4689: Set timing registers programmatically Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 16/19] media: i2c: ov4689: Configurable analogue crop Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 17/19] media: i2c: ov4689: Eliminate struct ov4689_mode Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 18/19] media: i2c: ov4689: Refactor ov4689_s_stream Mikhail Rudenko
2023-12-11 17:50 ` [PATCH 19/19] media: i2c: ov4689: Implement 2x2 binning Mikhail Rudenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20231211175023.1680247-1-mike.rudenko@gmail.com \
--to=mike.rudenko@gmail.com \
--cc=christophe.jaillet@wanadoo.fr \
--cc=dave.stevenson@raspberrypi.com \
--cc=jacopo@jmondi.org \
--cc=laurent.pinchart@ideasonboard.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=sakari.ailus@linux.intel.com \
--cc=tommaso.merciai@amarulasolutions.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox