All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] base: isa: Remove X86_32 dependency
@ 2016-01-21 15:56 William Breathitt Gray
  2016-01-21 19:40 ` H. Peter Anvin
  2016-01-21 21:18 ` kbuild test robot
  0 siblings, 2 replies; 7+ messages in thread
From: William Breathitt Gray @ 2016-01-21 15:56 UTC (permalink / raw)
  To: tglx, mingo, hpa; +Cc: gregkh, x86, linux-kernel

Many motherboards utilize a LPC to ISA bridge in order to decode
ISA-style port-mapped I/O addresses. This is particularly true for
embedded motherboards supporting the PC/104 bus (a bus specification
derived from ISA).

These motherboards are now commonly running 64-bit x86 processors. The
X86_32 dependency should be removed from the ISA configuration option in
order to support these newer motherboards.

Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>
---
 arch/x86/Kconfig | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 4a10ba9..d82b4b1 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -2443,8 +2443,6 @@ config ISA_DMA_API
 	  Enables ISA-style DMA support for devices requiring such controllers.
 	  If unsure, say Y.
 
-if X86_32
-
 config ISA
 	bool "ISA support"
 	---help---
@@ -2454,6 +2452,8 @@ config ISA
 	  (MCA) or VESA.  ISA is an older system, now being displaced by PCI;
 	  newer boards don't support it.  If you have ISA, say Y, otherwise N.
 
+if X86_32
+
 config EISA
 	bool "EISA support"
 	depends on ISA
-- 
2.4.10

^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] base: isa: Remove X86_32 dependency
  2016-01-21 15:56 [PATCH] base: isa: Remove X86_32 dependency William Breathitt Gray
@ 2016-01-21 19:40 ` H. Peter Anvin
  2016-01-21 23:43   ` William Breathitt Gray
  2016-01-21 21:18 ` kbuild test robot
  1 sibling, 1 reply; 7+ messages in thread
From: H. Peter Anvin @ 2016-01-21 19:40 UTC (permalink / raw)
  To: William Breathitt Gray, tglx, mingo; +Cc: gregkh, x86, linux-kernel

On 01/21/16 07:56, William Breathitt Gray wrote:
> Many motherboards utilize a LPC to ISA bridge in order to decode
> ISA-style port-mapped I/O addresses. This is particularly true for
> embedded motherboards supporting the PC/104 bus (a bus specification
> derived from ISA).
> 
> These motherboards are now commonly running 64-bit x86 processors. The
> X86_32 dependency should be removed from the ISA configuration option in
> order to support these newer motherboards.
> 
> Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com>

CONFIG_ISA is mainly used to exclude drivers that are for ISA-specific
devices.

However, PC/104 is indeed an actual ISA parallel bus, and as you say
widely used in embedded systems.  However, I would like to see if there
are anything hidden with !CONFIG_ISA which makes sense in PC104 systems.

	-hpa

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] base: isa: Remove X86_32 dependency
  2016-01-21 15:56 [PATCH] base: isa: Remove X86_32 dependency William Breathitt Gray
  2016-01-21 19:40 ` H. Peter Anvin
@ 2016-01-21 21:18 ` kbuild test robot
  1 sibling, 0 replies; 7+ messages in thread
From: kbuild test robot @ 2016-01-21 21:18 UTC (permalink / raw)
  To: William Breathitt Gray
  Cc: kbuild-all, tglx, mingo, hpa, gregkh, x86, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 16362 bytes --]

Hi William,

[auto build test ERROR on tip/x86/core]
[also build test ERROR on v4.4 next-20160121]
[if your patch is applied to the wrong git tree, please drop us a note to help improving the system]

url:    https://github.com/0day-ci/linux/commits/William-Breathitt-Gray/base-isa-Remove-X86_32-dependency/20160121-235906
config: x86_64-allmodconfig (attached as .config)
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All error/warnings (new ones prefixed by >>):

   In file included from sound/isa/sscape.c:34:0:
   sound/isa/sscape.c: In function 'sscape_upload_microcode':
>> include/linux/kern_levels.h:4:18: warning: format '%d' expects argument of type 'int', but argument 5 has type 'size_t {aka const long unsigned int}' [-Wformat=]
    #define KERN_SOH "\001"  /* ASCII Start Of Header */
                     ^
   include/sound/core.h:322:38: note: in definition of macro 'snd_printk'
     __snd_printk(0, __FILE__, __LINE__, fmt, ##args)
                                         ^
   include/linux/kern_levels.h:13:19: note: in expansion of macro 'KERN_SOH'
    #define KERN_INFO KERN_SOH "6" /* informational */
                      ^
>> sound/isa/sscape.c:594:14: note: in expansion of macro 'KERN_INFO'
      snd_printk(KERN_INFO "sscape: MIDI firmware loaded %d KBs\n",
                 ^
--
   arch/x86/mm/extable.c:23:13: sparse: undefined identifier 'SEGMENT_IS_PNP_CODE'
   In file included from include/uapi/linux/stddef.h:1:0,
                    from include/linux/stddef.h:4,
                    from include/uapi/linux/posix_types.h:4,
                    from include/uapi/linux/types.h:13,
                    from include/linux/types.h:5,
                    from include/linux/list.h:4,
                    from include/linux/module.h:9,
                    from arch/x86/mm/extable.c:1:
   arch/x86/mm/extable.c: In function 'fixup_exception':
>> arch/x86/mm/extable.c:23:15: error: implicit declaration of function 'SEGMENT_IS_PNP_CODE' [-Werror=implicit-function-declaration]
     if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
                  ^
   include/linux/compiler.h:166:42: note: in definition of macro 'unlikely'
    # define unlikely(x) __builtin_expect(!!(x), 0)
                                             ^
   cc1: some warnings being treated as errors
--
   drivers/pnp/pnpbios/bioscalls.c:27:3: sparse: symbol 'pnp_bios_callpoint' was not declared. Should it be static?
   drivers/pnp/pnpbios/bioscalls.c:70:15: sparse: symbol 'pnp_bios_fault_esp' was not declared. Should it be static?
   drivers/pnp/pnpbios/bioscalls.c:71:15: sparse: symbol 'pnp_bios_fault_eip' was not declared. Should it be static?
   drivers/pnp/pnpbios/bioscalls.c:72:15: sparse: symbol 'pnp_bios_is_utter_crap' was not declared. Should it be static?
   drivers/pnp/pnpbios/bioscalls.c:259:62: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:300:57: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:332:66: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:364:72: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:381:68: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:405:65: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:430:54: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:456:50: sparse: undefined identifier 'PNP_TS1'
   drivers/pnp/pnpbios/bioscalls.c:477:38: sparse: undefined identifier 'PNP_CS16'
   drivers/pnp/pnpbios/bioscalls.c:483:36: sparse: undefined identifier 'GDT_ENTRY_PNPBIOS_CS32'
   drivers/pnp/pnpbios/bioscalls.c:485:36: sparse: undefined identifier 'GDT_ENTRY_PNPBIOS_CS16'
   drivers/pnp/pnpbios/bioscalls.c:487:36: sparse: undefined identifier 'GDT_ENTRY_PNPBIOS_DS'
   drivers/pnp/pnpbios/bioscalls.c: In function 'call_pnp_bios':
>> drivers/pnp/pnpbios/bioscalls.c:106:34: error: 'PNP_TS1' undeclared (first use in this function)
      Q2_SET_SEL(smp_processor_id(), PNP_TS1, ts1_base, ts1_size);
                                     ^
   drivers/pnp/pnpbios/bioscalls.c:58:22: note: in definition of macro 'Q2_SET_SEL'
     set_desc_base(&gdt[(selname) >> 3], (u32)(address)); \
                         ^
   drivers/pnp/pnpbios/bioscalls.c:106:34: note: each undeclared identifier is reported only once for each function it appears in
      Q2_SET_SEL(smp_processor_id(), PNP_TS1, ts1_base, ts1_size);
                                     ^
   drivers/pnp/pnpbios/bioscalls.c:58:22: note: in definition of macro 'Q2_SET_SEL'
     set_desc_base(&gdt[(selname) >> 3], (u32)(address)); \
                         ^
>> drivers/pnp/pnpbios/bioscalls.c:58:38: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     set_desc_base(&gdt[(selname) >> 3], (u32)(address)); \
                                         ^
>> drivers/pnp/pnpbios/bioscalls.c:106:3: note: in expansion of macro 'Q2_SET_SEL'
      Q2_SET_SEL(smp_processor_id(), PNP_TS1, ts1_base, ts1_size);
      ^
>> drivers/pnp/pnpbios/bioscalls.c:108:34: error: 'PNP_TS2' undeclared (first use in this function)
      Q2_SET_SEL(smp_processor_id(), PNP_TS2, ts2_base, ts2_size);
                                     ^
   drivers/pnp/pnpbios/bioscalls.c:58:22: note: in definition of macro 'Q2_SET_SEL'
     set_desc_base(&gdt[(selname) >> 3], (u32)(address)); \
                         ^
>> drivers/pnp/pnpbios/bioscalls.c:58:38: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     set_desc_base(&gdt[(selname) >> 3], (u32)(address)); \
                                         ^
   drivers/pnp/pnpbios/bioscalls.c:108:3: note: in expansion of macro 'Q2_SET_SEL'
      Q2_SET_SEL(smp_processor_id(), PNP_TS2, ts2_base, ts2_size);
      ^
>> drivers/pnp/pnpbios/bioscalls.c:133:13: error: 'PNP_CS32' undeclared (first use in this function)
            "i"(PNP_CS32), "i"(0)
                ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_dev_node_info':
   drivers/pnp/pnpbios/bioscalls.c:259:55: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_NUM_SYS_DEV_NODES, 0, PNP_TS1, 2,
                                                          ^
>> drivers/pnp/pnpbios/bioscalls.c:260:20: error: 'PNP_DS' undeclared (first use in this function)
              PNP_TS1, PNP_DS, 0, 0, data,
                       ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_get_dev_node':
   drivers/pnp/pnpbios/bioscalls.c:300:50: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_SYS_DEV_NODE, 0, PNP_TS1, 0, PNP_TS2,
                                                     ^
   drivers/pnp/pnpbios/bioscalls.c:300:62: error: 'PNP_TS2' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_SYS_DEV_NODE, 0, PNP_TS1, 0, PNP_TS2,
                                                                 ^
   drivers/pnp/pnpbios/bioscalls.c:301:25: error: 'PNP_DS' undeclared (first use in this function)
              boot ? 2 : 1, PNP_DS, 0, &tmp_nodenum,
                            ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_set_dev_node':
   drivers/pnp/pnpbios/bioscalls.c:332:59: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_SET_SYS_DEV_NODE, nodenum, 0, PNP_TS1,
                                                              ^
   drivers/pnp/pnpbios/bioscalls.c:333:25: error: 'PNP_DS' undeclared (first use in this function)
              boot ? 2 : 1, PNP_DS, 0, 0, data, 65536, NULL,
                            ^
   drivers/pnp/pnpbios/bioscalls.c: In function 'pnp_bios_dock_station_info':
   drivers/pnp/pnpbios/bioscalls.c:364:65: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_DOCKING_STATION_INFORMATION, 0, PNP_TS1,
                                                                    ^
   drivers/pnp/pnpbios/bioscalls.c:365:11: error: 'PNP_DS' undeclared (first use in this function)
              PNP_DS, 0, 0, 0, 0, data,
              ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_get_stat_res':
   drivers/pnp/pnpbios/bioscalls.c:381:61: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_STATIC_ALLOCED_RES_INFO, 0, PNP_TS1,
                                                                ^
   drivers/pnp/pnpbios/bioscalls.c:382:11: error: 'PNP_DS' undeclared (first use in this function)
              PNP_DS, 0, 0, 0, 0, info, 65536, NULL, 0);
              ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_isapnp_config':
   drivers/pnp/pnpbios/bioscalls.c:405:58: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_PNP_ISA_CONFIG_STRUC, 0, PNP_TS1, PNP_DS,
                                                             ^
   drivers/pnp/pnpbios/bioscalls.c:405:67: error: 'PNP_DS' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_PNP_ISA_CONFIG_STRUC, 0, PNP_TS1, PNP_DS,
                                                                      ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_escd_info':
   drivers/pnp/pnpbios/bioscalls.c:430:47: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_GET_ESCD_INFO, 0, PNP_TS1, 2, PNP_TS1, 4,
                                                  ^
   drivers/pnp/pnpbios/bioscalls.c:431:20: error: 'PNP_DS' undeclared (first use in this function)
              PNP_TS1, PNP_DS, data,
                       ^
   drivers/pnp/pnpbios/bioscalls.c: In function '__pnp_bios_read_escd':
   drivers/pnp/pnpbios/bioscalls.c:456:43: error: 'PNP_TS1' undeclared (first use in this function)
     status = call_pnp_bios(PNP_READ_ESCD, 0, PNP_TS1, PNP_TS2, PNP_DS, 0, 0,
                                              ^
   drivers/pnp/pnpbios/bioscalls.c:456:52: error: 'PNP_TS2' undeclared (first use in this function)
     status = call_pnp_bios(PNP_READ_ESCD, 0, PNP_TS1, PNP_TS2, PNP_DS, 0, 0,
                                                       ^
   drivers/pnp/pnpbios/bioscalls.c:456:61: error: 'PNP_DS' undeclared (first use in this function)
     status = call_pnp_bios(PNP_READ_ESCD, 0, PNP_TS1, PNP_TS2, PNP_DS, 0, 0,
                                                                ^
   drivers/pnp/pnpbios/bioscalls.c: In function 'pnpbios_calls_init':
>> drivers/pnp/pnpbios/bioscalls.c:477:31: error: 'PNP_CS16' undeclared (first use in this function)
     pnp_bios_callpoint.segment = PNP_CS16;
                                  ^
>> drivers/pnp/pnpbios/bioscalls.c:483:22: error: 'GDT_ENTRY_PNPBIOS_CS32' undeclared (first use in this function)
      set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_CS32],
                         ^
>> drivers/pnp/pnpbios/bioscalls.c:485:22: error: 'GDT_ENTRY_PNPBIOS_CS16' undeclared (first use in this function)
      set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_CS16],
                         ^
>> drivers/pnp/pnpbios/bioscalls.c:487:22: error: 'GDT_ENTRY_PNPBIOS_DS' undeclared (first use in this function)
      set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS],
                         ^
--
   drivers/scsi/ultrastor.c:1034:5: sparse: symbol 'ultrastor_biosparam' was not declared. Should it be static?
   drivers/scsi/ultrastor.c: In function 'ultrastor_info':
>> drivers/scsi/ultrastor.c:674:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
           config.port_address, (int)config.bios_segment,
                                ^
   drivers/scsi/ultrastor.c:678:29: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
           config.port_address, (int)config.bios_segment,
                                ^
   drivers/scsi/ultrastor.c: In function 'ultrastor_abort':
   drivers/scsi/ultrastor.c:888:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     ogm_addr = (unsigned int)isa_bus_to_virt(inl(port0 + 23));
                ^
   drivers/scsi/ultrastor.c:890:13: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     icm_addr = (unsigned int)isa_bus_to_virt(inl(port0 + 28));
                ^
   drivers/scsi/ultrastor.c: In function 'ultrastor_interrupt':
   drivers/scsi/ultrastor.c:1066:50: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     printk("Ux4F interrupt: bad MSCP address %x\n", (unsigned int) mscp);
                                                     ^
   drivers/scsi/ultrastor.c:1080:18: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
         mscp_index, (unsigned int) mscp);
                     ^
   drivers/scsi/ultrastor.c:1109:51: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     printk("MSCP %d (%x): no command\n", mscp_index, (unsigned int) mscp);
                                                      ^
   drivers/scsi/ultrastor.c:1160:21: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
            mscp_index, (unsigned int) mscp, config.aborted[mscp_index]);
                        ^

sparse warnings: (new ones prefixed by >>)

>> drivers/isdn/icn/icn.c:721:2: sparse: TODO test headroom or use skb->nb to flag ACK
   drivers/isdn/icn/icn.c:1048:49: sparse: incorrect type in argument 2 (different address spaces)
   drivers/isdn/icn/icn.c:1048:49:    expected void const [noderef] <asn:1>*from
   drivers/isdn/icn/icn.c:1048:49:    got unsigned char const [usertype] *buf
   drivers/isdn/icn/icn.c:1476:38: sparse: incorrect type in argument 1 (different address spaces)
   drivers/isdn/icn/icn.c:1476:38:    expected unsigned char const [usertype] *buf
   drivers/isdn/icn/icn.c:1476:38:    got unsigned char const [noderef] [usertype] <asn:1>*buf
   drivers/isdn/icn/icn.c: In function 'icn_sendbuf':
   drivers/isdn/icn/icn.c:721:2: warning: #warning TODO test headroom or use skb->nb to flag ACK [-Wcpp]
    #warning TODO test headroom or use skb->nb to flag ACK
     ^

vim +/SEGMENT_IS_PNP_CODE +23 arch/x86/mm/extable.c

6d48583b Harvey Harrison 2008-01-30  @1  #include <linux/module.h>
6d48583b Harvey Harrison 2008-01-30   2  #include <linux/spinlock.h>
70627654 H. Peter Anvin  2012-04-20   3  #include <linux/sort.h>
6d48583b Harvey Harrison 2008-01-30   4  #include <asm/uaccess.h>
6d48583b Harvey Harrison 2008-01-30   5  
70627654 H. Peter Anvin  2012-04-20   6  static inline unsigned long
70627654 H. Peter Anvin  2012-04-20   7  ex_insn_addr(const struct exception_table_entry *x)
70627654 H. Peter Anvin  2012-04-20   8  {
70627654 H. Peter Anvin  2012-04-20   9  	return (unsigned long)&x->insn + x->insn;
70627654 H. Peter Anvin  2012-04-20  10  }
70627654 H. Peter Anvin  2012-04-20  11  static inline unsigned long
70627654 H. Peter Anvin  2012-04-20  12  ex_fixup_addr(const struct exception_table_entry *x)
70627654 H. Peter Anvin  2012-04-20  13  {
70627654 H. Peter Anvin  2012-04-20  14  	return (unsigned long)&x->fixup + x->fixup;
70627654 H. Peter Anvin  2012-04-20  15  }
6d48583b Harvey Harrison 2008-01-30  16  
6d48583b Harvey Harrison 2008-01-30  17  int fixup_exception(struct pt_regs *regs)
6d48583b Harvey Harrison 2008-01-30  18  {
6d48583b Harvey Harrison 2008-01-30  19  	const struct exception_table_entry *fixup;
70627654 H. Peter Anvin  2012-04-20  20  	unsigned long new_ip;
6d48583b Harvey Harrison 2008-01-30  21  
6d48583b Harvey Harrison 2008-01-30  22  #ifdef CONFIG_PNPBIOS
6d48583b Harvey Harrison 2008-01-30 @23  	if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
6d48583b Harvey Harrison 2008-01-30  24  		extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
6d48583b Harvey Harrison 2008-01-30  25  		extern u32 pnp_bios_is_utter_crap;
6d48583b Harvey Harrison 2008-01-30  26  		pnp_bios_is_utter_crap = 1;

:::::: The code at line 23 was first introduced by commit
:::::: 6d48583ba9ade609634e694fc35ea62b7a8adaaa x86: unify extable_{32|64}.c

:::::: TO: Harvey Harrison <harvey.harrison@gmail.com>
:::::: CC: Ingo Molnar <mingo@elte.hu>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 49791 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] base: isa: Remove X86_32 dependency
  2016-01-21 19:40 ` H. Peter Anvin
@ 2016-01-21 23:43   ` William Breathitt Gray
  2016-01-21 23:47     ` H. Peter Anvin
  0 siblings, 1 reply; 7+ messages in thread
From: William Breathitt Gray @ 2016-01-21 23:43 UTC (permalink / raw)
  To: H. Peter Anvin, tglx, mingo; +Cc: gregkh, x86, linux-kernel

On 01/21/2016 02:40 PM, H. Peter Anvin wrote:
> CONFIG_ISA is mainly used to exclude drivers that are for ISA-specific
> devices.
> 
> However, PC/104 is indeed an actual ISA parallel bus, and as you say
> widely used in embedded systems.  However, I would like to see if there
> are anything hidden with !CONFIG_ISA which makes sense in PC104 systems.

My ultimate objective is to be able to use the ISA bus driver
(drivers/base/isa.c). This driver is conditionally compiled based on
CONFIG_ISA, which in turn depends on CONFIG_X86_32. Up until now, I've
been using platform_driver for my non-hotpluggable PC/104 devices, but
it appears that isa_driver is more appropriate; unfortunately, I have
CONFIG_X86_64 set, which prevents the compilation of drivers/base/isa.c
due to the CONFIG_X86_32 dependency.

I can alternatively create a patch to introduce a CONFIG_PC104 option.
This would allow the compilation of the ISA bus driver on either
CONFIG_ISA or CONFIG_PC104, thus allowing CONFIG_ISA to remain dependent
on CONFIG_X86_32. However, if the CONFIG_X86_32 dependency was
arbitrarily added to simply hide ISA functionality from newer
motherboards, perhaps the dependency should be removed.

William Breathitt Gray

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] base: isa: Remove X86_32 dependency
  2016-01-21 23:43   ` William Breathitt Gray
@ 2016-01-21 23:47     ` H. Peter Anvin
  2016-01-22  0:01       ` William Breathitt Gray
  0 siblings, 1 reply; 7+ messages in thread
From: H. Peter Anvin @ 2016-01-21 23:47 UTC (permalink / raw)
  To: William Breathitt Gray, tglx, mingo; +Cc: gregkh, x86, linux-kernel

On 01/21/16 15:43, William Breathitt Gray wrote:
> On 01/21/2016 02:40 PM, H. Peter Anvin wrote:
>> CONFIG_ISA is mainly used to exclude drivers that are for ISA-specific
>> devices.
>>
>> However, PC/104 is indeed an actual ISA parallel bus, and as you say
>> widely used in embedded systems.  However, I would like to see if there
>> are anything hidden with !CONFIG_ISA which makes sense in PC104 systems.
> 
> My ultimate objective is to be able to use the ISA bus driver
> (drivers/base/isa.c). This driver is conditionally compiled based on
> CONFIG_ISA, which in turn depends on CONFIG_X86_32. Up until now, I've
> been using platform_driver for my non-hotpluggable PC/104 devices, but
> it appears that isa_driver is more appropriate; unfortunately, I have
> CONFIG_X86_64 set, which prevents the compilation of drivers/base/isa.c
> due to the CONFIG_X86_32 dependency.
> 
> I can alternatively create a patch to introduce a CONFIG_PC104 option.
> This would allow the compilation of the ISA bus driver on either
> CONFIG_ISA or CONFIG_PC104, thus allowing CONFIG_ISA to remain dependent
> on CONFIG_X86_32. However, if the CONFIG_X86_32 dependency was
> arbitrarily added to simply hide ISA functionality from newer
> motherboards, perhaps the dependency should be removed.
> 

Well, and as you can see from the build robot because a lot of those
drivers simply don't compile on 64-bit systems.  If nothing else you
would have to push the 32-bit tests downward in the config dependency tree.

	-hpa

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] base: isa: Remove X86_32 dependency
  2016-01-21 23:47     ` H. Peter Anvin
@ 2016-01-22  0:01       ` William Breathitt Gray
  2016-01-22  8:07         ` Thomas Gleixner
  0 siblings, 1 reply; 7+ messages in thread
From: William Breathitt Gray @ 2016-01-22  0:01 UTC (permalink / raw)
  To: H. Peter Anvin, tglx, mingo; +Cc: gregkh, x86, linux-kernel

On 01/21/2016 06:47 PM, H. Peter Anvin wrote:
> Well, and as you can see from the build robot because a lot of those
> drivers simply don't compile on 64-bit systems.  If nothing else you
> would have to push the 32-bit tests downward in the config dependency tree.
> 
> 	-hpa

Yes, you're right. There doesn't appear to be anything 32-bit specific in the ISA bus driver itself, so these build failures must be due to configs relying on the 32-bit dependency from CONFIG_ISA. It should be possible to decouple the 32-bit dependency, so I'll work through the config dependency tree and fix the build errors with explicit CONFIG_X86_32 dependencies. I'll submit a new patch with those changes when complete.

William Breathitt Gray

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] base: isa: Remove X86_32 dependency
  2016-01-22  0:01       ` William Breathitt Gray
@ 2016-01-22  8:07         ` Thomas Gleixner
  0 siblings, 0 replies; 7+ messages in thread
From: Thomas Gleixner @ 2016-01-22  8:07 UTC (permalink / raw)
  To: William Breathitt Gray; +Cc: H. Peter Anvin, mingo, gregkh, x86, linux-kernel

On Thu, 21 Jan 2016, William Breathitt Gray wrote:
> On 01/21/2016 06:47 PM, H. Peter Anvin wrote:
> > Well, and as you can see from the build robot because a lot of those
> > drivers simply don't compile on 64-bit systems.  If nothing else you
> > would have to push the 32-bit tests downward in the config dependency tree.
> 
> Yes, you're right. There doesn't appear to be anything 32-bit specific in
> the ISA bus driver itself, so these build failures must be due to configs
> relying on the 32-bit dependency from CONFIG_ISA. It should be possible to
> decouple the 32-bit dependency, so I'll work through the config dependency
> tree and fix the build errors with explicit CONFIG_X86_32 dependencies. I'll
> submit a new patch with those changes when complete.

Make drivers/bus/isa.c depend on CONFIG_ISA_BUS and select that from
CONFIG_ISA.

That gives you the bus driver alone w/o touching any of the things which
depend on x32.

Thanks,

	tglx

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2016-01-22  8:08 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-01-21 15:56 [PATCH] base: isa: Remove X86_32 dependency William Breathitt Gray
2016-01-21 19:40 ` H. Peter Anvin
2016-01-21 23:43   ` William Breathitt Gray
2016-01-21 23:47     ` H. Peter Anvin
2016-01-22  0:01       ` William Breathitt Gray
2016-01-22  8:07         ` Thomas Gleixner
2016-01-21 21:18 ` kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.