[SERIAL] serial_cs: allow wildcarded quirks

Some quirks we will introduce next apply to (eg) all cards of one
manufacturer.  Therefore, we need a way to list these in the quirk
table - use ~0 - this is not a possible device ID value.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index 2e3a39d..82d42f3 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -81,8 +81,8 @@
 /* Table of multi-port card ID's */
 
 struct serial_quirk {
-	u_short manfid;
-	u_short prodid;
+	unsigned int manfid;
+	unsigned int prodid;
 	int multi;		/* 1 = multifunction, > 1 = # ports */
 };
 
@@ -645,9 +645,12 @@
 	if (first_tuple(link, tuple, parse) == CS_SUCCESS) {
 		info->manfid = parse->manfid.manf;
 		info->prodid = parse->manfid.card;
+
 		for (i = 0; i < ARRAY_SIZE(quirks); i++)
-			if ((info->manfid == quirks[i].manfid) &&
-			    (info->prodid == quirks[i].prodid)) {
+			if ((quirks[i].manfid == ~0 ||
+			     quirks[i].manfid == info->manfid) &&
+			    (quirks[i].prodid == ~0 ||
+			     quirks[i].prodid == info->prodid)) {
 				info->quirk = &quirks[i];
 				break;
 			}