Messages in this thread | | | Date | Tue, 17 Nov 2015 19:07:28 +0800 | From | kbuild test robot <> | Subject | sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function 'i2c_master_send' |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 8005c49d9aea74d382f474ce11afbbc7d7130bec commit: 624729fd51871bfbddb647764f180126789a29ee ASoC: Intel: Skylake - Add Skylake RT286 I2S machine driver date: 4 weeks ago config: x86_64-randconfig-s5-11171804 (attached as .config) reproduce: git checkout 624729fd51871bfbddb647764f180126789a29ee # save the attached .config to linux build tree make ARCH=x86_64
All error/warnings (new ones prefixed by >>):
sound/soc/codecs/rl6347a.c: In function 'rl6347a_hw_write': >> sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function 'i2c_master_send' [-Werror=implicit-function-declaration] ret = i2c_master_send(client, data, 4); ^ sound/soc/codecs/rl6347a.c: In function 'rl6347a_hw_read': >> sound/soc/codecs/rl6347a.c:114:8: error: implicit declaration of function 'i2c_transfer' [-Werror=implicit-function-declaration] ret = i2c_transfer(client->adapter, xfer, 2); ^ cc1: some warnings being treated as errors -- >> sound/soc/codecs/rt286.c:1269:1: warning: data definition has no type or storage class module_i2c_driver(rt286_i2c_driver); ^ >> sound/soc/codecs/rt286.c:1269:1: error: type defaults to 'int' in declaration of 'module_i2c_driver' [-Werror=implicit-int] >> sound/soc/codecs/rt286.c:1269:1: warning: parameter names (without types) in function declaration >> sound/soc/codecs/rt286.c:1259:26: warning: 'rt286_i2c_driver' defined but not used [-Wunused-variable] static struct i2c_driver rt286_i2c_driver = { ^ cc1: some warnings being treated as errors
vim +/i2c_master_send +66 sound/soc/codecs/rl6347a.c
bc08f96b Oder Chiou 2015-06-12 60 * 12 bit VID: value should be 0 bc08f96b Oder Chiou 2015-06-12 61 * So we use an OR operator to handle it rather than use if condition. bc08f96b Oder Chiou 2015-06-12 62 */ bc08f96b Oder Chiou 2015-06-12 63 data[2] = ((reg >> 8) & 0xff) | ((value >> 8) & 0xff); bc08f96b Oder Chiou 2015-06-12 64 data[3] = value & 0xff; bc08f96b Oder Chiou 2015-06-12 65 bc08f96b Oder Chiou 2015-06-12 @66 ret = i2c_master_send(client, data, 4); bc08f96b Oder Chiou 2015-06-12 67 bc08f96b Oder Chiou 2015-06-12 68 if (ret == 4) bc08f96b Oder Chiou 2015-06-12 69 return 0; bc08f96b Oder Chiou 2015-06-12 70 else bc08f96b Oder Chiou 2015-06-12 71 pr_err("ret=%d\n", ret); bc08f96b Oder Chiou 2015-06-12 72 if (ret < 0) bc08f96b Oder Chiou 2015-06-12 73 return ret; bc08f96b Oder Chiou 2015-06-12 74 else bc08f96b Oder Chiou 2015-06-12 75 return -EIO; bc08f96b Oder Chiou 2015-06-12 76 } bc08f96b Oder Chiou 2015-06-12 77 EXPORT_SYMBOL_GPL(rl6347a_hw_write); bc08f96b Oder Chiou 2015-06-12 78 bc08f96b Oder Chiou 2015-06-12 79 int rl6347a_hw_read(void *context, unsigned int reg, unsigned int *value) bc08f96b Oder Chiou 2015-06-12 80 { bc08f96b Oder Chiou 2015-06-12 81 struct i2c_client *client = context; bc08f96b Oder Chiou 2015-06-12 82 struct i2c_msg xfer[2]; bc08f96b Oder Chiou 2015-06-12 83 int ret; bc08f96b Oder Chiou 2015-06-12 84 __be32 be_reg; bc08f96b Oder Chiou 2015-06-12 85 unsigned int index, vid, buf = 0x0; bc08f96b Oder Chiou 2015-06-12 86 bc08f96b Oder Chiou 2015-06-12 87 /* handle index registers */ bc08f96b Oder Chiou 2015-06-12 88 if (reg <= 0xff) { bc08f96b Oder Chiou 2015-06-12 89 rl6347a_hw_write(client, RL6347A_COEF_INDEX, reg); bc08f96b Oder Chiou 2015-06-12 90 reg = RL6347A_PROC_COEF; bc08f96b Oder Chiou 2015-06-12 91 } bc08f96b Oder Chiou 2015-06-12 92 bc08f96b Oder Chiou 2015-06-12 93 reg = reg | 0x80000; bc08f96b Oder Chiou 2015-06-12 94 vid = (reg >> 8) & 0xfff; bc08f96b Oder Chiou 2015-06-12 95 bc08f96b Oder Chiou 2015-06-12 96 if (AC_VERB_GET_AMP_GAIN_MUTE == (vid & 0xf00)) { bc08f96b Oder Chiou 2015-06-12 97 index = (reg >> 8) & 0xf; bc08f96b Oder Chiou 2015-06-12 98 reg = (reg & ~0xf0f) | index; bc08f96b Oder Chiou 2015-06-12 99 } bc08f96b Oder Chiou 2015-06-12 100 be_reg = cpu_to_be32(reg); bc08f96b Oder Chiou 2015-06-12 101 bc08f96b Oder Chiou 2015-06-12 102 /* Write register */ bc08f96b Oder Chiou 2015-06-12 103 xfer[0].addr = client->addr; bc08f96b Oder Chiou 2015-06-12 104 xfer[0].flags = 0; bc08f96b Oder Chiou 2015-06-12 105 xfer[0].len = 4; bc08f96b Oder Chiou 2015-06-12 106 xfer[0].buf = (u8 *)&be_reg; bc08f96b Oder Chiou 2015-06-12 107 bc08f96b Oder Chiou 2015-06-12 108 /* Read data */ bc08f96b Oder Chiou 2015-06-12 109 xfer[1].addr = client->addr; bc08f96b Oder Chiou 2015-06-12 110 xfer[1].flags = I2C_M_RD; bc08f96b Oder Chiou 2015-06-12 111 xfer[1].len = 4; bc08f96b Oder Chiou 2015-06-12 112 xfer[1].buf = (u8 *)&buf; bc08f96b Oder Chiou 2015-06-12 113 bc08f96b Oder Chiou 2015-06-12 @114 ret = i2c_transfer(client->adapter, xfer, 2); bc08f96b Oder Chiou 2015-06-12 115 if (ret < 0) bc08f96b Oder Chiou 2015-06-12 116 return ret; bc08f96b Oder Chiou 2015-06-12 117 else if (ret != 2)
:::::: The code at line 66 was first introduced by commit :::::: bc08f96b5fa783132c278d7a48a1c18feca5813f ASoC: rt286: Add RL6347A class device shared support for RT286
:::::: TO: Oder Chiou <oder_chiou@realtek.com> :::::: CC: Mark Brown <broonie@kernel.org>
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation [unhandled content-type:application/octet-stream] | |