Re: [PATCH v8 2/2] regulator: add QCOM RPMh regulator driver

From: Mark Brown
Date: Mon Jul 02 2018 - 06:29:07 EST


On Fri, Jun 22, 2018 at 05:46:14PM -0700, David Collins wrote:

> --- /dev/null
> +++ b/drivers/regulator/qcom-rpmh-regulator.c
> @@ -0,0 +1,746 @@
> +// SPDX-License-Identifier: GPL-2.0
> +/* Copyright (c) 2018, The Linux Foundation. All rights reserved. */
> +

Please make the entire header block C++ so it looks intentional.

> + cmd.data = bypassed ? PMIC4_BOB_MODE_PASS : pmic_mode;

Please just write normal if statements, the ternery operator isn't
really helping legibility.

> +static const int pmic_mode_map_pmic4_ldo[REGULATOR_MODE_STANDBY + 1] = {
> + [REGULATOR_MODE_INVALID] = -EINVAL,
> + [REGULATOR_MODE_STANDBY] = PMIC4_LDO_MODE_RETENTION,
> + [REGULATOR_MODE_IDLE] = PMIC4_LDO_MODE_LPM,
> + [REGULATOR_MODE_NORMAL] = -EINVAL,
> + [REGULATOR_MODE_FAST] = PMIC4_LDO_MODE_HPM,
> +};

This mapping is really weird, I'd expect one of the modes to correspond
to the normal operating mode of the regulator.

> +static unsigned int rpmh_regulator_pmic4_ldo_of_map_mode(unsigned int mode)
> +{
> + static const unsigned int of_mode_map[RPMH_REGULATOR_MODE_COUNT] = {
> + [RPMH_REGULATOR_MODE_RET] = REGULATOR_MODE_STANDBY,
> + [RPMH_REGULATOR_MODE_LPM] = REGULATOR_MODE_IDLE,
> + [RPMH_REGULATOR_MODE_AUTO] = REGULATOR_MODE_INVALID,
> + [RPMH_REGULATOR_MODE_HPM] = REGULATOR_MODE_FAST,
> + };

Same here, based on that it looks like auto mode is a good map for
normal.

> + if (mode >= RPMH_REGULATOR_MODE_COUNT)
> + return -EINVAL;

Why not use ARRAY_SIZE?

Attachment: signature.asc
Description: PGP signature