All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andy Shevchenko <andriy.shevchenko@intel.com>
To: "Théo Lebrun" <theo.lebrun@bootlin.com>
Cc: "Gregory CLEMENT" <gregory.clement@bootlin.com>,
	"Michael Turquette" <mturquette@baylibre.com>,
	"Stephen Boyd" <sboyd@kernel.org>,
	"Rob Herring" <robh+dt@kernel.org>,
	"Krzysztof Kozlowski" <krzysztof.kozlowski+dt@linaro.org>,
	"Conor Dooley" <conor+dt@kernel.org>,
	"Thomas Bogendoerfer" <tsbogend@alpha.franken.de>,
	"Linus Walleij" <linus.walleij@linaro.org>,
	"Rafał Miłecki" <rafal@milecki.pl>,
	"Philipp Zabel" <p.zabel@pengutronix.de>,
	"Vladimir Kondratiev" <vladimir.kondratiev@mobileye.com>,
	linux-mips@vger.kernel.org, linux-clk@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>,
	"Tawfik Bayouk" <tawfik.bayouk@mobileye.com>,
	linux-gpio@vger.kernel.org
Subject: Re: [PATCH v8 04/10] reset: eyeq5: add platform driver
Date: Thu, 29 Feb 2024 13:22:08 +0200	[thread overview]
Message-ID: <ZeBo4N204gLO0eUd@smile.fi.intel.com> (raw)
In-Reply-To: <CZGVIWR4H4DE.3M5H3H99X0QPT@bootlin.com>

On Wed, Feb 28, 2024 at 06:04:47PM +0100, Théo Lebrun wrote:
> On Tue Feb 27, 2024 at 6:27 PM CET, Andy Shevchenko wrote:
> > On Tue, Feb 27, 2024 at 03:55:25PM +0100, Théo Lebrun wrote:

...

> > > +	u32 offset = id & GENMASK(7, 0);
> > > +	u32 domain = id >> 8;
> >
> > Perhaps
> >
> > 	u32 offset = (id & GENMASK(7, 0)) >> 0;
> > 	u32 domain = (id & GENMASK(31, 8)) >> 8;
> >
> > for better understanding the split?
> 
> Do the additional zero-bit-shift and GENMASK() help understanding? My
> brain needs time to parse them to then notice they do nothing and
> simplify the code in my head, back to the original version.

In my opinion yes, as you exactly showing the split.
But. The better is to use FIELD_GET().

> I personally like the simplest version (the original one). But otherwise
> FIELD_GET() with two globally-defined masks could be a solution as
> well.

Oh, yes, that's what just came to my mind without even looking here.

> I still prefer the original version better. Less symbols, less
> complexity.

[...]

> > > +	priv->rcdev.of_node = np;
> >
> > It's better to use device_set_node().
> 
> I don't see how device_set_node() can help? It works on struct device
> pointers. Here priv->rcdev is a reset_controller_dev struct. There are
> no users of device_set_node() in drivers/reset/.

No users doesn't mean it's good. The API is relatively "new" and takes
care of two things:
1) it uses agnostic interface;
2) it doesn't require any firmware node direct dereference.

The 2) is most important here as allows us to refactor (firmware node) code
in the future.

> > > +	priv->rcdev.of_reset_n_cells = 2;
> > > +	priv->rcdev.of_xlate = eq5r_of_xlate;

However, ideally these should be also translated to use fwnode as IIO did,
for example.

...

> > > +		priv->rcdev.nr_resets += __builtin_popcount(eq5r_valid_masks[i]);
> >
> > Please, use corresponding hweightXX() API.
> 
> Noted. I did not find this keyword even though I searched quite a bit
> for it. "popcount" sounds more logical to me. :-)

Hmm... But it's fundamental, it's called Hamming weight.
https://en.wikipedia.org/wiki/Hamming_weight

-- 
With Best Regards,
Andy Shevchenko



  reply	other threads:[~2024-02-29 11:22 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-27 14:55 [PATCH v8 00/10] Add support for Mobileye EyeQ5 system controller Théo Lebrun
2024-02-27 14:55 ` [PATCH v8 01/10] dt-bindings: pinctrl: mobileye,eyeq5-pinctrl: add bindings Théo Lebrun
2024-02-29  9:10   ` Linus Walleij
2024-02-27 14:55 ` [PATCH v8 02/10] dt-bindings: soc: mobileye: add EyeQ5 OLB system controller Théo Lebrun
2024-02-27 16:38   ` Rob Herring
2024-02-28 14:09     ` Théo Lebrun
2024-02-27 14:55 ` [PATCH v8 03/10] clk: eyeq5: add platform driver, and init routine at of_clk_init() Théo Lebrun
2024-02-27 17:11   ` Andy Shevchenko
2024-02-28 14:33     ` Théo Lebrun
2024-02-29 11:15       ` Andy Shevchenko
2024-02-29 14:27         ` Théo Lebrun
2024-02-29 14:59           ` Andy Shevchenko
2024-02-29 15:40             ` Théo Lebrun
2024-02-29 15:48               ` Andy Shevchenko
2024-02-29 15:57                 ` Théo Lebrun
2024-03-01  1:33               ` Stephen Boyd
2024-02-27 14:55 ` [PATCH v8 04/10] reset: eyeq5: add platform driver Théo Lebrun
2024-02-27 17:27   ` Andy Shevchenko
2024-02-28 17:04     ` Théo Lebrun
2024-02-29 11:22       ` Andy Shevchenko [this message]
2024-02-29 12:18         ` Théo Lebrun
2024-02-29 13:48           ` Andy Shevchenko
2024-02-29 13:53             ` Andy Shevchenko
2024-02-29 15:23             ` Théo Lebrun
2024-02-29 15:33               ` Andy Shevchenko
2024-02-29 15:28             ` Philipp Zabel
2024-02-29 15:36               ` Andy Shevchenko
2024-03-01 11:36                 ` Philipp Zabel
2024-02-27 14:55 ` [PATCH v8 05/10] pinctrl: " Théo Lebrun
2024-02-27 18:14   ` Andy Shevchenko
2024-02-28 18:15     ` Théo Lebrun
2024-02-29 11:35       ` Andy Shevchenko
2024-02-29 15:13         ` Théo Lebrun
2024-02-29 15:32           ` Andy Shevchenko
2024-02-29 21:02             ` Linus Walleij
2024-02-27 14:55 ` [PATCH v8 06/10] MAINTAINERS: Map OLB files to Mobileye SoCs Théo Lebrun
2024-02-27 14:55 ` [PATCH v8 07/10] MIPS: mobileye: eyeq5: add OLB syscon node Théo Lebrun
2024-02-27 14:55 ` [PATCH v8 08/10] MIPS: mobileye: eyeq5: use OLB clocks controller node Théo Lebrun
2024-02-27 14:55 ` [PATCH v8 09/10] MIPS: mobileye: eyeq5: add OLB reset " Théo Lebrun
2024-02-27 14:55 ` [PATCH v8 10/10] MIPS: mobileye: eyeq5: add pinctrl node & pinmux function nodes Théo Lebrun
2024-02-29  9:12   ` Linus Walleij

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=ZeBo4N204gLO0eUd@smile.fi.intel.com \
    --to=andriy.shevchenko@intel.com \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=gregory.clement@bootlin.com \
    --cc=krzysztof.kozlowski+dt@linaro.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=mturquette@baylibre.com \
    --cc=p.zabel@pengutronix.de \
    --cc=rafal@milecki.pl \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@kernel.org \
    --cc=tawfik.bayouk@mobileye.com \
    --cc=theo.lebrun@bootlin.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tsbogend@alpha.franken.de \
    --cc=vladimir.kondratiev@mobileye.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.