* sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function 'i2c_master_send'
@ 2015-11-17 11:07 kbuild test robot
2015-11-17 16:47 ` Vinod Koul
0 siblings, 1 reply; 2+ messages in thread
From: kbuild test robot @ 2015-11-17 11:07 UTC (permalink / raw)
To: Omair M Abdullah
Cc: kbuild-all, linux-kernel, Mark Brown, Jeeja KP, Vinod Koul
[-- Attachment #1: Type: text/plain, Size: 5556 bytes --]
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
[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 18598 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread* Re: sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function 'i2c_master_send'
2015-11-17 11:07 sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function 'i2c_master_send' kbuild test robot
@ 2015-11-17 16:47 ` Vinod Koul
0 siblings, 0 replies; 2+ messages in thread
From: Vinod Koul @ 2015-11-17 16:47 UTC (permalink / raw)
To: kbuild test robot; +Cc: kbuild-all, linux-kernel, Mark Brown, Jeeja KP
On Tue, Nov 17, 2015 at 07:07:28PM +0800, kbuild test robot wrote:
> 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
Thanks for reporting this, I was able to verify and looks like the config
does not have I2C selected, so the driver does not find this symbol.
Also I noticed, i2c core defines i2c_master_send() APIs as extern, so not
having I2C causes failure.
I did try adding depends on I2C on rl6347a but that does not help as rt286
starts not compiling which incidently depends on I2C but was selected by SKL
machine
So finalled added depends on SKL machine, will send that out
Thanks
--
~Vinod
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2015-11-17 16:43 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-11-17 11:07 sound/soc/codecs/rl6347a.c:66:8: error: implicit declaration of function 'i2c_master_send' kbuild test robot
2015-11-17 16:47 ` Vinod Koul
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox