From 43549ad7a74e33947f3ba1756a7713086d32e97c Mon Sep 17 00:00:00 2001
From: Russell King <rmk@dyn-67.arm.linux.org.uk>
Date: Sat, 16 Sep 2006 20:53:05 +0100
Subject: [PATCH] [SERIAL] serial_cs: Use clean up multiport card detection

- Use ARRAY_SIZE() instead of home grown based version.
- use parse->manfid.card rather than le16_to_cpu(buf[1]) -
  manfid.card is already converted to this format.
- use info->prodid in subsequent tests rather than
  parse->manfid.card.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
---
 drivers/serial/serial_cs.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/serial/serial_cs.c b/drivers/serial/serial_cs.c
index cbf260bc225d..82bb603fc1ae 100644
--- a/drivers/serial/serial_cs.c
+++ b/drivers/serial/serial_cs.c
@@ -95,7 +95,6 @@ static const struct multi_id multi_id[] = {
 	{ MANFID_INTEL,   PRODID_INTEL_DUAL_RS232,      2 },
 	{ MANFID_NATINST, PRODID_NATINST_QUAD_RS232,    4 }
 };
-#define MULTI_COUNT (sizeof(multi_id)/sizeof(struct multi_id))
 
 struct serial_info {
 	struct pcmcia_device	*p_dev;
@@ -622,13 +621,13 @@ static int serial_config(struct pcmcia_device * link)
 	tuple->DesiredTuple = CISTPL_MANFID;
 	if (first_tuple(link, tuple, parse) == CS_SUCCESS) {
 		info->manfid = parse->manfid.manf;
-		info->prodid = le16_to_cpu(buf[1]);
-		for (i = 0; i < MULTI_COUNT; i++)
+		info->prodid = parse->manfid.card;
+		for (i = 0; i < ARRAY_SIZE(multi_id); i++)
 			if ((info->manfid == multi_id[i].manfid) &&
-			    (parse->manfid.card == multi_id[i].prodid))
+			    (info->prodid == multi_id[i].prodid)) {
+				info->multi = multi_id[i].multi;
 				break;
-		if (i < MULTI_COUNT)
-			info->multi = multi_id[i].multi;
+			}
 	}
 
 	/* Another check for dual-serial cards: look for either serial or
-- 
GitLab