From: Adrian Bunk This patch adds a config option PARPORT_NOT_PC (and removes the PARPORT_OTHER option) that get's selected if any non-PC hardware was chosen. This way, the mega #if in parport.h is gone now. Additionally, it removes the unneeded PARPORT_NEED_GENERIC_OPS #define. Signed-off-by: Adrian Bunk Signed-off-by: Andrew Morton --- 25-akpm/drivers/parport/Kconfig | 20 +++++++++----------- 25-akpm/drivers/usb/Kconfig | 1 + 25-akpm/include/linux/parport.h | 12 +++++------- 3 files changed, 15 insertions(+), 18 deletions(-) diff -puN drivers/parport/Kconfig~non-pc-parport-config-change drivers/parport/Kconfig --- 25/drivers/parport/Kconfig~non-pc-parport-config-change 2005-02-22 18:19:54.000000000 -0800 +++ 25-akpm/drivers/parport/Kconfig 2005-02-22 18:19:54.000000000 -0800 @@ -82,13 +82,18 @@ config PARPORT_PC_PCMCIA Say Y here if you need PCMCIA support for your PC-style parallel ports. If unsure, say N. +config PARPORT_NOT_PC + bool + config PARPORT_ARC tristate "Archimedes hardware" depends on ARM && PARPORT + select PARPORT_NOT_PC config PARPORT_AMIGA tristate "Amiga builtin port" depends on AMIGA && PARPORT + select PARPORT_NOT_PC help Say Y here if you need support for the parallel port hardware on Amiga machines. This code is also available as a module (say M), @@ -97,6 +102,7 @@ config PARPORT_AMIGA config PARPORT_MFC3 tristate "Multiface III parallel port" depends on ZORRO && PARPORT + select PARPORT_NOT_PC help Say Y here if you need parallel port support for the MFC3 card. This code is also available as a module (say M), called @@ -105,6 +111,7 @@ config PARPORT_MFC3 config PARPORT_ATARI tristate "Atari hardware" depends on ATARI && PARPORT + select PARPORT_NOT_PC help Say Y here if you need support for the parallel port hardware on Atari machines. This code is also available as a module (say M), @@ -117,22 +124,13 @@ config PARPORT_GSC config PARPORT_SUNBPP tristate "Sparc hardware (EXPERIMENTAL)" - depends on SBUS && EXPERIMENTAL && PARPORT + depends on SBUS && PARPORT && EXPERIMENTAL + select PARPORT_NOT_PC help This driver provides support for the bidirectional parallel port found on many Sun machines. Note that many of the newer Ultras actually have pc style hardware instead. -# If exactly one hardware type is selected then parport will optimise away -# support for loading any others. Defeat this if the user is keen. -config PARPORT_OTHER - bool "Support foreign hardware" - depends on PARPORT - help - Say Y here if you want to be able to load driver modules to support - other non-standard types of parallel ports. This causes a - performance loss, so most people say N. - config PARPORT_1284 bool "IEEE 1284 transfer modes" depends on PARPORT diff -puN drivers/usb/Kconfig~non-pc-parport-config-change drivers/usb/Kconfig --- 25/drivers/usb/Kconfig~non-pc-parport-config-change 2005-02-22 18:19:54.000000000 -0800 +++ 25-akpm/drivers/usb/Kconfig 2005-02-22 18:19:54.000000000 -0800 @@ -82,6 +82,7 @@ comment "USB port drivers" config USB_USS720 tristate "USS720 parport driver" depends on USB && PARPORT + select PARPORT_NOT_PC ---help--- This driver is for USB parallel port adapters that use the Lucent Technologies USS-720 chip. These cables are plugged into your USB diff -puN include/linux/parport.h~non-pc-parport-config-change include/linux/parport.h --- 25/include/linux/parport.h~non-pc-parport-config-change 2005-02-22 18:19:54.000000000 -0800 +++ 25-akpm/include/linux/parport.h 2005-02-22 18:19:54.000000000 -0800 @@ -105,8 +105,6 @@ typedef enum { #include #include -#define PARPORT_NEED_GENERIC_OPS - /* Define this later. */ struct parport; struct pardevice; @@ -520,9 +518,8 @@ extern int parport_device_proc_register( extern int parport_device_proc_unregister(struct pardevice *device); /* If PC hardware is the only type supported, we can optimise a bit. */ -#if (defined(CONFIG_PARPORT_PC) || defined(CONFIG_PARPORT_PC_MODULE)) && !(defined(CONFIG_PARPORT_ARC) || defined(CONFIG_PARPORT_ARC_MODULE)) && !(defined(CONFIG_PARPORT_AMIGA) || defined(CONFIG_PARPORT_AMIGA_MODULE)) && !(defined(CONFIG_PARPORT_MFC3) || defined(CONFIG_PARPORT_MFC3_MODULE)) && !(defined(CONFIG_PARPORT_ATARI) || defined(CONFIG_PARPORT_ATARI_MODULE)) && !(defined(CONFIG_USB_USS720) || defined(CONFIG_USB_USS720_MODULE)) && !(defined(CONFIG_PARPORT_SUNBPP) || defined(CONFIG_PARPORT_SUNBPP_MODULE)) && !defined(CONFIG_PARPORT_OTHER) +#if !defined(CONFIG_PARPORT_NOT_PC) -#undef PARPORT_NEED_GENERIC_OPS #include #define parport_write_data(p,x) parport_pc_write_data(p,x) #define parport_read_data(p) parport_pc_read_data(p) @@ -534,9 +531,9 @@ extern int parport_device_proc_unregiste #define parport_disable_irq(p) parport_pc_disable_irq(p) #define parport_data_forward(p) parport_pc_data_forward(p) #define parport_data_reverse(p) parport_pc_data_reverse(p) -#endif -#ifdef PARPORT_NEED_GENERIC_OPS +#else /* !CONFIG_PARPORT_NOT_PC */ + /* Generic operations vector through the dispatch table. */ #define parport_write_data(p,x) (p)->ops->write_data(p,x) #define parport_read_data(p) (p)->ops->read_data(p) @@ -548,7 +545,8 @@ extern int parport_device_proc_unregiste #define parport_disable_irq(p) (p)->ops->disable_irq(p) #define parport_data_forward(p) (p)->ops->data_forward(p) #define parport_data_reverse(p) (p)->ops->data_reverse(p) -#endif + +#endif /* !CONFIG_PARPORT_NOT_PC */ #endif /* __KERNEL__ */ #endif /* _PARPORT_H_ */ _