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 bus configuration option in order to support these newer motherboards. A new config option, CONFIG_ISA_BUS, is introduced to allow for the compilation of the ISA bus driver independent of the CONFIG_ISA option. Devices which communicate via ISA-compatible buses can now be supported independent of the dependencies of the CONFIG_ISA option. Signed-off-by: William Breathitt Gray <vilhelm.gray@gmail.com> Reviewed-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
40 lines
898 B
C
40 lines
898 B
C
/*
|
|
* ISA bus.
|
|
*/
|
|
|
|
#ifndef __LINUX_ISA_H
|
|
#define __LINUX_ISA_H
|
|
|
|
#include <linux/device.h>
|
|
#include <linux/kernel.h>
|
|
|
|
struct isa_driver {
|
|
int (*match)(struct device *, unsigned int);
|
|
int (*probe)(struct device *, unsigned int);
|
|
int (*remove)(struct device *, unsigned int);
|
|
void (*shutdown)(struct device *, unsigned int);
|
|
int (*suspend)(struct device *, unsigned int, pm_message_t);
|
|
int (*resume)(struct device *, unsigned int);
|
|
|
|
struct device_driver driver;
|
|
struct device *devices;
|
|
};
|
|
|
|
#define to_isa_driver(x) container_of((x), struct isa_driver, driver)
|
|
|
|
#ifdef CONFIG_ISA_BUS
|
|
int isa_register_driver(struct isa_driver *, unsigned int);
|
|
void isa_unregister_driver(struct isa_driver *);
|
|
#else
|
|
static inline int isa_register_driver(struct isa_driver *d, unsigned int i)
|
|
{
|
|
return 0;
|
|
}
|
|
|
|
static inline void isa_unregister_driver(struct isa_driver *d)
|
|
{
|
|
}
|
|
#endif
|
|
|
|
#endif /* __LINUX_ISA_H */
|