linux/drivers/parport/Kconfig
Maciej W. Rozycki 66bcd06099 parport_pc: Also enable driver for PCI systems
Nowadays PC-style parallel ports come in the form of PCI and PCIe option
cards and there are some combined parallel/serial option cards as well
that we handle in the parport subsystem.  There is nothing in particular
that would prevent them from being used in any system equipped with PCI
or PCIe connectivity, except that we do not permit the PARPORT_PC config
option to be selected for platforms for which ARCH_MIGHT_HAVE_PC_PARPORT
has not been set for.

The only PCI platforms that actually can't make use of PC-style parallel
port hardware are those newer PCIe systems that have no support for I/O
cycles in the host bridge, required by such parallel ports.  Notably,
this includes the s390 arch, which has port I/O accessors that cause
compilation warnings (promoted to errors with `-Werror'), and there are
other cases such as the POWER9 PHB4 device, though this one has variable
port I/O accessors that depend on the particular system.  Also it is not
clear whether the serial port side of devices enabled by PARPORT_SERIAL
uses port I/O or MMIO.  Finally Super I/O solutions are always either
ISA or platform devices.

Make the PARPORT_PC option selectable also for PCI systems then, except
for the s390 arch, however limit the availability of PARPORT_PC_SUPERIO
to platforms that enable ARCH_MIGHT_HAVE_PC_PARPORT.  Update platforms
accordingly for the required <asm/parport.h> header.

Acked-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Maciej W. Rozycki <macro@orcam.me.uk>
Link: https://lore.kernel.org/r/alpine.DEB.2.21.2202141955550.34636@angie.orcam.me.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2022-03-18 14:01:41 +01:00

167 lines
5.6 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0-only
#
# For a description of the syntax of this configuration file,
# see Documentation/kbuild/kconfig-language.rst.
#
# Parport configuration.
#
config ARCH_MIGHT_HAVE_PC_PARPORT
bool
help
Select this config option from the architecture Kconfig if
the architecture might have PC parallel port hardware.
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
drive, PLIP link (Parallel Line Internet Protocol is mainly used to
create a mini network by connecting the parallel ports of two local
machines) etc., then you need to say Y here; please read
<file:Documentation/admin-guide/parport.rst> and
<file:drivers/parport/BUGS-parport>.
For extensive information about drivers for many devices attaching
to the parallel port see <http://www.torque.net/linux-pp.html> on
the WWW.
It is possible to share a single parallel port among several devices
and it is safe to compile all the corresponding drivers into the
kernel. To compile parallel port support as a module, choose M here:
the module will be called parport.
If you have more than one parallel port and want to specify which
port and IRQ to be used by this driver at module load time, take a
look at <file:Documentation/admin-guide/parport.rst>.
If unsure, say Y.
if PARPORT
config PARPORT_PC
tristate "PC-style hardware"
depends on ARCH_MIGHT_HAVE_PC_PARPORT || (PCI && !S390)
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
parallel ports. PA-RISC owners should only say Y here if they
have a SuperIO parallel port.
To compile this driver as a module, choose M here: the
module will be called parport_pc.
If unsure, say Y.
config PARPORT_SERIAL
tristate "Multi-IO cards (parallel and serial)"
depends on SERIAL_8250_PCI && PARPORT_PC && PCI
help
This adds support for multi-IO PCI cards that have parallel and
serial ports. You should say Y or M here. If you say M, the module
will be called parport_serial.
config PARPORT_PC_FIFO
bool "Use FIFO/DMA if available"
depends on PARPORT_PC
help
Many parallel port chipsets provide hardware that can speed up
printing. Say Y here if you want to take advantage of that.
As well as actually having a FIFO, or DMA capability, the kernel
will need to know which IRQ the parallel port has. By default,
parallel port interrupts will not be used, and so neither will the
FIFO. See <file:Documentation/admin-guide/parport.rst> to find out how to
specify which IRQ/DMA to use.
config PARPORT_PC_SUPERIO
bool "SuperIO chipset support"
depends on ARCH_MIGHT_HAVE_PC_PARPORT && PARPORT_PC && !PARISC
help
Saying Y here enables some probes for Super-IO chipsets in order to
find out things like base addresses, IRQ lines and DMA channels. It
is safe to say N.
config PARPORT_PC_PCMCIA
tristate "Support for PCMCIA management for PC-style ports"
depends on PCMCIA && PARPORT_PC
help
Say Y here if you need PCMCIA support for your PC-style parallel
ports. If unsure, say N.
config PARPORT_IP32
tristate "SGI IP32 builtin port"
depends on SGI_IP32
select PARPORT_NOT_PC
help
Say Y here if you need support for the parallel port on
SGI O2 machines. This code is also available as a module (say M),
called parport_ip32. If in doubt, saying N is the safe plan.
config PARPORT_AMIGA
tristate "Amiga builtin port"
depends on AMIGA
select PARPORT_NOT_PC
help
Say Y here if you need support for the parallel port hardware on
Amiga machines. This code is also available as a module (say M),
called parport_amiga. If in doubt, saying N is the safe plan.
config PARPORT_MFC3
tristate "Multiface III parallel port"
depends on ZORRO
select PARPORT_NOT_PC
help
Say Y here if you need parallel port support for the MFC3 card.
This code is also available as a module (say M), called
parport_mfc3. If in doubt, saying N is the safe plan.
config PARPORT_ATARI
tristate "Atari hardware"
depends on ATARI
select PARPORT_NOT_PC
help
Say Y here if you need support for the parallel port hardware on
Atari machines. This code is also available as a module (say M),
called parport_atari. If in doubt, saying N is the safe plan.
config PARPORT_GSC
tristate
default GSC
select PARPORT_NOT_PC
config PARPORT_SUNBPP
tristate "Sparc hardware"
depends on SBUS
select PARPORT_NOT_PC
help
This driver provides support for the bidirectional parallel port
found on many Sun machines. Note that many of the newer Ultras
actually have pc style hardware instead.
config PARPORT_AX88796
tristate "AX88796 Parallel Port"
select PARPORT_NOT_PC
help
Say Y here if you need support for the parallel port hardware on
the AX88796 network controller chip. This code is also available
as a module (say M), called parport_ax88796.
The driver is not dependent on the AX88796 network driver, and
should not interfere with the networking functions of the chip.
config PARPORT_1284
bool "IEEE 1284 transfer modes"
help
If you have a printer that supports status readback or device ID, or
want to use a device that uses enhanced parallel port transfer modes
such as EPP and ECP, say Y here to enable advanced IEEE 1284
transfer modes. Also say Y if you want device ID information to
appear in /proc/sys/dev/parport/*/autoprobe*. It is safe to say N.
config PARPORT_NOT_PC
bool
endif # PARPORT