* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 3:43 [PATCH v2] iio: bme680_i2c: Remove ACPI support Guenter Roeck
@ 2021-05-06 8:29 ` Hans de Goede
2021-05-06 9:28 ` Andy Shevchenko
` (2 subsequent siblings)
3 siblings, 0 replies; 16+ messages in thread
From: Hans de Goede @ 2021-05-06 8:29 UTC (permalink / raw)
To: Guenter Roeck, Jonathan Cameron
Cc: linux-iio, linux-kernel, kernel test robot, Andy Shevchenko
Hi,
On 5/6/21 5:43 AM, Guenter Roeck wrote:
> With CONFIG_ACPI=n and -Werror, 0-day reports:
>
> drivers/iio/chemical/bme680_i2c.c:46:36: error:
> 'bme680_acpi_match' defined but not used
>
> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> ACPI support from the bme680_i2c driver.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v2: Instead of making bme680_acpi_match conditional,
> remove ACPI support entirely since the ACPI ID is
> not valid.
Thanks, patch looks good to me:
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Regards,
Hans
>
> drivers/iio/chemical/bme680_i2c.c | 8 --------
> 1 file changed, 8 deletions(-)
>
> diff --git a/drivers/iio/chemical/bme680_i2c.c b/drivers/iio/chemical/bme680_i2c.c
> index 29c0dfa4702b..74cf89c82c0a 100644
> --- a/drivers/iio/chemical/bme680_i2c.c
> +++ b/drivers/iio/chemical/bme680_i2c.c
> @@ -11,7 +11,6 @@
> * Note: SDO pin cannot be left floating otherwise I2C address
> * will be undefined.
> */
> -#include <linux/acpi.h>
> #include <linux/i2c.h>
> #include <linux/module.h>
> #include <linux/regmap.h>
> @@ -42,12 +41,6 @@ static const struct i2c_device_id bme680_i2c_id[] = {
> };
> MODULE_DEVICE_TABLE(i2c, bme680_i2c_id);
>
> -static const struct acpi_device_id bme680_acpi_match[] = {
> - {"BME0680", 0},
> - {},
> -};
> -MODULE_DEVICE_TABLE(acpi, bme680_acpi_match);
> -
> static const struct of_device_id bme680_of_i2c_match[] = {
> { .compatible = "bosch,bme680", },
> {},
> @@ -57,7 +50,6 @@ MODULE_DEVICE_TABLE(of, bme680_of_i2c_match);
> static struct i2c_driver bme680_i2c_driver = {
> .driver = {
> .name = "bme680_i2c",
> - .acpi_match_table = ACPI_PTR(bme680_acpi_match),
> .of_match_table = bme680_of_i2c_match,
> },
> .probe = bme680_i2c_probe,
>
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 3:43 [PATCH v2] iio: bme680_i2c: Remove ACPI support Guenter Roeck
2021-05-06 8:29 ` Hans de Goede
@ 2021-05-06 9:28 ` Andy Shevchenko
2021-05-06 13:37 ` Guenter Roeck
2021-05-07 9:31 ` Jonathan Cameron
2021-05-08 15:51 ` Jonathan Cameron
3 siblings, 1 reply; 16+ messages in thread
From: Andy Shevchenko @ 2021-05-06 9:28 UTC (permalink / raw)
To: Guenter Roeck
Cc: Jonathan Cameron, linux-iio, Linux Kernel Mailing List,
kernel test robot, Hans de Goede
On Thu, May 6, 2021 at 6:43 AM Guenter Roeck <linux@roeck-us.net> wrote:
>
> With CONFIG_ACPI=n and -Werror, 0-day reports:
>
> drivers/iio/chemical/bme680_i2c.c:46:36: error:
> 'bme680_acpi_match' defined but not used
>
> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> ACPI support from the bme680_i2c driver.
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
with the SPI part amended in the same way.
Thanks!
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
> v2: Instead of making bme680_acpi_match conditional,
> remove ACPI support entirely since the ACPI ID is
> not valid.
>
> drivers/iio/chemical/bme680_i2c.c | 8 --------
> 1 file changed, 8 deletions(-)
>
> diff --git a/drivers/iio/chemical/bme680_i2c.c b/drivers/iio/chemical/bme680_i2c.c
> index 29c0dfa4702b..74cf89c82c0a 100644
> --- a/drivers/iio/chemical/bme680_i2c.c
> +++ b/drivers/iio/chemical/bme680_i2c.c
> @@ -11,7 +11,6 @@
> * Note: SDO pin cannot be left floating otherwise I2C address
> * will be undefined.
> */
> -#include <linux/acpi.h>
> #include <linux/i2c.h>
> #include <linux/module.h>
> #include <linux/regmap.h>
> @@ -42,12 +41,6 @@ static const struct i2c_device_id bme680_i2c_id[] = {
> };
> MODULE_DEVICE_TABLE(i2c, bme680_i2c_id);
>
> -static const struct acpi_device_id bme680_acpi_match[] = {
> - {"BME0680", 0},
> - {},
> -};
> -MODULE_DEVICE_TABLE(acpi, bme680_acpi_match);
> -
> static const struct of_device_id bme680_of_i2c_match[] = {
> { .compatible = "bosch,bme680", },
> {},
> @@ -57,7 +50,6 @@ MODULE_DEVICE_TABLE(of, bme680_of_i2c_match);
> static struct i2c_driver bme680_i2c_driver = {
> .driver = {
> .name = "bme680_i2c",
> - .acpi_match_table = ACPI_PTR(bme680_acpi_match),
> .of_match_table = bme680_of_i2c_match,
> },
> .probe = bme680_i2c_probe,
> --
> 2.25.1
>
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 9:28 ` Andy Shevchenko
@ 2021-05-06 13:37 ` Guenter Roeck
2021-05-06 13:42 ` Hans de Goede
2021-05-06 14:27 ` Andy Shevchenko
0 siblings, 2 replies; 16+ messages in thread
From: Guenter Roeck @ 2021-05-06 13:37 UTC (permalink / raw)
To: Andy Shevchenko
Cc: Jonathan Cameron, linux-iio, Linux Kernel Mailing List,
kernel test robot, Hans de Goede
On Thu, May 06, 2021 at 12:28:40PM +0300, Andy Shevchenko wrote:
> On Thu, May 6, 2021 at 6:43 AM Guenter Roeck <linux@roeck-us.net> wrote:
> >
> > With CONFIG_ACPI=n and -Werror, 0-day reports:
> >
> > drivers/iio/chemical/bme680_i2c.c:46:36: error:
> > 'bme680_acpi_match' defined but not used
> >
> > Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> > ACPI support from the bme680_i2c driver.
>
> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
>
> with the SPI part amended in the same way.
>
Right. I just sent a patch doing that. Oddly enough 0-day didn't complain
about that one to me, nor about many other drivers with the same problem.
No idea how it decides if and when to make noise.
Is there a way to determine invalid ACPI IDs ? I could write a coccinelle
script to remove the code automatically.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 13:37 ` Guenter Roeck
@ 2021-05-06 13:42 ` Hans de Goede
2021-05-06 13:50 ` Guenter Roeck
2021-05-06 14:27 ` Andy Shevchenko
1 sibling, 1 reply; 16+ messages in thread
From: Hans de Goede @ 2021-05-06 13:42 UTC (permalink / raw)
To: Guenter Roeck, Andy Shevchenko
Cc: Jonathan Cameron, linux-iio, Linux Kernel Mailing List,
kernel test robot
Hi,
On 5/6/21 3:37 PM, Guenter Roeck wrote:
> On Thu, May 06, 2021 at 12:28:40PM +0300, Andy Shevchenko wrote:
>> On Thu, May 6, 2021 at 6:43 AM Guenter Roeck <linux@roeck-us.net> wrote:
>>>
>>> With CONFIG_ACPI=n and -Werror, 0-day reports:
>>>
>>> drivers/iio/chemical/bme680_i2c.c:46:36: error:
>>> 'bme680_acpi_match' defined but not used
>>>
>>> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
>>> ACPI support from the bme680_i2c driver.
>>
>> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
>>
>> with the SPI part amended in the same way.
>>
> Right. I just sent a patch doing that. Oddly enough 0-day didn't complain
> about that one to me, nor about many other drivers with the same problem.
> No idea how it decides if and when to make noise.
>
> Is there a way to determine invalid ACPI IDs ?
No, unfortunately not. There is a format which ACPI IDs are
supposed to follow, but some "out in the wild" API ids don't
follow this; and many fake (made up) ACPI ids do follow it...
We (mostly Andy and me) are not even 100% sure this one is
a fake ACPI ID, but we do pretty strongly believe that it is.
Regards,
Hans
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 13:42 ` Hans de Goede
@ 2021-05-06 13:50 ` Guenter Roeck
2021-05-06 14:31 ` Andy Shevchenko
0 siblings, 1 reply; 16+ messages in thread
From: Guenter Roeck @ 2021-05-06 13:50 UTC (permalink / raw)
To: Hans de Goede
Cc: Andy Shevchenko, Jonathan Cameron, linux-iio,
Linux Kernel Mailing List, kernel test robot
On Thu, May 06, 2021 at 03:42:08PM +0200, Hans de Goede wrote:
> Hi,
>
> On 5/6/21 3:37 PM, Guenter Roeck wrote:
> > On Thu, May 06, 2021 at 12:28:40PM +0300, Andy Shevchenko wrote:
> >> On Thu, May 6, 2021 at 6:43 AM Guenter Roeck <linux@roeck-us.net> wrote:
> >>>
> >>> With CONFIG_ACPI=n and -Werror, 0-day reports:
> >>>
> >>> drivers/iio/chemical/bme680_i2c.c:46:36: error:
> >>> 'bme680_acpi_match' defined but not used
> >>>
> >>> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> >>> ACPI support from the bme680_i2c driver.
> >>
> >> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> >>
> >> with the SPI part amended in the same way.
> >>
> > Right. I just sent a patch doing that. Oddly enough 0-day didn't complain
> > about that one to me, nor about many other drivers with the same problem.
> > No idea how it decides if and when to make noise.
> >
> > Is there a way to determine invalid ACPI IDs ?
>
> No, unfortunately not. There is a format which ACPI IDs are
> supposed to follow, but some "out in the wild" API ids don't
> follow this; and many fake (made up) ACPI ids do follow it...
>
> We (mostly Andy and me) are not even 100% sure this one is
> a fake ACPI ID, but we do pretty strongly believe that it is.
>
What a mess :-(
Guenter
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 13:50 ` Guenter Roeck
@ 2021-05-06 14:31 ` Andy Shevchenko
2021-05-06 14:37 ` Joe Perches
0 siblings, 1 reply; 16+ messages in thread
From: Andy Shevchenko @ 2021-05-06 14:31 UTC (permalink / raw)
To: Guenter Roeck, Joe Perches
Cc: Hans de Goede, Jonathan Cameron, linux-iio,
Linux Kernel Mailing List, kernel test robot
On Thu, May 6, 2021 at 4:50 PM Guenter Roeck <linux@roeck-us.net> wrote:
> On Thu, May 06, 2021 at 03:42:08PM +0200, Hans de Goede wrote:
> > On 5/6/21 3:37 PM, Guenter Roeck wrote:
...
> > We (mostly Andy and me) are not even 100% sure this one is
> > a fake ACPI ID, but we do pretty strongly believe that it is.
> >
>
> What a mess :-(
What we can do is a checkpatch-alike check for vendor ID to be
registered in [1] and issue a warning if not. At least it alerts
maintainers. Joe, do you think it is doable or we should have a
separate tool for that? (Because I have no clue how checkpatch
cohabits with internet connection, otherwise the problem with
synchronisation of that registry might be a problem)
[1]: https://uefi.org/PNP_ACPI_Registry
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 14:31 ` Andy Shevchenko
@ 2021-05-06 14:37 ` Joe Perches
0 siblings, 0 replies; 16+ messages in thread
From: Joe Perches @ 2021-05-06 14:37 UTC (permalink / raw)
To: Andy Shevchenko, Guenter Roeck
Cc: Hans de Goede, Jonathan Cameron, linux-iio,
Linux Kernel Mailing List, kernel test robot
On Thu, 2021-05-06 at 17:31 +0300, Andy Shevchenko wrote:
> On Thu, May 6, 2021 at 4:50 PM Guenter Roeck <linux@roeck-us.net> wrote:
> > On Thu, May 06, 2021 at 03:42:08PM +0200, Hans de Goede wrote:
> > > On 5/6/21 3:37 PM, Guenter Roeck wrote:
>
> ...
>
> > > We (mostly Andy and me) are not even 100% sure this one is
> > > a fake ACPI ID, but we do pretty strongly believe that it is.
> > >
> >
> > What a mess :-(
>
> What we can do is a checkpatch-alike check for vendor ID to be
> registered in [1] and issue a warning if not. At least it alerts
> maintainers. Joe, do you think it is doable or we should have a
> separate tool for that? (Because I have no clue how checkpatch
> cohabits with internet connection, otherwise the problem with
> synchronisation of that registry might be a problem)
Perhaps best to have a separate scriptable tool and if necessary
have checkpatch use it like the spdxcheck block.
scripts/checkpatch.pl-sub is_SPDX_License_valid {
scripts/checkpatch.pl- my ($license) = @_;
scripts/checkpatch.pl-
scripts/checkpatch.pl: return 1 if (!$tree || which("python") eq "" || !(-e "$root/scripts/spdxcheck.py") || !(-e "$gitroot"));
scripts/checkpatch.pl-
scripts/checkpatch.pl- my $root_path = abs_path($root);
scripts/checkpatch.pl: my $status = `cd "$root_path"; echo "$license" | python scripts/spdxcheck.py -`;
scripts/checkpatch.pl- return 0 if ($status ne "");
scripts/checkpatch.pl- return 1;
scripts/checkpatch.pl-}
[]
scripts/checkpatch.pl- } elsif ($rawline =~ /(SPDX-License-Identifier: .*)/) {
scripts/checkpatch.pl- my $spdx_license = $1;
scripts/checkpatch.pl: if (!is_SPDX_License_valid($spdx_license)) {
scripts/checkpatch.pl- WARN("SPDX_LICENSE_TAG",
scripts/checkpatch.pl- "'$spdx_license' is not supported in LICENSES/...\n" . $herecurr);
scripts/checkpatch.pl- }
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 13:37 ` Guenter Roeck
2021-05-06 13:42 ` Hans de Goede
@ 2021-05-06 14:27 ` Andy Shevchenko
1 sibling, 0 replies; 16+ messages in thread
From: Andy Shevchenko @ 2021-05-06 14:27 UTC (permalink / raw)
To: Guenter Roeck
Cc: Jonathan Cameron, linux-iio, Linux Kernel Mailing List,
kernel test robot, Hans de Goede
On Thu, May 6, 2021 at 4:37 PM Guenter Roeck <linux@roeck-us.net> wrote:
> On Thu, May 06, 2021 at 12:28:40PM +0300, Andy Shevchenko wrote:
> > On Thu, May 6, 2021 at 6:43 AM Guenter Roeck <linux@roeck-us.net> wrote:
> > >
> > > With CONFIG_ACPI=n and -Werror, 0-day reports:
> > >
> > > drivers/iio/chemical/bme680_i2c.c:46:36: error:
> > > 'bme680_acpi_match' defined but not used
> > >
> > > Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> > > ACPI support from the bme680_i2c driver.
> >
> > Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
> >
> > with the SPI part amended in the same way.
> >
> Right. I just sent a patch doing that. Oddly enough 0-day didn't complain
> about that one to me, nor about many other drivers with the same problem.
> No idea how it decides if and when to make noise.
randconfig I believe.
> Is there a way to determine invalid ACPI IDs ? I could write a coccinelle
> script to remove the code automatically.
As Hans said...
My understanding that most of the fake IDs come into life due to:
- people apply similar rules to them as they knew about OF case (and
certain maintainers blindly allowed that)
- people in big companies need to quickly prototype something without
giving a crap about ACPI specification and / or process
The last part (I believe the smallest one) is vendors who heard about
ACPI, but haven't enough knowledge about the process.
--
With Best Regards,
Andy Shevchenko
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 3:43 [PATCH v2] iio: bme680_i2c: Remove ACPI support Guenter Roeck
2021-05-06 8:29 ` Hans de Goede
2021-05-06 9:28 ` Andy Shevchenko
@ 2021-05-07 9:31 ` Jonathan Cameron
2021-05-07 13:34 ` Guenter Roeck
2021-05-08 3:09 ` Guenter Roeck
2021-05-08 15:51 ` Jonathan Cameron
3 siblings, 2 replies; 16+ messages in thread
From: Jonathan Cameron @ 2021-05-07 9:31 UTC (permalink / raw)
To: Guenter Roeck
Cc: Jonathan Cameron, linux-iio, linux-kernel, kernel test robot,
Andy Shevchenko, Hans de Goede
On Wed, 5 May 2021 20:43:32 -0700
Guenter Roeck <linux@roeck-us.net> wrote:
> With CONFIG_ACPI=n and -Werror, 0-day reports:
>
> drivers/iio/chemical/bme680_i2c.c:46:36: error:
> 'bme680_acpi_match' defined but not used
>
> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> ACPI support from the bme680_i2c driver.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
A note for these is that I'll change the patch titles when applying.
We aren't removing ACPI support from the drivers, we are simply
removing the ACPI ID table entries. For most of these PRP0001 magic
will work just fine with the OF table. That's probably the
right way for small companies etc to use these in products without
having to jump through the hoops of getting an ACPI ID.
Jonathan
> ---
> v2: Instead of making bme680_acpi_match conditional,
> remove ACPI support entirely since the ACPI ID is
> not valid.
>
> drivers/iio/chemical/bme680_i2c.c | 8 --------
> 1 file changed, 8 deletions(-)
>
> diff --git a/drivers/iio/chemical/bme680_i2c.c b/drivers/iio/chemical/bme680_i2c.c
> index 29c0dfa4702b..74cf89c82c0a 100644
> --- a/drivers/iio/chemical/bme680_i2c.c
> +++ b/drivers/iio/chemical/bme680_i2c.c
> @@ -11,7 +11,6 @@
> * Note: SDO pin cannot be left floating otherwise I2C address
> * will be undefined.
> */
> -#include <linux/acpi.h>
> #include <linux/i2c.h>
> #include <linux/module.h>
> #include <linux/regmap.h>
> @@ -42,12 +41,6 @@ static const struct i2c_device_id bme680_i2c_id[] = {
> };
> MODULE_DEVICE_TABLE(i2c, bme680_i2c_id);
>
> -static const struct acpi_device_id bme680_acpi_match[] = {
> - {"BME0680", 0},
> - {},
> -};
> -MODULE_DEVICE_TABLE(acpi, bme680_acpi_match);
> -
> static const struct of_device_id bme680_of_i2c_match[] = {
> { .compatible = "bosch,bme680", },
> {},
> @@ -57,7 +50,6 @@ MODULE_DEVICE_TABLE(of, bme680_of_i2c_match);
> static struct i2c_driver bme680_i2c_driver = {
> .driver = {
> .name = "bme680_i2c",
> - .acpi_match_table = ACPI_PTR(bme680_acpi_match),
> .of_match_table = bme680_of_i2c_match,
> },
> .probe = bme680_i2c_probe,
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-07 9:31 ` Jonathan Cameron
@ 2021-05-07 13:34 ` Guenter Roeck
2021-05-08 3:09 ` Guenter Roeck
1 sibling, 0 replies; 16+ messages in thread
From: Guenter Roeck @ 2021-05-07 13:34 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Jonathan Cameron, linux-iio, linux-kernel, kernel test robot,
Andy Shevchenko, Hans de Goede
On 5/7/21 2:31 AM, Jonathan Cameron wrote:
> On Wed, 5 May 2021 20:43:32 -0700
> Guenter Roeck <linux@roeck-us.net> wrote:
>
>> With CONFIG_ACPI=n and -Werror, 0-day reports:
>>
>> drivers/iio/chemical/bme680_i2c.c:46:36: error:
>> 'bme680_acpi_match' defined but not used
>>
>> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
>> ACPI support from the bme680_i2c driver.
>>
>> Reported-by: kernel test robot <lkp@intel.com>
>> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
>> Cc: Hans de Goede <hdegoede@redhat.com>
>> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>
> A note for these is that I'll change the patch titles when applying.
> We aren't removing ACPI support from the drivers, we are simply
> removing the ACPI ID table entries. For most of these PRP0001 magic
> will work just fine with the OF table. That's probably the
> right way for small companies etc to use these in products without
> having to jump through the hoops of getting an ACPI ID.
>
Ok, no problem. I'll keep that in mind if I hit any others.
Thanks,
Guenter
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-07 9:31 ` Jonathan Cameron
2021-05-07 13:34 ` Guenter Roeck
@ 2021-05-08 3:09 ` Guenter Roeck
[not found] ` <CAHp75Vfa3GT9bnimxw7EJsJyRF8HZP3PGsUNikSScuNiU4qArg@mail.gmail.com>
1 sibling, 1 reply; 16+ messages in thread
From: Guenter Roeck @ 2021-05-08 3:09 UTC (permalink / raw)
To: Jonathan Cameron
Cc: Jonathan Cameron, linux-iio, linux-kernel, kernel test robot,
Andy Shevchenko, Hans de Goede
On Fri, May 07, 2021 at 10:31:54AM +0100, Jonathan Cameron wrote:
> On Wed, 5 May 2021 20:43:32 -0700
> Guenter Roeck <linux@roeck-us.net> wrote:
>
> > With CONFIG_ACPI=n and -Werror, 0-day reports:
> >
> > drivers/iio/chemical/bme680_i2c.c:46:36: error:
> > 'bme680_acpi_match' defined but not used
> >
> > Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> > ACPI support from the bme680_i2c driver.
> >
> > Reported-by: kernel test robot <lkp@intel.com>
> > Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> > Cc: Hans de Goede <hdegoede@redhat.com>
> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
>
> A note for these is that I'll change the patch titles when applying.
> We aren't removing ACPI support from the drivers, we are simply
> removing the ACPI ID table entries. For most of these PRP0001 magic
> will work just fine with the OF table. That's probably the
> right way for small companies etc to use these in products without
> having to jump through the hoops of getting an ACPI ID.
>
Below is what Coccinelle tells me about ACPI IDs in drivers/iio.
The script (tries) to do a prefix match of all ACPI IDs it finds against
the PNP and ACPI ID databases from https://uefi.org/PNP_ACPI_Registry.
Andy, Hans, does that look about right ?
Next question is what to do with the mismatches and with false
negatives such as:
drivers/iio/accel/stk8312.c
STK8312: match (prefix) against STK (SANTAK CORP.)
drivers/iio/light/isl29018.c
ISL29018: match (prefix) against ISL (Isolation Systems)
ISL29023: match (prefix) against ISL (Isolation Systems)
ISL29035: match (prefix) against ISL (Isolation Systems)
drivers/iio/gyro/bmg160_i2c.c
BMI055B: match (prefix) against BMI (Benson Medical Instruments Company)
BMI088B: match (prefix) against BMI (Benson Medical Instruments Company)
[ and how to auto-detect those - any idea ? ]
If you like I'll be happy to send you the coccinelle script I wrote
to play with.
Guenter
---
drivers/iio/light/stk3310.c
STK3310: match (prefix) against STK (SANTAK CORP.)
STK3311: match (prefix) against STK (SANTAK CORP.)
STK3335: match (prefix) against STK (SANTAK CORP.)
drivers/iio/imu/inv_mpu6050/inv_mpu_spi.c
INVN6000: match (ACPI ID) against INVN (Invensense, Inc)
drivers/iio/imu/fxos8700_i2c.c
FXOS8700: No match
drivers/iio/dac/ad5592r.c
ADS5592: match (prefix) against ADS (Analog Devices Inc)
drivers/iio/accel/stk8312.c
STK8312: match (prefix) against STK (SANTAK CORP.)
drivers/iio/light/us5182d.c
USD5182: match (prefix) against USD (U.S. Digital Corporation)
drivers/iio/imu/fxos8700_spi.c
FXOS8700: No match
drivers/iio/dac/ad5593r.c
ADS5593: match (prefix) against ADS (Analog Devices Inc)
drivers/iio/accel/stk8ba50.c
STK8BA50: match (prefix) against STK (SANTAK CORP.)
drivers/iio/accel/bma220_spi.c
BMA0220: No match
drivers/iio/magnetometer/ak8975.c
AK8975: No match
AK8963: No match
INVN6500: match (ACPI ID) against INVN (Invensense, Inc)
AK009911: No match
AK09911: No match
AKM9911: match (prefix) against AKM (Asahi Kasei Microsystems Company Ltd)
AK09912: No match
drivers/iio/imu/bmi160/bmi160_i2c.c
BMI0160: match (prefix) against BMI (Benson Medical Instruments Company)
drivers/iio/chemical/bme680_i2c.c
BME0680: No match
drivers/iio/accel/mxc6255.c
MXC6225: No match
MXC6255: No match
drivers/iio/accel/da280.c
MIRAACC: match (prefix) against MIR (Miro Computer Prod.)
drivers/iio/proximity/sx9310.c
STH9310: match (prefix) against STH (Semtech Corporation)
STH9311: match (prefix) against STH (Semtech Corporation)
drivers/iio/accel/bmc150-accel-i2c.c
BSBA0150: No match
BMC150A: No match
BMI055A: match (prefix) against BMI (Benson Medical Instruments Company)
BMA0255: No match
BMA250E: No match
BMA222: No match
BMA222E: No match
BMA0280: No match
BOSC0200: match (ACPI ID) against BOSC (Robert Bosch GmbH)
drivers/iio/light/rpr0521.c
RPR0521: No match
drivers/iio/humidity/hts221_i2c.c
SMO9100: match (prefix) against SMO (STMicroelectronics)
drivers/iio/adc/ti-adc108s102.c
INT3495: match (prefix) against INT (Interphase Corporation)
drivers/iio/accel/kxcjk-1013.c
KXCJ1013: No match
KXCJ1008: No match
KXCJ9000: No match
KIOX0008: match (ACPI ID) against KIOX (Kionix, Inc.)
KIOX0009: match (ACPI ID) against KIOX (Kionix, Inc.)
KIOX000A: match (ACPI ID) against KIOX (Kionix, Inc.)
KIOX010A: match (ACPI ID) against KIOX (Kionix, Inc.)
KIOX020A: match (ACPI ID) against KIOX (Kionix, Inc.)
KXTJ1009: No match
KXJ2109: No match
SMO8500: match (prefix) against SMO (STMicroelectronics)
drivers/iio/magnetometer/mmc35240.c
MMC35240: No match
drivers/iio/light/apds9960.c
MSHW0184: match (ACPI ID) against MSHW (Microsoft Corporation)
drivers/iio/accel/bmc150-accel-spi.c
BSBA0150: No match
BMC150A: No match
BMI055A: match (prefix) against BMI (Benson Medical Instruments Company)
BMA0255: No match
BMA250E: No match
BMA222: No match
BMA222E: No match
BMA0280: No match
drivers/iio/proximity/sx9500.c
SSX9500: No match
SASX9500: match (prefix) against SAS (Stores Automated Systems Inc)
drivers/iio/imu/bmi160/bmi160_spi.c
BMI0160: match (prefix) against BMI (Benson Medical Instruments Company)
drivers/iio/chemical/bme680_spi.c
BME0680: No match
drivers/iio/accel/mxc4005.c
MXC4005: No match
MXC6655: No match
drivers/iio/pressure/hp206c.c
HOP206C: No match
drivers/iio/light/isl29018.c
ISL29018: match (prefix) against ISL (Isolation Systems)
ISL29023: match (prefix) against ISL (Isolation Systems)
ISL29035: match (prefix) against ISL (Isolation Systems)
drivers/iio/accel/mma9551.c
MMA9551: match (prefix) against MMA (Micromedia AG)
drivers/iio/potentiometer/max5487.c
MAX5487: match (prefix) against MAX (Rogen Tech Distribution Inc)
MAX5488: match (prefix) against MAX (Rogen Tech Distribution Inc)
MAX5489: match (prefix) against MAX (Rogen Tech Distribution Inc)
drivers/iio/light/jsa1212.c
JSA1212: No match
drivers/iio/imu/kmx61.c
KMX61021: No match
drivers/iio/pressure/st_pressure_i2c.c
SNO9210: match (prefix) against SNO (SINOSUN TECHNOLOGY CO., LTD)
drivers/iio/light/pa12203001.c
TXCPA122: No match
drivers/iio/light/cm32181.c
CPLM3218: match (ACPI ID) against CPLM (Capella Microsystems Inc.)
drivers/iio/humidity/am2315.c
AOS2315: No match
drivers/iio/accel/st_accel_i2c.c
SMO8840: match (prefix) against SMO (STMicroelectronics)
SMO8A90: match (prefix) against SMO (STMicroelectronics)
drivers/iio/accel/mma7660.c
MMA7660: match (prefix) against MMA (Micromedia AG)
drivers/iio/magnetometer/bmc150_magn_spi.c
BMC150B: No match
BMC156B: No match
BMM150B: No match
drivers/iio/light/max44000.c
MAX44000: match (prefix) against MAX (Rogen Tech Distribution Inc)
drivers/iio/imu/inv_mpu6050/inv_mpu_i2c.c
INVN6500: match (ACPI ID) against INVN (Invensense, Inc)
drivers/iio/gyro/bmg160_i2c.c
BMG0160: No match
BMI055B: match (prefix) against BMI (Benson Medical Instruments Company)
BMI088B: match (prefix) against BMI (Benson Medical Instruments Company)
drivers/iio/adc/ti-adc128s052.c
AANT1280: match (ACPI ID) against AANT (AAEON Technology Inc.)
drivers/iio/accel/mma9553.c
MMA9553: match (prefix) against MMA (Micromedia AG)
drivers/iio/magnetometer/bmc150_magn_i2c.c
BMC150B: No match
BMC156B: No match
BMM150B: No match
drivers/iio/light/ltr501.c
LTER0501: No match
LTER0559: No match
LTER0301: No match
^ permalink raw reply [flat|nested] 16+ messages in thread
* Re: [PATCH v2] iio: bme680_i2c: Remove ACPI support
2021-05-06 3:43 [PATCH v2] iio: bme680_i2c: Remove ACPI support Guenter Roeck
` (2 preceding siblings ...)
2021-05-07 9:31 ` Jonathan Cameron
@ 2021-05-08 15:51 ` Jonathan Cameron
3 siblings, 0 replies; 16+ messages in thread
From: Jonathan Cameron @ 2021-05-08 15:51 UTC (permalink / raw)
To: Guenter Roeck
Cc: linux-iio, linux-kernel, kernel test robot, Andy Shevchenko,
Hans de Goede
On Wed, 5 May 2021 20:43:32 -0700
Guenter Roeck <linux@roeck-us.net> wrote:
> With CONFIG_ACPI=n and -Werror, 0-day reports:
>
> drivers/iio/chemical/bme680_i2c.c:46:36: error:
> 'bme680_acpi_match' defined but not used
>
> Apparently BME0680 is not a valid ACPI ID. Remove it and with it
> ACPI support from the bme680_i2c driver.
>
> Reported-by: kernel test robot <lkp@intel.com>
> Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
> Cc: Hans de Goede <hdegoede@redhat.com>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Message tweaked to reflect PRP0001 route which should work just fine
with ACPI and this driver.
Jonathan
> ---
> v2: Instead of making bme680_acpi_match conditional,
> remove ACPI support entirely since the ACPI ID is
> not valid.
>
> drivers/iio/chemical/bme680_i2c.c | 8 --------
> 1 file changed, 8 deletions(-)
>
> diff --git a/drivers/iio/chemical/bme680_i2c.c b/drivers/iio/chemical/bme680_i2c.c
> index 29c0dfa4702b..74cf89c82c0a 100644
> --- a/drivers/iio/chemical/bme680_i2c.c
> +++ b/drivers/iio/chemical/bme680_i2c.c
> @@ -11,7 +11,6 @@
> * Note: SDO pin cannot be left floating otherwise I2C address
> * will be undefined.
> */
> -#include <linux/acpi.h>
> #include <linux/i2c.h>
> #include <linux/module.h>
> #include <linux/regmap.h>
> @@ -42,12 +41,6 @@ static const struct i2c_device_id bme680_i2c_id[] = {
> };
> MODULE_DEVICE_TABLE(i2c, bme680_i2c_id);
>
> -static const struct acpi_device_id bme680_acpi_match[] = {
> - {"BME0680", 0},
> - {},
> -};
> -MODULE_DEVICE_TABLE(acpi, bme680_acpi_match);
> -
> static const struct of_device_id bme680_of_i2c_match[] = {
> { .compatible = "bosch,bme680", },
> {},
> @@ -57,7 +50,6 @@ MODULE_DEVICE_TABLE(of, bme680_of_i2c_match);
> static struct i2c_driver bme680_i2c_driver = {
> .driver = {
> .name = "bme680_i2c",
> - .acpi_match_table = ACPI_PTR(bme680_acpi_match),
> .of_match_table = bme680_of_i2c_match,
> },
> .probe = bme680_i2c_probe,
^ permalink raw reply [flat|nested] 16+ messages in thread