diff mbox series

[RFC,12/32] iio: adc: Kconfig: add HAS_IOPORT dependencies

Message ID 20211227164317.4146918-13-schnelle@linux.ibm.com (mailing list archive)
State Superseded
Headers show
Series None | expand

Commit Message

Niklas Schnelle Dec. 27, 2021, 4:42 p.m. UTC
In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
not being declared. We thus need to add HAS_IOPORT as dependency for
those drivers using them.

Co-developed-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Arnd Bergmann <arnd@kernel.org>
Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
---
 drivers/iio/adc/Kconfig | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Geert Uytterhoeven Dec. 28, 2021, 10:32 a.m. UTC | #1
Hi Niklas,

On Mon, Dec 27, 2021 at 5:53 PM Niklas Schnelle <schnelle@linux.ibm.com> wrote:
> In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
> not being declared. We thus need to add HAS_IOPORT as dependency for
> those drivers using them.
>
> Co-developed-by: Arnd Bergmann <arnd@kernel.org>
> Signed-off-by: Arnd Bergmann <arnd@kernel.org>
> Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>

Thanks for your patch!

> --- a/drivers/iio/adc/Kconfig
> +++ b/drivers/iio/adc/Kconfig
> @@ -119,7 +119,7 @@ config AD7606
>
>  config AD7606_IFACE_PARALLEL
>         tristate "Analog Devices AD7606 ADC driver with parallel interface support"
> -       depends on HAS_IOMEM
> +       depends on HAS_IOPORT

While this driver uses ins[bw](), this seems unrelated to legacy
I/O space, as the driver maps a MMIO region.  Probably different
accessors should be used instead.

Note that this driver has no in-tree users. Same for the SPI variant,
but at least that one has modern json-schema DT bindings ;-)

>         select AD7606
>         help
>           Say yes here to build parallel interface support for Analog Devices:

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
Niklas Schnelle Dec. 28, 2021, 12:50 p.m. UTC | #2
On Tue, 2021-12-28 at 11:32 +0100, Geert Uytterhoeven wrote:
> Hi Niklas,
> 
> On Mon, Dec 27, 2021 at 5:53 PM Niklas Schnelle <schnelle@linux.ibm.com> wrote:
> > In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
> > not being declared. We thus need to add HAS_IOPORT as dependency for
> > those drivers using them.
> > 
> > Co-developed-by: Arnd Bergmann <arnd@kernel.org>
> > Signed-off-by: Arnd Bergmann <arnd@kernel.org>
> > Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
> 
> Thanks for your patch!
> 
> > --- a/drivers/iio/adc/Kconfig
> > +++ b/drivers/iio/adc/Kconfig
> > @@ -119,7 +119,7 @@ config AD7606
> > 
> >  config AD7606_IFACE_PARALLEL
> >         tristate "Analog Devices AD7606 ADC driver with parallel interface support"
> > -       depends on HAS_IOMEM
> > +       depends on HAS_IOPORT
> 
> While this driver uses ins[bw](), this seems unrelated to legacy
> I/O space, as the driver maps a MMIO region.  Probably different
> accessors should be used instead.

You're right on first glance it looks like a misuse of the ins[bw]()
accessors. I do wonder how that even works, if PCI_IOBASE is 0 it would
result in readsw()/readsb() with presumably the correct address but no
idea how this interacts witth x86's special I/O instructions.

> 
> Note that this driver has no in-tree users. Same for the SPI variant,
> but at least that one has modern json-schema DT bindings ;-)

Can't find any mention in the MAINTAINERS file either.

> 
> >         select AD7606
> >         help
> >           Say yes here to build parallel interface support for Analog Devices:
> 
> 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 Dec. 28, 2021, 5:01 p.m. UTC | #3
On Tue, 28 Dec 2021 13:50:20 +0100
Niklas Schnelle <schnelle@linux.ibm.com> wrote:

> On Tue, 2021-12-28 at 11:32 +0100, Geert Uytterhoeven wrote:
> > Hi Niklas,
> > 
> > On Mon, Dec 27, 2021 at 5:53 PM Niklas Schnelle <schnelle@linux.ibm.com> wrote:  
> > > In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
> > > not being declared. We thus need to add HAS_IOPORT as dependency for
> > > those drivers using them.
> > > 
> > > Co-developed-by: Arnd Bergmann <arnd@kernel.org>
> > > Signed-off-by: Arnd Bergmann <arnd@kernel.org>
> > > Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>  

As a side note, whilst it doesn't always happen and I regularly forget
to fix it up whilst applying, it's really helpful to make sure the driver
name is somewhere in the patch title.

e.g. iio: adc: ad7606: add HAS_IOPORT dependencies.

> > 
> > Thanks for your patch!
> >   
> > > --- a/drivers/iio/adc/Kconfig
> > > +++ b/drivers/iio/adc/Kconfig
> > > @@ -119,7 +119,7 @@ config AD7606
> > > 
> > >  config AD7606_IFACE_PARALLEL
> > >         tristate "Analog Devices AD7606 ADC driver with parallel interface support"
> > > -       depends on HAS_IOMEM
> > > +       depends on HAS_IOPORT  
> > 
> > While this driver uses ins[bw](), this seems unrelated to legacy
> > I/O space, as the driver maps a MMIO region.  Probably different
> > accessors should be used instead.  
> 
> You're right on first glance it looks like a misuse of the ins[bw]()
> accessors. I do wonder how that even works, if PCI_IOBASE is 0 it would
> result in readsw()/readsb() with presumably the correct address but no
> idea how this interacts witth x86's special I/O instructions.
> 
> > 
> > Note that this driver has no in-tree users. Same for the SPI variant,
> > but at least that one has modern json-schema DT bindings ;-)  
> 
> Can't find any mention in the MAINTAINERS file either.

It falls under the Analog devices catch all.
We don't list them all individually because there are a lot of them and
it would just be noise in many case.

Added Michael to CC. You already have Lars.

ANALOG DEVICES INC IIO DRIVERS
M:	Lars-Peter Clausen <lars@metafoo.de>
M:	Michael Hennerich <Michael.Hennerich@analog.com>
S:	Supported
W:	http://wiki.analog.com/
W:	http://ez.analog.com/community/linux-device-drivers
F:	Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
F:	Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
F:	Documentation/devicetree/bindings/iio/*/adi,*
F:	Documentation/devicetree/bindings/iio/dac/adi,ad5758.yaml
F:	drivers/iio/*/ad*
F:	drivers/iio/adc/ltc249*
F:	drivers/iio/amplifiers/hmc425a.c
F:	drivers/staging/iio/*/ad*
X:	drivers/iio/*/adjd*

https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7606
includes some details.

I'll leave it to the Lars or Michael to confirm what is going on here.

Jonathan

> 
> >   
> > >         select AD7606
> > >         help
> > >           Say yes here to build parallel interface support for Analog Devices:  
> > 
> > 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 Jan. 30, 2022, 3:05 p.m. UTC | #4
On Tue, 28 Dec 2021 17:01:25 +0000
Jonathan Cameron <jic23@jic23.retrosnub.co.uk> wrote:

> On Tue, 28 Dec 2021 13:50:20 +0100
> Niklas Schnelle <schnelle@linux.ibm.com> wrote:
> 
> > On Tue, 2021-12-28 at 11:32 +0100, Geert Uytterhoeven wrote:  
> > > Hi Niklas,
> > > 
> > > On Mon, Dec 27, 2021 at 5:53 PM Niklas Schnelle <schnelle@linux.ibm.com> wrote:    
> > > > In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
> > > > not being declared. We thus need to add HAS_IOPORT as dependency for
> > > > those drivers using them.
> > > > 
> > > > Co-developed-by: Arnd Bergmann <arnd@kernel.org>
> > > > Signed-off-by: Arnd Bergmann <arnd@kernel.org>
> > > > Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>    
> 
> As a side note, whilst it doesn't always happen and I regularly forget
> to fix it up whilst applying, it's really helpful to make sure the driver
> name is somewhere in the patch title.
> 
> e.g. iio: adc: ad7606: add HAS_IOPORT dependencies.
> 
> > > 
> > > Thanks for your patch!
> > >     
> > > > --- a/drivers/iio/adc/Kconfig
> > > > +++ b/drivers/iio/adc/Kconfig
> > > > @@ -119,7 +119,7 @@ config AD7606
> > > > 
> > > >  config AD7606_IFACE_PARALLEL
> > > >         tristate "Analog Devices AD7606 ADC driver with parallel interface support"
> > > > -       depends on HAS_IOMEM
> > > > +       depends on HAS_IOPORT    
> > > 
> > > While this driver uses ins[bw](), this seems unrelated to legacy
> > > I/O space, as the driver maps a MMIO region.  Probably different
> > > accessors should be used instead.    
> > 
> > You're right on first glance it looks like a misuse of the ins[bw]()
> > accessors. I do wonder how that even works, if PCI_IOBASE is 0 it would
> > result in readsw()/readsb() with presumably the correct address but no
> > idea how this interacts witth x86's special I/O instructions.
> >   
> > > 
> > > Note that this driver has no in-tree users. Same for the SPI variant,
> > > but at least that one has modern json-schema DT bindings ;-)    
> > 
> > Can't find any mention in the MAINTAINERS file either.  
> 
> It falls under the Analog devices catch all.
> We don't list them all individually because there are a lot of them and
> it would just be noise in many case.
> 
> Added Michael to CC. You already have Lars.
> 
> ANALOG DEVICES INC IIO DRIVERS
> M:	Lars-Peter Clausen <lars@metafoo.de>
> M:	Michael Hennerich <Michael.Hennerich@analog.com>
> S:	Supported
> W:	http://wiki.analog.com/
> W:	http://ez.analog.com/community/linux-device-drivers
> F:	Documentation/ABI/testing/sysfs-bus-iio-frequency-ad9523
> F:	Documentation/ABI/testing/sysfs-bus-iio-frequency-adf4350
> F:	Documentation/devicetree/bindings/iio/*/adi,*
> F:	Documentation/devicetree/bindings/iio/dac/adi,ad5758.yaml
> F:	drivers/iio/*/ad*
> F:	drivers/iio/adc/ltc249*
> F:	drivers/iio/amplifiers/hmc425a.c
> F:	drivers/staging/iio/*/ad*
> X:	drivers/iio/*/adjd*
> 
> https://wiki.analog.com/resources/tools-software/linux-drivers/iio-adc/ad7606
> includes some details.
> 
> I'll leave it to the Lars or Michael to confirm what is going on here.

Can someone (probably at Analog Devices) take a look at this?

Thanks,

Jonathan

> 
> Jonathan
> 
> >   
> > >     
> > > >         select AD7606
> > > >         help
> > > >           Say yes here to build parallel interface support for Analog Devices:    
> > > 
> > > 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    
> >   
>
diff mbox series

Patch

diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
index 3363af15a43f..1338ce51c0c5 100644
--- a/drivers/iio/adc/Kconfig
+++ b/drivers/iio/adc/Kconfig
@@ -119,7 +119,7 @@  config AD7606
 
 config AD7606_IFACE_PARALLEL
 	tristate "Analog Devices AD7606 ADC driver with parallel interface support"
-	depends on HAS_IOMEM
+	depends on HAS_IOPORT
 	select AD7606
 	help
 	  Say yes here to build parallel interface support for Analog Devices: