All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Axel Lin <axel.lin@ingics.com>
Cc: kbuild-all@01.org, Mark Brown <broonie@kernel.org>,
	Keerthy <j-keerthy@ti.com>, Liam Girdwood <lgirdwood@gmail.com>,
	linux-kernel@vger.kernel.org, Axel Lin <axel.lin@ingics.com>
Subject: Re: [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap
Date: Fri, 1 Mar 2019 20:53:46 +0800	[thread overview]
Message-ID: <201903012022.lJ0mK4Vz%fengguang.wu@intel.com> (raw)
In-Reply-To: <20190301062432.2322-1-axel.lin@ingics.com>

[-- Attachment #1: Type: text/plain, Size: 11621 bytes --]

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 49915 bytes --]

      parent reply	other threads:[~2019-03-01 12:54 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-03-01  6:24 [PATCH] regulator: lp87565: Convert to use regulator_set/get_current_limit_regmap Axel Lin
2019-03-01 11:31 ` kbuild test robot
2019-03-01 14:34   ` Axel Lin
2019-03-01 15:31     ` [kbuild-all] " Li, Philip
2019-03-01 12:53 ` kbuild test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201903012022.lJ0mK4Vz%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=axel.lin@ingics.com \
    --cc=broonie@kernel.org \
    --cc=j-keerthy@ti.com \
    --cc=kbuild-all@01.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.