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  linux-cve-announce  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]
Message-Id: <CZTFR87IG7MI.11DN441APOPE3@baylibre.com>
Date: Thu, 14 Mar 2024 12:28:00 +0100
From: "Esteban Blanc" <eblanc@...libre.com>
To: "Bhargav Raviprakash" <bhargav.r@...s.com>,
 <linux-kernel@...r.kernel.org>
Cc: <m.nirmaladevi@...s.com>, <lee@...nel.org>, <robh+dt@...nel.org>,
 <krzysztof.kozlowski+dt@...aro.org>, <conor+dt@...nel.org>,
 <jpanis@...libre.com>, <devicetree@...r.kernel.org>, <arnd@...db.de>,
 <gregkh@...uxfoundation.org>, <lgirdwood@...il.com>, <broonie@...nel.org>,
 <linus.walleij@...aro.org>, <linux-gpio@...r.kernel.org>,
 <linux-arm-kernel@...ts.infradead.org>, <nm@...com>, <vigneshr@...com>,
 <kristo@...nel.org>
Subject: Re: [PATCH v3 09/11] regulator: tps6594-regulator: Add TI TPS65224
 PMIC regulators

On Fri Mar 8, 2024 at 11:34 AM CET, Bhargav Raviprakash wrote:
> From: Nirmala Devi Mal Nadar <m.nirmaladevi@...s.com>
>
> Add support for TPS65224 regulators (bucks and LDOs) to TPS6594 driver as
> they have significant functional overlap. TPS65224 PMIC has 4 buck
> regulators and 3 LDOs. BUCK12 can operate in dual phase.
> The output voltages are configurable and are meant to supply power to the
> main processor and other components.
>
> Signed-off-by: Nirmala Devi Mal Nadar <m.nirmaladevi@...s.com>
> Signed-off-by: Bhargav Raviprakash <bhargav.r@...s.com>
> ---
>  drivers/regulator/Kconfig             |   4 +-
>  drivers/regulator/tps6594-regulator.c | 236 +++++++++++++++++++++++---
>  2 files changed, 215 insertions(+), 25 deletions(-)
>
> diff --git a/drivers/regulator/tps6594-regulator.c b/drivers/regulator/tps6594-regulator.c
> index b7f0c8779..37d76c483 100644
> --- a/drivers/regulator/tps6594-regulator.c
> +++ b/drivers/regulator/tps6594-regulator.c
> @@ -412,14 +562,20 @@ static int tps6594_regulator_probe(struct platform_device *pdev)
>  	struct tps6594_ext_regulator_irq_data *irq_ext_reg_data;
>  	struct tps6594_regulator_irq_type *irq_type;
>  	u8 buck_configured[BUCK_NB] = { 0 };
> +	u8 ldo_configured[LDO_NB] = { 0 };
>  	u8 buck_multi[MULTI_PHASE_NB] = { 0 };
>  	static const char * const multiphases[] = {"buck12", "buck123", "buck1234", "buck34"};

`multiphases` should prefixed like the new one.

> +	static const char * const tps65224_multiphases[] = {"buck12"};

> @@ -495,25 +660,30 @@ static int tps6594_regulator_probe(struct platform_device *pdev)
>  	if (!irq_data)
>  		return -ENOMEM;
>  
> -	for (i = 0; i < MULTI_PHASE_NB; i++) {
> +	for (i = 0; i < multi_phase_cnt; i++) {
>  		if (buck_multi[i] == 0)
>  			continue;
>  
> +		const struct regulator_desc *multi_regs = (tps->chip_id == TPS65224) ?
> +							   tps65224_multi_regs :
> +							   tps6594_multi_regs;

This should be declared at the top of the function.

>  		rdev = devm_regulator_register(&pdev->dev, &multi_regs[i], &config);
> -		if (IS_ERR(rdev))
> -			return dev_err_probe(tps->dev, PTR_ERR(rdev),
> -					     "failed to register %s regulator\n",
> -					     pdev->name);
> +			if (IS_ERR(rdev))
> +				return dev_err_probe(tps->dev, PTR_ERR(rdev),
> +						     "failed to register %s regulator\n",
> +						     pdev->name);

The indentation of the `if` looks odd. You should revert this.

> @@ -537,21 +707,34 @@ static int tps6594_regulator_probe(struct platform_device *pdev)
>  		if (buck_configured[i] == 1)
>  			continue;
>  
> -		rdev = devm_regulator_register(&pdev->dev, &buck_regs[i], &config);
> +		const struct regulator_desc *buck_cfg = (tps->chip_id == TPS65224) ?
> +							 tps65224_buck_regs : buck_regs;

Same here, should be at the top of the function.

> -	/* LP8764 dosen't have LDO */
> +	/* LP8764 doesn't have LDO */
>  	if (tps->chip_id != LP8764) {
> -		for (i = 0; i < ARRAY_SIZE(ldo_regs); i++) {
> +		for (i = 0; i < LDO_NB; i++) {
> +			if (ldo_configured[i] == 1)
> +				continue;
> +
> +			struct tps6594_regulator_irq_type **ldos_irq_types =
> +						(tps->chip_id == TPS65224) ?
> +						tps65224_ldos_irq_types : tps6594_ldos_irq_types;
> +
> +			const struct regulator_desc *ldo_regs =
> +						(tps->chip_id == TPS65224) ?
> +						tps65224_ldo_regs : tps6594_ldo_regs;

Should be at the top of the function, please fix this in the whole file.

Best regards,

-- 
Esteban "Skallwar" Blanc
BayLibre

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ