lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Fri, 18 Dec 2020 13:21:39 +0000
From:   Lee Jones <lee.jones@...aro.org>
To:     Cristian Ciocaltea <cristian.ciocaltea@...il.com>
Cc:     Rob Herring <robh+dt@...nel.org>,
        Dmitry Torokhov <dmitry.torokhov@...il.com>,
        Sebastian Reichel <sre@...nel.org>,
        Mark Brown <broonie@...nel.org>,
        Manivannan Sadhasivam <manivannan.sadhasivam@...aro.org>,
        Liam Girdwood <lgirdwood@...il.com>,
        Andreas Färber <afaerber@...e.de>,
        linux-actions@...ts.infradead.org, devicetree@...r.kernel.org,
        linux-kernel@...r.kernel.org, linux-input@...r.kernel.org,
        linux-pm@...r.kernel.org
Subject: Re: [PATCH v3 3/7] mfd: Add MFD driver for ATC260x PMICs

On Fri, 18 Dec 2020, Cristian Ciocaltea wrote:

> Hi Lee,
> 
> Thank you for the detailed review!
> 
> I will prepare a new revision, but there are still a couple of open
> points..

Could you please snip your replies, leaving only the open points.

Scrolling through lots of empty quotes or "done" comments is quite
time consuming.  Thanks.

[...]

> > > +	/*
> > > +	 * Using regmap within an atomic context (e.g. accessing a PMIC when
> > > +	 * powering system down) is normally allowed only if the regmap type
> > > +	 * is MMIO and the regcache type is either REGCACHE_NONE or
> > > +	 * REGCACHE_FLAT. For slow buses like I2C and SPI, the regmap is
> > > +	 * internally protected by a mutex which is acquired non-atomically.
> > > +	 *
> > > +	 * Let's improve this by using a customized locking scheme inspired
> > > +	 * from I2C atomic transfer. See i2c_in_atomic_xfer_mode() for a
> > > +	 * starting point.
> > > +	 */
> > > +	if (system_state > SYSTEM_RUNNING && irqs_disabled())
> > 
> > Were does system_state come from?
> 
> It is declared in 'include/linux/kernel.h':
> 
> extern enum system_states {
> 	SYSTEM_BOOTING,
> 	SYSTEM_SCHEDULING,
> 	SYSTEM_RUNNING,
> 	SYSTEM_HALT,
> 	SYSTEM_POWER_OFF,
> 	SYSTEM_RESTART,
> 	SYSTEM_SUSPEND,
> } system_state;
> 
> The definition is in 'init/main.c':
> 
> enum system_states system_state __read_mostly;
> EXPORT_SYMBOL(system_state);

Ah, it's a system wide thing.  No problem.

[...]

> > > +	ret = regmap_read(atc260x->regmap, atc260x->rev_reg, &chip_rev);
> > > +	if (ret) {
> > > +		dev_err(dev, "Failed to get chip revision\n");
> > > +		return ret;
> > > +	}
> > > +
> > > +	if (chip_rev < 0 || chip_rev > 31) {
> > > +		dev_err(dev, "Unknown chip revision: %d\n", ret);
> > > +		return -EINVAL;
> > > +	}
> > 
> > This still seems limiting.
> 
> This is based on the vendor implementation. Unfortunately I don't have
> access to a data sheet or any other source of information about the
> management of the chip revisions.

So which versions does this driver work with?  All 32?

[...]

> > > +const struct of_device_id atc260x_i2c_of_match[] = {
> > > +	{ .compatible = "actions,atc2603c", .data = (void *)ATC2603C },
> > > +	{ .compatible = "actions,atc2609a", .data = (void *)ATC2609A },
> > > +	{ /* sentinel */ }
> > 
> > I think you can drop the (void *) casts.
> 
> Without the cast, I get the following compiler warning:
> 
> drivers/mfd/atc260x-i2c.c:46:46: warning: initialization of ‘const void *’
> from ‘int’ makes pointer from integer without a cast [-Wint-conversion]
>   { .compatible = "actions,atc2603c", .data = ATC2603C },

Perhaps I'm getting confused with addresses of things.  Never mind.

-- 
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog

Powered by blists - more mailing lists