Re: [PATCH v3 21/38] parport: PC style parport depends on HAS_IOPORT

Bjorn Helgaas
2023-05-02T15:30:44Z

The wording of this subject line is a bit ambiguous and doesn't quite
say what the patch does.

It reads like a statement of fact, i.e., "this is the current state,"
but I think the patch actually *adds* a HAS_IOPORT dependency like
many of the other patches.

I guess it also *removes* a HAS_IOMEM dependency; I didn't investigate
to figure out why that is or whether it's even related (I guess it is,
but I don't know how).

On Tue, Mar 14, 2023 at 01:11:59PM +0100, Niklas Schnelle wrote:
> In a future patch HAS_IOPORT=n will result in inb()/outb() and friends
> not being declared. As PC style parport uses these functions we need to
> handle this dependency.
>
> Co-developed-by: Arnd Bergmann <arnd@kernel.org>
> Signed-off-by: Niklas Schnelle <schnelle@linux.ibm.com>
> ---
> drivers/parport/Kconfig | 4 ++--
> include/linux/parport.h | 2 +-
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/parport/Kconfig b/drivers/parport/Kconfig
> index 5561362224e2..5c471c73629f 100644
> --- a/drivers/parport/Kconfig
> +++ b/drivers/parport/Kconfig
> @@ -14,7 +14,6 @@ config ARCH_MIGHT_HAVE_PC_PARPORT
>
> menuconfig PARPORT
> tristate "Parallel port support"
> - depends on HAS_IOMEM
> help
> If you want to use devices connected to your machine's parallel port
> (the connector at the computer with 25 holes), e.g. printer, ZIP
> @@ -42,7 +41,8 @@ if PARPORT
>
> config PARPORT_PC
> tristate "PC-style hardware"
> - depends on ARCH_MIGHT_HAVE_PC_PARPORT || (PCI && !S390)
> + depends on ARCH_MIGHT_HAVE_PC_PARPORT
> + depends on HAS_IOPORT
> help
> You should say Y here if you have a PC-style parallel port. All
> IBM PC compatible computers and some Alphas have PC-style
> diff --git a/include/linux/parport.h b/include/linux/parport.h
> index a0bc9e0267b7..fff39bc30629 100644
> --- a/include/linux/parport.h
> +++ b/include/linux/parport.h
> @@ -514,7 +514,7 @@ extern int parport_device_proc_register(struct pardevice *device);
> extern int parport_device_proc_unregister(struct pardevice *device);
>
> /* If PC hardware is the only type supported, we can optimise a bit. */
> -#if !defined(CONFIG_PARPORT_NOT_PC)
> +#if !defined(CONFIG_PARPORT_NOT_PC) && defined(CONFIG_PARPORT_PC)
>
> #include <linux/parport_pc.h>
> #define parport_write_data(p,x) parport_pc_write_data(p,x)
> --
> 2.37.2
>