From: Hans de Goede <hdegoede@redhat.com>
To: Mauro Carvalho Chehab <mchehab@kernel.org>,
Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: Hans de Goede <hdegoede@redhat.com>,
Tsuchiya Yuto <kitakar@gmail.com>,
Andy Shevchenko <andy@kernel.org>,
Yury Luneff <yury.lunev@gmail.com>,
Nable <nable.maininbox@googlemail.com>,
andrey.i.trufanov@gmail.com, Fabio Aiuto <fabioaiuto83@gmail.com>,
linux-media@vger.kernel.org, linux-staging@lists.linux.dev
Subject: [PATCH 00/57] media: atomisp: Big power-management changes + lots of fixes
Date: Mon, 23 Jan 2023 13:51:08 +0100 [thread overview]
Message-ID: <20230123125205.622152-1-hdegoede@redhat.com> (raw)
Hi All,
Here is another set of patches resulting from my continued work
on cleaning up / improving the atomisp driver.
The main changes here are power-management related, divided
into 2 sets:
1. Move the pm of the core atomisp device to its own custom PM
domain. We turn the ISP on/off through the P-Unit and when
off the PCI subsystem resume method complains about the PCI
config space not being reachable. Changing to a custom PM
domain fixes the logs getting filled with PCI subsys errors
on every open of a /dev/video# node
2. Except for devices shipped with Android as factory image,
all the DSDTs I have seen have proper ACPI pm code for
the sensors. So we really should be using ACPI pm for this.
This series contains a lot of ov2680 patches, including
reworking the controls (so that control changes can be
delayed to stream on time instead of directly trying to do
i2c writes to the turned off sensor). Basically modernizing
the ov2680 driver a lot (there are still some atomisp-isms left).
And then finally after all the ov2680 cleanups it moves
the ov2680 code over to using runtime-pm + ACPI pm,
dropping all the direct PMIC + clk poking done by the
atomisp_gmin_platform code.
Besides that this also contains quite a few other fixes / cleanups
for things which I encountered during the way and it contains the
start of making the ov2722 driver work. With the changes present
in that driver I get a working (but very dark) stream. I expect
that once I add a proper exposure control this will start working
better.
Regards,
Hans
Arnd Bergmann (1):
media: atomisp: fix videobuf2 Kconfig depenendency
Brent Pappas (3):
media: atomisp: pci: Replace bytes macros with functions
media: atomisp: pci: hive_isp_css_common: host: vmem: Replace SUBWORD
macros with functions
media: atomisp: pci: sh_css: Inline single invocation of macro
STATS_ENABLED()
Hans Verkuil (1):
media: atomisp: use vb2_start_streaming_called()
Hans de Goede (52):
media: atomisp: Remove atomisp_sw_contex struct
media: atomisp: Move power-management over to a custom pm-domain
media: atomisp: Silence "isys dma store at addr, val" debug messages
media: atomisp: Remove non working doorbell check from
punit_ddr_dvfs_enable()
media: atomisp: Remove useless msleep(10) before power-on on BYT
media: atomisp: Remove custom ATOMISP_IOC_ISP_MAKERNOTE ioctl
media: atomisp: Remove custom ATOMISP_IOC_G_SENSOR_MODE_DATA ioctl
media: atomisp: Remove V4L2_CID_BIN_FACTOR_HORZ/_VERT
media: atomisp: Remove no longer used binning info from sensor
resolution info
media: atomisp: Propagate set_fmt() errors in queue_setup()
media: atomisp: Remove deferred firmware loading support
media: atomisp: Check buffer index is in range inside
atomisp_qbuf_wrapper()
media: atomisp: Drop atomisp_init_pipe()
media: atomisp: Remove unnecessary memset(foo, 0, sizeof(foo)) calls
media: atomisp: Only set default_run_mode on first open of a
stream/asd
media: atomisp: Do not turn off sensor when the atomisp-sub-dev does
not own it
media: atomisp: Allow sensor drivers without a s_power callback
media: atomisp: Fix regulator registers on BYT devices with CRC PMIC
media: atomisp: Remove atomisp_gmin_find_subdev()
media: atomisp: Add atomisp_register_sensor_no_gmin() helper
media: atomisp: Fix WARN() when the vb2 start_streaming callback fails
media: atomisp: Drop ffmt local var from atomisp_set_fmt()
media: atomisp: Stop overriding padding w/h to 12 on BYT
media: atomisp: Put sensor ACPI devices in D3 before disable ACPI
power-resources
media: atomisp: Remove isp_subdev_link_setup()
media: Add ovxxxx_16bit_addr_reg_helpers.h
media: atomisp: ov2680: Use the new ovxxxx_16bit_addr_reg_helpers.h
media: atomisp: ov2680: Rework flip ctrls
media: atomisp: ov2680: Drop custom ATOMISP_IOC_S_EXPOSURE support
media: atomisp: ov2680: Add exposure and gain controls
media: atomisp: ov2680: Add test pattern control
media: atomisp: ov2680: Fix window settings and enable window for all
resolutions
media: atomisp: ov2680: Make setting the modes algorithm based
media: atomisp: ov2680: Use defines for fps, lines-per-frame and
skip-frames
media: atomisp: ov2680: Drop unused res member from struct
ov2680_device
media: atomisp: ov2680: Fix ov2680_enum_frame_interval()
media: atomisp: ov2680: Drop v4l2_find_nearest_size() call from
set_fmt()
media: atomisp: ov2680: Drop struct ov2680_resolution /
ov2680_res_preview
media: atomisp: ov2680: Fix frame_size list
media: atomisp: ov2680: Remove unused data-types and defines from
ov2680.h
media: atomisp: ov2680: Drop MAX_FMTS define
media: atomisp: ov2680: Consistently indent define values
media: atomisp: ov2680: Cleanup includes
media: atomisp: ov2680: Delay power-on till streaming is started
media: atomisp: ov2680: Add runtime-pm support
media: atomisp: ov2680: s/dev/sensor/
media: atomisp: ov2680: Use devm_kzalloc() for sensor data struct
media: atomisp: ov2680: Switch over to ACPI powermanagement
media: atomisp: ov2722: Call atomisp_gmin_remove_subdev() on probe
failure
media: atomisp: ov2722: Fix GPIO1 polarity
media: atomisp: ov2722: Don't take the input_lock for try_fmt calls.
media: atomisp: ov2722: Power on sensor from set_fmt() callback
drivers/staging/media/atomisp/Kconfig | 2 +-
.../media/atomisp/i2c/atomisp-gc0310.c | 249 ----
.../media/atomisp/i2c/atomisp-gc2235.c | 176 ---
.../media/atomisp/i2c/atomisp-mt9m114.c | 206 ---
.../media/atomisp/i2c/atomisp-ov2680.c | 1273 +++++------------
.../media/atomisp/i2c/atomisp-ov2722.c | 195 +--
drivers/staging/media/atomisp/i2c/gc0310.h | 10 -
drivers/staging/media/atomisp/i2c/gc2235.h | 31 -
drivers/staging/media/atomisp/i2c/mt9m114.h | 15 -
drivers/staging/media/atomisp/i2c/ov2680.h | 842 ++---------
drivers/staging/media/atomisp/i2c/ov2722.h | 36 +-
.../media/atomisp/i2c/ov5693/atomisp-ov5693.c | 195 ---
.../staging/media/atomisp/i2c/ov5693/ov5693.h | 61 -
.../media/atomisp/include/linux/atomisp.h | 50 -
.../include/linux/atomisp_gmin_platform.h | 2 -
.../atomisp/include/linux/atomisp_platform.h | 11 +-
drivers/staging/media/atomisp/notes.txt | 6 -
.../staging/media/atomisp/pci/atomisp_cmd.c | 90 +-
.../staging/media/atomisp/pci/atomisp_cmd.h | 9 +-
.../staging/media/atomisp/pci/atomisp_fops.c | 89 +-
.../staging/media/atomisp/pci/atomisp_fops.h | 3 +-
.../media/atomisp/pci/atomisp_gmin_platform.c | 118 +-
.../media/atomisp/pci/atomisp_internal.h | 7 +-
.../staging/media/atomisp/pci/atomisp_ioctl.c | 50 +-
.../media/atomisp/pci/atomisp_subdev.c | 169 +--
.../media/atomisp/pci/atomisp_subdev.h | 13 -
.../staging/media/atomisp/pci/atomisp_v4l2.c | 165 +--
.../css_2401_system/host/isys_dma_private.h | 2 -
.../pci/hive_isp_css_common/host/vmem.c | 20 +-
drivers/staging/media/atomisp/pci/sh_css.c | 7 +-
.../staging/media/atomisp/pci/sh_css_params.c | 38 +-
include/media/ovxxxx_16bit_addr_reg_helpers.h | 93 ++
32 files changed, 862 insertions(+), 3371 deletions(-)
create mode 100644 include/media/ovxxxx_16bit_addr_reg_helpers.h
--
2.39.0
next reply other threads:[~2023-01-23 12:52 UTC|newest]
Thread overview: 168+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-23 12:51 Hans de Goede [this message]
2023-01-23 12:51 ` [PATCH 01/57] media: atomisp: fix videobuf2 Kconfig depenendency Hans de Goede
2023-01-23 14:12 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 02/57] media: atomisp: use vb2_start_streaming_called() Hans de Goede
2023-01-23 12:51 ` [PATCH 03/57] media: atomisp: Remove atomisp_sw_contex struct Hans de Goede
2023-01-23 14:14 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 04/57] media: atomisp: Move power-management over to a custom pm-domain Hans de Goede
2023-01-23 12:51 ` [PATCH 05/57] media: atomisp: Silence "isys dma store at addr, val" debug messages Hans de Goede
2023-01-23 14:18 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 06/57] media: atomisp: Remove non working doorbell check from punit_ddr_dvfs_enable() Hans de Goede
2023-01-23 12:51 ` [PATCH 07/57] media: atomisp: Remove useless msleep(10) before power-on on BYT Hans de Goede
2023-01-23 14:40 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 08/57] media: atomisp: Remove custom ATOMISP_IOC_ISP_MAKERNOTE ioctl Hans de Goede
2023-01-23 14:30 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 09/57] media: atomisp: Remove custom ATOMISP_IOC_G_SENSOR_MODE_DATA ioctl Hans de Goede
2023-01-23 14:31 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 10/57] media: atomisp: Remove V4L2_CID_BIN_FACTOR_HORZ/_VERT Hans de Goede
2023-01-23 14:33 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 11/57] media: atomisp: Remove no longer used binning info from sensor resolution info Hans de Goede
2023-01-23 14:33 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 12/57] media: atomisp: Propagate set_fmt() errors in queue_setup() Hans de Goede
2023-01-23 14:35 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 13/57] media: atomisp: Remove deferred firmware loading support Hans de Goede
2023-01-23 14:37 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 14/57] media: atomisp: Check buffer index is in range inside atomisp_qbuf_wrapper() Hans de Goede
2023-01-23 14:38 ` Andy Shevchenko
2023-01-24 11:09 ` Hans de Goede
2023-01-23 12:51 ` [PATCH 15/57] media: atomisp: Drop atomisp_init_pipe() Hans de Goede
2023-01-23 15:30 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 16/57] media: atomisp: Remove unnecessary memset(foo, 0, sizeof(foo)) calls Hans de Goede
2023-01-23 17:41 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 17/57] media: atomisp: Only set default_run_mode on first open of a stream/asd Hans de Goede
2023-01-23 17:42 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 18/57] media: atomisp: Do not turn off sensor when the atomisp-sub-dev does not own it Hans de Goede
2023-01-23 12:51 ` [PATCH 19/57] media: atomisp: Allow sensor drivers without a s_power callback Hans de Goede
2023-01-23 17:49 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 20/57] media: atomisp: Fix regulator registers on BYT devices with CRC PMIC Hans de Goede
2023-01-23 17:51 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 21/57] media: atomisp: Remove atomisp_gmin_find_subdev() Hans de Goede
2023-01-23 17:53 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 22/57] media: atomisp: Add atomisp_register_sensor_no_gmin() helper Hans de Goede
2023-01-23 17:55 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 23/57] media: atomisp: Fix WARN() when the vb2 start_streaming callback fails Hans de Goede
2023-01-23 17:56 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 24/57] media: atomisp: Drop ffmt local var from atomisp_set_fmt() Hans de Goede
2023-01-23 12:51 ` [PATCH 25/57] media: atomisp: Stop overriding padding w/h to 12 on BYT Hans de Goede
2023-01-23 17:59 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 26/57] media: atomisp: Put sensor ACPI devices in D3 before disable ACPI power-resources Hans de Goede
2023-01-23 12:51 ` [PATCH 27/57] media: atomisp: Remove isp_subdev_link_setup() Hans de Goede
2023-01-23 18:02 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 28/57] media: Add ovxxxx_16bit_addr_reg_helpers.h Hans de Goede
2023-01-23 18:09 ` Andy Shevchenko
2023-01-24 11:21 ` Hans de Goede
2023-01-24 12:47 ` Andy Shevchenko
2023-01-23 18:15 ` Andy Shevchenko
2023-01-23 18:23 ` Andy Shevchenko
2023-01-24 11:25 ` Hans de Goede
2023-02-08 9:52 ` Laurent Pinchart
2023-02-08 11:27 ` Andy Shevchenko
2023-02-08 15:41 ` Laurent Pinchart
2023-02-08 15:50 ` Andy Shevchenko
2023-02-08 16:03 ` Laurent Pinchart
2023-02-08 17:31 ` Andy Shevchenko
2023-02-09 10:31 ` Laurent Pinchart
2023-02-09 15:03 ` Hans de Goede
2023-02-09 16:11 ` Laurent Pinchart
2023-02-10 10:21 ` Sakari Ailus
2023-02-10 10:29 ` Laurent Pinchart
2023-02-10 10:47 ` Sakari Ailus
2023-02-10 10:53 ` Andy Shevchenko
2023-02-10 11:05 ` Laurent Pinchart
2023-02-10 15:35 ` Andy Shevchenko
2023-02-10 16:01 ` Hans de Goede
2023-02-10 11:19 ` Hans de Goede
2023-02-10 11:35 ` Laurent Pinchart
2023-02-10 12:01 ` Hans de Goede
2023-02-10 11:04 ` Laurent Pinchart
2023-02-10 11:18 ` Sakari Ailus
2023-02-10 11:34 ` Laurent Pinchart
2023-02-10 11:20 ` Hans de Goede
2023-02-10 11:45 ` Laurent Pinchart
2023-02-10 11:56 ` Hans de Goede
2023-02-10 12:09 ` Laurent Pinchart
2023-02-10 12:17 ` Sakari Ailus
2023-02-10 12:59 ` Hans de Goede
2023-02-10 13:31 ` Sakari Ailus
2023-02-10 12:47 ` Hans de Goede
2023-02-10 13:18 ` Sakari Ailus
2023-02-10 14:43 ` Hans de Goede
2023-02-10 16:43 ` Laurent Pinchart
2023-02-10 20:16 ` Sakari Ailus
2023-02-10 12:26 ` Sakari Ailus
2023-02-10 15:42 ` Andy Shevchenko
2023-02-10 16:39 ` Laurent Pinchart
2023-02-10 20:18 ` Sakari Ailus
2023-02-10 16:40 ` Laurent Pinchart
2023-02-08 11:31 ` Sakari Ailus
2023-02-08 14:33 ` Mauro Carvalho Chehab
2023-02-08 15:39 ` Laurent Pinchart
2023-01-23 12:51 ` [PATCH 29/57] media: atomisp: ov2680: Use the new ovxxxx_16bit_addr_reg_helpers.h Hans de Goede
2023-01-23 18:13 ` Andy Shevchenko
2023-01-24 11:22 ` Hans de Goede
2023-01-23 12:51 ` [PATCH 30/57] media: atomisp: ov2680: Rework flip ctrls Hans de Goede
2023-01-23 18:33 ` Andy Shevchenko
2023-01-29 0:36 ` kernel test robot
2023-01-23 12:51 ` [PATCH 31/57] media: atomisp: ov2680: Drop custom ATOMISP_IOC_S_EXPOSURE support Hans de Goede
2023-01-23 18:35 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 32/57] media: atomisp: ov2680: Add exposure and gain controls Hans de Goede
2023-01-23 18:43 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 33/57] media: atomisp: ov2680: Add test pattern control Hans de Goede
2023-01-23 18:46 ` Andy Shevchenko
2023-01-24 11:27 ` Hans de Goede
2023-01-24 12:50 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 34/57] media: atomisp: ov2680: Fix window settings and enable window for all resolutions Hans de Goede
2023-01-23 18:48 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 35/57] media: atomisp: ov2680: Make setting the modes algorithm based Hans de Goede
2023-01-24 10:37 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 36/57] media: atomisp: ov2680: Use defines for fps, lines-per-frame and skip-frames Hans de Goede
2023-01-24 10:40 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 37/57] media: atomisp: ov2680: Drop unused res member from struct ov2680_device Hans de Goede
2023-01-24 10:39 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 38/57] media: atomisp: ov2680: Fix ov2680_enum_frame_interval() Hans de Goede
2023-01-24 10:42 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 39/57] media: atomisp: ov2680: Drop v4l2_find_nearest_size() call from set_fmt() Hans de Goede
2023-01-24 10:43 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 40/57] media: atomisp: ov2680: Drop struct ov2680_resolution / ov2680_res_preview Hans de Goede
2023-01-24 10:44 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 41/57] media: atomisp: ov2680: Fix frame_size list Hans de Goede
2023-01-24 10:46 ` Andy Shevchenko
2023-01-24 11:29 ` Hans de Goede
2023-01-23 12:51 ` [PATCH 42/57] media: atomisp: ov2680: Remove unused data-types and defines from ov2680.h Hans de Goede
2023-01-24 10:46 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 43/57] media: atomisp: ov2680: Drop MAX_FMTS define Hans de Goede
2023-01-24 10:48 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 44/57] media: atomisp: ov2680: Consistently indent define values Hans de Goede
2023-01-24 10:49 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 45/57] media: atomisp: ov2680: Cleanup includes Hans de Goede
2023-01-24 10:50 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 46/57] media: atomisp: ov2680: Delay power-on till streaming is started Hans de Goede
2023-01-24 10:51 ` Andy Shevchenko
2023-01-24 11:31 ` Hans de Goede
2023-01-24 12:52 ` Andy Shevchenko
2023-01-24 13:35 ` Hans de Goede
2023-01-23 12:51 ` [PATCH 47/57] media: atomisp: ov2680: Add runtime-pm support Hans de Goede
2023-01-24 10:53 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 48/57] media: atomisp: ov2680: s/dev/sensor/ Hans de Goede
2023-01-24 10:54 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 49/57] media: atomisp: ov2680: Use devm_kzalloc() for sensor data struct Hans de Goede
2023-01-24 10:55 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 50/57] media: atomisp: ov2680: Switch over to ACPI powermanagement Hans de Goede
2023-01-24 10:59 ` Andy Shevchenko
2023-01-23 12:51 ` [PATCH 51/57] media: atomisp: ov2722: Call atomisp_gmin_remove_subdev() on probe failure Hans de Goede
2023-01-23 18:36 ` Andy Shevchenko
2023-01-23 12:52 ` [PATCH 52/57] media: atomisp: ov2722: Fix GPIO1 polarity Hans de Goede
2023-01-23 18:39 ` Andy Shevchenko
2023-01-23 18:40 ` Andy Shevchenko
2023-01-23 12:52 ` [PATCH 53/57] media: atomisp: ov2722: Don't take the input_lock for try_fmt calls Hans de Goede
2023-01-23 18:39 ` Andy Shevchenko
2023-01-23 12:52 ` [PATCH 54/57] media: atomisp: ov2722: Power on sensor from set_fmt() callback Hans de Goede
2023-01-23 18:42 ` Andy Shevchenko
2023-01-24 11:32 ` Hans de Goede
2023-01-23 12:52 ` [PATCH 55/57] media: atomisp: pci: Replace bytes macros with functions Hans de Goede
2023-01-23 12:52 ` [PATCH 56/57] media: atomisp: pci: hive_isp_css_common: host: vmem: Replace SUBWORD " Hans de Goede
2023-01-23 18:27 ` Andy Shevchenko
2023-01-23 18:29 ` Andy Shevchenko
2023-01-23 12:52 ` [PATCH 57/57] media: atomisp: pci: sh_css: Inline single invocation of macro STATS_ENABLED() Hans de Goede
2023-01-24 11:01 ` [PATCH 00/57] media: atomisp: Big power-management changes + lots of fixes Andy Shevchenko
2023-01-24 11:05 ` Hans de Goede
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=20230123125205.622152-1-hdegoede@redhat.com \
--to=hdegoede@redhat.com \
--cc=andrey.i.trufanov@gmail.com \
--cc=andy@kernel.org \
--cc=fabioaiuto83@gmail.com \
--cc=kitakar@gmail.com \
--cc=linux-media@vger.kernel.org \
--cc=linux-staging@lists.linux.dev \
--cc=mchehab@kernel.org \
--cc=nable.maininbox@googlemail.com \
--cc=sakari.ailus@linux.intel.com \
--cc=yury.lunev@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.