2021-12-27 16:45:04

by Niklas Schnelle

[permalink] [raw]
Subject: [RFC 12/32] iio: adc: Kconfig: add HAS_IOPORT dependencies

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 <[email protected]>
Signed-off-by: Arnd Bergmann <[email protected]>
Signed-off-by: Niklas Schnelle <[email protected]>
---
drivers/iio/adc/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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:
--
2.32.0



2021-12-28 10:32:57

by Geert Uytterhoeven

[permalink] [raw]
Subject: Re: [RFC 12/32] iio: adc: Kconfig: add HAS_IOPORT dependencies

Hi Niklas,

On Mon, Dec 27, 2021 at 5:53 PM Niklas Schnelle <[email protected]> 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 <[email protected]>
> Signed-off-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Niklas Schnelle <[email protected]>

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 -- [email protected]

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

2021-12-28 12:51:21

by Niklas Schnelle

[permalink] [raw]
Subject: Re: [RFC 12/32] iio: adc: Kconfig: add HAS_IOPORT dependencies

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 <[email protected]> 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 <[email protected]>
> > Signed-off-by: Arnd Bergmann <[email protected]>
> > Signed-off-by: Niklas Schnelle <[email protected]>
>
> 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 -- [email protected]
>
> 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


2021-12-28 16:56:37

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [RFC 12/32] iio: adc: Kconfig: add HAS_IOPORT dependencies

On Tue, 28 Dec 2021 13:50:20 +0100
Niklas Schnelle <[email protected]> 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 <[email protected]> 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 <[email protected]>
> > > Signed-off-by: Arnd Bergmann <[email protected]>
> > > Signed-off-by: Niklas Schnelle <[email protected]>

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 <[email protected]>
M: Michael Hennerich <[email protected]>
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 -- [email protected]
> >
> > 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
>


2022-02-01 10:54:30

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [RFC 12/32] iio: adc: Kconfig: add HAS_IOPORT dependencies

On Tue, 28 Dec 2021 17:01:25 +0000
Jonathan Cameron <[email protected]> wrote:

> On Tue, 28 Dec 2021 13:50:20 +0100
> Niklas Schnelle <[email protected]> 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 <[email protected]> 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 <[email protected]>
> > > > Signed-off-by: Arnd Bergmann <[email protected]>
> > > > Signed-off-by: Niklas Schnelle <[email protected]>
>
> 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 <[email protected]>
> M: Michael Hennerich <[email protected]>
> 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 -- [email protected]
> > >
> > > 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
> >
>