lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <201903012022.lJ0mK4Vz%fengguang.wu@intel.com>
Date:   Fri, 1 Mar 2019 20:53:46 +0800
From:   kbuild test robot <lkp@...el.com>
To:     Axel Lin <axel.lin@...ics.com>
Cc:     kbuild-all@...org, Mark Brown <broonie@...nel.org>,
        Keerthy <j-keerthy@...com>, Liam Girdwood <lgirdwood@...il.com>,
        linux-kernel@...r.kernel.org, Axel Lin <axel.lin@...ics.com>
Subject: Re: [PATCH] regulator: lp87565: Convert to use
 regulator_set/get_current_limit_regmap

Hi Axel,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on regulator/for-next]
[also build test ERROR on next-20190228]
[cannot apply to v5.0-rc8]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Axel-Lin/regulator-lp87565-Convert-to-use-regulator_set-get_current_limit_regmap/20190301-190141
base:   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
config: nds32-allyesconfig (attached as .config)
compiler: nds32le-linux-gcc (GCC) 6.4.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        GCC_VERSION=6.4.0 make.cross ARCH=nds32 

All error/warnings (new ones prefixed by >>):

>> drivers/regulator/lp87565-regulator.c:120:23: error: 'regulator_set_current_limit_regmap' undeclared here (not in a function)
     .set_current_limit = regulator_set_current_limit_regmap,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:121:23: error: 'regulator_get_current_limit_regmap' undeclared here (not in a function)
     .get_current_limit = regulator_get_current_limit_regmap,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
>> drivers/regulator/lp87565-regulator.c:125:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
>> drivers/regulator/lp87565-regulator.c:125:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:130:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:130:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:135:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:135:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:140:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:140:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:145:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:145:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:37:4: error: unknown field 'curr_table' specified in initializer
       .curr_table = lp87565_buck_uA,   \
       ^
   drivers/regulator/lp87565-regulator.c:151:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~
>> drivers/regulator/lp87565-regulator.c:38:4: error: unknown field 'n_current_limits' specified in initializer
       .n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
       ^
   drivers/regulator/lp87565-regulator.c:151:2: note: in expansion of macro 'LP87565_REGULATOR'
     LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
     ^~~~~~~~~~~~~~~~~

vim +/regulator_set_current_limit_regmap +120 drivers/regulator/lp87565-regulator.c

    16	
    17	#define LP87565_REGULATOR(_name, _id, _of, _ops, _n, _vr, _vm, _er, _em, \
    18				 _delay, _lr, _cr)				\
    19		[_id] = {							\
    20			.desc = {						\
    21				.name			= _name,		\
    22				.supply_name		= _of "-in",		\
    23				.id			= _id,			\
    24				.of_match		= of_match_ptr(_of),	\
    25				.regulators_node	= of_match_ptr("regulators"),\
    26				.ops			= &_ops,		\
    27				.n_voltages		= _n,			\
    28				.type			= REGULATOR_VOLTAGE,	\
    29				.owner			= THIS_MODULE,		\
    30				.vsel_reg		= _vr,			\
    31				.vsel_mask		= _vm,			\
    32				.enable_reg		= _er,			\
    33				.enable_mask		= _em,			\
    34				.ramp_delay		= _delay,		\
    35				.linear_ranges		= _lr,			\
    36				.n_linear_ranges	= ARRAY_SIZE(_lr),	\
  > 37				.curr_table = lp87565_buck_uA,			\
  > 38				.n_current_limits = ARRAY_SIZE(lp87565_buck_uA),\
    39				.csel_reg = (_cr),				\
    40				.csel_mask = LP87565_BUCK_CTRL_2_ILIM,		\
    41			},							\
    42			.ctrl2_reg = _cr,					\
    43		}
    44	
    45	struct lp87565_regulator {
    46		struct regulator_desc desc;
    47		unsigned int ctrl2_reg;
    48	};
    49	
    50	static const struct lp87565_regulator regulators[];
    51	
    52	static const struct regulator_linear_range buck0_1_2_3_ranges[] = {
    53		REGULATOR_LINEAR_RANGE(600000, 0xA, 0x17, 10000),
    54		REGULATOR_LINEAR_RANGE(735000, 0x18, 0x9d, 5000),
    55		REGULATOR_LINEAR_RANGE(1420000, 0x9e, 0xff, 20000),
    56	};
    57	
    58	static const unsigned int lp87565_buck_ramp_delay[] = {
    59		30000, 15000, 10000, 7500, 3800, 1900, 940, 470
    60	};
    61	
    62	/* LP87565 BUCK current limit */
    63	static const unsigned int lp87565_buck_uA[] = {
    64		1500000, 2000000, 2500000, 3000000, 3500000, 4000000, 4500000, 5000000,
    65	};
    66	
    67	static int lp87565_buck_set_ramp_delay(struct regulator_dev *rdev,
    68					       int ramp_delay)
    69	{
    70		int id = rdev_get_id(rdev);
    71		struct lp87565 *lp87565 = rdev_get_drvdata(rdev);
    72		unsigned int reg;
    73		int ret;
    74	
    75		if (ramp_delay <= 470)
    76			reg = 7;
    77		else if (ramp_delay <= 940)
    78			reg = 6;
    79		else if (ramp_delay <= 1900)
    80			reg = 5;
    81		else if (ramp_delay <= 3800)
    82			reg = 4;
    83		else if (ramp_delay <= 7500)
    84			reg = 3;
    85		else if (ramp_delay <= 10000)
    86			reg = 2;
    87		else if (ramp_delay <= 15000)
    88			reg = 1;
    89		else
    90			reg = 0;
    91	
    92		ret = regmap_update_bits(lp87565->regmap, regulators[id].ctrl2_reg,
    93					 LP87565_BUCK_CTRL_2_SLEW_RATE,
    94					 reg << __ffs(LP87565_BUCK_CTRL_2_SLEW_RATE));
    95		if (ret) {
    96			dev_err(lp87565->dev, "SLEW RATE write failed: %d\n", ret);
    97			return ret;
    98		}
    99	
   100		rdev->constraints->ramp_delay = lp87565_buck_ramp_delay[reg];
   101	
   102		/* Conservatively give a 15% margin */
   103		rdev->constraints->ramp_delay =
   104					rdev->constraints->ramp_delay * 85 / 100;
   105	
   106		return 0;
   107	}
   108	
   109	/* Operations permitted on BUCKs */
   110	static const struct regulator_ops lp87565_buck_ops = {
   111		.is_enabled		= regulator_is_enabled_regmap,
   112		.enable			= regulator_enable_regmap,
   113		.disable		= regulator_disable_regmap,
   114		.get_voltage_sel	= regulator_get_voltage_sel_regmap,
   115		.set_voltage_sel	= regulator_set_voltage_sel_regmap,
   116		.list_voltage		= regulator_list_voltage_linear_range,
   117		.map_voltage		= regulator_map_voltage_linear_range,
   118		.set_voltage_time_sel	= regulator_set_voltage_time_sel,
   119		.set_ramp_delay		= lp87565_buck_set_ramp_delay,
 > 120		.set_current_limit	= regulator_set_current_limit_regmap,
 > 121		.get_current_limit	= regulator_get_current_limit_regmap,
   122	};
   123	
   124	static const struct lp87565_regulator regulators[] = {
 > 125		LP87565_REGULATOR("BUCK0", LP87565_BUCK_0, "buck0", lp87565_buck_ops,
   126				  256, LP87565_REG_BUCK0_VOUT, LP87565_BUCK_VSET,
   127				  LP87565_REG_BUCK0_CTRL_1,
   128				  LP87565_BUCK_CTRL_1_EN, 3230,
   129				  buck0_1_2_3_ranges, LP87565_REG_BUCK0_CTRL_2),
   130		LP87565_REGULATOR("BUCK1", LP87565_BUCK_1, "buck1", lp87565_buck_ops,
   131				  256, LP87565_REG_BUCK1_VOUT, LP87565_BUCK_VSET,
   132				  LP87565_REG_BUCK1_CTRL_1,
   133				  LP87565_BUCK_CTRL_1_EN, 3230,
   134				  buck0_1_2_3_ranges, LP87565_REG_BUCK1_CTRL_2),
   135		LP87565_REGULATOR("BUCK2", LP87565_BUCK_2, "buck2", lp87565_buck_ops,
   136				  256, LP87565_REG_BUCK2_VOUT, LP87565_BUCK_VSET,
   137				  LP87565_REG_BUCK2_CTRL_1,
   138				  LP87565_BUCK_CTRL_1_EN, 3230,
   139				  buck0_1_2_3_ranges, LP87565_REG_BUCK2_CTRL_2),
   140		LP87565_REGULATOR("BUCK3", LP87565_BUCK_3, "buck3", lp87565_buck_ops,
   141				  256, LP87565_REG_BUCK3_VOUT, LP87565_BUCK_VSET,
   142				  LP87565_REG_BUCK3_CTRL_1,
   143				  LP87565_BUCK_CTRL_1_EN, 3230,
   144				  buck0_1_2_3_ranges, LP87565_REG_BUCK3_CTRL_2),
   145		LP87565_REGULATOR("BUCK10", LP87565_BUCK_10, "buck10", lp87565_buck_ops,
   146				  256, LP87565_REG_BUCK0_VOUT, LP87565_BUCK_VSET,
   147				  LP87565_REG_BUCK0_CTRL_1,
   148				  LP87565_BUCK_CTRL_1_EN |
   149				  LP87565_BUCK_CTRL_1_FPWM_MP_0_2, 3230,
   150				  buck0_1_2_3_ranges, LP87565_REG_BUCK0_CTRL_2),
   151		LP87565_REGULATOR("BUCK23", LP87565_BUCK_23, "buck23", lp87565_buck_ops,
   152				  256, LP87565_REG_BUCK2_VOUT, LP87565_BUCK_VSET,
   153				  LP87565_REG_BUCK2_CTRL_1,
   154				  LP87565_BUCK_CTRL_1_EN, 3230,
   155				  buck0_1_2_3_ranges, LP87565_REG_BUCK2_CTRL_2),
   156	};
   157	

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Download attachment ".config.gz" of type "application/gzip" (49915 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ