[PATCH v4 1/1] mfd: Add I2C based System Configuaration (SYSCON) access
kernel test robot
lkp at intel.com
Sun Jul 5 09:10:26 EDT 2020
Hi Lee,
I love your patch! Yet something to improve:
[auto build test ERROR on ljones-mfd/for-mfd-next]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use as documented in
https://git-scm.com/docs/git-format-patch]
url: https://github.com/0day-ci/linux/commits/Lee-Jones/mfd-Add-I2C-based-System-Configuaration-SYSCON-access/20200622-155310
base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
config: riscv-randconfig-r035-20200705 (attached as .config)
compiler: riscv32-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
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=riscv
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>
All errors (new ones prefixed by >>):
riscv32-linux-ld: arch/riscv/kernel/sbi.o: in function `sbi_power_off':
arch/riscv/kernel/sbi.c:544: undefined reference to `sbi_shutdown'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_smbus_byte_reg_read':
>> drivers/base/regmap/regmap-i2c.c:25: undefined reference to `i2c_smbus_read_byte_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_smbus_byte_reg_write':
>> drivers/base/regmap/regmap-i2c.c:43: undefined reference to `i2c_smbus_write_byte_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_smbus_word_reg_read':
>> drivers/base/regmap/regmap-i2c.c:61: undefined reference to `i2c_smbus_read_word_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `i2c_smbus_read_word_swapped':
>> include/linux/i2c.h:159: undefined reference to `i2c_smbus_read_word_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `i2c_smbus_write_word_swapped':
>> include/linux/i2c.h:168: undefined reference to `i2c_smbus_write_word_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_smbus_word_reg_write':
>> drivers/base/regmap/regmap-i2c.c:79: undefined reference to `i2c_smbus_write_word_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_i2c_smbus_i2c_read':
>> drivers/base/regmap/regmap-i2c.c:233: undefined reference to `i2c_smbus_read_i2c_block_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_i2c_smbus_i2c_write':
>> drivers/base/regmap/regmap-i2c.c:218: undefined reference to `i2c_smbus_write_i2c_block_data'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_i2c_read':
>> drivers/base/regmap/regmap-i2c.c:191: undefined reference to `i2c_transfer'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `i2c_master_send':
>> include/linux/i2c.h:105: undefined reference to `i2c_transfer_buffer_flags'
riscv32-linux-ld: drivers/base/regmap/regmap-i2c.o: in function `regmap_i2c_gather_write':
drivers/base/regmap/regmap-i2c.c:161: undefined reference to `i2c_transfer'
vim +159 include/linux/i2c.h
ba98645c7d5464 Wolfram Sang 2017-11-04 93
8a91732b3b3345 Wolfram Sang 2017-11-04 94 /**
8a91732b3b3345 Wolfram Sang 2017-11-04 95 * i2c_master_send - issue a single I2C message in master transmit mode
8a91732b3b3345 Wolfram Sang 2017-11-04 96 * @client: Handle to slave device
8a91732b3b3345 Wolfram Sang 2017-11-04 97 * @buf: Data that will be written to the slave
8a91732b3b3345 Wolfram Sang 2017-11-04 98 * @count: How many bytes to write, must be less than 64k since msg.len is u16
8a91732b3b3345 Wolfram Sang 2017-11-04 99 *
8a91732b3b3345 Wolfram Sang 2017-11-04 100 * Returns negative errno, or else the number of bytes written.
8a91732b3b3345 Wolfram Sang 2017-11-04 101 */
8a91732b3b3345 Wolfram Sang 2017-11-04 102 static inline int i2c_master_send(const struct i2c_client *client,
8a91732b3b3345 Wolfram Sang 2017-11-04 103 const char *buf, int count)
8a91732b3b3345 Wolfram Sang 2017-11-04 104 {
8a91732b3b3345 Wolfram Sang 2017-11-04 @105 return i2c_transfer_buffer_flags(client, (char *)buf, count, 0);
8a91732b3b3345 Wolfram Sang 2017-11-04 106 };
^1da177e4c3f41 Linus Torvalds 2005-04-16 107
ba98645c7d5464 Wolfram Sang 2017-11-04 108 /**
ba98645c7d5464 Wolfram Sang 2017-11-04 109 * i2c_master_send_dmasafe - issue a single I2C message in master transmit mode
ba98645c7d5464 Wolfram Sang 2017-11-04 110 * using a DMA safe buffer
ba98645c7d5464 Wolfram Sang 2017-11-04 111 * @client: Handle to slave device
ba98645c7d5464 Wolfram Sang 2017-11-04 112 * @buf: Data that will be written to the slave, must be safe to use with DMA
ba98645c7d5464 Wolfram Sang 2017-11-04 113 * @count: How many bytes to write, must be less than 64k since msg.len is u16
ba98645c7d5464 Wolfram Sang 2017-11-04 114 *
ba98645c7d5464 Wolfram Sang 2017-11-04 115 * Returns negative errno, or else the number of bytes written.
ba98645c7d5464 Wolfram Sang 2017-11-04 116 */
ba98645c7d5464 Wolfram Sang 2017-11-04 117 static inline int i2c_master_send_dmasafe(const struct i2c_client *client,
ba98645c7d5464 Wolfram Sang 2017-11-04 118 const char *buf, int count)
ba98645c7d5464 Wolfram Sang 2017-11-04 119 {
ba98645c7d5464 Wolfram Sang 2017-11-04 120 return i2c_transfer_buffer_flags(client, (char *)buf, count,
ba98645c7d5464 Wolfram Sang 2017-11-04 121 I2C_M_DMA_SAFE);
ba98645c7d5464 Wolfram Sang 2017-11-04 122 };
ba98645c7d5464 Wolfram Sang 2017-11-04 123
^1da177e4c3f41 Linus Torvalds 2005-04-16 124 /* Transfer num messages.
^1da177e4c3f41 Linus Torvalds 2005-04-16 125 */
c807da539e8276 Luca Ceresoli 2019-12-04 126 int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num);
b37d2a3a75cb0e Jean Delvare 2012-06-29 127 /* Unlocked flavor */
c807da539e8276 Luca Ceresoli 2019-12-04 128 int __i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num);
^1da177e4c3f41 Linus Torvalds 2005-04-16 129
^1da177e4c3f41 Linus Torvalds 2005-04-16 130 /* This is the very generalized SMBus access routine. You probably do not
^1da177e4c3f41 Linus Torvalds 2005-04-16 131 want to use this, though; one of the functions below may be much easier,
^1da177e4c3f41 Linus Torvalds 2005-04-16 132 and probably just as fast.
^1da177e4c3f41 Linus Torvalds 2005-04-16 133 Note that we use i2c_adapter here, because you do not need a specific
^1da177e4c3f41 Linus Torvalds 2005-04-16 134 smbus adapter to call this function. */
63453b59e41173 Peter Rosin 2018-06-20 135 s32 i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr,
3ae70deef0a5cc Jean Delvare 2008-10-22 136 unsigned short flags, char read_write, u8 command,
63453b59e41173 Peter Rosin 2018-06-20 137 int protocol, union i2c_smbus_data *data);
63453b59e41173 Peter Rosin 2018-06-20 138
63453b59e41173 Peter Rosin 2018-06-20 139 /* Unlocked flavor */
63453b59e41173 Peter Rosin 2018-06-20 140 s32 __i2c_smbus_xfer(struct i2c_adapter *adapter, u16 addr,
63453b59e41173 Peter Rosin 2018-06-20 141 unsigned short flags, char read_write, u8 command,
63453b59e41173 Peter Rosin 2018-06-20 142 int protocol, union i2c_smbus_data *data);
^1da177e4c3f41 Linus Torvalds 2005-04-16 143
^1da177e4c3f41 Linus Torvalds 2005-04-16 144 /* Now follow the 'nice' access routines. These also document the calling
ae7193f7fa3e17 Jean Delvare 2008-07-14 145 conventions of i2c_smbus_xfer. */
^1da177e4c3f41 Linus Torvalds 2005-04-16 146
c807da539e8276 Luca Ceresoli 2019-12-04 147 s32 i2c_smbus_read_byte(const struct i2c_client *client);
c807da539e8276 Luca Ceresoli 2019-12-04 148 s32 i2c_smbus_write_byte(const struct i2c_client *client, u8 value);
c807da539e8276 Luca Ceresoli 2019-12-04 149 s32 i2c_smbus_read_byte_data(const struct i2c_client *client, u8 command);
c807da539e8276 Luca Ceresoli 2019-12-04 150 s32 i2c_smbus_write_byte_data(const struct i2c_client *client,
^1da177e4c3f41 Linus Torvalds 2005-04-16 151 u8 command, u8 value);
c807da539e8276 Luca Ceresoli 2019-12-04 152 s32 i2c_smbus_read_word_data(const struct i2c_client *client, u8 command);
c807da539e8276 Luca Ceresoli 2019-12-04 153 s32 i2c_smbus_write_word_data(const struct i2c_client *client,
^1da177e4c3f41 Linus Torvalds 2005-04-16 154 u8 command, u16 value);
06a67848c6681a Jonathan Cameron 2011-10-30 155
06a67848c6681a Jonathan Cameron 2011-10-30 156 static inline s32
06a67848c6681a Jonathan Cameron 2011-10-30 157 i2c_smbus_read_word_swapped(const struct i2c_client *client, u8 command)
06a67848c6681a Jonathan Cameron 2011-10-30 158 {
06a67848c6681a Jonathan Cameron 2011-10-30 @159 s32 value = i2c_smbus_read_word_data(client, command);
06a67848c6681a Jonathan Cameron 2011-10-30 160
06a67848c6681a Jonathan Cameron 2011-10-30 161 return (value < 0) ? value : swab16(value);
06a67848c6681a Jonathan Cameron 2011-10-30 162 }
06a67848c6681a Jonathan Cameron 2011-10-30 163
06a67848c6681a Jonathan Cameron 2011-10-30 164 static inline s32
06a67848c6681a Jonathan Cameron 2011-10-30 165 i2c_smbus_write_word_swapped(const struct i2c_client *client,
06a67848c6681a Jonathan Cameron 2011-10-30 166 u8 command, u16 value)
06a67848c6681a Jonathan Cameron 2011-10-30 167 {
06a67848c6681a Jonathan Cameron 2011-10-30 @168 return i2c_smbus_write_word_data(client, command, swab16(value));
06a67848c6681a Jonathan Cameron 2011-10-30 169 }
06a67848c6681a Jonathan Cameron 2011-10-30 170
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 28133 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20200705/682452ad/attachment-0001.gz>
More information about the linux-arm-kernel
mailing list