diff options
| author | Marc Zyngier <mzyngier@freesurf.fr> | 2003-02-16 21:35:00 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@home.transmeta.com> | 2003-02-16 21:35:00 -0800 |
| commit | d61c31bb5e3103c7446dbe831df6c87c7e580d7d (patch) | |
| tree | 140068818597ed47053ebddf0568b038f657ed01 /include/linux | |
| parent | bb89c58c186082eb7918c67e6ef3b98ffdff24dc (diff) | |
[PATCH] EISA/sysfs updates
This is an update to the EISA/sysfs code :
- Separate bus root code from generic code.
- Add driver for PCI/EISA bridge.
- Hacked parisc eisa driver so it can act as a root device.
- Add driver for so-called virtual root (for bridge-less systems).
- Allow multiple roots.
- Moved quirk_eisa_bridge from alpha to generic code, since
the EISA code needs it now (on x86, for example...).
- 3c59x :
Prevent driver from returning ENODEV in case it has registered with
the EISA framework, but no device has been found yet (it happends
when the driver is built into the kernel, and the EISA bus root has
not been discovered yet).
It's been discussed on lkml, and all suggestions (mainly from Ivan
Kokshaysky <ink@jurassic.park.msu.ru>) have been taken into account.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/eisa.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/include/linux/eisa.h b/include/linux/eisa.h index 49fc38f5bff8..ed8b6d40b479 100644 --- a/include/linux/eisa.h +++ b/include/linux/eisa.h @@ -24,7 +24,8 @@ struct eisa_device_id { }; /* There is not much we can say about an EISA device, apart from - * signature, slot number, and base address */ + * signature, slot number, and base address. */ + struct eisa_device { struct eisa_device_id id; int slot; @@ -57,4 +58,18 @@ static inline void eisa_set_drvdata (struct eisa_device *edev, void *data) edev->dev.driver_data = data; } +/* The EISA root device. There's rumours about machines with multiple + * busses (PA-RISC ?), so we try to handle that. */ + +struct eisa_root_device { + struct list_head node; + struct device *dev; /* Pointer to bridge device */ + struct resource *res; + unsigned long bus_base_addr; + int slots; /* Max slot number */ + int bus_nr; /* Set by eisa_root_register */ +}; + +int eisa_root_register (struct eisa_root_device *root); + #endif |
