diff mbox

iio: ak8975: fix AK09911 dependencies

Message ID 7968545.0Cq9DcaG85@wuerfel (mailing list archive)
State New, archived
Headers show

Commit Message

Arnd Bergmann Jan. 28, 2015, 1:58 p.m. UTC
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@arndb.de>
Fixes: 57e73a423b1e85 ("iio: ak8975: add ak09911 and ak09912 support")
---
I found this recent regression doing ARM randconfig builds, please apply

Comments

Jonathan Cameron Feb. 4, 2015, 5:32 p.m. UTC | #1
On 28/01/15 13:58, Arnd Bergmann wrote:
> 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@arndb.de>
> Fixes: 57e73a423b1e85 ("iio: ak8975: add ak09911 and ak09912 support")
Sorry, I failed to register this was present in the linux-next tree rather than mainline
where at least the i2c dependency is present).  Given timing, will have to wait until
after the merge windows to send this now (last pull request for the merge has gone
to Greg)

Will fixup in a couple of weeks,

Jonathan
> ---
> I found this recent regression doing ARM randconfig builds, please apply
> 
> 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.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Jonathan Cameron Feb. 28, 2015, 11:34 a.m. UTC | #2
On 28/01/15 13:58, Arnd Bergmann wrote:
> 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@arndb.de>
> Fixes: 57e73a423b1e85 ("iio: ak8975: add ak09911 and ak09912 support")
Now applied and pull request sent.
> ---
> I found this recent regression doing ARM randconfig builds, please apply
> 
> 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.
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-iio" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
Geert Uytterhoeven March 9, 2015, 10:27 a.m. UTC | #3
Hi Arnd,

On Wed, Jan 28, 2015 at 2:58 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> 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@arndb.de>
> Fixes: 57e73a423b1e85 ("iio: ak8975: add ak09911 and ak09912 support")
> ---
> I found this recent regression doing ARM randconfig builds, please apply
>
> 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.

I just saw the AK8975/AK09911 config options disappear for a v4.0-rc3 m68k
allmodconfig kernel. Apparently it built fine with !GPIOLIB before, as many
gpiolib (consumer) functions have dummies for the !GPIOLIB case.

So I think the GPIOLIB dependency can be relaxed to "GPIOLIB || COMPILE_TEST".
The same may be true for many other GPIOLIB consumer drivers.
Will look into it and send patches...

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
                                -- Linus Torvalds
Jonathan Cameron March 9, 2015, 10:50 a.m. UTC | #4
On 09/03/15 10:27, Geert Uytterhoeven wrote:
> Hi Arnd,
> 
> On Wed, Jan 28, 2015 at 2:58 PM, Arnd Bergmann <arnd@arndb.de> wrote:
>> 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@arndb.de>
>> Fixes: 57e73a423b1e85 ("iio: ak8975: add ak09911 and ak09912 support")
>> ---
>> I found this recent regression doing ARM randconfig builds, please apply
>>
>> 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.
> 
> I just saw the AK8975/AK09911 config options disappear for a v4.0-rc3 m68k
> allmodconfig kernel. Apparently it built fine with !GPIOLIB before, as many
> gpiolib (consumer) functions have dummies for the !GPIOLIB case.
> 
> So I think the GPIOLIB dependency can be relaxed to "GPIOLIB || COMPILE_TEST".
> The same may be true for many other GPIOLIB consumer drivers.
> Will look into it and send patches...
> 
> Gr{oetje,eeting}s,
> 
>                         Geert
> 
Sounds likely and would be great to increase build coverage on these if we can.

Jonathan
Arnd Bergmann March 9, 2015, 8:05 p.m. UTC | #5
On Monday 09 March 2015 10:50:26 Jonathan Cameron wrote:
> >> 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.
> > 
> > I just saw the AK8975/AK09911 config options disappear for a v4.0-rc3 m68k
> > allmodconfig kernel. Apparently it built fine with !GPIOLIB before, as many
> > gpiolib (consumer) functions have dummies for the !GPIOLIB case.
> > 
> > So I think the GPIOLIB dependency can be relaxed to "GPIOLIB || COMPILE_TEST".
> > The same may be true for many other GPIOLIB consumer drivers.
> > Will look into it and send patches...

The reason for this dependency is the 'select AK8975', which causes a Kconfig
warning if GPIOLIB is disabled. I do not see an actual dependency on gpiolib
in the ak8975 driver, but relaxing this means we have to remove the dependency
for both of them together, not just for AK09911.

	Arnd
diff mbox

Patch

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.