All of lore.kernel.org
 help / color / mirror / Atom feed
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



  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 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.