34 DBG (
"EISA %s device %02x\n", (
enabled ?
"enabled" :
"disabled" ),
53 DBG (
"Adding EISA device %02x (%04x:%04x (\"%s\") io %x)\n",
58 for ( i = 0 ; i < driver->
id_count ; i++ ) {
68 if ( (
rc = driver->
probe ( eisa,
id ) ) != 0 ) {
69 DBG (
"......probe failed\n" );
76 DBG (
"...no driver found\n" );
87 DBG (
"Removed EISA device %02x\n", eisa->
slot );
107 DBG (
"No EISA system board (read %02x)\n",
system );
114 eisa =
malloc (
sizeof ( *eisa ) );
119 memset ( eisa, 0,
sizeof ( *eisa ) );
static int eisa_probe(struct eisa_device *eisa)
Probe an EISA device.
struct arbelprm_rc_send_wqe rc
uint16_t inw(volatile uint16_t *io_addr)
Read 16-bit word from I/O-mapped device.
#define list_add(new, head)
Add a new entry to the head of a list.
uint16_t vendor_id
Manufacturer ID.
FILE_LICENCE(GPL2_OR_LATER)
void eisa_device_enabled(struct eisa_device *eisa, int enabled)
Reset and enable/disable an EISA device.
struct device dev
Device chain.
char * isa_id_string(unsigned int vendor, unsigned int product)
unsigned int vendor
Vendor ID.
struct device * parent
Bus device.
uint32_t enabled
Bitmask of enabled AENQ groups (host -> device)
int(* probe)(struct eisa_device *eisa, const struct eisa_device_id *id)
Probe device.
#define list_del(list)
Delete an entry from a list.
static void eisabus_remove(struct root_device *rootdev)
Remove EISA root bus.
#define ENOMEM
Not enough space.
static int eisabus_probe(struct root_device *rootdev)
Probe EISA root bus.
struct eisa_driver * driver
Driver for this device.
void udelay(unsigned long usecs)
Delay for a fixed number of microseconds.
static struct root_driver eisa_root_driver
EISA bus root device driver.
An EISA device ID list entry.
unsigned int slot
Slot number.
struct root_device eisa_root_device __root_device
EISA bus root device.
const char * driver_name
Driver name.
void(* remove)(struct eisa_device *eisa)
Remove device.
#define list_for_each_entry_safe(pos, tmp, head, member)
Iterate over entries in a list, safe against deletion of the current entry.
uint8_t id
Request identifier.
unsigned int id_count
Number of entries in EISA ID table.
#define BUS_TYPE_EISA
EISA bus type.
static void(* free)(struct refcnt *refcnt))
struct list_head siblings
Devices on the same bus.
#define for_each_table_entry(pointer, table)
Iterate through all entries within a linker table.
#define ENODEV
No such device.
uint8_t inb(volatile uint8_t *io_addr)
Read byte from I/O-mapped device.
#define le16_to_cpu(value)
int(* probe)(struct root_device *rootdev)
Add root device.
void * malloc(size_t size)
Allocate memory.
uint16_t ioaddr
I/O address.
#define INIT_LIST_HEAD(list)
Initialise a list head.
#define ISA_PROD_ID(product)
#define outb(data, io_addr)
unsigned int bus_type
Bus type.
#define ENOTTY
Inappropriate I/O control operation.
unsigned int device
Device ID.
struct list_head children
Devices attached to this device.
#define EISA_DRIVERS
EISA driver table.
struct eisa_device_id * ids
EISA ID table.
struct device_description desc
Device description.
int snprintf(char *buf, size_t size, const char *fmt,...)
Write a formatted string to a buffer.
#define EISA_GLOBAL_CONFIG
struct device dev
Generic device.
#define DBG(...)
Print a debugging message.
uint16_t prod_id
Product ID.
#define NULL
NULL pointer (VOID *)
static void eisa_remove(struct eisa_device *eisa)
Remove an EISA device.
uint8_t system[ETH_ALEN]
System identifier.
void * memset(void *dest, int character, size_t len) __nonnull
#define EISA_SLOT_BASE(n)