diff mbox series

[-next] iio: st_accel: Fix unused variable warning

Message ID 20191101134741.25108-1-yuehaibing@huawei.com (mailing list archive)
State New, archived
Headers show
Series [-next] iio: st_accel: Fix unused variable warning | expand

Commit Message

Yue Haibing Nov. 1, 2019, 1:47 p.m. UTC
drivers/iio/accel/st_accel_core.c:1005:44: warning:
 mount_matrix_ext_info defined but not used [-Wunused-const-variable=]

Move it to ifdef to mute this warning.

Signed-off-by: YueHaibing <yuehaibing@huawei.com>
---
 drivers/iio/accel/st_accel_core.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Ladislav Michl Nov. 2, 2019, 10:41 a.m. UTC | #1
On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:
> drivers/iio/accel/st_accel_core.c:1005:44: warning:
>  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
> 
> Move it to ifdef to mute this warning.
> 
> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> ---
>  drivers/iio/accel/st_accel_core.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index 2e37f8a..bba0717 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
>  	return adata->mount_matrix;
>  }
>  
> +#ifdef CONFIG_ACPI
>  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
>  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),

So now you do not get any warning for unused get_mount_matrix?
(Then it would make more sense to put all that stuff under one ifdef
and provide empty apply_acpi_orientation for non ACPI case)

>  	{ },
>  };
> +#endif
>  
>  /* Read ST-specific _ONT orientation data from ACPI and generate an
>   * appropriate mount matrix.
> -- 
> 2.7.4
>
Jonathan Cameron Nov. 2, 2019, 2:08 p.m. UTC | #2
On Sat, 2 Nov 2019 11:41:25 +0100
Ladislav Michl <ladis@linux-mips.org> wrote:

> On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:
> > drivers/iio/accel/st_accel_core.c:1005:44: warning:
> >  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
> > 
> > Move it to ifdef to mute this warning.
> > 
> > Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> > ---
> >  drivers/iio/accel/st_accel_core.c | 2 ++
> >  1 file changed, 2 insertions(+)
> > 
> > diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> > index 2e37f8a..bba0717 100644
> > --- a/drivers/iio/accel/st_accel_core.c
> > +++ b/drivers/iio/accel/st_accel_core.c
> > @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
> >  	return adata->mount_matrix;
> >  }
> >  
> > +#ifdef CONFIG_ACPI
> >  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
> >  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),  
> 
> So now you do not get any warning for unused get_mount_matrix?
> (Then it would make more sense to put all that stuff under one ifdef
> and provide empty apply_acpi_orientation for non ACPI case)

Does the __maybe_unused marking make this go away?

I'd assume that the compiler will manage to drop this either way
but I guess we should check that.

ifdef magic is always harder to read and potentially fragile in the
long run.  Here we simply want to indicate that in some build
configurations we might not use this.

Thanks,

Jonathan


> 
> >  	{ },
> >  };
> > +#endif
> >  
> >  /* Read ST-specific _ONT orientation data from ACPI and generate an
> >   * appropriate mount matrix.
> > -- 
> > 2.7.4
> >
Ladislav Michl Nov. 2, 2019, 8:15 p.m. UTC | #3
On Sat, Nov 02, 2019 at 02:08:10PM +0000, Jonathan Cameron wrote:
> On Sat, 2 Nov 2019 11:41:25 +0100
> Ladislav Michl <ladis@linux-mips.org> wrote:
> 
> > On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:
> > > drivers/iio/accel/st_accel_core.c:1005:44: warning:
> > >  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
> > > 
> > > Move it to ifdef to mute this warning.
> > > 
> > > Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> > > ---
> > >  drivers/iio/accel/st_accel_core.c | 2 ++
> > >  1 file changed, 2 insertions(+)
> > > 
> > > diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> > > index 2e37f8a..bba0717 100644
> > > --- a/drivers/iio/accel/st_accel_core.c
> > > +++ b/drivers/iio/accel/st_accel_core.c
> > > @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
> > >  	return adata->mount_matrix;
> > >  }
> > >  
> > > +#ifdef CONFIG_ACPI
> > >  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
> > >  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),  
> > 
> > So now you do not get any warning for unused get_mount_matrix?
> > (Then it would make more sense to put all that stuff under one ifdef
> > and provide empty apply_acpi_orientation for non ACPI case)
> 
> Does the __maybe_unused marking make this go away?
> 
> I'd assume that the compiler will manage to drop this either way
> but I guess we should check that.
> 
> ifdef magic is always harder to read and potentially fragile in the
> long run.  Here we simply want to indicate that in some build
> configurations we might not use this.

This suggestion implies we'll get rid of CONFIG_ACPI completely, which
seems inapproriate looking at size of apply_acpi_orientation function.
And having both CONFIG_ACPI and __maybe_unused does not make much
sense. I had something like that in mind (+COMPILE_TEST perhaps):

diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
index 2e37f8a6d8cf..0e7eac62d618 100644
--- a/drivers/iio/accel/st_accel_core.c
+++ b/drivers/iio/accel/st_accel_core.c
@@ -993,6 +993,7 @@ static const struct iio_trigger_ops st_accel_trigger_ops = {
 #define ST_ACCEL_TRIGGER_OPS NULL
 #endif
 
+#ifdef CONFIG_ACPI
 static const struct iio_mount_matrix *
 get_mount_matrix(const struct iio_dev *indio_dev,
 		 const struct iio_chan_spec *chan)
@@ -1013,7 +1014,6 @@ static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
 static int apply_acpi_orientation(struct iio_dev *indio_dev,
 				  struct iio_chan_spec *channels)
 {
-#ifdef CONFIG_ACPI
 	struct st_sensor_data *adata = iio_priv(indio_dev);
 	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
 	struct acpi_device *adev;
@@ -1141,10 +1141,14 @@ static int apply_acpi_orientation(struct iio_dev *indio_dev,
 out:
 	kfree(buffer.pointer);
 	return ret;
-#else /* !CONFIG_ACPI */
+}
+#else
+static int apply_acpi_orientation(struct iio_dev *indio_dev,
+				  struct iio_chan_spec *channels)
+{
 	return 0;
-#endif
 }
+#endif
 
 /*
  * st_accel_get_settings() - get sensor settings from device name
> Thanks,
> 
> Jonathan
> 
> 
> > 
> > >  	{ },
> > >  };
> > > +#endif
> > >  
> > >  /* Read ST-specific _ONT orientation data from ACPI and generate an
> > >   * appropriate mount matrix.
> > > -- 
> > > 2.7.4
> > >
Jonathan Cameron Nov. 3, 2019, 11:01 a.m. UTC | #4
On Sat, 2 Nov 2019 21:15:35 +0100
Ladislav Michl <ladis@linux-mips.org> wrote:

> On Sat, Nov 02, 2019 at 02:08:10PM +0000, Jonathan Cameron wrote:
> > On Sat, 2 Nov 2019 11:41:25 +0100
> > Ladislav Michl <ladis@linux-mips.org> wrote:
> >   
> > > On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:  
> > > > drivers/iio/accel/st_accel_core.c:1005:44: warning:
> > > >  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
> > > > 
> > > > Move it to ifdef to mute this warning.
> > > > 
> > > > Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> > > > ---
> > > >  drivers/iio/accel/st_accel_core.c | 2 ++
> > > >  1 file changed, 2 insertions(+)
> > > > 
> > > > diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> > > > index 2e37f8a..bba0717 100644
> > > > --- a/drivers/iio/accel/st_accel_core.c
> > > > +++ b/drivers/iio/accel/st_accel_core.c
> > > > @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
> > > >  	return adata->mount_matrix;
> > > >  }
> > > >  
> > > > +#ifdef CONFIG_ACPI
> > > >  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
> > > >  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),    
> > > 
> > > So now you do not get any warning for unused get_mount_matrix?
> > > (Then it would make more sense to put all that stuff under one ifdef
> > > and provide empty apply_acpi_orientation for non ACPI case)  
> > 
> > Does the __maybe_unused marking make this go away?
> > 
> > I'd assume that the compiler will manage to drop this either way
> > but I guess we should check that.
> > 
> > ifdef magic is always harder to read and potentially fragile in the
> > long run.  Here we simply want to indicate that in some build
> > configurations we might not use this.  
> 
> This suggestion implies we'll get rid of CONFIG_ACPI completely, which
> seems inapproriate looking at size of apply_acpi_orientation function.
> And having both CONFIG_ACPI and __maybe_unused does not make much
> sense. I had something like that in mind (+COMPILE_TEST perhaps):

One additional oddity here is why we have explicit support for
the mount matrix only in the ACPI paths.  There are standard DT bindings
for it as well which we should be using.

So let us take your approach below for now, but it would be good to
support this properly on non acpi platforms as well.  Where it isn't
specified it will fall back to an identity matrix which is as good as
we have now with no information supplied.

Please send a v2 with the below.

Thanks,

Jonathan

> 
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index 2e37f8a6d8cf..0e7eac62d618 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -993,6 +993,7 @@ static const struct iio_trigger_ops st_accel_trigger_ops = {
>  #define ST_ACCEL_TRIGGER_OPS NULL
>  #endif
>  
> +#ifdef CONFIG_ACPI
>  static const struct iio_mount_matrix *
>  get_mount_matrix(const struct iio_dev *indio_dev,
>  		 const struct iio_chan_spec *chan)
> @@ -1013,7 +1014,6 @@ static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
>  static int apply_acpi_orientation(struct iio_dev *indio_dev,
>  				  struct iio_chan_spec *channels)
>  {
> -#ifdef CONFIG_ACPI
>  	struct st_sensor_data *adata = iio_priv(indio_dev);
>  	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
>  	struct acpi_device *adev;
> @@ -1141,10 +1141,14 @@ static int apply_acpi_orientation(struct iio_dev *indio_dev,
>  out:
>  	kfree(buffer.pointer);
>  	return ret;
> -#else /* !CONFIG_ACPI */
> +}
> +#else
> +static int apply_acpi_orientation(struct iio_dev *indio_dev,
> +				  struct iio_chan_spec *channels)
> +{
>  	return 0;
> -#endif
>  }
> +#endif
>  
>  /*
>   * st_accel_get_settings() - get sensor settings from device name
> > Thanks,
> > 
> > Jonathan
> > 
> >   
> > >   
> > > >  	{ },
> > > >  };
> > > > +#endif
> > > >  
> > > >  /* Read ST-specific _ONT orientation data from ACPI and generate an
> > > >   * appropriate mount matrix.
> > > > -- 
> > > > 2.7.4
> > > >
Yue Haibing Nov. 4, 2019, 1:29 a.m. UTC | #5
On 2019/11/3 4:15, Ladislav Michl wrote:
> On Sat, Nov 02, 2019 at 02:08:10PM +0000, Jonathan Cameron wrote:
>> On Sat, 2 Nov 2019 11:41:25 +0100
>> Ladislav Michl <ladis@linux-mips.org> wrote:
>>
>>> On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:
>>>> drivers/iio/accel/st_accel_core.c:1005:44: warning:
>>>>  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
>>>>
>>>> Move it to ifdef to mute this warning.
>>>>
>>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
>>>> ---
>>>>  drivers/iio/accel/st_accel_core.c | 2 ++
>>>>  1 file changed, 2 insertions(+)
>>>>
>>>> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
>>>> index 2e37f8a..bba0717 100644
>>>> --- a/drivers/iio/accel/st_accel_core.c
>>>> +++ b/drivers/iio/accel/st_accel_core.c
>>>> @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
>>>>  	return adata->mount_matrix;
>>>>  }
>>>>  
>>>> +#ifdef CONFIG_ACPI
>>>>  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
>>>>  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),  
>>>
>>> So now you do not get any warning for unused get_mount_matrix?
>>> (Then it would make more sense to put all that stuff under one ifdef
>>> and provide empty apply_acpi_orientation for non ACPI case)
>>
>> Does the __maybe_unused marking make this go away?
>>
>> I'd assume that the compiler will manage to drop this either way
>> but I guess we should check that.
>>
>> ifdef magic is always harder to read and potentially fragile in the
>> long run.  Here we simply want to indicate that in some build
>> configurations we might not use this.
> 
> This suggestion implies we'll get rid of CONFIG_ACPI completely, which
> seems inapproriate looking at size of apply_acpi_orientation function.
> And having both CONFIG_ACPI and __maybe_unused does not make much
> sense. I had something like that in mind (+COMPILE_TEST perhaps):
> 
> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> index 2e37f8a6d8cf..0e7eac62d618 100644
> --- a/drivers/iio/accel/st_accel_core.c
> +++ b/drivers/iio/accel/st_accel_core.c
> @@ -993,6 +993,7 @@ static const struct iio_trigger_ops st_accel_trigger_ops = {
>  #define ST_ACCEL_TRIGGER_OPS NULL
>  #endif
>  
> +#ifdef CONFIG_ACPI
>  static const struct iio_mount_matrix *
>  get_mount_matrix(const struct iio_dev *indio_dev,
>  		 const struct iio_chan_spec *chan)
> @@ -1013,7 +1014,6 @@ static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
>  static int apply_acpi_orientation(struct iio_dev *indio_dev,
>  				  struct iio_chan_spec *channels)
>  {
> -#ifdef CONFIG_ACPI
>  	struct st_sensor_data *adata = iio_priv(indio_dev);
>  	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
>  	struct acpi_device *adev;
> @@ -1141,10 +1141,14 @@ static int apply_acpi_orientation(struct iio_dev *indio_dev,
>  out:
>  	kfree(buffer.pointer);
>  	return ret;
> -#else /* !CONFIG_ACPI */
> +}
> +#else
> +static int apply_acpi_orientation(struct iio_dev *indio_dev,

Does this need inline?

> +				  struct iio_chan_spec *channels)
> +{
>  	return 0;
> -#endif
>  }
> +#endif
>  
>  /*
>   * st_accel_get_settings() - get sensor settings from device name
>> Thanks,
>>
>> Jonathan
>>
>>
>>>
>>>>  	{ },
>>>>  };
>>>> +#endif
>>>>  
>>>>  /* Read ST-specific _ONT orientation data from ACPI and generate an
>>>>   * appropriate mount matrix.
>>>> -- 
>>>> 2.7.4
>>>>   
> 
> .
>
Jonathan Cameron Nov. 9, 2019, 11:50 a.m. UTC | #6
On Mon, 4 Nov 2019 09:29:21 +0800
Yuehaibing <yuehaibing@huawei.com> wrote:

> On 2019/11/3 4:15, Ladislav Michl wrote:
> > On Sat, Nov 02, 2019 at 02:08:10PM +0000, Jonathan Cameron wrote:  
> >> On Sat, 2 Nov 2019 11:41:25 +0100
> >> Ladislav Michl <ladis@linux-mips.org> wrote:
> >>  
> >>> On Fri, Nov 01, 2019 at 09:47:41PM +0800, YueHaibing wrote:  
> >>>> drivers/iio/accel/st_accel_core.c:1005:44: warning:
> >>>>  mount_matrix_ext_info defined but not used [-Wunused-const-variable=]
> >>>>
> >>>> Move it to ifdef to mute this warning.
> >>>>
> >>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> >>>> ---
> >>>>  drivers/iio/accel/st_accel_core.c | 2 ++
> >>>>  1 file changed, 2 insertions(+)
> >>>>
> >>>> diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> >>>> index 2e37f8a..bba0717 100644
> >>>> --- a/drivers/iio/accel/st_accel_core.c
> >>>> +++ b/drivers/iio/accel/st_accel_core.c
> >>>> @@ -1002,10 +1002,12 @@ get_mount_matrix(const struct iio_dev *indio_dev,
> >>>>  	return adata->mount_matrix;
> >>>>  }
> >>>>  
> >>>> +#ifdef CONFIG_ACPI
> >>>>  static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
> >>>>  	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),    
> >>>
> >>> So now you do not get any warning for unused get_mount_matrix?
> >>> (Then it would make more sense to put all that stuff under one ifdef
> >>> and provide empty apply_acpi_orientation for non ACPI case)  
> >>
> >> Does the __maybe_unused marking make this go away?
> >>
> >> I'd assume that the compiler will manage to drop this either way
> >> but I guess we should check that.
> >>
> >> ifdef magic is always harder to read and potentially fragile in the
> >> long run.  Here we simply want to indicate that in some build
> >> configurations we might not use this.  
> > 
> > This suggestion implies we'll get rid of CONFIG_ACPI completely, which
> > seems inapproriate looking at size of apply_acpi_orientation function.
> > And having both CONFIG_ACPI and __maybe_unused does not make much
> > sense. I had something like that in mind (+COMPILE_TEST perhaps):
> > 
> > diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
> > index 2e37f8a6d8cf..0e7eac62d618 100644
> > --- a/drivers/iio/accel/st_accel_core.c
> > +++ b/drivers/iio/accel/st_accel_core.c
> > @@ -993,6 +993,7 @@ static const struct iio_trigger_ops st_accel_trigger_ops = {
> >  #define ST_ACCEL_TRIGGER_OPS NULL
> >  #endif
> >  
> > +#ifdef CONFIG_ACPI
> >  static const struct iio_mount_matrix *
> >  get_mount_matrix(const struct iio_dev *indio_dev,
> >  		 const struct iio_chan_spec *chan)
> > @@ -1013,7 +1014,6 @@ static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
> >  static int apply_acpi_orientation(struct iio_dev *indio_dev,
> >  				  struct iio_chan_spec *channels)
> >  {
> > -#ifdef CONFIG_ACPI
> >  	struct st_sensor_data *adata = iio_priv(indio_dev);
> >  	struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
> >  	struct acpi_device *adev;
> > @@ -1141,10 +1141,14 @@ static int apply_acpi_orientation(struct iio_dev *indio_dev,
> >  out:
> >  	kfree(buffer.pointer);
> >  	return ret;
> > -#else /* !CONFIG_ACPI */
> > +}
> > +#else
> > +static int apply_acpi_orientation(struct iio_dev *indio_dev,  
> 
> Does this need inline?

Not that I can see. It's in the c file not the header so there should
be no issue with letting the compiler make the decision.
It will almost certainly be optimized out anyway.

Thanks,

Jonathan


> 
> > +				  struct iio_chan_spec *channels)
> > +{
> >  	return 0;
> > -#endif
> >  }
> > +#endif
> >  
> >  /*
> >   * st_accel_get_settings() - get sensor settings from device name  
> >> Thanks,
> >>
> >> Jonathan
> >>
> >>  
> >>>  
> >>>>  	{ },
> >>>>  };
> >>>> +#endif
> >>>>  
> >>>>  /* Read ST-specific _ONT orientation data from ACPI and generate an
> >>>>   * appropriate mount matrix.
> >>>> -- 
> >>>> 2.7.4
> >>>>     
> > 
> > .
> >   
>
diff mbox series

Patch

diff --git a/drivers/iio/accel/st_accel_core.c b/drivers/iio/accel/st_accel_core.c
index 2e37f8a..bba0717 100644
--- a/drivers/iio/accel/st_accel_core.c
+++ b/drivers/iio/accel/st_accel_core.c
@@ -1002,10 +1002,12 @@  get_mount_matrix(const struct iio_dev *indio_dev,
 	return adata->mount_matrix;
 }
 
+#ifdef CONFIG_ACPI
 static const struct iio_chan_spec_ext_info mount_matrix_ext_info[] = {
 	IIO_MOUNT_MATRIX(IIO_SHARED_BY_ALL, get_mount_matrix),
 	{ },
 };
+#endif
 
 /* Read ST-specific _ONT orientation data from ACPI and generate an
  * appropriate mount matrix.