* [PATCH 1/4] isa: Allow ISA-style drivers on modern systems
2016-05-23 14:58 [PATCH 0/4] Allow ISA-style drivers on modern systems William Breathitt Gray
@ 2016-05-23 14:58 ` William Breathitt Gray
2016-05-23 17:21 ` Guenter Roeck
2016-05-23 18:03 ` Linus Torvalds
2016-05-23 14:58 ` [PATCH 2/4] gpio: Allow PC/104 devices on X86_64 William Breathitt Gray
` (2 subsequent siblings)
3 siblings, 2 replies; 8+ messages in thread
From: William Breathitt Gray @ 2016-05-23 14:58 UTC (permalink / raw)
To: gregkh, akpm
Cc: x86, linux-next, linux-gpio, linux-iio, linux-kernel,
linux-watchdog, William Breathitt Gray, Linus Torvalds
Several modern devices, such as PC/104 cards, are expected to run on
modern systems via an ISA bus interface. Since ISA is a legacy interface
for most modern architectures, ISA support should remain disabled in
general. Support for ISA-style drivers should be enabled on a per driver
basis.
To allow ISA-style drivers on modern systems, this patch introduces the
ISA_BUS_API and ISA_BUS Kconfig options. The X86 ISA bus driver will now
build conditionally on the ISA_BUS_API Kconfig option, which defaults to
the legacy ISA Kconfig option. The ISA_BUS Kconfig option allows the
ISA_BUS_API Kconfig option to be selected on architectures which do not
enable ISA (e.g. X86_64).
For now, the ISA_BUS Kconfig option is only be available on X86
architectures. Support for other architectures may be added as required.
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
---
arch/x86/Kconfig | 13 +++++++++++++
drivers/base/Makefile | 2 +-
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 0a7b885..a41c0b8 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2439,6 +2439,19 @@ config PCI_CNB20LE_QUIRK
source "drivers/pci/Kconfig"
+config ISA_BUS_API
+ def_bool ISA
+
+config ISA_BUS
+ bool "ISA-style bus support on modern systems" if (X86 && EXPERT)
+ default y
+ select ISA_BUS_API
+ help
+ Enables ISA-style drivers on modern systems. This is necessary to
+ support PC/104 devices on X86_64 platforms.
+
+ If unsure, say Y.
+
# x86_64 have no ISA slots, but can have ISA-style DMA.
config ISA_DMA_API
bool "ISA-style DMA support" if (X86_64 && EXPERT)
diff --git a/drivers/base/Makefile b/drivers/base/Makefile
index 6b2a84e..2609ba2 100644
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -10,7 +10,7 @@ obj-$(CONFIG_DMA_CMA) += dma-contiguous.o
obj-y += power/
obj-$(CONFIG_HAS_DMA) += dma-mapping.o
obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
-obj-$(CONFIG_ISA) += isa.o
+obj-$(CONFIG_ISA_BUS_API) += isa.o
obj-$(CONFIG_FW_LOADER) += firmware_class.o
obj-$(CONFIG_NUMA) += node.o
obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
--
2.7.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] isa: Allow ISA-style drivers on modern systems
2016-05-23 14:58 ` [PATCH 1/4] isa: " William Breathitt Gray
@ 2016-05-23 17:21 ` Guenter Roeck
2016-05-23 17:43 ` William Breathitt Gray
2016-05-23 18:03 ` Linus Torvalds
1 sibling, 1 reply; 8+ messages in thread
From: Guenter Roeck @ 2016-05-23 17:21 UTC (permalink / raw)
To: William Breathitt Gray
Cc: gregkh, akpm, x86, linux-next, linux-gpio, linux-iio,
linux-kernel, linux-watchdog, Linus Torvalds
On Mon, May 23, 2016 at 10:58:41AM -0400, William Breathitt Gray wrote:
> Several modern devices, such as PC/104 cards, are expected to run on
> modern systems via an ISA bus interface. Since ISA is a legacy interface
> for most modern architectures, ISA support should remain disabled in
> general. Support for ISA-style drivers should be enabled on a per driver
> basis.
>
> To allow ISA-style drivers on modern systems, this patch introduces the
> ISA_BUS_API and ISA_BUS Kconfig options. The X86 ISA bus driver will now
> build conditionally on the ISA_BUS_API Kconfig option, which defaults to
> the legacy ISA Kconfig option. The ISA_BUS Kconfig option allows the
> ISA_BUS_API Kconfig option to be selected on architectures which do not
> enable ISA (e.g. X86_64).
>
> For now, the ISA_BUS Kconfig option is only be available on X86
> architectures. Support for other architectures may be added as required.
>
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
> ---
> arch/x86/Kconfig | 13 +++++++++++++
> drivers/base/Makefile | 2 +-
> 2 files changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
> index 0a7b885..a41c0b8 100644
> --- a/arch/x86/Kconfig
> +++ b/arch/x86/Kconfig
> @@ -2439,6 +2439,19 @@ config PCI_CNB20LE_QUIRK
>
> source "drivers/pci/Kconfig"
>
> +config ISA_BUS_API
> + def_bool ISA
> +
> +config ISA_BUS
> + bool "ISA-style bus support on modern systems" if (X86 && EXPERT)
> + default y
Sure you want it enabled by default ?
> + select ISA_BUS_API
> + help
> + Enables ISA-style drivers on modern systems. This is necessary to
> + support PC/104 devices on X86_64 platforms.
> +
> + If unsure, say Y.
> +
> # x86_64 have no ISA slots, but can have ISA-style DMA.
> config ISA_DMA_API
> bool "ISA-style DMA support" if (X86_64 && EXPERT)
> diff --git a/drivers/base/Makefile b/drivers/base/Makefile
> index 6b2a84e..2609ba2 100644
> --- a/drivers/base/Makefile
> +++ b/drivers/base/Makefile
> @@ -10,7 +10,7 @@ obj-$(CONFIG_DMA_CMA) += dma-contiguous.o
> obj-y += power/
> obj-$(CONFIG_HAS_DMA) += dma-mapping.o
> obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
> -obj-$(CONFIG_ISA) += isa.o
> +obj-$(CONFIG_ISA_BUS_API) += isa.o
Unless I am missing something, this is insufficient, and I am a bit surprised
that it actually works. include/linux/isa.h declares isa_register_driver()
and isa_unregister_driver() as dummies if CONFIG_ISA is not enabled.
Doesn't this cause a compile error ? Confused.
Thanks,
Guenter
> obj-$(CONFIG_FW_LOADER) += firmware_class.o
> obj-$(CONFIG_NUMA) += node.o
> obj-$(CONFIG_MEMORY_HOTPLUG_SPARSE) += memory.o
> --
> 2.7.3
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] isa: Allow ISA-style drivers on modern systems
2016-05-23 17:21 ` Guenter Roeck
@ 2016-05-23 17:43 ` William Breathitt Gray
0 siblings, 0 replies; 8+ messages in thread
From: William Breathitt Gray @ 2016-05-23 17:43 UTC (permalink / raw)
To: Guenter Roeck
Cc: gregkh, akpm, x86, linux-next, linux-gpio, linux-iio,
linux-kernel, linux-watchdog, Linus Torvalds
On Mon, May 23, 2016 at 10:21:25AM -0700, Guenter Roeck wrote:
>On Mon, May 23, 2016 at 10:58:41AM -0400, William Breathitt Gray wrote:
>> +config ISA_BUS_API
>> + def_bool ISA
>> +
>> +config ISA_BUS
>> + bool "ISA-style bus support on modern systems" if (X86 && EXPERT)
>> + default y
>
>Sure you want it enabled by default ?
Since the X86 ISA bus driver is more of an abstraction interface and
doesn't perform any hardware operations, I believe it's safe enough to
enable by default, thus allowing drivers dependent on it to show up for
selection in menuconfig.
>> + select ISA_BUS_API
>> + help
>> + Enables ISA-style drivers on modern systems. This is necessary to
>> + support PC/104 devices on X86_64 platforms.
>> +
>> + If unsure, say Y.
>> +
>> # x86_64 have no ISA slots, but can have ISA-style DMA.
>> config ISA_DMA_API
>> bool "ISA-style DMA support" if (X86_64 && EXPERT)
>> diff --git a/drivers/base/Makefile b/drivers/base/Makefile
>> index 6b2a84e..2609ba2 100644
>> --- a/drivers/base/Makefile
>> +++ b/drivers/base/Makefile
>> @@ -10,7 +10,7 @@ obj-$(CONFIG_DMA_CMA) += dma-contiguous.o
>> obj-y += power/
>> obj-$(CONFIG_HAS_DMA) += dma-mapping.o
>> obj-$(CONFIG_HAVE_GENERIC_DMA_COHERENT) += dma-coherent.o
>> -obj-$(CONFIG_ISA) += isa.o
>> +obj-$(CONFIG_ISA_BUS_API) += isa.o
>
>Unless I am missing something, this is insufficient, and I am a bit surprised
>that it actually works. include/linux/isa.h declares isa_register_driver()
>and isa_unregister_driver() as dummies if CONFIG_ISA is not enabled.
>Doesn't this cause a compile error ? Confused.
You are correct: CONFIG_ISA in include/linux/isa.h should be
CONFIG_ISA_BUS_API. I'll add the change and submit version 2 of this
patchset after retesting.
William Breathitt Gray
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 1/4] isa: Allow ISA-style drivers on modern systems
2016-05-23 14:58 ` [PATCH 1/4] isa: " William Breathitt Gray
2016-05-23 17:21 ` Guenter Roeck
@ 2016-05-23 18:03 ` Linus Torvalds
1 sibling, 0 replies; 8+ messages in thread
From: Linus Torvalds @ 2016-05-23 18:03 UTC (permalink / raw)
To: William Breathitt Gray
Cc: Greg Kroah-Hartman, Andrew Morton, the arch/x86 maintainers,
linux-next, linux-gpio@vger.kernel.org, linux-iio,
Linux Kernel Mailing List, Linux Watchdog Mailing List
On Mon, May 23, 2016 at 7:58 AM, William Breathitt Gray
<vilhelm.gray@gmail.com> wrote:
>
> For now, the ISA_BUS Kconfig option is only be available on X86
> architectures. Support for other architectures may be added as required.
So I'd prefer to see that
> +config ISA_BUS_API
> + def_bool ISA
part in arch/Kconfig.
Why?
Because other architectures _already_ define that ISA symbol, and we
want the "ISA_BUS_API" to be a complete superset of ISA.
So whenever ISA is enabled, ISA_BUS_API should be enabled.
And the way you did that, that's not true. Now, if you were to enable
ISA on ARM, you'd not get ISA_BUS_API. And that sounds insane to me.
It also sounds *wrong* because it effectively changes the meaning of
this:
--- a/drivers/base/Makefile
+++ b/drivers/base/Makefile
@@ -10,7 +10,7 @@ obj-$(CONFIG_DMA_CMA) += dma-contiguous.o
-obj-$(CONFIG_ISA) += isa.o
+obj-$(CONFIG_ISA_BUS_API) += isa.o
where now that "isa.c" file gets built only on x86, whereas it *used*
to get built whenever ISA was enabled.
So the reason I suggested a separate ISA_BUS_API config option (that
then a particular architecture can choose to enable, in this case the
x86 choice of selecting ISA_BUS) was _exactly_ this issue. The plain
"ISA" config variable is not limited to x86, and the new subset of it
(the ISA_BUS_API) thus also must not be limited to just x86.
Linus
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/4] gpio: Allow PC/104 devices on X86_64
2016-05-23 14:58 [PATCH 0/4] Allow ISA-style drivers on modern systems William Breathitt Gray
2016-05-23 14:58 ` [PATCH 1/4] isa: " William Breathitt Gray
@ 2016-05-23 14:58 ` William Breathitt Gray
[not found] ` <cover.1464014576.git.vilhelm.gray-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2016-05-23 14:59 ` [PATCH 4/4] watchdog: ebc-c384_wdt: " William Breathitt Gray
3 siblings, 0 replies; 8+ messages in thread
From: William Breathitt Gray @ 2016-05-23 14:58 UTC (permalink / raw)
To: gregkh, akpm
Cc: x86, linux-next, linux-gpio, linux-iio, linux-kernel,
linux-watchdog, William Breathitt Gray, Guenter Roeck,
Linus Walleij
With the introduction of the ISA_BUS_API Kconfig option, ISA-style
drivers may be built for X86_64 architectures. This patch changes the
ISA Kconfig option dependency of the PC/104 drivers to ISA_BUS_API, thus
allowing them to build for X86_64 as they are expected to.
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
---
drivers/gpio/Kconfig | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 48da857..dc6da77 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -530,7 +530,7 @@ menu "Port-mapped I/O GPIO drivers"
config GPIO_104_DIO_48E
tristate "ACCES 104-DIO-48E GPIO support"
- depends on ISA
+ depends on ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
@@ -540,7 +540,7 @@ config GPIO_104_DIO_48E
config GPIO_104_IDIO_16
tristate "ACCES 104-IDIO-16 GPIO support"
- depends on ISA
+ depends on ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
@@ -551,7 +551,7 @@ config GPIO_104_IDIO_16
config GPIO_104_IDI_48
tristate "ACCES 104-IDI-48 GPIO support"
- depends on ISA
+ depends on ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
@@ -627,7 +627,7 @@ config GPIO_TS5500
config GPIO_WS16C48
tristate "WinSystems WS16C48 GPIO support"
- depends on ISA
+ depends on ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the WinSystems WS16C48. The base port
--
2.7.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
[parent not found: <cover.1464014576.git.vilhelm.gray-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>]
* [PATCH 3/4] iio: stx104: Allow build for X86_64
[not found] ` <cover.1464014576.git.vilhelm.gray-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2016-05-23 14:59 ` William Breathitt Gray
0 siblings, 0 replies; 8+ messages in thread
From: William Breathitt Gray @ 2016-05-23 14:59 UTC (permalink / raw)
To: gregkh-hQyY1W1yCW8ekmWlsbkhG0B+6BGkLq7r,
akpm-de/tnXTf+JLsfHDXvbKv3WD2FQJk+8+b
Cc: x86-DgEjT+Ai2ygdnm+yROfE0A, linux-next-u79uwXL29TY76Z2rM5mHXA,
linux-gpio-u79uwXL29TY76Z2rM5mHXA,
linux-iio-u79uwXL29TY76Z2rM5mHXA,
linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-watchdog-u79uwXL29TY76Z2rM5mHXA, William Breathitt Gray,
Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
Jonathan Cameron
With the introduction of the ISA_BUS_API Kconfig option, ISA-style
drivers may be built for X86_64 architectures. This patch changes the
ISA Kconfig option dependency of the Apex Embedded Systems STX104 DAC
driver to ISA_BUS_API, thus allowing it to build for X86_64 as it is
expected to.
Cc: Hartmut Knaack <knaack.h-Mmb7MZpHnFY@public.gmane.org>
Cc: Lars-Peter Clausen <lars-Qo5EllUWu/uELgA04lAiVw@public.gmane.org>
Cc: Peter Meerwald-Stadler <pmeerw-jW+XmwGofnusTnJN9+BGXg@public.gmane.org>
Cc: Jonathan Cameron <jic23-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
Signed-off-by: William Breathitt Gray <vilhelm.gray-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
---
drivers/iio/dac/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/iio/dac/Kconfig b/drivers/iio/dac/Kconfig
index e63b957..315442f 100644
--- a/drivers/iio/dac/Kconfig
+++ b/drivers/iio/dac/Kconfig
@@ -247,7 +247,7 @@ config MCP4922
config STX104
tristate "Apex Embedded Systems STX104 DAC driver"
- depends on X86 && ISA
+ depends on ISA_BUS_API
help
Say yes here to build support for the 2-channel DAC on the Apex
Embedded Systems STX104 integrated analog PC/104 card. The base port
--
2.7.3
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH 4/4] watchdog: ebc-c384_wdt: Allow build for X86_64
2016-05-23 14:58 [PATCH 0/4] Allow ISA-style drivers on modern systems William Breathitt Gray
` (2 preceding siblings ...)
[not found] ` <cover.1464014576.git.vilhelm.gray-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2016-05-23 14:59 ` William Breathitt Gray
3 siblings, 0 replies; 8+ messages in thread
From: William Breathitt Gray @ 2016-05-23 14:59 UTC (permalink / raw)
To: gregkh, akpm
Cc: x86, linux-next, linux-gpio, linux-iio, linux-kernel,
linux-watchdog, William Breathitt Gray, Guenter Roeck,
Wim Van Sebroeck
With the introduction of the ISA_BUS_API Kconfig option, ISA-style
drivers may be built for X86_64 architectures. This patch changes the
ISA Kconfig option dependency of the WinSystems EBC-C384 watchdog timer
driver to ISA_BUS_API, thus allowing it to build for X86_64 as it is
expected to.
Cc: Guenter Roeck <linux@roeck-us.net>
Cc: Wim Van Sebroeck <wim@iguana.be>
Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
---
drivers/watchdog/Kconfig | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index b54f26c..3938e2d 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -746,7 +746,7 @@ config ALIM7101_WDT
config EBC_C384_WDT
tristate "WinSystems EBC-C384 Watchdog Timer"
- depends on X86 && ISA
+ depends on ISA_BUS_API
select WATCHDOG_CORE
help
Enables watchdog timer support for the watchdog timer on the
--
2.7.3
^ permalink raw reply related [flat|nested] 8+ messages in thread