All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/8] ACPI _CRS CSI-2 and MIPI DisCo for Imaging support
@ 2023-02-08 15:27 Sakari Ailus
  2023-02-08 15:28 ` [PATCH v4 1/8] ACPI: property: Parse data node string references in properties Sakari Ailus
                   ` (7 more replies)
  0 siblings, 8 replies; 20+ messages in thread
From: Sakari Ailus @ 2023-02-08 15:27 UTC (permalink / raw)
  To: linux-acpi; +Cc: linux-media, rafael, andriy.shevchenko, heikki.krogerus

Hello all,

Here's an implementation of ACPI 6.4 _CRS CSI-2 resource descriptor and
MIPI DisCo for Imaging 1.0 [1]. What the two basically provide is an
officially sanctioned way to describe CSI-2 connected cameras to operating
system software, something DT based systems have enjoyed for quite some
time already.

The implementation digs the information from ACPI tables (_CRS descriptors
and data + property extensions) and constructs software nodes that are
compatible with Documentation/firmware-guide/acpi/dsd/graph.rst and
Documentation/devicetree/bindings/media/video-interface-devices.yaml . No
specific driver changes are needed.

These patches are on the testing branch of the linux-acpi tree where they
depend on the patch constifying the ACPI pathname argument for
acpi_get_handle() (commit 91fdb91ccca2b48572a1ccf1d382fd599e3e1237).

[1] https://www.mipi.org/specifications/mipi-disco-imaging

since v3:

- Add comments to data structures and functions, code inside functions.

- Use ACPI_FAILURE() for testing ACPI framework function return values.

- Unwrap a few lines.

- Rename list heads as "head", some were called just "list".

- Count ACPI handles related to _CRS CSI2 resources during tree walk.

- Reshape testing for CSI-2 port allocation in next_csi2_port_index().

- Move allocation of software nodes into a new function,
  acpi_crs_csi2_alloc_fill_swnodes().

- Comments: acpi_bus_scan_crs_csi2() is to be called on the namespace
  root.

- Use size_t for this_count variable in acpi_bus_scan_crs_csi2().

- Revert the NEXT_PROPERTY() macro condition to original (the suggested
  one was different).

- Remove u union in init_port_csi2_common().

- Fix val array size in init_port_csi2_common(). This issue was masked by
  the presence of a u32 field in the union.

- Use "-" for copyright year range.

since v2:

- Unwrap a few lines.

- Copy CSI-2 resource source string using strscpy() instead of memcpy() in
  scan_check_crs_csi2_instance.

- Fix GRAPH_PORT_NAME() sanity check bug introduced in v2.

- Fix snprintf() return value check for port node name in
  get_mipi_port_handle().

- Fix mipi-img-lane-polarities reading.

- Cast bit value to bool instead of using ... ? 1U : 0U.

- Get primary fwnode using acpi_fwnode_handle().

- Don't use MIPI_IMG_PREFIX in the array of renamed properties.

- Use tabs for indenting drivers/acpi/property.c authors.

- Add a comment on assigning ACPI device's secondary fwnode and assign
  ACPI device's secondary fwnode straight to NULL when unassigning it.

since v1:

- Update copyright notices.

- Include linux/types.h instead of linux/kernel.h in drivers/acpi/mipi.c.

- Use SWNODE_GRAPH_PORT_NAME_FMT instead of plain "port@%u" in
  GRAPH_PORT_NAME macro.

- Make the condition in NEXT_PROPERTY() macro easier to read.

- Unwrap lines to make them moderately longer than 80 characters.

- Use * BITS_PER_TYPE(u8) instead of << 3 to convert bytes to bits in
  init_port_csi2_common().

- Test ACPI framework call success using ACPI_SUCCESS() instead of
  comparing with AE_OK. Likewise for ACPI_FAILURE and != AE_OK.

- Use newly added SOFTWARE_NODE() macro to construct the root software
  node.

- Use str_has_prefix() to test for a string prefix instead of memcmp().

- Add pr_fmt() macro to drivers/acpi/property.c.

- Move logical or operators to the end of the line in
  acpi_properties_prepare().

- Improve bad node type error in acpi_parse_string_ref().

Sakari Ailus (8):
  ACPI: property: Parse data node string references in properties
  ACPI: property: Parse _CRS CSI-2 descriptor
  device property: Add SOFTWARE_NODE() macro for defining software nodes
  ACPI: property: Generate camera swnodes for ACPI and DisCo for Imaging
  ACPI: property: Dig "rotation" property for devices with CSI2 _CRS
  ACPI: property: Rename parsed MIPI DisCo for Imaging properties
  ACPI: property: Skip MIPI property table without "mipi-img" prefix
  ACPI: property: Document _CRS CSI-2 and DisCo for Imaging support

 drivers/acpi/Makefile    |   2 +-
 drivers/acpi/internal.h  |   9 +
 drivers/acpi/mipi.c      | 806 +++++++++++++++++++++++++++++++++++++++
 drivers/acpi/property.c  | 132 +++++--
 drivers/acpi/scan.c      |  35 +-
 include/acpi/acpi_bus.h  |  82 ++++
 include/linux/property.h |   7 +
 7 files changed, 1042 insertions(+), 31 deletions(-)
 create mode 100644 drivers/acpi/mipi.c

-- 
2.30.2


^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2023-02-09  2:48 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-02-08 15:27 [PATCH v4 0/8] ACPI _CRS CSI-2 and MIPI DisCo for Imaging support Sakari Ailus
2023-02-08 15:28 ` [PATCH v4 1/8] ACPI: property: Parse data node string references in properties Sakari Ailus
2023-02-08 15:28 ` [PATCH v4 2/8] ACPI: property: Parse _CRS CSI-2 descriptor Sakari Ailus
2023-02-08 16:43   ` Andy Shevchenko
2023-02-08 20:26     ` Sakari Ailus
2023-02-08 20:43   ` kernel test robot
2023-02-08 22:16     ` Sakari Ailus
2023-02-08 21:04   ` kernel test robot
2023-02-09  2:43     ` Philip Li
2023-02-08 15:28 ` [PATCH v4 3/8] device property: Add SOFTWARE_NODE() macro for defining software nodes Sakari Ailus
2023-02-08 15:28 ` [PATCH v4 4/8] ACPI: property: Generate camera swnodes for ACPI and DisCo for Imaging Sakari Ailus
2023-02-08 16:48   ` Andy Shevchenko
2023-02-08 15:28 ` [PATCH v4 5/8] ACPI: property: Dig "rotation" property for devices with CSI2 _CRS Sakari Ailus
2023-02-08 16:51   ` Andy Shevchenko
2023-02-08 20:56     ` Sakari Ailus
2023-02-08 15:28 ` [PATCH v4 6/8] ACPI: property: Rename parsed MIPI DisCo for Imaging properties Sakari Ailus
2023-02-08 16:56   ` Andy Shevchenko
2023-02-08 21:27     ` Sakari Ailus
2023-02-08 15:28 ` [PATCH v4 7/8] ACPI: property: Skip MIPI property table without "mipi-img" prefix Sakari Ailus
2023-02-08 15:28 ` [PATCH v4 8/8] ACPI: property: Document _CRS CSI-2 and DisCo for Imaging support Sakari Ailus

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.