Deleted Added
full compact
qsphy.c (213229) qsphy.c (213364)
1/* OpenBSD: qsphy.c,v 1.6 2000/08/26 20:04:18 nate Exp */
2/* NetBSD: qsphy.c,v 1.19 2000/02/02 23:34:57 thorpej Exp */
3
4/*-
5 * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to The NetBSD Foundation

--- 42 unchanged lines hidden (view full) ---

51 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
55 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56 */
57
58#include <sys/cdefs.h>
1/* OpenBSD: qsphy.c,v 1.6 2000/08/26 20:04:18 nate Exp */
2/* NetBSD: qsphy.c,v 1.19 2000/02/02 23:34:57 thorpej Exp */
3
4/*-
5 * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
6 * All rights reserved.
7 *
8 * This code is derived from software contributed to The NetBSD Foundation

--- 42 unchanged lines hidden (view full) ---

51 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
52 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
53 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
54 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
55 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
56 */
57
58#include <sys/cdefs.h>
59__FBSDID("$FreeBSD: head/sys/dev/mii/qsphy.c 213229 2010-09-27 20:31:03Z marius $");
59__FBSDID("$FreeBSD: head/sys/dev/mii/qsphy.c 213364 2010-10-02 18:53:12Z marius $");
60
61/*
62 * driver for Quality Semiconductor's QS6612 ethernet 10/100 PHY
63 * datasheet from www.qualitysemi.com
64 */
65
66#include <sys/param.h>
67#include <sys/systm.h>

--- 60 unchanged lines hidden (view full) ---

128 struct mii_data *mii;
129
130 sc = device_get_softc(dev);
131 ma = device_get_ivars(dev);
132 sc->mii_dev = device_get_parent(dev);
133 mii = ma->mii_data;
134 LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list);
135
60
61/*
62 * driver for Quality Semiconductor's QS6612 ethernet 10/100 PHY
63 * datasheet from www.qualitysemi.com
64 */
65
66#include <sys/param.h>
67#include <sys/systm.h>

--- 60 unchanged lines hidden (view full) ---

128 struct mii_data *mii;
129
130 sc = device_get_softc(dev);
131 ma = device_get_ivars(dev);
132 sc->mii_dev = device_get_parent(dev);
133 mii = ma->mii_data;
134 LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list);
135
136 sc->mii_inst = mii->mii_instance;
136 sc->mii_inst = mii->mii_instance++;
137 sc->mii_phy = ma->mii_phyno;
138 sc->mii_service = qsphy_service;
139 sc->mii_pdata = mii;
140
137 sc->mii_phy = ma->mii_phyno;
138 sc->mii_service = qsphy_service;
139 sc->mii_pdata = mii;
140
141 mii->mii_instance++;
142
143 qsphy_reset(sc);
144
141 qsphy_reset(sc);
142
145 sc->mii_capabilities =
146 PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
143 sc->mii_capabilities = PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
147 device_printf(dev, " ");
148 mii_phy_add_media(sc);
149 printf("\n");
150
151 MIIBUS_MEDIAINIT(sc->mii_dev);
152 return (0);
153}
154
155static int
156qsphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
157{
144 device_printf(dev, " ");
145 mii_phy_add_media(sc);
146 printf("\n");
147
148 MIIBUS_MEDIAINIT(sc->mii_dev);
149 return (0);
150}
151
152static int
153qsphy_service(struct mii_softc *sc, struct mii_data *mii, int cmd)
154{
158 struct ifmedia_entry *ife = mii->mii_media.ifm_cur;
159 int reg;
160
155
161 /*
162 * If we're not selected, then do nothing, just isolate, if
163 * changing media.
164 */
165 if (IFM_INST(ife->ifm_media) != sc->mii_inst) {
166 if (cmd == MII_MEDIACHG) {
167 reg = PHY_READ(sc, MII_BMCR);
168 PHY_WRITE(sc, MII_BMCR, reg | BMCR_ISO);
169 }
170
171 return (0);
172 }
173
174 switch (cmd) {
175 case MII_POLLSTAT:
176 break;
177
178 case MII_MEDIACHG:
179 /*
180 * If the interface is not up, don't do anything.
181 */

--- 85 unchanged lines hidden ---
156 switch (cmd) {
157 case MII_POLLSTAT:
158 break;
159
160 case MII_MEDIACHG:
161 /*
162 * If the interface is not up, don't do anything.
163 */

--- 85 unchanged lines hidden ---