From 22db49426489b7cc89748e00345a8ee2d37a0cb1 Mon Sep 17 00:00:00 2001 From: Martyn Welch Date: Thu, 6 Aug 2009 09:43:07 +0100 Subject: [PATCH] --- yaml --- r: 162340 b: refs/heads/master c: a37b0dad8b3d278fa64482ccd2381c947f432bf7 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/drivers/staging/vme/vme.c | 14 +++++++++++--- trunk/drivers/staging/vme/vme.h | 3 +++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 22bfd19e887a..af64197ee5de 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: df45517536eb010ce2b3c4c7b75c1a02bdb10018 +refs/heads/master: a37b0dad8b3d278fa64482ccd2381c947f432bf7 diff --git a/trunk/drivers/staging/vme/vme.c b/trunk/drivers/staging/vme/vme.c index 8ee11925b19b..d6ad12e3cb54 100644 --- a/trunk/drivers/staging/vme/vme.c +++ b/trunk/drivers/staging/vme/vme.c @@ -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++; } diff --git a/trunk/drivers/staging/vme/vme.h b/trunk/drivers/staging/vme/vme.h index 5291782a71eb..a092138e3a73 100644 --- a/trunk/drivers/staging/vme/vme.h +++ b/trunk/drivers/staging/vme/vme.h @@ -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;