Staging: vme: Extend VME core probing for special matches

Add the ability to define all slots and current slot in the VME buses bind
table.

Signed-off-by: Martyn Welch <martyn.welch@gefanuc.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
Martyn Welch 2009-08-06 09:43:07 +01:00 committed by Greg Kroah-Hartman
parent df45517536
commit a37b0dad8b
2 changed files with 14 additions and 3 deletions

View File

@ -1302,9 +1302,17 @@ static int vme_bus_match(struct device *dev, struct device_driver *drv)
while((driver->bind_table[i].bus != 0) ||
(driver->bind_table[i].slot != 0)) {
if ((bridge->num == driver->bind_table[i].bus) &&
(num == driver->bind_table[i].slot))
return 1;
if (bridge->num == driver->bind_table[i].bus) {
if (num == driver->bind_table[i].slot)
return 1;
if (driver->bind_table[i].slot == VME_SLOT_ALL)
return 1;
if ((driver->bind_table[i].slot == VME_SLOT_CURRENT) &&
(num == vme_slot_get(dev)))
return 1;
}
i++;
}

View File

@ -79,6 +79,9 @@ struct vme_resource {
extern struct bus_type vme_bus_type;
#define VME_SLOT_CURRENT -1
#define VME_SLOT_ALL -2
struct vme_device_id {
int bus;
int slot;