Module Name: src
Committed By: msaitoh
Date: Sun Mar 22 16:12:53 UTC 2009
Modified Files:
src/sys/dev/pci: if_bge.c
Log Message:
eliminate PHY_1 quirk (like OpenBSD (rev. 1.110) and FreeBSD (rev. 1.44))
To generate a diff of this commit:
cvs rdiff -u -r1.155 -r1.156 src/sys/dev/pci/if_bge.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/if_bge.c
diff -u src/sys/dev/pci/if_bge.c:1.155 src/sys/dev/pci/if_bge.c:1.156
--- src/sys/dev/pci/if_bge.c:1.155 Fri Jan 30 15:01:19 2009
+++ src/sys/dev/pci/if_bge.c Sun Mar 22 16:12:53 2009
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bge.c,v 1.155 2009/01/30 15:01:19 he Exp $ */
+/* $NetBSD: if_bge.c,v 1.156 2009/03/22 16:12:53 msaitoh Exp $ */
/*
* Copyright (c) 2001 Wind River Systems
@@ -79,7 +79,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.155 2009/01/30 15:01:19 he Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bge.c,v 1.156 2009/03/22 16:12:53 msaitoh Exp $");
#include "bpfilter.h"
#include "vlan.h"
@@ -263,7 +263,6 @@
/* Various chip quirks. */
#define BGE_QUIRK_LINK_STATE_BROKEN 0x00000001
#define BGE_QUIRK_CSUM_BROKEN 0x00000002
-#define BGE_QUIRK_ONLY_PHY_1 0x00000004
#define BGE_QUIRK_5700_SMALLDMA 0x00000008
#define BGE_QUIRK_5700_PCIX_REG_BUG 0x00000010
#define BGE_QUIRK_PRODUCER_BUG 0x00000020
@@ -584,11 +583,16 @@
int i;
/*
- * Several chips with builtin PHYs will incorrectly answer to
- * other PHY instances than the builtin PHY at id 1.
+ * Broadcom's own driver always assumes the internal
+ * PHY is at GMII address 1. On some chips, the PHY responds
+ * to accesses at all addresses, which could cause us to
+ * bogusly attach the PHY 32 times at probe type. Always
+ * restricting the lookup to address 1 is simpler than
+ * trying to figure out which chips revisions should be
+ * special-cased.
*/
- if (phy != 1 && (sc->bge_quirks & BGE_QUIRK_ONLY_PHY_1))
- return(0);
+ if (phy != 1)
+ return (0);
/* Reading with autopolling on may trigger PCI errors */
saved_autopoll = CSR_READ_4(sc, BGE_MI_MODE);