summaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/ds.c
diff options
context:
space:
mode:
authorDominik Brodowski <linux@dominikbrodowski.net>2005-06-28 01:28:09 +0200
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-28 03:03:07 +0200
commitf602ff7eb4e44e7245bfeeba4d078144703fcd76 (patch)
treee919cf5470a7e963ae4ce9f21b7fa1ed3bd4cb71 /drivers/pcmcia/ds.c
parent[PATCH] pcmcia: CIS overrid via sysfs (diff)
downloadlinux-f602ff7eb4e44e7245bfeeba4d078144703fcd76.tar.xz
linux-f602ff7eb4e44e7245bfeeba4d078144703fcd76.zip
[PATCH] pcmcia: match "anonymous" cards
If a card doesn't provide _any_ information about itself, assume it is a so-called "anonymous" card. pcmciamtd will bind to it if it is configured to do so. Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/pcmcia/ds.c')
-rw-r--r--drivers/pcmcia/ds.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
index f657a2a77b2b..66680699e913 100644
--- a/drivers/pcmcia/ds.c
+++ b/drivers/pcmcia/ds.c
@@ -746,6 +746,15 @@ static inline int pcmcia_devmatch(struct pcmcia_device *dev,
}
}
+ if (did->match_flags & PCMCIA_DEV_ID_MATCH_ANONYMOUS) {
+ int i;
+ for (i=0; i<4; i++)
+ if (dev->prod_id[i])
+ return 0;
+ if (dev->has_manf_id || dev->has_card_id || dev->has_func_id)
+ return 0;
+ }
+
dev->dev.driver_data = (void *) did;
return 1;