* [PATCH v2 0/6] regulator: mcp16502: add support for ramp delay @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea Hi, This series adds support for ramp delay on mcp16502. It also adds some cleanup on mcp16502. Apart from that patches 1/6 fixes the selector validation in case the regulator::desc::linear_min_sel is not zero. Thank you, Claudiu Beznea Changes in v2: - rebase on top of regulator/for-next - checked 1/6 and 3/6 applies on top of regulator/for-5.10 Claudiu Beznea (6): regulator: core: validate selector against linear_min_sel regulator: core: do not continue if selector match regulator: mcp16502: add linear_min_sel regulator: mcp16502: adapt for get/set on other registers regulator: mcp16502: add support for ramp delay regulator: mcp16502: remove void documentation of struct mcp16502 drivers/regulator/core.c | 12 +++- drivers/regulator/helpers.c | 3 +- drivers/regulator/mcp16502.c | 135 ++++++++++++++++++++++++++++++++++++------- 3 files changed, 127 insertions(+), 23 deletions(-) -- 2.7.4 ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 0/6] regulator: mcp16502: add support for ramp delay @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel Hi, This series adds support for ramp delay on mcp16502. It also adds some cleanup on mcp16502. Apart from that patches 1/6 fixes the selector validation in case the regulator::desc::linear_min_sel is not zero. Thank you, Claudiu Beznea Changes in v2: - rebase on top of regulator/for-next - checked 1/6 and 3/6 applies on top of regulator/for-5.10 Claudiu Beznea (6): regulator: core: validate selector against linear_min_sel regulator: core: do not continue if selector match regulator: mcp16502: add linear_min_sel regulator: mcp16502: adapt for get/set on other registers regulator: mcp16502: add support for ramp delay regulator: mcp16502: remove void documentation of struct mcp16502 drivers/regulator/core.c | 12 +++- drivers/regulator/helpers.c | 3 +- drivers/regulator/mcp16502.c | 135 ++++++++++++++++++++++++++++++++++++------- 3 files changed, 127 insertions(+), 23 deletions(-) -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 1/6] regulator: core: validate selector against linear_min_sel 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-11 9:06 ` Claudiu Beznea -1 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea There are regulators who's min selector is not zero. Selectors loops (looping b/w zero and regulator::desc::n_voltages) might throw errors because invalid selectors are used (lower than regulator::desc::linear_min_sel). For this situations validate selectors against regulator::desc::linear_min_sel. Fixes: 3a40cfc36bb3d ("regulator: core: create unlocked version of regulator_list_voltage") Fixes: 04eca28cde52c ("regulator: Add helpers for low-level register access") Fixes: 88cd222b259d6 ("regulator: provide consumer interface for fall/rise time") Fixes: d295f7670127e ("regulator: core: Move list_voltage_{linear,linear_range,table} to helpers.c") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/core.c | 9 +++++++-- drivers/regulator/helpers.c | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 2e1ea18221ef..1d0d35f14f37 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -2958,7 +2958,8 @@ static int _regulator_list_voltage(struct regulator_dev *rdev, return rdev->desc->fixed_uV; if (ops->list_voltage) { - if (selector >= rdev->desc->n_voltages) + if (selector >= rdev->desc->n_voltages || + selector < rdev->desc->linear_min_sel) return -EINVAL; if (lock) regulator_lock(rdev); @@ -3109,7 +3110,8 @@ int regulator_list_hardware_vsel(struct regulator *regulator, struct regulator_dev *rdev = regulator->rdev; const struct regulator_ops *ops = rdev->desc->ops; - if (selector >= rdev->desc->n_voltages) + if (selector >= rdev->desc->n_voltages || + selector < rdev->desc->linear_min_sel) return -EINVAL; if (ops->set_voltage_sel != regulator_set_voltage_sel_regmap) return -EOPNOTSUPP; @@ -4032,6 +4034,9 @@ int regulator_set_voltage_time(struct regulator *regulator, for (i = 0; i < rdev->desc->n_voltages; i++) { /* We only look for exact voltage matches here */ + if (i < rdev->desc->linear_min_sel) + continue; + voltage = regulator_list_voltage(regulator, i); if (voltage < 0) return -EINVAL; diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c index e4bb09bbd3fa..974f1a63993d 100644 --- a/drivers/regulator/helpers.c +++ b/drivers/regulator/helpers.c @@ -647,7 +647,8 @@ int regulator_list_voltage_table(struct regulator_dev *rdev, return -EINVAL; } - if (selector >= rdev->desc->n_voltages) + if (selector >= rdev->desc->n_voltages || + selector < rdev->desc->linear_min_sel) return -EINVAL; return rdev->desc->volt_table[selector]; -- 2.7.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 1/6] regulator: core: validate selector against linear_min_sel @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel There are regulators who's min selector is not zero. Selectors loops (looping b/w zero and regulator::desc::n_voltages) might throw errors because invalid selectors are used (lower than regulator::desc::linear_min_sel). For this situations validate selectors against regulator::desc::linear_min_sel. Fixes: 3a40cfc36bb3d ("regulator: core: create unlocked version of regulator_list_voltage") Fixes: 04eca28cde52c ("regulator: Add helpers for low-level register access") Fixes: 88cd222b259d6 ("regulator: provide consumer interface for fall/rise time") Fixes: d295f7670127e ("regulator: core: Move list_voltage_{linear,linear_range,table} to helpers.c") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/core.c | 9 +++++++-- drivers/regulator/helpers.c | 3 ++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 2e1ea18221ef..1d0d35f14f37 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -2958,7 +2958,8 @@ static int _regulator_list_voltage(struct regulator_dev *rdev, return rdev->desc->fixed_uV; if (ops->list_voltage) { - if (selector >= rdev->desc->n_voltages) + if (selector >= rdev->desc->n_voltages || + selector < rdev->desc->linear_min_sel) return -EINVAL; if (lock) regulator_lock(rdev); @@ -3109,7 +3110,8 @@ int regulator_list_hardware_vsel(struct regulator *regulator, struct regulator_dev *rdev = regulator->rdev; const struct regulator_ops *ops = rdev->desc->ops; - if (selector >= rdev->desc->n_voltages) + if (selector >= rdev->desc->n_voltages || + selector < rdev->desc->linear_min_sel) return -EINVAL; if (ops->set_voltage_sel != regulator_set_voltage_sel_regmap) return -EOPNOTSUPP; @@ -4032,6 +4034,9 @@ int regulator_set_voltage_time(struct regulator *regulator, for (i = 0; i < rdev->desc->n_voltages; i++) { /* We only look for exact voltage matches here */ + if (i < rdev->desc->linear_min_sel) + continue; + voltage = regulator_list_voltage(regulator, i); if (voltage < 0) return -EINVAL; diff --git a/drivers/regulator/helpers.c b/drivers/regulator/helpers.c index e4bb09bbd3fa..974f1a63993d 100644 --- a/drivers/regulator/helpers.c +++ b/drivers/regulator/helpers.c @@ -647,7 +647,8 @@ int regulator_list_voltage_table(struct regulator_dev *rdev, return -EINVAL; } - if (selector >= rdev->desc->n_voltages) + if (selector >= rdev->desc->n_voltages || + selector < rdev->desc->linear_min_sel) return -EINVAL; return rdev->desc->volt_table[selector]; -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 2/6] regulator: core: do not continue if selector match 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-11 9:06 ` Claudiu Beznea -1 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea Do not continue if selector has already been located. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 1d0d35f14f37..6724324d372c 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -4037,6 +4037,9 @@ int regulator_set_voltage_time(struct regulator *regulator, if (i < rdev->desc->linear_min_sel) continue; + if (old_sel >= 0 && new_sel >= 0) + break; + voltage = regulator_list_voltage(regulator, i); if (voltage < 0) return -EINVAL; -- 2.7.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 2/6] regulator: core: do not continue if selector match @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel Do not continue if selector has already been located. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/core.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 1d0d35f14f37..6724324d372c 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -4037,6 +4037,9 @@ int regulator_set_voltage_time(struct regulator *regulator, if (i < rdev->desc->linear_min_sel) continue; + if (old_sel >= 0 && new_sel >= 0) + break; + voltage = regulator_list_voltage(regulator, i); if (voltage < 0) return -EINVAL; -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 3/6] regulator: mcp16502: add linear_min_sel 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-11 9:06 ` Claudiu Beznea -1 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea Selectors b/w zero and VDD_LOW_SEL are not valid. Use linear_min_sel. Fixes: 919261c03e7ca ("regulator: mcp16502: add regulator driver for MCP16502") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index 6d0ad74935b3..ab78f831f5bf 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -93,6 +93,7 @@ static unsigned int mcp16502_of_map_mode(unsigned int mode) .owner = THIS_MODULE, \ .n_voltages = MCP16502_VSEL + 1, \ .linear_ranges = _ranges, \ + .linear_min_sel = VDD_LOW_SEL, \ .n_linear_ranges = ARRAY_SIZE(_ranges), \ .of_match = of_match_ptr(_name), \ .of_map_mode = mcp16502_of_map_mode, \ -- 2.7.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 3/6] regulator: mcp16502: add linear_min_sel @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel Selectors b/w zero and VDD_LOW_SEL are not valid. Use linear_min_sel. Fixes: 919261c03e7ca ("regulator: mcp16502: add regulator driver for MCP16502") Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index 6d0ad74935b3..ab78f831f5bf 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -93,6 +93,7 @@ static unsigned int mcp16502_of_map_mode(unsigned int mode) .owner = THIS_MODULE, \ .n_voltages = MCP16502_VSEL + 1, \ .linear_ranges = _ranges, \ + .linear_min_sel = VDD_LOW_SEL, \ .n_linear_ranges = ARRAY_SIZE(_ranges), \ .of_match = of_match_ptr(_name), \ .of_map_mode = mcp16502_of_map_mode, \ -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 4/6] regulator: mcp16502: adapt for get/set on other registers 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-11 9:06 ` Claudiu Beznea -1 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea MCP16502 have multiple registers for each regulator (as described in enum mcp16502_reg). Adapt the code to be able to get/set all these registers. This is necessary for the following commits. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index ab78f831f5bf..48eb64bc4018 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -54,13 +54,9 @@ * This function is useful for iterating over all regulators and accessing their * registers in a generic way or accessing a regulator device by its id. */ -#define MCP16502_BASE(i) (((i) + 1) << 4) +#define MCP16502_REG_BASE(i, r) ((((i) + 1) << 4) + MCP16502_REG_##r) #define MCP16502_STAT_BASE(i) ((i) + 5) -#define MCP16502_OFFSET_MODE_A 0 -#define MCP16502_OFFSET_MODE_LPM 1 -#define MCP16502_OFFSET_MODE_HIB 2 - #define MCP16502_OPMODE_ACTIVE REGULATOR_MODE_NORMAL #define MCP16502_OPMODE_LPM REGULATOR_MODE_IDLE #define MCP16502_OPMODE_HIB REGULATOR_MODE_STANDBY @@ -75,6 +71,23 @@ #define MCP16502_MIN_REG 0x0 #define MCP16502_MAX_REG 0x65 +/** + * enum mcp16502_reg - MCP16502 regulators's registers + * @MCP16502_REG_A: active state register + * @MCP16502_REG_LPM: low power mode state register + * @MCP16502_REG_HIB: hibernate state register + * @MCP16502_REG_SEQ: startup sequence register + * @MCP16502_REG_CFG: configuration register + */ +enum mcp16502_reg { + MCP16502_REG_A, + MCP16502_REG_LPM, + MCP16502_REG_HIB, + MCP16502_REG_HPM, + MCP16502_REG_SEQ, + MCP16502_REG_CFG, +}; + static unsigned int mcp16502_of_map_mode(unsigned int mode) { if (mode == REGULATOR_MODE_NORMAL || mode == REGULATOR_MODE_IDLE) @@ -144,22 +157,20 @@ static void mcp16502_gpio_set_mode(struct mcp16502 *mcp, int mode) } /* - * mcp16502_get_reg() - get the PMIC's configuration register for opmode + * mcp16502_get_reg() - get the PMIC's state configuration register for opmode * * @rdev: the regulator whose register we are searching * @opmode: the PMIC's operating mode ACTIVE, Low-power, Hibernate */ -static int mcp16502_get_reg(struct regulator_dev *rdev, int opmode) +static int mcp16502_get_state_reg(struct regulator_dev *rdev, int opmode) { - int reg = MCP16502_BASE(rdev_get_id(rdev)); - switch (opmode) { case MCP16502_OPMODE_ACTIVE: - return reg + MCP16502_OFFSET_MODE_A; + return MCP16502_REG_BASE(rdev_get_id(rdev), A); case MCP16502_OPMODE_LPM: - return reg + MCP16502_OFFSET_MODE_LPM; + return MCP16502_REG_BASE(rdev_get_id(rdev), LPM); case MCP16502_OPMODE_HIB: - return reg + MCP16502_OFFSET_MODE_HIB; + return MCP16502_REG_BASE(rdev_get_id(rdev), HIB); default: return -EINVAL; } @@ -179,7 +190,7 @@ static unsigned int mcp16502_get_mode(struct regulator_dev *rdev) unsigned int val; int ret, reg; - reg = mcp16502_get_reg(rdev, MCP16502_OPMODE_ACTIVE); + reg = mcp16502_get_state_reg(rdev, MCP16502_OPMODE_ACTIVE); if (reg < 0) return reg; @@ -210,7 +221,7 @@ static int _mcp16502_set_mode(struct regulator_dev *rdev, unsigned int mode, int val; int reg; - reg = mcp16502_get_reg(rdev, op_mode); + reg = mcp16502_get_state_reg(rdev, op_mode); if (reg < 0) return reg; @@ -269,10 +280,10 @@ static int mcp16502_suspend_get_target_reg(struct regulator_dev *rdev) { switch (pm_suspend_target_state) { case PM_SUSPEND_STANDBY: - return mcp16502_get_reg(rdev, MCP16502_OPMODE_LPM); + return mcp16502_get_state_reg(rdev, MCP16502_OPMODE_LPM); case PM_SUSPEND_ON: case PM_SUSPEND_MEM: - return mcp16502_get_reg(rdev, MCP16502_OPMODE_HIB); + return mcp16502_get_state_reg(rdev, MCP16502_OPMODE_HIB); default: dev_err(&rdev->dev, "invalid suspend target: %d\n", pm_suspend_target_state); -- 2.7.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 4/6] regulator: mcp16502: adapt for get/set on other registers @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel MCP16502 have multiple registers for each regulator (as described in enum mcp16502_reg). Adapt the code to be able to get/set all these registers. This is necessary for the following commits. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index ab78f831f5bf..48eb64bc4018 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -54,13 +54,9 @@ * This function is useful for iterating over all regulators and accessing their * registers in a generic way or accessing a regulator device by its id. */ -#define MCP16502_BASE(i) (((i) + 1) << 4) +#define MCP16502_REG_BASE(i, r) ((((i) + 1) << 4) + MCP16502_REG_##r) #define MCP16502_STAT_BASE(i) ((i) + 5) -#define MCP16502_OFFSET_MODE_A 0 -#define MCP16502_OFFSET_MODE_LPM 1 -#define MCP16502_OFFSET_MODE_HIB 2 - #define MCP16502_OPMODE_ACTIVE REGULATOR_MODE_NORMAL #define MCP16502_OPMODE_LPM REGULATOR_MODE_IDLE #define MCP16502_OPMODE_HIB REGULATOR_MODE_STANDBY @@ -75,6 +71,23 @@ #define MCP16502_MIN_REG 0x0 #define MCP16502_MAX_REG 0x65 +/** + * enum mcp16502_reg - MCP16502 regulators's registers + * @MCP16502_REG_A: active state register + * @MCP16502_REG_LPM: low power mode state register + * @MCP16502_REG_HIB: hibernate state register + * @MCP16502_REG_SEQ: startup sequence register + * @MCP16502_REG_CFG: configuration register + */ +enum mcp16502_reg { + MCP16502_REG_A, + MCP16502_REG_LPM, + MCP16502_REG_HIB, + MCP16502_REG_HPM, + MCP16502_REG_SEQ, + MCP16502_REG_CFG, +}; + static unsigned int mcp16502_of_map_mode(unsigned int mode) { if (mode == REGULATOR_MODE_NORMAL || mode == REGULATOR_MODE_IDLE) @@ -144,22 +157,20 @@ static void mcp16502_gpio_set_mode(struct mcp16502 *mcp, int mode) } /* - * mcp16502_get_reg() - get the PMIC's configuration register for opmode + * mcp16502_get_reg() - get the PMIC's state configuration register for opmode * * @rdev: the regulator whose register we are searching * @opmode: the PMIC's operating mode ACTIVE, Low-power, Hibernate */ -static int mcp16502_get_reg(struct regulator_dev *rdev, int opmode) +static int mcp16502_get_state_reg(struct regulator_dev *rdev, int opmode) { - int reg = MCP16502_BASE(rdev_get_id(rdev)); - switch (opmode) { case MCP16502_OPMODE_ACTIVE: - return reg + MCP16502_OFFSET_MODE_A; + return MCP16502_REG_BASE(rdev_get_id(rdev), A); case MCP16502_OPMODE_LPM: - return reg + MCP16502_OFFSET_MODE_LPM; + return MCP16502_REG_BASE(rdev_get_id(rdev), LPM); case MCP16502_OPMODE_HIB: - return reg + MCP16502_OFFSET_MODE_HIB; + return MCP16502_REG_BASE(rdev_get_id(rdev), HIB); default: return -EINVAL; } @@ -179,7 +190,7 @@ static unsigned int mcp16502_get_mode(struct regulator_dev *rdev) unsigned int val; int ret, reg; - reg = mcp16502_get_reg(rdev, MCP16502_OPMODE_ACTIVE); + reg = mcp16502_get_state_reg(rdev, MCP16502_OPMODE_ACTIVE); if (reg < 0) return reg; @@ -210,7 +221,7 @@ static int _mcp16502_set_mode(struct regulator_dev *rdev, unsigned int mode, int val; int reg; - reg = mcp16502_get_reg(rdev, op_mode); + reg = mcp16502_get_state_reg(rdev, op_mode); if (reg < 0) return reg; @@ -269,10 +280,10 @@ static int mcp16502_suspend_get_target_reg(struct regulator_dev *rdev) { switch (pm_suspend_target_state) { case PM_SUSPEND_STANDBY: - return mcp16502_get_reg(rdev, MCP16502_OPMODE_LPM); + return mcp16502_get_state_reg(rdev, MCP16502_OPMODE_LPM); case PM_SUSPEND_ON: case PM_SUSPEND_MEM: - return mcp16502_get_reg(rdev, MCP16502_OPMODE_HIB); + return mcp16502_get_state_reg(rdev, MCP16502_OPMODE_HIB); default: dev_err(&rdev->dev, "invalid suspend target: %d\n", pm_suspend_target_state); -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 5/6] regulator: mcp16502: add support for ramp delay 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-11 9:06 ` Claudiu Beznea -1 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea MCP16502 have configurable ramp delay support (via DVSR bits in regulators' CFG register). Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 89 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index 48eb64bc4018..777d1a6cd1c5 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -22,8 +22,9 @@ #define VDD_LOW_SEL 0x0D #define VDD_HIGH_SEL 0x3F -#define MCP16502_FLT BIT(7) -#define MCP16502_ENS BIT(0) +#define MCP16502_FLT BIT(7) +#define MCP16502_DVSR GENMASK(3, 2) +#define MCP16502_ENS BIT(0) /* * The PMIC has four sets of registers corresponding to four power modes: @@ -88,6 +89,12 @@ enum mcp16502_reg { MCP16502_REG_CFG, }; +/* Ramp delay (uV/us) for buck1, ldo1, ldo2. */ +static const int mcp16502_ramp_b1l12[] = { 6250, 3125, 2083, 1563 }; + +/* Ramp delay (uV/us) for buck2, buck3, buck4. */ +static const int mcp16502_ramp_b234[] = { 3125, 1563, 1042, 781 }; + static unsigned int mcp16502_of_map_mode(unsigned int mode) { if (mode == REGULATOR_MODE_NORMAL || mode == REGULATOR_MODE_IDLE) @@ -271,6 +278,80 @@ static int mcp16502_get_status(struct regulator_dev *rdev) return REGULATOR_STATUS_UNDEFINED; } +static int mcp16502_set_voltage_time_sel(struct regulator_dev *rdev, + unsigned int old_sel, + unsigned int new_sel) +{ + static const u8 us_ramp[] = { 8, 16, 24, 32 }; + int id = rdev_get_id(rdev); + unsigned int uV_delta, val; + int ret; + + ret = regmap_read(rdev->regmap, MCP16502_REG_BASE(id, CFG), &val); + if (ret) + return ret; + + val = (val & MCP16502_DVSR) >> 2; + uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - + old_sel * rdev->desc->linear_ranges->uV_step); + switch (id) { + case BUCK1: + case LDO1: + case LDO2: + ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], + mcp16502_ramp_b1l12[val]); + break; + + case BUCK2: + case BUCK3: + case BUCK4: + ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], + mcp16502_ramp_b234[val]); + break; + + default: + return -EINVAL; + } + + return ret; +} + +static int mcp16502_set_ramp_delay(struct regulator_dev *rdev, int ramp_delay) +{ + const int *ramp; + int id = rdev_get_id(rdev); + unsigned int i, size; + + switch (id) { + case BUCK1: + case LDO1: + case LDO2: + ramp = mcp16502_ramp_b1l12; + size = ARRAY_SIZE(mcp16502_ramp_b1l12); + break; + + case BUCK2: + case BUCK3: + case BUCK4: + ramp = mcp16502_ramp_b234; + size = ARRAY_SIZE(mcp16502_ramp_b234); + break; + + default: + return -EINVAL; + } + + for (i = 0; i < size; i++) { + if (ramp[i] == ramp_delay) + break; + } + if (i == size) + return -EINVAL; + + return regmap_update_bits(rdev->regmap, MCP16502_REG_BASE(id, CFG), + MCP16502_DVSR, (i << 2)); +} + #ifdef CONFIG_SUSPEND /* * mcp16502_suspend_get_target_reg() - get the reg of the target suspend PMIC @@ -365,6 +446,8 @@ static const struct regulator_ops mcp16502_buck_ops = { .disable = regulator_disable_regmap, .is_enabled = regulator_is_enabled_regmap, .get_status = mcp16502_get_status, + .set_voltage_time_sel = mcp16502_set_voltage_time_sel, + .set_ramp_delay = mcp16502_set_ramp_delay, .set_mode = mcp16502_set_mode, .get_mode = mcp16502_get_mode, @@ -389,6 +472,8 @@ static const struct regulator_ops mcp16502_ldo_ops = { .disable = regulator_disable_regmap, .is_enabled = regulator_is_enabled_regmap, .get_status = mcp16502_get_status, + .set_voltage_time_sel = mcp16502_set_voltage_time_sel, + .set_ramp_delay = mcp16502_set_ramp_delay, #ifdef CONFIG_SUSPEND .set_suspend_voltage = mcp16502_set_suspend_voltage, -- 2.7.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 5/6] regulator: mcp16502: add support for ramp delay @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel MCP16502 have configurable ramp delay support (via DVSR bits in regulators' CFG register). Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 89 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 87 insertions(+), 2 deletions(-) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index 48eb64bc4018..777d1a6cd1c5 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -22,8 +22,9 @@ #define VDD_LOW_SEL 0x0D #define VDD_HIGH_SEL 0x3F -#define MCP16502_FLT BIT(7) -#define MCP16502_ENS BIT(0) +#define MCP16502_FLT BIT(7) +#define MCP16502_DVSR GENMASK(3, 2) +#define MCP16502_ENS BIT(0) /* * The PMIC has four sets of registers corresponding to four power modes: @@ -88,6 +89,12 @@ enum mcp16502_reg { MCP16502_REG_CFG, }; +/* Ramp delay (uV/us) for buck1, ldo1, ldo2. */ +static const int mcp16502_ramp_b1l12[] = { 6250, 3125, 2083, 1563 }; + +/* Ramp delay (uV/us) for buck2, buck3, buck4. */ +static const int mcp16502_ramp_b234[] = { 3125, 1563, 1042, 781 }; + static unsigned int mcp16502_of_map_mode(unsigned int mode) { if (mode == REGULATOR_MODE_NORMAL || mode == REGULATOR_MODE_IDLE) @@ -271,6 +278,80 @@ static int mcp16502_get_status(struct regulator_dev *rdev) return REGULATOR_STATUS_UNDEFINED; } +static int mcp16502_set_voltage_time_sel(struct regulator_dev *rdev, + unsigned int old_sel, + unsigned int new_sel) +{ + static const u8 us_ramp[] = { 8, 16, 24, 32 }; + int id = rdev_get_id(rdev); + unsigned int uV_delta, val; + int ret; + + ret = regmap_read(rdev->regmap, MCP16502_REG_BASE(id, CFG), &val); + if (ret) + return ret; + + val = (val & MCP16502_DVSR) >> 2; + uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - + old_sel * rdev->desc->linear_ranges->uV_step); + switch (id) { + case BUCK1: + case LDO1: + case LDO2: + ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], + mcp16502_ramp_b1l12[val]); + break; + + case BUCK2: + case BUCK3: + case BUCK4: + ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], + mcp16502_ramp_b234[val]); + break; + + default: + return -EINVAL; + } + + return ret; +} + +static int mcp16502_set_ramp_delay(struct regulator_dev *rdev, int ramp_delay) +{ + const int *ramp; + int id = rdev_get_id(rdev); + unsigned int i, size; + + switch (id) { + case BUCK1: + case LDO1: + case LDO2: + ramp = mcp16502_ramp_b1l12; + size = ARRAY_SIZE(mcp16502_ramp_b1l12); + break; + + case BUCK2: + case BUCK3: + case BUCK4: + ramp = mcp16502_ramp_b234; + size = ARRAY_SIZE(mcp16502_ramp_b234); + break; + + default: + return -EINVAL; + } + + for (i = 0; i < size; i++) { + if (ramp[i] == ramp_delay) + break; + } + if (i == size) + return -EINVAL; + + return regmap_update_bits(rdev->regmap, MCP16502_REG_BASE(id, CFG), + MCP16502_DVSR, (i << 2)); +} + #ifdef CONFIG_SUSPEND /* * mcp16502_suspend_get_target_reg() - get the reg of the target suspend PMIC @@ -365,6 +446,8 @@ static const struct regulator_ops mcp16502_buck_ops = { .disable = regulator_disable_regmap, .is_enabled = regulator_is_enabled_regmap, .get_status = mcp16502_get_status, + .set_voltage_time_sel = mcp16502_set_voltage_time_sel, + .set_ramp_delay = mcp16502_set_ramp_delay, .set_mode = mcp16502_set_mode, .get_mode = mcp16502_get_mode, @@ -389,6 +472,8 @@ static const struct regulator_ops mcp16502_ldo_ops = { .disable = regulator_disable_regmap, .is_enabled = regulator_is_enabled_regmap, .get_status = mcp16502_get_status, + .set_voltage_time_sel = mcp16502_set_voltage_time_sel, + .set_ramp_delay = mcp16502_set_ramp_delay, #ifdef CONFIG_SUSPEND .set_suspend_voltage = mcp16502_set_suspend_voltage, -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 5/6] regulator: mcp16502: add support for ramp delay 2020-11-11 9:06 ` Claudiu Beznea (?) @ 2020-11-13 7:41 ` kernel test robot -1 siblings, 0 replies; 19+ messages in thread From: kernel test robot @ 2020-11-13 7:41 UTC (permalink / raw) To: Claudiu Beznea, lgirdwood, broonie Cc: kbuild-all, s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea [-- Attachment #1: Type: text/plain, Size: 43972 bytes --] Hi Claudiu, I love your patch! Yet something to improve: [auto build test ERROR on regulator/for-next] [also build test ERROR on linus/master linux/master v5.10-rc3 next-20201112] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Claudiu-Beznea/regulator-mcp16502-add-support-for-ramp-delay/20201111-170928 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next config: nios2-randconfig-r034-20201111 (attached as .config) compiler: nios2-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/d97d6b70286fa3a28e744a55da1b7eb6a026cee3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Claudiu-Beznea/regulator-mcp16502-add-support-for-ramp-delay/20201111-170928 git checkout d97d6b70286fa3a28e744a55da1b7eb6a026cee3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from include/asm-generic/bug.h:20, from ./arch/nios2/include/generated/asm/bug.h:1, from include/linux/bug.h:5, from include/linux/thread_info.h:12, from include/asm-generic/current.h:5, from ./arch/nios2/include/generated/asm/current.h:1, from include/linux/sched.h:12, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from include/linux/gpio/driver.h:5, from include/asm-generic/gpio.h:11, from include/linux/gpio.h:62, from drivers/regulator/mcp16502.c:11: drivers/regulator/mcp16502.c: In function 'mcp16502_set_voltage_time_sel': >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:287:38: note: in definition of macro '__abs_choose_expr' 287 | __builtin_types_compatible_p(typeof(x), signed type) || \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:287:38: note: in definition of macro '__abs_choose_expr' 287 | __builtin_types_compatible_p(typeof(x), signed type) || \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:288:38: note: in definition of macro '__abs_choose_expr' 288 | __builtin_types_compatible_p(typeof(x), unsigned type), \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:288:38: note: in definition of macro '__abs_choose_expr' 288 | __builtin_types_compatible_p(typeof(x), unsigned type), \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:24: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:24: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> include/linux/kernel.h:281:3: error: first argument to '__builtin_choose_expr' not a constant 281 | __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:276:16: note: in expansion of macro '__abs_choose_expr' 276 | #define abs(x) __abs_choose_expr(x, long long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ vim +295 drivers/regulator/mcp16502.c 280 281 static int mcp16502_set_voltage_time_sel(struct regulator_dev *rdev, 282 unsigned int old_sel, 283 unsigned int new_sel) 284 { 285 static const u8 us_ramp[] = { 8, 16, 24, 32 }; 286 int id = rdev_get_id(rdev); 287 unsigned int uV_delta, val; 288 int ret; 289 290 ret = regmap_read(rdev->regmap, MCP16502_REG_BASE(id, CFG), &val); 291 if (ret) 292 return ret; 293 294 val = (val & MCP16502_DVSR) >> 2; > 295 uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - 296 old_sel * rdev->desc->linear_ranges->uV_step); 297 switch (id) { 298 case BUCK1: 299 case LDO1: 300 case LDO2: 301 ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], 302 mcp16502_ramp_b1l12[val]); 303 break; 304 305 case BUCK2: 306 case BUCK3: 307 case BUCK4: 308 ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], 309 mcp16502_ramp_b234[val]); 310 break; 311 312 default: 313 return -EINVAL; 314 } 315 316 return ret; 317 } 318 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 25020 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 5/6] regulator: mcp16502: add support for ramp delay @ 2020-11-13 7:41 ` kernel test robot 0 siblings, 0 replies; 19+ messages in thread From: kernel test robot @ 2020-11-13 7:41 UTC (permalink / raw) To: kbuild-all [-- Attachment #1: Type: text/plain, Size: 44694 bytes --] Hi Claudiu, I love your patch! Yet something to improve: [auto build test ERROR on regulator/for-next] [also build test ERROR on linus/master linux/master v5.10-rc3 next-20201112] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Claudiu-Beznea/regulator-mcp16502-add-support-for-ramp-delay/20201111-170928 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next config: nios2-randconfig-r034-20201111 (attached as .config) compiler: nios2-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/d97d6b70286fa3a28e744a55da1b7eb6a026cee3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Claudiu-Beznea/regulator-mcp16502-add-support-for-ramp-delay/20201111-170928 git checkout d97d6b70286fa3a28e744a55da1b7eb6a026cee3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from include/asm-generic/bug.h:20, from ./arch/nios2/include/generated/asm/bug.h:1, from include/linux/bug.h:5, from include/linux/thread_info.h:12, from include/asm-generic/current.h:5, from ./arch/nios2/include/generated/asm/current.h:1, from include/linux/sched.h:12, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from include/linux/gpio/driver.h:5, from include/asm-generic/gpio.h:11, from include/linux/gpio.h:62, from drivers/regulator/mcp16502.c:11: drivers/regulator/mcp16502.c: In function 'mcp16502_set_voltage_time_sel': >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:287:38: note: in definition of macro '__abs_choose_expr' 287 | __builtin_types_compatible_p(typeof(x), signed type) || \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:287:38: note: in definition of macro '__abs_choose_expr' 287 | __builtin_types_compatible_p(typeof(x), signed type) || \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:288:38: note: in definition of macro '__abs_choose_expr' 288 | __builtin_types_compatible_p(typeof(x), unsigned type), \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:288:38: note: in definition of macro '__abs_choose_expr' 288 | __builtin_types_compatible_p(typeof(x), unsigned type), \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:24: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:24: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> include/linux/kernel.h:281:3: error: first argument to '__builtin_choose_expr' not a constant 281 | __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:276:16: note: in expansion of macro '__abs_choose_expr' 276 | #define abs(x) __abs_choose_expr(x, long long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ vim +295 drivers/regulator/mcp16502.c 280 281 static int mcp16502_set_voltage_time_sel(struct regulator_dev *rdev, 282 unsigned int old_sel, 283 unsigned int new_sel) 284 { 285 static const u8 us_ramp[] = { 8, 16, 24, 32 }; 286 int id = rdev_get_id(rdev); 287 unsigned int uV_delta, val; 288 int ret; 289 290 ret = regmap_read(rdev->regmap, MCP16502_REG_BASE(id, CFG), &val); 291 if (ret) 292 return ret; 293 294 val = (val & MCP16502_DVSR) >> 2; > 295 uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - 296 old_sel * rdev->desc->linear_ranges->uV_step); 297 switch (id) { 298 case BUCK1: 299 case LDO1: 300 case LDO2: 301 ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], 302 mcp16502_ramp_b1l12[val]); 303 break; 304 305 case BUCK2: 306 case BUCK3: 307 case BUCK4: 308 ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], 309 mcp16502_ramp_b234[val]); 310 break; 311 312 default: 313 return -EINVAL; 314 } 315 316 return ret; 317 } 318 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org [-- Attachment #2: config.gz --] [-- Type: application/gzip, Size: 25020 bytes --] ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 5/6] regulator: mcp16502: add support for ramp delay @ 2020-11-13 7:41 ` kernel test robot 0 siblings, 0 replies; 19+ messages in thread From: kernel test robot @ 2020-11-13 7:41 UTC (permalink / raw) To: Claudiu Beznea, lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, kbuild-all, linus.walleij, linux-arm-kernel [-- Attachment #1: Type: text/plain, Size: 43972 bytes --] Hi Claudiu, I love your patch! Yet something to improve: [auto build test ERROR on regulator/for-next] [also build test ERROR on linus/master linux/master v5.10-rc3 next-20201112] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Claudiu-Beznea/regulator-mcp16502-add-support-for-ramp-delay/20201111-170928 base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next config: nios2-randconfig-r034-20201111 (attached as .config) compiler: nios2-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/d97d6b70286fa3a28e744a55da1b7eb6a026cee3 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Claudiu-Beznea/regulator-mcp16502-add-support-for-ramp-delay/20201111-170928 git checkout d97d6b70286fa3a28e744a55da1b7eb6a026cee3 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=nios2 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from include/asm-generic/bug.h:20, from ./arch/nios2/include/generated/asm/bug.h:1, from include/linux/bug.h:5, from include/linux/thread_info.h:12, from include/asm-generic/current.h:5, from ./arch/nios2/include/generated/asm/current.h:1, from include/linux/sched.h:12, from include/linux/ratelimit.h:6, from include/linux/dev_printk.h:16, from include/linux/device.h:15, from include/linux/gpio/driver.h:5, from include/asm-generic/gpio.h:11, from include/linux/gpio.h:62, from drivers/regulator/mcp16502.c:11: drivers/regulator/mcp16502.c: In function 'mcp16502_set_voltage_time_sel': >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:287:38: note: in definition of macro '__abs_choose_expr' 287 | __builtin_types_compatible_p(typeof(x), signed type) || \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:287:38: note: in definition of macro '__abs_choose_expr' 287 | __builtin_types_compatible_p(typeof(x), signed type) || \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:288:38: note: in definition of macro '__abs_choose_expr' 288 | __builtin_types_compatible_p(typeof(x), unsigned type), \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:288:38: note: in definition of macro '__abs_choose_expr' 288 | __builtin_types_compatible_p(typeof(x), unsigned type), \ | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:24: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:24: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> drivers/regulator/mcp16502.c:295:54: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ drivers/regulator/mcp16502.c:296:47: error: 'const struct linear_range' has no member named 'uV_step'; did you mean 'step'? 296 | old_sel * rdev->desc->linear_ranges->uV_step); | ^~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ >> include/linux/kernel.h:281:3: error: first argument to '__builtin_choose_expr' not a constant 281 | __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:280:3: note: in expansion of macro '__abs_choose_expr' 280 | __abs_choose_expr(x, char, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:279:3: note: in expansion of macro '__abs_choose_expr' 279 | __abs_choose_expr(x, short, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ include/linux/kernel.h:278:3: note: in expansion of macro '__abs_choose_expr' 278 | __abs_choose_expr(x, int, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:289:54: note: in definition of macro '__abs_choose_expr' 289 | ({ signed type __x = (x); __x < 0 ? -__x : __x; }), other) | ^~~~~ include/linux/kernel.h:277:3: note: in expansion of macro '__abs_choose_expr' 277 | __abs_choose_expr(x, long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ include/linux/kernel.h:286:43: error: first argument to '__builtin_choose_expr' not a constant 286 | #define __abs_choose_expr(x, type, other) __builtin_choose_expr( \ | ^~~~~~~~~~~~~~~~~~~~~ include/linux/kernel.h:276:16: note: in expansion of macro '__abs_choose_expr' 276 | #define abs(x) __abs_choose_expr(x, long long, \ | ^~~~~~~~~~~~~~~~~ drivers/regulator/mcp16502.c:295:13: note: in expansion of macro 'abs' 295 | uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - | ^~~ vim +295 drivers/regulator/mcp16502.c 280 281 static int mcp16502_set_voltage_time_sel(struct regulator_dev *rdev, 282 unsigned int old_sel, 283 unsigned int new_sel) 284 { 285 static const u8 us_ramp[] = { 8, 16, 24, 32 }; 286 int id = rdev_get_id(rdev); 287 unsigned int uV_delta, val; 288 int ret; 289 290 ret = regmap_read(rdev->regmap, MCP16502_REG_BASE(id, CFG), &val); 291 if (ret) 292 return ret; 293 294 val = (val & MCP16502_DVSR) >> 2; > 295 uV_delta = abs(new_sel * rdev->desc->linear_ranges->uV_step - 296 old_sel * rdev->desc->linear_ranges->uV_step); 297 switch (id) { 298 case BUCK1: 299 case LDO1: 300 case LDO2: 301 ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], 302 mcp16502_ramp_b1l12[val]); 303 break; 304 305 case BUCK2: 306 case BUCK3: 307 case BUCK4: 308 ret = DIV_ROUND_CLOSEST(uV_delta * us_ramp[val], 309 mcp16502_ramp_b234[val]); 310 break; 311 312 default: 313 return -EINVAL; 314 } 315 316 return ret; 317 } 318 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 25020 bytes --] [-- Attachment #3: Type: text/plain, Size: 176 bytes --] _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 6/6] regulator: mcp16502: remove void documentation of struct mcp16502 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-11 9:06 ` Claudiu Beznea -1 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: s.hauer, ttynkkynen, linus.walleij, axel.lin, linux-kernel, linux-arm-kernel, Claudiu Beznea struct mcp16502 has no members called rdev or rmap. Remove the documentation. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index 777d1a6cd1c5..c6b72d1d38a9 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -135,8 +135,6 @@ enum { /* * struct mcp16502 - PMIC representation - * @rdev: the regulators belonging to this chip - * @rmap: regmap to be used for I2C communication * @lpm: LPM GPIO descriptor */ struct mcp16502 { -- 2.7.4 ^ permalink raw reply related [flat|nested] 19+ messages in thread
* [PATCH v2 6/6] regulator: mcp16502: remove void documentation of struct mcp16502 @ 2020-11-11 9:06 ` Claudiu Beznea 0 siblings, 0 replies; 19+ messages in thread From: Claudiu Beznea @ 2020-11-11 9:06 UTC (permalink / raw) To: lgirdwood, broonie Cc: axel.lin, s.hauer, linux-kernel, Claudiu Beznea, ttynkkynen, linus.walleij, linux-arm-kernel struct mcp16502 has no members called rdev or rmap. Remove the documentation. Signed-off-by: Claudiu Beznea <claudiu.beznea@microchip.com> --- drivers/regulator/mcp16502.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/regulator/mcp16502.c b/drivers/regulator/mcp16502.c index 777d1a6cd1c5..c6b72d1d38a9 100644 --- a/drivers/regulator/mcp16502.c +++ b/drivers/regulator/mcp16502.c @@ -135,8 +135,6 @@ enum { /* * struct mcp16502 - PMIC representation - * @rdev: the regulators belonging to this chip - * @rmap: regmap to be used for I2C communication * @lpm: LPM GPIO descriptor */ struct mcp16502 { -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 0/6] regulator: mcp16502: add support for ramp delay 2020-11-11 9:06 ` Claudiu Beznea @ 2020-11-13 17:14 ` Mark Brown -1 siblings, 0 replies; 19+ messages in thread From: Mark Brown @ 2020-11-13 17:14 UTC (permalink / raw) To: Claudiu Beznea, lgirdwood Cc: axel.lin, linus.walleij, ttynkkynen, linux-kernel, s.hauer, linux-arm-kernel On Wed, 11 Nov 2020 11:06:12 +0200, Claudiu Beznea wrote: > This series adds support for ramp delay on mcp16502. It also adds > some cleanup on mcp16502. > > Apart from that patches 1/6 fixes the selector validation in case > the regulator::desc::linear_min_sel is not zero. > > Thank you, > Claudiu Beznea > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next Thanks! [1/6] regulator: core: validate selector against linear_min_sel commit: bdcd1177578cd5556f7494da86d5038db8203a16 [2/6] regulator: core: do not continue if selector match (no commit info) [3/6] regulator: mcp16502: add linear_min_sel commit: 478f8089161e9a8f487ef3f560e59d1423b81c05 [4/6] regulator: mcp16502: adapt for get/set on other registers commit: 3e5532a011b09861abc2da3aa518b9aafc250570 [5/6] regulator: mcp16502: add support for ramp delay commit: 322eb8666d2f50556e89d73b54cf2dad8703c4e0 [6/6] regulator: mcp16502: remove void documentation of struct mcp16502 commit: 842f44806efaddfae5ecff8f143c2607a4fa65d7 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark ^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 0/6] regulator: mcp16502: add support for ramp delay @ 2020-11-13 17:14 ` Mark Brown 0 siblings, 0 replies; 19+ messages in thread From: Mark Brown @ 2020-11-13 17:14 UTC (permalink / raw) To: Claudiu Beznea, lgirdwood Cc: axel.lin, linus.walleij, linux-kernel, ttynkkynen, s.hauer, linux-arm-kernel On Wed, 11 Nov 2020 11:06:12 +0200, Claudiu Beznea wrote: > This series adds support for ramp delay on mcp16502. It also adds > some cleanup on mcp16502. > > Apart from that patches 1/6 fixes the selector validation in case > the regulator::desc::linear_min_sel is not zero. > > Thank you, > Claudiu Beznea > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next Thanks! [1/6] regulator: core: validate selector against linear_min_sel commit: bdcd1177578cd5556f7494da86d5038db8203a16 [2/6] regulator: core: do not continue if selector match (no commit info) [3/6] regulator: mcp16502: add linear_min_sel commit: 478f8089161e9a8f487ef3f560e59d1423b81c05 [4/6] regulator: mcp16502: adapt for get/set on other registers commit: 3e5532a011b09861abc2da3aa518b9aafc250570 [5/6] regulator: mcp16502: add support for ramp delay commit: 322eb8666d2f50556e89d73b54cf2dad8703c4e0 [6/6] regulator: mcp16502: remove void documentation of struct mcp16502 commit: 842f44806efaddfae5ecff8f143c2607a4fa65d7 All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted. You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed. If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced. Please add any relevant lists and maintainers to the CCs when replying to this mail. Thanks, Mark _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2020-11-13 17:15 UTC | newest] Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2020-11-11 9:06 [PATCH v2 0/6] regulator: mcp16502: add support for ramp delay Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-11 9:06 ` [PATCH v2 1/6] regulator: core: validate selector against linear_min_sel Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-11 9:06 ` [PATCH v2 2/6] regulator: core: do not continue if selector match Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-11 9:06 ` [PATCH v2 3/6] regulator: mcp16502: add linear_min_sel Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-11 9:06 ` [PATCH v2 4/6] regulator: mcp16502: adapt for get/set on other registers Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-11 9:06 ` [PATCH v2 5/6] regulator: mcp16502: add support for ramp delay Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-13 7:41 ` kernel test robot 2020-11-13 7:41 ` kernel test robot 2020-11-13 7:41 ` kernel test robot 2020-11-11 9:06 ` [PATCH v2 6/6] regulator: mcp16502: remove void documentation of struct mcp16502 Claudiu Beznea 2020-11-11 9:06 ` Claudiu Beznea 2020-11-13 17:14 ` [PATCH v2 0/6] regulator: mcp16502: add support for ramp delay Mark Brown 2020-11-13 17:14 ` Mark Brown
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.