[PATCH v8 2/9] regulator: Add support for MediaTek MT6316 SPMI PMIC Regulators
kernel test robot
lkp at intel.com
Fri Oct 10 14:17:56 PDT 2025
Hi AngeloGioacchino,
kernel test robot noticed the following build errors:
[auto build test ERROR on broonie-regulator/for-next]
[also build test ERROR on lee-mfd/for-mfd-next jic23-iio/togreg lee-leds/for-leds-next lee-mfd/for-mfd-fixes linus/master v6.17 next-20251010]
[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#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/AngeloGioacchino-Del-Regno/dt-bindings-regulator-Document-MediaTek-MT6316-PMIC-Regulators/20251003-171606
base: https://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator.git for-next
patch link: https://lore.kernel.org/r/20251003091158.26748-3-angelogioacchino.delregno%40collabora.com
patch subject: [PATCH v8 2/9] regulator: Add support for MediaTek MT6316 SPMI PMIC Regulators
config: alpha-randconfig-r073-20251009 (https://download.01.org/0day-ci/archive/20251011/202510110504.A2lR6quW-lkp@intel.com/config)
compiler: alpha-linux-gcc (GCC) 11.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251011/202510110504.A2lR6quW-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510110504.A2lR6quW-lkp@intel.com/
All errors (new ones prefixed by >>):
`xe_configfs_exit' referenced in section `.data.rel.ro' of drivers/gpu/drm/xe/xe_module.o: defined in discarded section `.exit.text' of drivers/gpu/drm/xe/xe_configfs.o
alpha-linux-ld: drivers/base/regmap/regmap-spmi.o: in function `regmap_spmi_base_read':
>> drivers/base/regmap/regmap-spmi.c:26:(.text+0x11c): undefined reference to `spmi_register_read'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:26:(.text+0x124): undefined reference to `spmi_register_read'
alpha-linux-ld: drivers/base/regmap/regmap-spmi.o: in function `regmap_spmi_base_gather_write':
>> drivers/base/regmap/regmap-spmi.c:46:(.text+0x1f0): undefined reference to `spmi_register_zero_write'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:46:(.text+0x1f4): undefined reference to `spmi_register_zero_write'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:56:(.text+0x220): undefined reference to `spmi_register_write'
alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:56:(.text+0x228): undefined reference to `spmi_register_write'
alpha-linux-ld: drivers/base/regmap/regmap-spmi.o: in function `regmap_spmi_ext_read':
>> drivers/base/regmap/regmap-spmi.c:124:(.text+0x3f0): undefined reference to `spmi_ext_register_read'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:124:(.text+0x404): undefined reference to `spmi_ext_register_read'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:136:(.text+0x444): undefined reference to `spmi_ext_register_readl'
alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:136:(.text+0x458): undefined reference to `spmi_ext_register_readl'
alpha-linux-ld: drivers/base/regmap/regmap-spmi.o: in function `regmap_spmi_ext_gather_write':
>> drivers/base/regmap/regmap-spmi.c:164:(.text+0x528): undefined reference to `spmi_ext_register_write'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:164:(.text+0x53c): undefined reference to `spmi_ext_register_write'
>> alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:176:(.text+0x57c): undefined reference to `spmi_ext_register_writel'
alpha-linux-ld: drivers/base/regmap/regmap-spmi.c:176:(.text+0x590): undefined reference to `spmi_ext_register_writel'
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for REGMAP_SPMI
Depends on [n]: SPMI [=n]
Selected by [y]:
- REGULATOR_MT6316 [=y] && REGULATOR [=y] && (SPMI [=n] || COMPILE_TEST [=y])
vim +26 drivers/base/regmap/regmap-spmi.c
a01779f89fc8a2 Josh Cartwright 2013-10-28 15
c9afbb05a9ffbe Josh Cartwright 2014-02-12 16 static int regmap_spmi_base_read(void *context,
a01779f89fc8a2 Josh Cartwright 2013-10-28 17 const void *reg, size_t reg_size,
a01779f89fc8a2 Josh Cartwright 2013-10-28 18 void *val, size_t val_size)
a01779f89fc8a2 Josh Cartwright 2013-10-28 19 {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 20 u8 addr = *(u8 *)reg;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 21 int err = 0;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 22
c9afbb05a9ffbe Josh Cartwright 2014-02-12 23 BUG_ON(reg_size != 1);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 24
c9afbb05a9ffbe Josh Cartwright 2014-02-12 25 while (val_size-- && !err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 @26 err = spmi_register_read(context, addr++, val++);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 27
c9afbb05a9ffbe Josh Cartwright 2014-02-12 28 return err;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 29 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 30
c9afbb05a9ffbe Josh Cartwright 2014-02-12 31 static int regmap_spmi_base_gather_write(void *context,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 32 const void *reg, size_t reg_size,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 33 const void *val, size_t val_size)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 34 {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 35 const u8 *data = val;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 36 u8 addr = *(u8 *)reg;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 37 int err = 0;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 38
c9afbb05a9ffbe Josh Cartwright 2014-02-12 39 BUG_ON(reg_size != 1);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 40
c9afbb05a9ffbe Josh Cartwright 2014-02-12 41 /*
c9afbb05a9ffbe Josh Cartwright 2014-02-12 42 * SPMI defines a more bandwidth-efficient 'Register 0 Write' sequence,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 43 * use it when possible.
c9afbb05a9ffbe Josh Cartwright 2014-02-12 44 */
c9afbb05a9ffbe Josh Cartwright 2014-02-12 45 if (addr == 0 && val_size) {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 @46 err = spmi_register_zero_write(context, *data);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 47 if (err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 48 goto err_out;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 49
c9afbb05a9ffbe Josh Cartwright 2014-02-12 50 data++;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 51 addr++;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 52 val_size--;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 53 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 54
c9afbb05a9ffbe Josh Cartwright 2014-02-12 55 while (val_size) {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 @56 err = spmi_register_write(context, addr, *data);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 57 if (err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 58 goto err_out;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 59
c9afbb05a9ffbe Josh Cartwright 2014-02-12 60 data++;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 61 addr++;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 62 val_size--;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 63 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 64
c9afbb05a9ffbe Josh Cartwright 2014-02-12 65 err_out:
c9afbb05a9ffbe Josh Cartwright 2014-02-12 66 return err;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 67 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 68
c9afbb05a9ffbe Josh Cartwright 2014-02-12 69 static int regmap_spmi_base_write(void *context, const void *data,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 70 size_t count)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 71 {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 72 BUG_ON(count < 1);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 73 return regmap_spmi_base_gather_write(context, data, 1, data + 1,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 74 count - 1);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 75 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 76
9c2e5cb38da220 Julia Lawall 2017-08-11 77 static const struct regmap_bus regmap_spmi_base = {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 78 .read = regmap_spmi_base_read,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 79 .write = regmap_spmi_base_write,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 80 .gather_write = regmap_spmi_base_gather_write,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 81 .reg_format_endian_default = REGMAP_ENDIAN_NATIVE,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 82 .val_format_endian_default = REGMAP_ENDIAN_NATIVE,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 83 };
c9afbb05a9ffbe Josh Cartwright 2014-02-12 84
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 85 struct regmap *__regmap_init_spmi_base(struct spmi_device *sdev,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 86 const struct regmap_config *config,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 87 struct lock_class_key *lock_key,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 88 const char *lock_name)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 89 {
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 90 return __regmap_init(&sdev->dev, ®map_spmi_base, sdev, config,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 91 lock_key, lock_name);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 92 }
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 93 EXPORT_SYMBOL_GPL(__regmap_init_spmi_base);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 94
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 95 struct regmap *__devm_regmap_init_spmi_base(struct spmi_device *sdev,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 96 const struct regmap_config *config,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 97 struct lock_class_key *lock_key,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 98 const char *lock_name)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 99 {
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 100 return __devm_regmap_init(&sdev->dev, ®map_spmi_base, sdev, config,
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 101 lock_key, lock_name);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 102 }
3cfe7a74d42b7e Nicolas Boichat 2015-07-08 103 EXPORT_SYMBOL_GPL(__devm_regmap_init_spmi_base);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 104
c9afbb05a9ffbe Josh Cartwright 2014-02-12 105 static int regmap_spmi_ext_read(void *context,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 106 const void *reg, size_t reg_size,
c9afbb05a9ffbe Josh Cartwright 2014-02-12 107 void *val, size_t val_size)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 108 {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 109 int err = 0;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 110 size_t len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 111 u16 addr;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 112
a01779f89fc8a2 Josh Cartwright 2013-10-28 113 BUG_ON(reg_size != 2);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 114
c9afbb05a9ffbe Josh Cartwright 2014-02-12 115 addr = *(u16 *)reg;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 116
c9afbb05a9ffbe Josh Cartwright 2014-02-12 117 /*
c9afbb05a9ffbe Josh Cartwright 2014-02-12 118 * Split accesses into two to take advantage of the more
c9afbb05a9ffbe Josh Cartwright 2014-02-12 119 * bandwidth-efficient 'Extended Register Read' command when possible
c9afbb05a9ffbe Josh Cartwright 2014-02-12 120 */
c9afbb05a9ffbe Josh Cartwright 2014-02-12 121 while (addr <= 0xFF && val_size) {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 122 len = min_t(size_t, val_size, 16);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 123
c9afbb05a9ffbe Josh Cartwright 2014-02-12 @124 err = spmi_ext_register_read(context, addr, val, len);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 125 if (err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 126 goto err_out;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 127
c9afbb05a9ffbe Josh Cartwright 2014-02-12 128 addr += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 129 val += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 130 val_size -= len;
a01779f89fc8a2 Josh Cartwright 2013-10-28 131 }
a01779f89fc8a2 Josh Cartwright 2013-10-28 132
c9afbb05a9ffbe Josh Cartwright 2014-02-12 133 while (val_size) {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 134 len = min_t(size_t, val_size, 8);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 135
dec8e8f6e6504a Jack Pham 2016-04-14 @136 err = spmi_ext_register_readl(context, addr, val, len);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 137 if (err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 138 goto err_out;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 139
c9afbb05a9ffbe Josh Cartwright 2014-02-12 140 addr += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 141 val += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 142 val_size -= len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 143 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 144
c9afbb05a9ffbe Josh Cartwright 2014-02-12 145 err_out:
c9afbb05a9ffbe Josh Cartwright 2014-02-12 146 return err;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 147 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 148
c9afbb05a9ffbe Josh Cartwright 2014-02-12 149 static int regmap_spmi_ext_gather_write(void *context,
a01779f89fc8a2 Josh Cartwright 2013-10-28 150 const void *reg, size_t reg_size,
a01779f89fc8a2 Josh Cartwright 2013-10-28 151 const void *val, size_t val_size)
a01779f89fc8a2 Josh Cartwright 2013-10-28 152 {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 153 int err = 0;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 154 size_t len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 155 u16 addr;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 156
a01779f89fc8a2 Josh Cartwright 2013-10-28 157 BUG_ON(reg_size != 2);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 158
c9afbb05a9ffbe Josh Cartwright 2014-02-12 159 addr = *(u16 *)reg;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 160
c9afbb05a9ffbe Josh Cartwright 2014-02-12 161 while (addr <= 0xFF && val_size) {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 162 len = min_t(size_t, val_size, 16);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 163
c9afbb05a9ffbe Josh Cartwright 2014-02-12 @164 err = spmi_ext_register_write(context, addr, val, len);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 165 if (err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 166 goto err_out;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 167
c9afbb05a9ffbe Josh Cartwright 2014-02-12 168 addr += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 169 val += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 170 val_size -= len;
a01779f89fc8a2 Josh Cartwright 2013-10-28 171 }
a01779f89fc8a2 Josh Cartwright 2013-10-28 172
c9afbb05a9ffbe Josh Cartwright 2014-02-12 173 while (val_size) {
c9afbb05a9ffbe Josh Cartwright 2014-02-12 174 len = min_t(size_t, val_size, 8);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 175
c9afbb05a9ffbe Josh Cartwright 2014-02-12 @176 err = spmi_ext_register_writel(context, addr, val, len);
c9afbb05a9ffbe Josh Cartwright 2014-02-12 177 if (err)
c9afbb05a9ffbe Josh Cartwright 2014-02-12 178 goto err_out;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 179
c9afbb05a9ffbe Josh Cartwright 2014-02-12 180 addr += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 181 val += len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 182 val_size -= len;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 183 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 184
c9afbb05a9ffbe Josh Cartwright 2014-02-12 185 err_out:
c9afbb05a9ffbe Josh Cartwright 2014-02-12 186 return err;
c9afbb05a9ffbe Josh Cartwright 2014-02-12 187 }
c9afbb05a9ffbe Josh Cartwright 2014-02-12 188
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the linux-arm-kernel
mailing list