2017-12-28 16:01:51

by William Breathitt Gray

[permalink] [raw]
Subject: [PATCH 0/3] Change ISA_BUS_API dependency to selection

The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
driver. The ISA bus driver does not perform any hardware interaction,
and is instead just a thin layer of software abstraction to eliminate
boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
has no dependencies and does not jeopardize the integrity of the system
when enabled, drivers should select it when the ISA bus driver
functionality is needed.

Originally, when the ISA_BUS_API Kconfig option was introduced, it
served a dual-purpose of masking drivers ISA-style devices not commonly
found for desktop systems, such as the PC/104 device drivers. This
secondary semantic was inappropriate for the ISA_BUS_API option, and
proper masking of these device drivers is now accomplished via dedicated
Kconfig options such as CONFIG_PC104.

Linus, please pickup this entire patchset through your GPIO subsystem
tree; a recursive dependency error is present if these patches are
cherry-picked (see https://lkml.org/lkml/2017/12/26/235), so they should
be merged together in the same tree.

Maciej, this patchset resolves the recursive dependency issue you
encountered, so now you should be able to submit your Winbond GPIO
driver with the ISA_BUS_API selection as desired.

William Breathitt Gray (3):
iio: Change ISA_BUS_API dependency to selection
watchdog: Change ISA_BUS_API dependency to selection
gpio: Change ISA_BUS_API dependency to selection

drivers/gpio/Kconfig | 14 +++++++++-----
drivers/iio/adc/Kconfig | 3 ++-
drivers/iio/counter/Kconfig | 3 ++-
drivers/iio/dac/Kconfig | 3 ++-
drivers/watchdog/Kconfig | 3 ++-
5 files changed, 17 insertions(+), 9 deletions(-)

--
2.15.1


2017-12-28 16:02:05

by William Breathitt Gray

[permalink] [raw]
Subject: [PATCH 1/3] iio: Change ISA_BUS_API dependency to selection

The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
driver. The ISA bus driver does not perform any hardware interaction,
and is instead just a thin layer of software abstraction to eliminate
boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
has no dependencies and does not jeopardize the integrity of the system
when enabled, drivers should select it when the ISA bus driver
functionality is needed.

Cc: Jonathan Cameron <[email protected]>
Cc: Hartmut Knaack <[email protected]>
Cc: Lars-Peter Clausen <[email protected]>
Cc: Peter Meerwald-Stadler <[email protected]>
Signed-off-by: William Breathitt Gray <[email protected]>
---
drivers/iio/adc/Kconfig | 3 ++-
drivers/iio/counter/Kconfig | 3 ++-
drivers/iio/dac/Kconfig | 3 ++-
3 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
index ef86296b8b0d..7c00e5858693 100644
--- a/drivers/iio/adc/Kconfig
+++ b/drivers/iio/adc/Kconfig
@@ -658,7 +658,8 @@ config STM32_ADC

config STX104
tristate "Apex Embedded Systems STX104 driver"
- depends on PC104 && X86 && ISA_BUS_API
+ depends on PC104 && X86
+ select ISA_BUS_API
select GPIOLIB
help
Say yes here to build support for the Apex Embedded Systems STX104
diff --git a/drivers/iio/counter/Kconfig b/drivers/iio/counter/Kconfig
index 474e1ac4e7c0..bf1e559ad7cd 100644
--- a/drivers/iio/counter/Kconfig
+++ b/drivers/iio/counter/Kconfig
@@ -7,7 +7,8 @@ menu "Counters"

config 104_QUAD_8
tristate "ACCES 104-QUAD-8 driver"
- depends on PC104 && X86 && ISA_BUS_API
+ depends on PC104 && X86
+ select ISA_BUS_API
help
Say yes here to build support for the ACCES 104-QUAD-8 quadrature
encoder counter/interface device family (104-QUAD-8, 104-QUAD-4).
diff --git a/drivers/iio/dac/Kconfig b/drivers/iio/dac/Kconfig
index 965d5c0d2468..76db0768e454 100644
--- a/drivers/iio/dac/Kconfig
+++ b/drivers/iio/dac/Kconfig
@@ -195,7 +195,8 @@ config AD7303

config CIO_DAC
tristate "Measurement Computing CIO-DAC IIO driver"
- depends on X86 && ISA_BUS_API
+ depends on X86 && (ISA_BUS || PC104)
+ select ISA_BUS_API
help
Say yes here to build support for the Measurement Computing CIO-DAC
analog output device family (CIO-DAC16, CIO-DAC08, PC104-DAC06). The
--
2.15.1

2017-12-28 16:02:16

by William Breathitt Gray

[permalink] [raw]
Subject: [PATCH 2/3] watchdog: Change ISA_BUS_API dependency to selection

The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
driver. The ISA bus driver does not perform any hardware interaction,
and is instead just a thin layer of software abstraction to eliminate
boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
has no dependencies and does not jeopardize the integrity of the system
when enabled, drivers should select it when the ISA bus driver
functionality is needed.

Cc: Wim Van Sebroeck <[email protected]>
Cc: Guenter Roeck <[email protected]>
Signed-off-by: William Breathitt Gray <[email protected]>
---
drivers/watchdog/Kconfig | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index ca200d1f310a..c05d5d20eebf 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -864,7 +864,8 @@ config ALIM7101_WDT

config EBC_C384_WDT
tristate "WinSystems EBC-C384 Watchdog Timer"
- depends on X86 && ISA_BUS_API
+ depends on X86
+ select ISA_BUS_API
select WATCHDOG_CORE
help
Enables watchdog timer support for the watchdog timer on the
--
2.15.1

2017-12-28 16:02:29

by William Breathitt Gray

[permalink] [raw]
Subject: [PATCH 3/3] gpio: Change ISA_BUS_API dependency to selection

The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
driver. The ISA bus driver does not perform any hardware interaction,
and is instead just a thin layer of software abstraction to eliminate
boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
has no dependencies and does not jeopardize the integrity of the system
when enabled, drivers should select it when the ISA bus driver
functionality is needed.

Cc: Linus Walleij <[email protected]>
Signed-off-by: William Breathitt Gray <[email protected]>
---
drivers/gpio/Kconfig | 14 +++++++++-----
1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 395669bfcc26..36ad9ce3dc58 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -590,7 +590,8 @@ menu "Port-mapped I/O GPIO drivers"

config GPIO_104_DIO_48E
tristate "ACCES 104-DIO-48E GPIO support"
- depends on PC104 && ISA_BUS_API
+ depends on PC104
+ select ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the ACCES 104-DIO-48E series (104-DIO-48E,
@@ -600,7 +601,8 @@ config GPIO_104_DIO_48E

config GPIO_104_IDIO_16
tristate "ACCES 104-IDIO-16 GPIO support"
- depends on PC104 && ISA_BUS_API
+ depends on PC104
+ select ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the ACCES 104-IDIO-16 family (104-IDIO-16,
@@ -611,7 +613,8 @@ config GPIO_104_IDIO_16

config GPIO_104_IDI_48
tristate "ACCES 104-IDI-48 GPIO support"
- depends on PC104 && ISA_BUS_API
+ depends on PC104
+ select ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the ACCES 104-IDI-48 family (104-IDI-48A,
@@ -631,7 +634,8 @@ config GPIO_F7188X

config GPIO_GPIO_MM
tristate "Diamond Systems GPIO-MM GPIO support"
- depends on PC104 && ISA_BUS_API
+ depends on PC104
+ select ISA_BUS_API
help
Enables GPIO support for the Diamond Systems GPIO-MM and GPIO-MM-12.

@@ -700,7 +704,7 @@ config GPIO_TS5500

config GPIO_WS16C48
tristate "WinSystems WS16C48 GPIO support"
- depends on ISA_BUS_API
+ select ISA_BUS_API
select GPIOLIB_IRQCHIP
help
Enables GPIO support for the WinSystems WS16C48. The base port
--
2.15.1

2017-12-28 17:03:29

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 0/3] Change ISA_BUS_API dependency to selection

On 12/28/2017 08:01 AM, William Breathitt Gray wrote:
> The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
> driver. The ISA bus driver does not perform any hardware interaction,
> and is instead just a thin layer of software abstraction to eliminate
> boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
> has no dependencies and does not jeopardize the integrity of the system
> when enabled, drivers should select it when the ISA bus driver
> functionality is needed.
>
> Originally, when the ISA_BUS_API Kconfig option was introduced, it
> served a dual-purpose of masking drivers ISA-style devices not commonly
> found for desktop systems, such as the PC/104 device drivers. This
> secondary semantic was inappropriate for the ISA_BUS_API option, and
> proper masking of these device drivers is now accomplished via dedicated
> Kconfig options such as CONFIG_PC104.
>
> Linus, please pickup this entire patchset through your GPIO subsystem
> tree; a recursive dependency error is present if these patches are
> cherry-picked (see https://lkml.org/lkml/2017/12/26/235), so they should
> be merged together in the same tree.
>
> Maciej, this patchset resolves the recursive dependency issue you
> encountered, so now you should be able to submit your Winbond GPIO
> driver with the ISA_BUS_API selection as desired.
>
> William Breathitt Gray (3):
> iio: Change ISA_BUS_API dependency to selection
> watchdog: Change ISA_BUS_API dependency to selection
> gpio: Change ISA_BUS_API dependency to selection
>
> drivers/gpio/Kconfig | 14 +++++++++-----
> drivers/iio/adc/Kconfig | 3 ++-
> drivers/iio/counter/Kconfig | 3 ++-
> drivers/iio/dac/Kconfig | 3 ++-
> drivers/watchdog/Kconfig | 3 ++-
> 5 files changed, 17 insertions(+), 9 deletions(-)
>
But why keep "config ISA_BUS" ? Its only purpose is to select ISA_BUS_API.

Guenter

2017-12-28 18:37:40

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH 2/3] watchdog: Change ISA_BUS_API dependency to selection

On 12/28/2017 08:02 AM, William Breathitt Gray wrote:
> The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
> driver. The ISA bus driver does not perform any hardware interaction,
> and is instead just a thin layer of software abstraction to eliminate
> boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
> has no dependencies and does not jeopardize the integrity of the system
> when enabled, drivers should select it when the ISA bus driver
> functionality is needed.
>
> Cc: Wim Van Sebroeck <[email protected]>
> Cc: Guenter Roeck <[email protected]>
> Signed-off-by: William Breathitt Gray <[email protected]>

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

> ---
> drivers/watchdog/Kconfig | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index ca200d1f310a..c05d5d20eebf 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -864,7 +864,8 @@ config ALIM7101_WDT
>
> config EBC_C384_WDT
> tristate "WinSystems EBC-C384 Watchdog Timer"
> - depends on X86 && ISA_BUS_API
> + depends on X86
> + select ISA_BUS_API
> select WATCHDOG_CORE
> help
> Enables watchdog timer support for the watchdog timer on the
>

2017-12-28 22:53:38

by Maciej S. Szmigiero

[permalink] [raw]
Subject: Re: [PATCH 0/3] Change ISA_BUS_API dependency to selection

On 28.12.2017 17:01, William Breathitt Gray wrote:
(..)
>
> Linus, please pickup this entire patchset through your GPIO subsystem
> tree; a recursive dependency error is present if these patches are
> cherry-picked (see https://lkml.org/lkml/2017/12/26/235), so they should
> be merged together in the same tree.
>
> Maciej, this patchset resolves the recursive dependency issue you
> encountered, so now you should be able to submit your Winbond GPIO
> driver with the ISA_BUS_API selection as desired.

Thanks for these patches, will submit the driver as soon as I
integrate Andy's comments.

Maciej

2017-12-29 04:25:51

by William Breathitt Gray

[permalink] [raw]
Subject: Re: [PATCH 0/3] Change ISA_BUS_API dependency to selection

On Thu, Dec 28, 2017 at 09:03:22AM -0800, Guenter Roeck wrote:
>On 12/28/2017 08:01 AM, William Breathitt Gray wrote:
>> The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
>> driver. The ISA bus driver does not perform any hardware interaction,
>> and is instead just a thin layer of software abstraction to eliminate
>> boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
>> has no dependencies and does not jeopardize the integrity of the system
>> when enabled, drivers should select it when the ISA bus driver
>> functionality is needed.
>>
>> Originally, when the ISA_BUS_API Kconfig option was introduced, it
>> served a dual-purpose of masking drivers ISA-style devices not commonly
>> found for desktop systems, such as the PC/104 device drivers. This
>> secondary semantic was inappropriate for the ISA_BUS_API option, and
>> proper masking of these device drivers is now accomplished via dedicated
>> Kconfig options such as CONFIG_PC104.
>>
>> Linus, please pickup this entire patchset through your GPIO subsystem
>> tree; a recursive dependency error is present if these patches are
>> cherry-picked (see https://lkml.org/lkml/2017/12/26/235), so they should
>> be merged together in the same tree.
>>
>> Maciej, this patchset resolves the recursive dependency issue you
>> encountered, so now you should be able to submit your Winbond GPIO
>> driver with the ISA_BUS_API selection as desired.
>>
>> William Breathitt Gray (3):
>> iio: Change ISA_BUS_API dependency to selection
>> watchdog: Change ISA_BUS_API dependency to selection
>> gpio: Change ISA_BUS_API dependency to selection
>>
>> drivers/gpio/Kconfig | 14 +++++++++-----
>> drivers/iio/adc/Kconfig | 3 ++-
>> drivers/iio/counter/Kconfig | 3 ++-
>> drivers/iio/dac/Kconfig | 3 ++-
>> drivers/watchdog/Kconfig | 3 ++-
>> 5 files changed, 17 insertions(+), 9 deletions(-)
>>
>But why keep "config ISA_BUS" ? Its only purpose is to select ISA_BUS_API.

I intend to have CONFIG_ISA_BUS now serve purely as a mask for true ISA
device drivers (e.g. CIO_DAC within this patchset). The legacy
CONFIG_ISA has a X86_32 dependency which prevents its use for X86_64
builds -- and unfortunately existing drivers depending on CONFIG_ISA
expect the X86_32 arch, thus making the task of decoupling that arch
dependency difficult. I'm hoping CONFIG_ISA_BUS can therefore supersede
the legacy CONFIG_ISA because an ISA bus can physically exist on a
non-X86_32 system.

However, there is no longer a need to select ISA_BUS_API, so that should
be removed, as well as the help text updated to match the changes. I'll
make these updates and submit a version 2 of this patchset some time
tomorrow then.

William Breathitt Gray

>
>Guenter

2018-01-02 09:18:07

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 3/3] gpio: Change ISA_BUS_API dependency to selection

On Thu, Dec 28, 2017 at 5:02 PM, William Breathitt Gray
<[email protected]> wrote:

> The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
> driver. The ISA bus driver does not perform any hardware interaction,
> and is instead just a thin layer of software abstraction to eliminate
> boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
> has no dependencies and does not jeopardize the integrity of the system
> when enabled, drivers should select it when the ISA bus driver
> functionality is needed.
>
> Cc: Linus Walleij <[email protected]>
> Signed-off-by: William Breathitt Gray <[email protected]>

Patch applied.

Yours,
Linus Walleij

2018-01-02 09:19:40

by Linus Walleij

[permalink] [raw]
Subject: Re: [PATCH 3/3] gpio: Change ISA_BUS_API dependency to selection

On Tue, Jan 2, 2018 at 10:18 AM, Linus Walleij <[email protected]> wrote:
> On Thu, Dec 28, 2017 at 5:02 PM, William Breathitt Gray
> <[email protected]> wrote:
>
>> The ISA_BUS_API Kconfig option enables the compilation of the ISA bus
>> driver. The ISA bus driver does not perform any hardware interaction,
>> and is instead just a thin layer of software abstraction to eliminate
>> boilerplate code common to ISA-style device drivers. Since ISA_BUS_API
>> has no dependencies and does not jeopardize the integrity of the system
>> when enabled, drivers should select it when the ISA bus driver
>> functionality is needed.
>>
>> Cc: Linus Walleij <[email protected]>
>> Signed-off-by: William Breathitt Gray <[email protected]>
>
> Patch applied.

Ooops there are newer patches, backed it out.

Yours,
Linus Walleij