Re: [PATCH 1/4] isa: Allow ISA-style drivers on modern systems

From: William Breathitt Gray
Date: Mon May 23 2016 - 13:43:31 EST


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