Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Dec 2008 20:30:14 +0000 (UTC)
From:      Sam Leffler <sam@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-projects@freebsd.org
Subject:   svn commit: r186381 - projects/cambria/sys/arm/xscale/ixp425
Message-ID:  <200812212030.mBLKUEId041686@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sam
Date: Sun Dec 21 20:30:14 2008
New Revision: 186381
URL: http://svn.freebsd.org/changeset/base/186381

Log:
  use feature control mask when probing

Modified:
  projects/cambria/sys/arm/xscale/ixp425/if_npe.c

Modified: projects/cambria/sys/arm/xscale/ixp425/if_npe.c
==============================================================================
--- projects/cambria/sys/arm/xscale/ixp425/if_npe.c	Sun Dec 21 20:29:47 2008	(r186380)
+++ projects/cambria/sys/arm/xscale/ixp425/if_npe.c	Sun Dec 21 20:30:14 2008	(r186381)
@@ -297,16 +297,21 @@ npe_probe(device_t dev)
 		[NPE_B] = "IXP NPE-B",
 		[NPE_C] = "IXP NPE-C"
 	};
+	int unit = device_get_unit(dev);
 	int npeid;
 
+	if (unit > 2 || 
+	    (ixp4xx_read_feature_bits() &
+	     (unit == 0 ? EXP_FCTRL_ETH0 : EXP_FCTRL_ETH1)) == 0)
+		return EINVAL;
+
 	npeid = -1;
 	if (!override_npeid(dev, "npeid", &npeid))
-		npeid = unit2npeid(device_get_unit(dev));
+		npeid = unit2npeid(unit);
 	if (npeid == -1) {
-		device_printf(dev, "unit not supported\n");
+		device_printf(dev, "unit %d not supported\n", unit);
 		return EINVAL;
 	}
-	/* XXX check feature register to see if enabled */
 	device_set_desc(dev, desc[npeid]);
 	return 0;
 }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200812212030.mBLKUEId041686>