2024-04-10 08:42:33

by Niklas Schnelle

[permalink] [raw]
Subject: [PATCH 0/1] watchdog: Handle HAS_IOPORT dependencies

Hi Wim, Guenter,

This is a follow up in my ongoing effort of making inb()/outb() and
similar I/O port accessors compile-time optional. Previously I sent this
as a treewide series titled "treewide: Remove I/O port accessors for
HAS_IOPORT=n" with the latest being its 5th version[0]. With a significant
subset of patches merged I've changed over to per-subsystem series. These
series are stand alone and should be merged via the relevant tree such
that with all subsystems complete we can follow this up with the final
patch that will make the I/O port accessors compile-time optional.

The current state of the full series with changes to the remaining subsystems
and the aforementioned final patch can be found for your convenience on my
git.kernel.org tree in the has_ioport branch[1]. As for compile-time vs runtime
see Linus' reply to my first attempt[2].

Thanks,
Niklas

[0] https://lore.kernel.org/all/[email protected]/
[1] https://git.kernel.org/pub/scm/linux/kernel/git/niks/linux.git/log/?h=has_ioport
[2] https://lore.kernel.org/lkml/CAHk-=wg80je=K7madF4e7WrRNp37e3qh6y10Svhdc7O8SZ_-8g@mail.gmail.com/

Niklas Schnelle (1):
watchdog: add HAS_IOPORT dependencies

drivers/watchdog/Kconfig | 58 +++++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 28 deletions(-)

--
2.40.1



2024-04-10 08:42:47

by Niklas Schnelle

[permalink] [raw]
Subject: [PATCH 1/1] watchdog: add HAS_IOPORT dependencies

In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
compile time. 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]>
---
Note: This patch does not depend any not-yet-mainline HAS_IOPORT changes
and may be merged via subsystem specific trees at your earliest
convenience.

drivers/watchdog/Kconfig | 58 +++++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 28 deletions(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index 6bee137cfbe0..1904896376b7 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -482,6 +482,7 @@ config 21285_WATCHDOG
config 977_WATCHDOG
tristate "NetWinder WB83C977 watchdog"
depends on (FOOTBRIDGE && ARCH_NETWINDER) || (ARM && COMPILE_TEST)
+ depends on HAS_IOPORT
help
Say Y here to include support for the WB977 watchdog included in
NetWinder machines. Alternatively say M to compile the driver as
@@ -1075,7 +1076,7 @@ config ACQUIRE_WDT

config ADVANTECH_WDT
tristate "Advantech SBC Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
If you are configuring a Linux kernel for the Advantech single-board
computer, say `Y' here to support its built-in watchdog timer
@@ -1084,7 +1085,7 @@ config ADVANTECH_WDT

config ADVANTECH_EC_WDT
tristate "Advantech Embedded Controller Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
select ISA_BUS_API
select WATCHDOG_CORE
help
@@ -1117,7 +1118,7 @@ config ALIM7101_WDT

config EBC_C384_WDT
tristate "WinSystems EBC-C384 Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
select ISA_BUS_API
select WATCHDOG_CORE
help
@@ -1127,7 +1128,7 @@ config EBC_C384_WDT

config EXAR_WDT
tristate "Exar Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
select WATCHDOG_CORE
help
Enables watchdog timer support for the watchdog timer present
@@ -1138,7 +1139,7 @@ config EXAR_WDT

config F71808E_WDT
tristate "Fintek F718xx, F818xx Super I/O Watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
select WATCHDOG_CORE
help
This is the driver for the hardware watchdog on the Fintek F71808E,
@@ -1150,7 +1151,7 @@ config F71808E_WDT

config SP5100_TCO
tristate "AMD/ATI SP5100 TCO Timer/Watchdog"
- depends on (X86 || COMPILE_TEST) && PCI
+ depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
select WATCHDOG_CORE
help
Hardware watchdog driver for the AMD/ATI SP5100 chipset. The TCO
@@ -1189,7 +1190,7 @@ config SC520_WDT

config SBC_FITPC2_WATCHDOG
tristate "Compulab SBC-FITPC2 watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the built-in watchdog timer on the fit-PC2,
fit-PC2i, CM-iAM single-board computers made by Compulab.
@@ -1214,7 +1215,7 @@ config SBC_FITPC2_WATCHDOG

config EUROTECH_WDT
tristate "Eurotech CPU-1220/1410 Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
Enable support for the watchdog timer on the Eurotech CPU-1220 and
CPU-1410 cards. These are PC/104 SBCs. Spec sheets and product
@@ -1222,7 +1223,7 @@ config EUROTECH_WDT

config IB700_WDT
tristate "IB700 SBC Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the hardware watchdog on the IB700 Single
Board Computer produced by TMC Technology (http://www.tmc-uk.com). This
@@ -1239,7 +1240,7 @@ config IB700_WDT

config IBMASR
tristate "IBM Automatic Server Restart"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the IBM Automatic Server Restart watchdog
timer built-in into some eServer xSeries machines.
@@ -1249,7 +1250,7 @@ config IBMASR

config WAFER_WDT
tristate "ICP Single Board Computer Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is a driver for the hardware watchdog on the ICP Single
Board Computer. This driver is working on (at least) the following
@@ -1271,7 +1272,7 @@ config I6300ESB_WDT

config IE6XX_WDT
tristate "Intel Atom E6xx Watchdog"
- depends on (X86 || COMPILE_TEST) && PCI
+ depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
select WATCHDOG_CORE
select MFD_CORE
select LPC_SCH
@@ -1301,6 +1302,7 @@ config ITCO_WDT
select WATCHDOG_CORE
depends on I2C || I2C=n
depends on MFD_INTEL_PMC_BXT || !MFD_INTEL_PMC_BXT
+ depends on HAS_IOPORT # for I2C_I801
select LPC_ICH if !EXPERT
select I2C_I801 if !EXPERT && I2C
help
@@ -1331,7 +1333,7 @@ config ITCO_VENDOR_SUPPORT

config IT8712F_WDT
tristate "IT8712F (Smart Guardian) Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the built-in watchdog timer on the IT8712F
Super I/0 chipset used on many motherboards.
@@ -1344,7 +1346,7 @@ config IT8712F_WDT

config IT87_WDT
tristate "IT87 Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
select WATCHDOG_CORE
help
This is the driver for the hardware watchdog on the ITE IT8607,
@@ -1392,7 +1394,7 @@ config KEMPLD_WDT

config SC1200_WDT
tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is a driver for National Semiconductor PC87307/PC97307 hardware
watchdog cards as found on the SC1200. This watchdog is mainly used
@@ -1415,7 +1417,7 @@ config SCx200_WDT

config PC87413_WDT
tristate "NS PC87413 watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the hardware watchdog on the PC87413 chipset
This watchdog simply watches your kernel to make sure it doesn't
@@ -1429,7 +1431,7 @@ config PC87413_WDT

config NV_TCO
tristate "nVidia TCO Timer/Watchdog"
- depends on (X86 || COMPILE_TEST) && PCI
+ depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
help
Hardware driver for the TCO timer built into the nVidia Hub family
(such as the MCP51). The TCO (Total Cost of Ownership) timer is a
@@ -1458,7 +1460,7 @@ config RDC321X_WDT

config 60XX_WDT
tristate "SBC-60XX Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This driver can be used with the watchdog timer found on some
single board computers, namely the 6010 PII based computer.
@@ -1498,7 +1500,7 @@ config SBC7240_WDT

config CPU5_WDT
tristate "SMA CPU5 Watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
TBD.
To compile this driver as a module, choose M here: the
@@ -1506,7 +1508,7 @@ config CPU5_WDT

config SMSC_SCH311X_WDT
tristate "SMSC SCH311X Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the hardware watchdog timer on the
SMSC SCH3112, SCH3114 and SCH3116 Super IO chipset
@@ -1518,7 +1520,7 @@ config SMSC_SCH311X_WDT

config SMSC37B787_WDT
tristate "Winbond SMsC37B787 Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the hardware watchdog component on the
Winbond SMsC37B787 chipset as used on the NetRunner Mainboard
@@ -1564,7 +1566,7 @@ config VIA_WDT

config W83627HF_WDT
tristate "Watchdog timer for W83627HF/W83627DHG and compatibles"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
select WATCHDOG_CORE
help
This is the driver for the hardware watchdog on the following
@@ -1594,7 +1596,7 @@ config W83627HF_WDT

config W83877F_WDT
tristate "W83877F (EMACS) Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the hardware watchdog on the W83877F chipset
as used in EMACS PC-104 motherboards (and likely others). This
@@ -1609,7 +1611,7 @@ config W83877F_WDT

config W83977F_WDT
tristate "W83977F (PCM-5335) Watchdog Timer"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the hardware watchdog on the W83977F I/O chip
as used in AAEON's PCM-5335 SBC (and likely others). This
@@ -1622,7 +1624,7 @@ config W83977F_WDT

config MACHZ_WDT
tristate "ZF MachZ Watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
If you are using a ZF Micro MachZ processor, say Y here, otherwise
N. This is the driver for the watchdog timer built-in on that
@@ -1635,7 +1637,7 @@ config MACHZ_WDT

config SBC_EPX_C3_WATCHDOG
tristate "Winsystems SBC EPX-C3 watchdog"
- depends on X86 || COMPILE_TEST
+ depends on (X86 || COMPILE_TEST) && HAS_IOPORT
help
This is the driver for the built-in watchdog timer on the EPX-C3
Single-board computer made by Winsystems, Inc.
@@ -2197,7 +2199,7 @@ comment "PCI-based Watchdog Cards"

config PCIPCWATCHDOG
tristate "Berkshire Products PCI-PC Watchdog"
- depends on PCI
+ depends on PCI && HAS_IOPORT
help
This is the driver for the Berkshire Products PCI-PC Watchdog card.
This card simply watches your kernel to make sure it doesn't freeze,
@@ -2212,7 +2214,7 @@ config PCIPCWATCHDOG

config WDTPCI
tristate "PCI-WDT500/501 Watchdog timer"
- depends on PCI
+ depends on PCI && HAS_IOPORT
help
If you have a PCI-WDT500/501 watchdog board, say Y here, otherwise N.

--
2.40.1


2024-04-10 12:31:16

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 1/1] watchdog: add HAS_IOPORT dependencies

On Wed, Apr 10, 2024 at 10:42:01AM +0200, Niklas Schnelle wrote:
> In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
> compile time. 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]>
> ---
> Note: This patch does not depend any not-yet-mainline HAS_IOPORT changes
> and may be merged via subsystem specific trees at your earliest
> convenience.
>

For almost all of those, the HAS_IOPORT "dependency" is really only
necessary due to COMPILE_TEST because both ARM and X86 select HAS_IOPORT.
Has anyone thought about introducing something like COMPILE_TEST_IOPORT
or similar ?

config COMPILE_TEST_IOPORT
def_bool COMPILE_TEST && HAS_IOPORT

Thanks,
Guenter

> drivers/watchdog/Kconfig | 58 +++++++++++++++++++++-------------------
> 1 file changed, 30 insertions(+), 28 deletions(-)
>
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index 6bee137cfbe0..1904896376b7 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -482,6 +482,7 @@ config 21285_WATCHDOG
> config 977_WATCHDOG
> tristate "NetWinder WB83C977 watchdog"
> depends on (FOOTBRIDGE && ARCH_NETWINDER) || (ARM && COMPILE_TEST)
> + depends on HAS_IOPORT
> help
> Say Y here to include support for the WB977 watchdog included in
> NetWinder machines. Alternatively say M to compile the driver as
> @@ -1075,7 +1076,7 @@ config ACQUIRE_WDT
>
> config ADVANTECH_WDT
> tristate "Advantech SBC Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> If you are configuring a Linux kernel for the Advantech single-board
> computer, say `Y' here to support its built-in watchdog timer
> @@ -1084,7 +1085,7 @@ config ADVANTECH_WDT
>
> config ADVANTECH_EC_WDT
> tristate "Advantech Embedded Controller Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> select ISA_BUS_API
> select WATCHDOG_CORE
> help
> @@ -1117,7 +1118,7 @@ config ALIM7101_WDT
>
> config EBC_C384_WDT
> tristate "WinSystems EBC-C384 Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> select ISA_BUS_API
> select WATCHDOG_CORE
> help
> @@ -1127,7 +1128,7 @@ config EBC_C384_WDT
>
> config EXAR_WDT
> tristate "Exar Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> select WATCHDOG_CORE
> help
> Enables watchdog timer support for the watchdog timer present
> @@ -1138,7 +1139,7 @@ config EXAR_WDT
>
> config F71808E_WDT
> tristate "Fintek F718xx, F818xx Super I/O Watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> select WATCHDOG_CORE
> help
> This is the driver for the hardware watchdog on the Fintek F71808E,
> @@ -1150,7 +1151,7 @@ config F71808E_WDT
>
> config SP5100_TCO
> tristate "AMD/ATI SP5100 TCO Timer/Watchdog"
> - depends on (X86 || COMPILE_TEST) && PCI
> + depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
> select WATCHDOG_CORE
> help
> Hardware watchdog driver for the AMD/ATI SP5100 chipset. The TCO
> @@ -1189,7 +1190,7 @@ config SC520_WDT
>
> config SBC_FITPC2_WATCHDOG
> tristate "Compulab SBC-FITPC2 watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the built-in watchdog timer on the fit-PC2,
> fit-PC2i, CM-iAM single-board computers made by Compulab.
> @@ -1214,7 +1215,7 @@ config SBC_FITPC2_WATCHDOG
>
> config EUROTECH_WDT
> tristate "Eurotech CPU-1220/1410 Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> Enable support for the watchdog timer on the Eurotech CPU-1220 and
> CPU-1410 cards. These are PC/104 SBCs. Spec sheets and product
> @@ -1222,7 +1223,7 @@ config EUROTECH_WDT
>
> config IB700_WDT
> tristate "IB700 SBC Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the hardware watchdog on the IB700 Single
> Board Computer produced by TMC Technology (http://www.tmc-uk.com). This
> @@ -1239,7 +1240,7 @@ config IB700_WDT
>
> config IBMASR
> tristate "IBM Automatic Server Restart"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the IBM Automatic Server Restart watchdog
> timer built-in into some eServer xSeries machines.
> @@ -1249,7 +1250,7 @@ config IBMASR
>
> config WAFER_WDT
> tristate "ICP Single Board Computer Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is a driver for the hardware watchdog on the ICP Single
> Board Computer. This driver is working on (at least) the following
> @@ -1271,7 +1272,7 @@ config I6300ESB_WDT
>
> config IE6XX_WDT
> tristate "Intel Atom E6xx Watchdog"
> - depends on (X86 || COMPILE_TEST) && PCI
> + depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
> select WATCHDOG_CORE
> select MFD_CORE
> select LPC_SCH
> @@ -1301,6 +1302,7 @@ config ITCO_WDT
> select WATCHDOG_CORE
> depends on I2C || I2C=n
> depends on MFD_INTEL_PMC_BXT || !MFD_INTEL_PMC_BXT
> + depends on HAS_IOPORT # for I2C_I801
> select LPC_ICH if !EXPERT
> select I2C_I801 if !EXPERT && I2C
> help
> @@ -1331,7 +1333,7 @@ config ITCO_VENDOR_SUPPORT
>
> config IT8712F_WDT
> tristate "IT8712F (Smart Guardian) Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the built-in watchdog timer on the IT8712F
> Super I/0 chipset used on many motherboards.
> @@ -1344,7 +1346,7 @@ config IT8712F_WDT
>
> config IT87_WDT
> tristate "IT87 Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> select WATCHDOG_CORE
> help
> This is the driver for the hardware watchdog on the ITE IT8607,
> @@ -1392,7 +1394,7 @@ config KEMPLD_WDT
>
> config SC1200_WDT
> tristate "National Semiconductor PC87307/PC97307 (ala SC1200) Watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is a driver for National Semiconductor PC87307/PC97307 hardware
> watchdog cards as found on the SC1200. This watchdog is mainly used
> @@ -1415,7 +1417,7 @@ config SCx200_WDT
>
> config PC87413_WDT
> tristate "NS PC87413 watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the hardware watchdog on the PC87413 chipset
> This watchdog simply watches your kernel to make sure it doesn't
> @@ -1429,7 +1431,7 @@ config PC87413_WDT
>
> config NV_TCO
> tristate "nVidia TCO Timer/Watchdog"
> - depends on (X86 || COMPILE_TEST) && PCI
> + depends on (X86 || COMPILE_TEST) && PCI && HAS_IOPORT
> help
> Hardware driver for the TCO timer built into the nVidia Hub family
> (such as the MCP51). The TCO (Total Cost of Ownership) timer is a
> @@ -1458,7 +1460,7 @@ config RDC321X_WDT
>
> config 60XX_WDT
> tristate "SBC-60XX Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This driver can be used with the watchdog timer found on some
> single board computers, namely the 6010 PII based computer.
> @@ -1498,7 +1500,7 @@ config SBC7240_WDT
>
> config CPU5_WDT
> tristate "SMA CPU5 Watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> TBD.
> To compile this driver as a module, choose M here: the
> @@ -1506,7 +1508,7 @@ config CPU5_WDT
>
> config SMSC_SCH311X_WDT
> tristate "SMSC SCH311X Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the hardware watchdog timer on the
> SMSC SCH3112, SCH3114 and SCH3116 Super IO chipset
> @@ -1518,7 +1520,7 @@ config SMSC_SCH311X_WDT
>
> config SMSC37B787_WDT
> tristate "Winbond SMsC37B787 Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the hardware watchdog component on the
> Winbond SMsC37B787 chipset as used on the NetRunner Mainboard
> @@ -1564,7 +1566,7 @@ config VIA_WDT
>
> config W83627HF_WDT
> tristate "Watchdog timer for W83627HF/W83627DHG and compatibles"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> select WATCHDOG_CORE
> help
> This is the driver for the hardware watchdog on the following
> @@ -1594,7 +1596,7 @@ config W83627HF_WDT
>
> config W83877F_WDT
> tristate "W83877F (EMACS) Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the hardware watchdog on the W83877F chipset
> as used in EMACS PC-104 motherboards (and likely others). This
> @@ -1609,7 +1611,7 @@ config W83877F_WDT
>
> config W83977F_WDT
> tristate "W83977F (PCM-5335) Watchdog Timer"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the hardware watchdog on the W83977F I/O chip
> as used in AAEON's PCM-5335 SBC (and likely others). This
> @@ -1622,7 +1624,7 @@ config W83977F_WDT
>
> config MACHZ_WDT
> tristate "ZF MachZ Watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> If you are using a ZF Micro MachZ processor, say Y here, otherwise
> N. This is the driver for the watchdog timer built-in on that
> @@ -1635,7 +1637,7 @@ config MACHZ_WDT
>
> config SBC_EPX_C3_WATCHDOG
> tristate "Winsystems SBC EPX-C3 watchdog"
> - depends on X86 || COMPILE_TEST
> + depends on (X86 || COMPILE_TEST) && HAS_IOPORT
> help
> This is the driver for the built-in watchdog timer on the EPX-C3
> Single-board computer made by Winsystems, Inc.
> @@ -2197,7 +2199,7 @@ comment "PCI-based Watchdog Cards"
>
> config PCIPCWATCHDOG
> tristate "Berkshire Products PCI-PC Watchdog"
> - depends on PCI
> + depends on PCI && HAS_IOPORT
> help
> This is the driver for the Berkshire Products PCI-PC Watchdog card.
> This card simply watches your kernel to make sure it doesn't freeze,
> @@ -2212,7 +2214,7 @@ config PCIPCWATCHDOG
>
> config WDTPCI
> tristate "PCI-WDT500/501 Watchdog timer"
> - depends on PCI
> + depends on PCI && HAS_IOPORT
> help
> If you have a PCI-WDT500/501 watchdog board, say Y here, otherwise N.
>
> --
> 2.40.1
>

2024-04-10 14:57:32

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 1/1] watchdog: add HAS_IOPORT dependencies

On Wed, Apr 10, 2024 at 10:42:01AM +0200, Niklas Schnelle wrote:
> In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
> compile time. 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]>
> ---
> Note: This patch does not depend any not-yet-mainline HAS_IOPORT changes
> and may be merged via subsystem specific trees at your earliest
> convenience.

Seems like the COMPILE_TEST / HAS_IOPORT problem is watchdog and
hwmon specific, so I'll just let it go.

Reviewed-by: Guenter Roeck <[email protected]>

Guenter

2024-04-22 08:16:43

by Niklas Schnelle

[permalink] [raw]
Subject: Re: [PATCH 1/1] watchdog: add HAS_IOPORT dependencies

On Wed, 2024-04-10 at 07:55 -0700, Guenter Roeck wrote:
> On Wed, Apr 10, 2024 at 10:42:01AM +0200, Niklas Schnelle wrote:
> > In a future patch HAS_IOPORT=n will disable inb()/outb() and friends at
> > compile time. 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]>
> > ---
> > Note: This patch does not depend any not-yet-mainline HAS_IOPORT changes
> > and may be merged via subsystem specific trees at your earliest
> > convenience.
>
> Seems like the COMPILE_TEST / HAS_IOPORT problem is watchdog and
> hwmon specific, so I'll just let it go.
>
> Reviewed-by: Guenter Roeck <[email protected]>
>
> Guenter

Thank you. What tree should this go via?

Thanks,
Niklas