From: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-acpi@vger.kernel.org, rafael@kernel.org,
linux-media@vger.kernel.org, heikki.krogerus@linux.intel.com
Subject: Re: [PATCH 6/8] ACPI: property: Rename parsed MIPI DisCo for Imaging properties
Date: Tue, 17 Jan 2023 17:27:13 +0200 [thread overview]
Message-ID: <Y8a+USbrWoCw/EFG@smile.fi.intel.com> (raw)
In-Reply-To: <20230117122244.2546597-7-sakari.ailus@linux.intel.com>
On Tue, Jan 17, 2023 at 02:22:42PM +0200, Sakari Ailus wrote:
> MIPI DisCo for Imaging defines properties for sensor-adjacent devices such
> as EEPROM, LED flash or lens VCM as either device or sub-node references.
> This is compliant with existing DT definitions apart from property names.
>
> Rename parsed MIPI-defined properties so drivers will have a unified view
> of them as defined in DT and already parsed by drivers. This can be done
> in-place as the MIPI-defined property strings are always longer than the
> DT one. This also results in loss of constness in parser function
> arguments.
>
> Individual bindings to devices could define the references differently
> between MIPI DisCo for Imaging and DT, in terms of device or sub-node
> references. This will still need to be handled in the drivers themselves.
...
> +static const struct mipi_disco_prop {
> + const char *mipi_prop;
> + const char *dt_prop;
> +} mipi_disco_props[] = {
> + { "mipi-img-lens-focus", "lens-focus" },
> + { "mipi-img-flash-leds", "flash-leds" },
> + { "mipi-img-clock-frequency", "clock-frequency" },
> + { "mipi-img-led-max-current", "led-max-microamp" },
> + { "mipi-img-flash-max-current", "flash-max-microamp" },
> + { "mipi-img-flash-max-timeout", "flash-max-timeout-us" },
> +};
If we split this to 2 arrays (with static_assert() against their sizes)...
...
> +void acpi_properties_prepare_mipi(union acpi_object *elements)
> +{
> + unsigned int i;
> +
> + /* Replace MIPI DisCo for Imaging property names with DT equivalents. */
> + for (i = 0; i < ARRAY_SIZE(mipi_disco_props); i++) {
> + if (!strcmp(mipi_disco_props[i].mipi_prop,
> + elements[0].string.pointer)) {
...we can utilise match_string() here.
> + WARN_ON(strscpy(elements[0].string.pointer,
> + mipi_disco_props[i].dt_prop,
> + elements[0].string.length) < 0);
> + break;
> + }
> + }
> +}
...
> for (i = 0; i < properties->package.count; i++) {
> - const union acpi_object *property;
> + union acpi_object *property = &properties->package.elements[i];
> + union acpi_object *elements = property->package.elements;
>
> - property = &properties->package.elements[i];
> /*
> * Only two elements allowed, the first one must be a string and
> * the second one has to satisfy certain conditions.
> */
> if (property->package.count != 2
> - || property->package.elements[0].type != ACPI_TYPE_STRING
> - || !acpi_property_value_ok(&property->package.elements[1]))
> + || elements[0].type != ACPI_TYPE_STRING
> + || !acpi_property_value_ok(&elements[1]))
While at it you can mode ||:s on the respective previous lines.
> return false;
> +
> + acpi_properties_prepare_mipi(elements);
> }
--
With Best Regards,
Andy Shevchenko
next prev parent reply other threads:[~2023-01-17 15:28 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-17 12:22 [PATCH 0/8] ACPI _CRS CSI-2 and MIPI DisCo for Imaging support Sakari Ailus
2023-01-17 12:22 ` [PATCH 1/8] ACPI: property: Parse data node string references in properties Sakari Ailus
2023-01-17 14:29 ` Andy Shevchenko
2023-01-19 14:03 ` Sakari Ailus
2023-01-17 12:22 ` [PATCH 2/8] ACPI: property: Parse _CRS CSI-2 descriptor Sakari Ailus
2023-01-17 14:34 ` Andy Shevchenko
2023-01-19 14:04 ` Sakari Ailus
2023-01-17 12:22 ` [PATCH 3/8] device property: Add SOFTWARE_NODE() macro for defining software nodes Sakari Ailus
2023-01-17 14:35 ` Andy Shevchenko
2023-01-17 14:37 ` Andy Shevchenko
2023-01-17 14:37 ` Andy Shevchenko
2023-01-17 12:22 ` [PATCH 4/8] ACPI: property: Generate camera swnodes for ACPI and DisCo for Imaging Sakari Ailus
2023-01-17 14:59 ` Andy Shevchenko
2023-01-19 15:03 ` Sakari Ailus
2023-01-19 15:44 ` Andy Shevchenko
2023-01-23 11:15 ` Sakari Ailus
2023-01-17 12:22 ` [PATCH 5/8] ACPI: property: Dig "rotation" property for devices with CSI2 _CRS Sakari Ailus
2023-01-17 15:22 ` Andy Shevchenko
2023-01-19 15:40 ` Sakari Ailus
2023-01-17 12:22 ` [PATCH 6/8] ACPI: property: Rename parsed MIPI DisCo for Imaging properties Sakari Ailus
2023-01-17 15:27 ` Andy Shevchenko [this message]
2023-01-19 15:45 ` Sakari Ailus
2023-01-17 12:22 ` [PATCH 7/8] ACPI: property: Skip MIPI property table without "mipi-img" prefix Sakari Ailus
2023-01-17 15:29 ` Andy Shevchenko
2023-01-19 15:51 ` Sakari Ailus
2023-01-19 16:09 ` Andy Shevchenko
2023-01-19 16:11 ` Andy Shevchenko
2023-01-20 12:07 ` Sakari Ailus
2023-01-20 13:59 ` Andy Shevchenko
2023-01-20 11:58 ` Sakari Ailus
2023-01-20 15:11 ` Andy Shevchenko
2023-01-20 22:34 ` Sakari Ailus
2023-01-17 12:22 ` [PATCH 8/8] ACPI: property: Document _CRS CSI-2 and DisCo for Imaging support Sakari Ailus
2023-01-17 15:32 ` Andy Shevchenko
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=Y8a+USbrWoCw/EFG@smile.fi.intel.com \
--to=andriy.shevchenko@linux.intel.com \
--cc=heikki.krogerus@linux.intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-media@vger.kernel.org \
--cc=rafael@kernel.org \
--cc=sakari.ailus@linux.intel.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