Re: [mmotm:master 7/197] ak8975.c:undefined reference to `i2c_smbus_write_byte_data'

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry all. Been travelling (stuck in a clean room with no internet...) Should get a pull
out sometime tomorrow.



On 26 February 2015 21:23:02 GMT+00:00, Arnd Bergmann <arnd@xxxxxxxx> wrote:
On Thursday 26 February 2015 12:44:32 Andrew Morton wrote:
On Thu, 26 Feb 2015 15:36:18 +0800 kbuild test robot <fengguang.wu@xxxxxxxxx> wrote:

It's probably a bug fix that unveils the link errors.

tree: git://git.cmpxchg.org/linux-mmotm.git master
head: 87bf5bee8749a1d3c82d12a55a1e33f6a22da8ed
commit: 7d789876f1a932dfa1a70ae8eeba270aa34358ad [7/197] rtc: ds1685: fix ds1685_rtc_alarm_irq_enable build error
config: i386-randconfig-nexr0-0226 (attached as .config)
reproduce:
git checkout 7d789876f1a932dfa1a70ae8eeba270aa34358ad
# save the attached .config to linux build tree
make ARCH=i 386

All error/warnings:

drivers/built-in.o: In function `ak8975_set_mode':
ak8975.c:(.text+0x16c108): undefined reference to `i2c_smbus_write_byte_data'
drivers/built-in.o: In function `ak8975_probe':
ak8975.c:(.text+0x16c29b): undefined reference to `i2c_smbus_read_i2c_block_data'
ak8975.c:(.text+0x16c348): undefined reference to `i2c_smbus_read_i2c_block_data'
drivers/built-in.o: In function `ak8975_read_raw':
ak8975.c:(.text+0x16c66b): undefined reference to `i2c_smbus_read_byte_data'
ak8975.c:(.text+0x16c6a2): undefined reference to `i2c_smbus_read_byte_data'
ak8975.c:(.text+0x16c6c6): undefined reference to `i2c_smbus_read_byte_data'
ak8975.c:(.text+0x16c751): undefined reference to `i2c_smbus_read_word_data'
drivers/built-in.o: In function `ak8975_driver_init':
ak8975.c:(.init.text+0x10e35): undefined reference to `i2c_register_driv er'
drivers/built-in.o: In function `ak8975_driver_exit':
ak8975.c:(.exit.text+0x1841): undefined reference to `i2c_del_driver'

Yes, something seems to have gone spectacularly wrong here. "rtc:
ds1685: fix ds1685_rtc_alarm_irq_enable build error" has nothing to do
with i2c or with drivers/iio/magnetometer/ak8975.c.

And CONFIG_AK8975 depends on CONFIG_I2C.

I've also submitted a patch for this bug:

From 84f1bf2e4c22183a61c04dfa2cead4a91665c920 Mon Sep 17 00:00:00 2001
From: Arnd Bergmann <arnd@xxxxxxxx>
Date: Tue, 27 Jan 2015 22:08:47 +0100
Subject: [PATCH] iio: ak8975: fix AK09911 dependencies

ak8975 depends on I2C and GPIOLIB, so any symbols that selects
ak8975 must have the same dependency, or we get build errors:

drivers/iio/magnetometer/ak8975.c: In function 'ak8975_who_i_am':
drivers/iio/magnetometer/ak8975.c:393:2: error: implicit declaration of function 'i2c_smbus_read_i2c_block_data' [-Werror=implicit-function-declaration]
ret = i2c_smbus_read_i2c_block_data(client, AK09912_REG_WIA1,
^
drivers/iio/magnetometer/ak8975.c: In function 'ak8975_set_mode':
drivers/iio/magnetometer/ak8975.c:431:2: error: implicit declaration of function 'i2c_smbus_write_byte_data' [-Werror=implicit-function-declaration]
ret = i2c_smbus_write_byte_data(data->client,

Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
Fixes: 57e73a423b1e85 ("iio: ak8975: add ak09911 and ak09912 support")

diff --git a/drivers/iio/magnetometer/Kconfig b/drivers/iio/magnetometer/Kconfig
index 4c7a4c52dd06..a5d6de72c523 100644
--- a/drivers/iio/magnetometer/Kconfig
+++ b/drivers/iio/magnetometer/Kconfig
@@ -18,6 +18,8 @@ config AK8975

config AK09911
tristate "Asahi Kasei AK09911 3-axis Compass"
+ depends on I2C
+ depends on GPIOLIB
select AK8975
help
Deprecated: AK09911 is now supported by AK8975 driver.


http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/320527.html

Randy submitted the same patch:
https://lkml.org/lkml/2015/2/4/570

Jonathan said he'd take care of it, but so far has not applied either version.

Arnd

--
Sent from my Android device with K-9 Mail. Please excuse my brevity.

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]