diff options
author | Attilio Rao <attilio@FreeBSD.org> | 2011-06-02 14:09:30 +0000 |
---|---|---|
committer | Attilio Rao <attilio@FreeBSD.org> | 2011-06-02 14:09:30 +0000 |
commit | 3bf1ec3a9a4297f61ed00813dc48699ffbdadb43 (patch) | |
tree | 8354bc7b7c3a38952613050ee6c7b783b88c6998 /sys/dev/usb/net/if_axe.c | |
parent | bc6339618ec99b42407080e405666b89070786c4 (diff) | |
parent | 7c8aaa5b71d5615c6dea443c36e35eb6d78d91aa (diff) | |
download | src-3bf1ec3a9a4297f61ed00813dc48699ffbdadb43.tar.gz src-3bf1ec3a9a4297f61ed00813dc48699ffbdadb43.zip |
MFC
Notes
Notes:
svn path=/projects/largeSMP/; revision=222612
Diffstat (limited to 'sys/dev/usb/net/if_axe.c')
-rw-r--r-- | sys/dev/usb/net/if_axe.c | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/sys/dev/usb/net/if_axe.c b/sys/dev/usb/net/if_axe.c index fbe63de90c39..00d1c0b4b069 100644 --- a/sys/dev/usb/net/if_axe.c +++ b/sys/dev/usb/net/if_axe.c @@ -514,7 +514,7 @@ static void axe_ax88178_init(struct axe_softc *sc) { struct usb_ether *ue; - int gpio0, phymode; + int gpio0, ledmode, phymode; uint16_t eeprom, val; ue = &sc->sc_ue; @@ -528,9 +528,11 @@ axe_ax88178_init(struct axe_softc *sc) if (eeprom == 0xffff) { phymode = AXE_PHY_MODE_MARVELL; gpio0 = 1; + ledmode = 0; } else { phymode = eeprom & 0x7f; gpio0 = (eeprom & 0x80) ? 0 : 1; + ledmode = eeprom >> 8; } if (bootverbose) @@ -548,9 +550,22 @@ axe_ax88178_init(struct axe_softc *sc) AXE_GPIO_WRITE(AXE_GPIO0_EN | AXE_GPIO2_EN, hz / 4); AXE_GPIO_WRITE(AXE_GPIO0_EN | AXE_GPIO2 | AXE_GPIO2_EN, hz / 32); - } else + } else { AXE_GPIO_WRITE(AXE_GPIO_RELOAD_EEPROM | AXE_GPIO1 | - AXE_GPIO1_EN, hz / 32); + AXE_GPIO1_EN, hz / 3); + if (ledmode == 1) { + AXE_GPIO_WRITE(AXE_GPIO1_EN, hz / 3); + AXE_GPIO_WRITE(AXE_GPIO1 | AXE_GPIO1_EN, + hz / 3); + } else { + AXE_GPIO_WRITE(AXE_GPIO1 | AXE_GPIO1_EN | + AXE_GPIO2 | AXE_GPIO2_EN, hz / 32); + AXE_GPIO_WRITE(AXE_GPIO1 | AXE_GPIO1_EN | + AXE_GPIO2_EN, hz / 4); + AXE_GPIO_WRITE(AXE_GPIO1 | AXE_GPIO1_EN | + AXE_GPIO2 | AXE_GPIO2_EN, hz / 32); + } + } break; case AXE_PHY_MODE_CICADA: case AXE_PHY_MODE_CICADA_V2: |