Re: [PATCH v2 3/5] clk: lochnagar: Add support for the Cirrus Logic Lochnagar

Stephen Boyd
2018-10-11T19:36:26Z

Quoting Mark Brown (2018-10-11 07:54:22)
> On Thu, Oct 11, 2018 at 12:00:46AM -0700, Stephen Boyd wrote:
> > Quoting Charles Keepax (2018-10-08 06:25:40)
>
> > > +struct lochnagar_regmap_clk {
> > > + unsigned int cfg_reg;
> > > + unsigned int ena_mask;
> > > + unsigned int dir_mask;
> > > +
> > > + unsigned int src_reg;
> > > + unsigned int src_mask;
>
> > Are these 32 bits or 16 bits or 8 bits? Please use a u32/u16/u8 so we
> > know the register width.
>
> Note that regmap always uses unsigned int to represent registers
> regardless of the underlying physical register width, this can be an
> issue on reads since we pass the destination for the read in by address.
>
> > > +struct lochnagar_clk_priv {
> > > + struct device *dev;
> > > + struct lochnagar *lochnagar;
>
> > Is this used for anything besides getting the regmap? Can you get the
> > pointer to the parent in probe and use that to get the regmap pointer
> > from dev_get_remap() and also use the of_node of the parent to register
>
> dev_get_regmap() is pretty expensive, I'd not advise using it in
> anything that might approximate a fast path. It's kind of debatable
> when I2C gets involved but still feels wrong.

I'm suggesting the regmap is acquired in probe and a pointer is stored
here in this structure. That is not a fastpath as far as I know.