public inbox for linux-acpi@vger.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, linux-media@vger.kernel.org,
	rafael@kernel.org, heikki.krogerus@linux.intel.com
Subject: Re: [PATCH v2 4/8] ACPI: property: Generate camera swnodes for ACPI and DisCo for Imaging
Date: Wed, 25 Jan 2023 14:00:25 +0200	[thread overview]
Message-ID: <Y9EZ2eoQxnvQJPtd@smile.fi.intel.com> (raw)
In-Reply-To: <Y9EYPOmy2vEIzP7i@kekkonen.localdomain>

On Wed, Jan 25, 2023 at 01:53:32PM +0200, Sakari Ailus wrote:
> On Wed, Jan 25, 2023 at 01:46:20PM +0200, Andy Shevchenko wrote:
> > On Wed, Jan 25, 2023 at 10:56:41AM +0200, Sakari Ailus wrote:
> > > On Tue, Jan 24, 2023 at 09:26:31PM +0200, Andy Shevchenko wrote:
> > > > On Mon, Jan 23, 2023 at 03:46:13PM +0200, Sakari Ailus wrote:

...

> > > > 		// assuming we dropped the union and renamed to val...
> > > > 		ret = fwnode_property_read_u8_array(mipi_port_fwnode,
> > > > 						    "mipi-img-lane-polarities",
> > > > 						    val, sizeof(val));
> > > > 		if (ret) {
> > > > 			...can't read... (debug message?)
> > > > 		} else {
> > > > 			unsigned int i;
> > > > 
> > > > 			for (i = 0; i < 1 + num_lanes; i++)
> > > > 				bitmap_set_value8(polarity, val[i], i * BITS_PER_BYTE);
> > > 
> > > You'll still needed to access invididual bits in val.
> > 
> > I didn't get this. The below is what it does in most efficient way.
> 
> Ah. You're assining eight bits at a time.

> Then the loop ends too late as i refers to a byte, not bit. This can be
> addressed though. And a BUILD_BUG_ON() check for polarity being large
> enough will be needed.

You probably meant static_assert(), but see my reply to my reply where
I caught up this. Yes, the loop conditional should rely on byte count.

> I still find this more complicated than the original code that also does
> not need a temporary buffer.

Your magic formula with bit shifts and conjunctions is so hard to read
and error prone, that makes me think of the proper APIs in the first place.
That's why I'm tending to use this code, because it's much easier to get
and maintain.

> > > > 			// assuming that lane_polarities is zeroed by default...
> > > > 			for_each_set_bit(i, polarity, 1 + num_lanes)
> > > > 				port->lane_polarities[i] = 1;
> > 
> > Note that his code lacks of endianess issues.
> > 
> > > > 		}

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2023-01-25 12:00 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-23 13:46 [PATCH v2 0/8] ACPI _CRS CSI-2 and MIPI DisCo for Imaging support Sakari Ailus
2023-01-23 13:46 ` [PATCH v2 1/8] ACPI: property: Parse data node string references in properties Sakari Ailus
2023-01-23 14:51   ` Andy Shevchenko
2023-01-23 15:53     ` Sakari Ailus
2023-01-23 17:19       ` Andy Shevchenko
2023-01-23 13:46 ` [PATCH v2 2/8] ACPI: property: Parse _CRS CSI-2 descriptor Sakari Ailus
2023-01-23 15:07   ` Andy Shevchenko
2023-01-23 16:07     ` Sakari Ailus
2023-01-23 17:25       ` Andy Shevchenko
2023-01-24 15:52         ` Sakari Ailus
2023-01-24 16:40           ` Andy Shevchenko
2023-01-23 13:46 ` [PATCH v2 3/8] device property: Add SOFTWARE_NODE() macro for defining software nodes Sakari Ailus
2023-01-24 11:40   ` Heikki Krogerus
2023-01-23 13:46 ` [PATCH v2 4/8] ACPI: property: Generate camera swnodes for ACPI and DisCo for Imaging Sakari Ailus
2023-01-23 15:23   ` Andy Shevchenko
2023-01-24 15:43     ` Sakari Ailus
2023-01-24 16:38       ` Andy Shevchenko
2023-01-25  8:34         ` Sakari Ailus
2023-01-24 19:26   ` Andy Shevchenko
2023-01-24 19:32     ` Andy Shevchenko
2023-01-25  8:56     ` Sakari Ailus
2023-01-25 11:46       ` Andy Shevchenko
2023-01-25 11:53         ` Sakari Ailus
2023-01-25 12:00           ` Andy Shevchenko [this message]
2023-01-25 12:02             ` Andy Shevchenko
2023-01-23 13:46 ` [PATCH v2 5/8] ACPI: property: Dig "rotation" property for devices with CSI2 _CRS Sakari Ailus
2023-01-23 13:46 ` [PATCH v2 6/8] ACPI: property: Rename parsed MIPI DisCo for Imaging properties Sakari Ailus
2023-01-23 13:46 ` [PATCH v2 7/8] ACPI: property: Skip MIPI property table without "mipi-img" prefix Sakari Ailus
2023-01-23 15:27   ` Andy Shevchenko
2023-01-24 15:54     ` Sakari Ailus
2023-01-24 16:41       ` Andy Shevchenko
2023-01-25  8:25         ` Sakari Ailus
2023-01-23 13:46 ` [PATCH v2 8/8] ACPI: property: Document _CRS CSI-2 and DisCo for Imaging support Sakari Ailus

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=Y9EZ2eoQxnvQJPtd@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