mbox series

[v2,00/15] media: ipu-bridge: Shared with atomisp, rework VCM instantiation

Message ID 20230630110643.209761-1-hdegoede@redhat.com (mailing list archive)
Headers show
Series media: ipu-bridge: Shared with atomisp, rework VCM instantiation | expand

Message

Hans de Goede June 30, 2023, 11:06 a.m. UTC
Hi All,

Here is v2 of my patch-series to make the atomisp code share the
ACPI -> sensor fwnode bridge code with the IPU3 (and IPU6 code).

The last 2 patches also rework VCM instantiation, which was my
initial reason for unifying / sharing the code.

Changes in v2:
- Rebase on top of f54eb0ac7c1a ("media: ipu3-cio2: rename cio2 bridge
  to ipu bridge and move out of ipu3")
  (rebase on top of sailus/media_tree.git/for-6.6-1.4-signed)
- Share the ipu_supported_sensors[] array between atomisp and IPU3/IPU6
  (leave it in ipu-bridge.c instead of giving each consumer its own copy)
- 2 new bugfixes:
  media: ipu-bridge: Fix null pointer deref on SSDB/PLD parsing warnings  
  media: ipu-bridge: Allow building as module

Original cover-letter:

While working on adding (proper) VCM support to the atomisp code
I found myself copying yet more code from
drivers/media/pci/intel/ipu3/cio2-bridge.c into the atomisp code.

So I decided that it really was time to factor out the common code
(most of the code) from intel/ipu3/cio2-bridge.c into its own
helper library and then share it between the atomisp and IPU3 code.

This will hopefully also be useful for the ongoing work to upstream
IPU6 input system support which also needs this functionality and
currently contains a 3th copy of this code in the out of tree driver.

This set consists of the following parts:

Patches 1-4  Bugfixes for recent changes
Patches 5-12 Cleanup / preparation patches
Patch 13     Drop ipu-bridge code copy from atomisp, switching to
             the shared ipu-bridge module
Patch 14     Rework how VCM client instantiation is done so that
             a device-link can be added from VCM to sensor to
             fix issues with the VCM power-state being tied to
             the sensor power state
Patch 15     Example patch to show how patch 11 avoids the need
             for hacks in VCM drivers caused by the shared power state
             (not intended for merging)

Regards,

Hans


Hans de Goede (15):
  media: ipu-bridge: Fix null pointer deref on SSDB/PLD parsing warnings
  media: ipu-bridge: Do not use on stack memory for software_node.name
    field
  media: ipu-bridge: Move initialization of node_names.vcm to
    ipu_bridge_init_swnode_names()
  media: ipu-bridge: Allow building as module
  media: ipu-bridge: Make ipu_bridge_init() take a regular struct device
    as argument
  media: ipu-bridge: Store dev pointer in struct ipu_bridge
  media: ipu-bridge: Only keep PLD around while parsing
  media: ipu-bridge: Add a ipu_bridge_parse_ssdb() helper function
  media: ipu-bridge: Drop early setting of sensor->adev
  media: ipu-bridge: Add a parse_sensor_fwnode callback to
    ipu_bridge_init()
  media: ipu-bridge: Move ipu-bridge.h to include/media/
  media: ipu-bridge: Add GalaxyCore GC0310 to ipu_supported_sensors[]
  media: atomisp: csi2-bridge: Switch to new common ipu_bridge_init()
  media: ipu-bridge: Add a runtime-pm device-link between VCM and sensor
  [RFC] media: dw9719: Drop hack to enable "vsio" regulator

 drivers/media/i2c/dw9719.c                    |  27 +-
 drivers/media/pci/intel/Kconfig               |  19 +-
 drivers/media/pci/intel/ipu-bridge.c          | 334 +++++++++++-------
 drivers/media/pci/intel/ipu3/Kconfig          |  20 ++
 drivers/media/pci/intel/ipu3/ipu3-cio2.c      |  10 +-
 drivers/staging/media/atomisp/Kconfig         |   2 +
 .../staging/media/atomisp/pci/atomisp_csi2.h  |  67 ----
 .../media/atomisp/pci/atomisp_csi2_bridge.c   | 328 +++--------------
 .../staging/media/atomisp/pci/atomisp_v4l2.c  |   1 +
 .../pci/intel => include/media}/ipu-bridge.h  |  26 +-
 10 files changed, 303 insertions(+), 531 deletions(-)
 rename {drivers/media/pci/intel => include/media}/ipu-bridge.h (80%)