Deleted Added
full compact
if_jme.c (213844) if_jme.c (213893)
1/*-
2 * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27
28#include <sys/cdefs.h>
1/*-
2 * Copyright (c) 2008, Pyun YongHyeon <yongari@FreeBSD.org>
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

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

21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25 * SUCH DAMAGE.
26 */
27
28#include <sys/cdefs.h>
29__FBSDID("$FreeBSD: head/sys/dev/jme/if_jme.c 213844 2010-10-14 18:31:40Z yongari $");
29__FBSDID("$FreeBSD: head/sys/dev/jme/if_jme.c 213893 2010-10-15 14:52:11Z marius $");
30
31#include <sys/param.h>
32#include <sys/systm.h>
33#include <sys/bus.h>
34#include <sys/endian.h>
35#include <sys/kernel.h>
36#include <sys/malloc.h>
37#include <sys/mbuf.h>

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

219{
220 struct jme_softc *sc;
221 uint32_t val;
222 int i;
223
224 sc = device_get_softc(dev);
225
226 /* For FPGA version, PHY address 0 should be ignored. */
30
31#include <sys/param.h>
32#include <sys/systm.h>
33#include <sys/bus.h>
34#include <sys/endian.h>
35#include <sys/kernel.h>
36#include <sys/malloc.h>
37#include <sys/mbuf.h>

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

219{
220 struct jme_softc *sc;
221 uint32_t val;
222 int i;
223
224 sc = device_get_softc(dev);
225
226 /* For FPGA version, PHY address 0 should be ignored. */
227 if ((sc->jme_flags & JME_FLAG_FPGA) != 0) {
228 if (phy == 0)
229 return (0);
230 } else {
231 if (sc->jme_phyaddr != phy)
232 return (0);
233 }
227 if ((sc->jme_flags & JME_FLAG_FPGA) != 0 && phy == 0)
228 return (0);
234
235 CSR_WRITE_4(sc, JME_SMI, SMI_OP_READ | SMI_OP_EXECUTE |
236 SMI_PHY_ADDR(phy) | SMI_REG_ADDR(reg));
237 for (i = JME_PHY_TIMEOUT; i > 0; i--) {
238 DELAY(1);
239 if (((val = CSR_READ_4(sc, JME_SMI)) & SMI_OP_EXECUTE) == 0)
240 break;
241 }

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

255jme_miibus_writereg(device_t dev, int phy, int reg, int val)
256{
257 struct jme_softc *sc;
258 int i;
259
260 sc = device_get_softc(dev);
261
262 /* For FPGA version, PHY address 0 should be ignored. */
229
230 CSR_WRITE_4(sc, JME_SMI, SMI_OP_READ | SMI_OP_EXECUTE |
231 SMI_PHY_ADDR(phy) | SMI_REG_ADDR(reg));
232 for (i = JME_PHY_TIMEOUT; i > 0; i--) {
233 DELAY(1);
234 if (((val = CSR_READ_4(sc, JME_SMI)) & SMI_OP_EXECUTE) == 0)
235 break;
236 }

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

250jme_miibus_writereg(device_t dev, int phy, int reg, int val)
251{
252 struct jme_softc *sc;
253 int i;
254
255 sc = device_get_softc(dev);
256
257 /* For FPGA version, PHY address 0 should be ignored. */
263 if ((sc->jme_flags & JME_FLAG_FPGA) != 0) {
264 if (phy == 0)
265 return (0);
266 } else {
267 if (sc->jme_phyaddr != phy)
268 return (0);
269 }
258 if ((sc->jme_flags & JME_FLAG_FPGA) != 0 && phy == 0)
259 return (0);
270
271 CSR_WRITE_4(sc, JME_SMI, SMI_OP_WRITE | SMI_OP_EXECUTE |
272 ((val << SMI_DATA_SHIFT) & SMI_DATA_MASK) |
273 SMI_PHY_ADDR(phy) | SMI_REG_ADDR(reg));
274 for (i = JME_PHY_TIMEOUT; i > 0; i--) {
275 DELAY(1);
276 if (((val = CSR_READ_4(sc, JME_SMI)) & SMI_OP_EXECUTE) == 0)
277 break;

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

738 ifp->if_hwassist = JME_CSUM_FEATURES | CSUM_TSO;
739 if (pci_find_extcap(dev, PCIY_PMG, &pmc) == 0) {
740 sc->jme_flags |= JME_FLAG_PMCAP;
741 ifp->if_capabilities |= IFCAP_WOL_MAGIC;
742 }
743 ifp->if_capenable = ifp->if_capabilities;
744
745 /* Set up MII bus. */
260
261 CSR_WRITE_4(sc, JME_SMI, SMI_OP_WRITE | SMI_OP_EXECUTE |
262 ((val << SMI_DATA_SHIFT) & SMI_DATA_MASK) |
263 SMI_PHY_ADDR(phy) | SMI_REG_ADDR(reg));
264 for (i = JME_PHY_TIMEOUT; i > 0; i--) {
265 DELAY(1);
266 if (((val = CSR_READ_4(sc, JME_SMI)) & SMI_OP_EXECUTE) == 0)
267 break;

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

728 ifp->if_hwassist = JME_CSUM_FEATURES | CSUM_TSO;
729 if (pci_find_extcap(dev, PCIY_PMG, &pmc) == 0) {
730 sc->jme_flags |= JME_FLAG_PMCAP;
731 ifp->if_capabilities |= IFCAP_WOL_MAGIC;
732 }
733 ifp->if_capenable = ifp->if_capabilities;
734
735 /* Set up MII bus. */
746 if ((error = mii_phy_probe(dev, &sc->jme_miibus, jme_mediachange,
747 jme_mediastatus)) != 0) {
748 device_printf(dev, "no PHY found!\n");
736 error = mii_attach(dev, &sc->jme_miibus, ifp, jme_mediachange,
737 jme_mediastatus, BMSR_DEFCAPMASK, sc->jme_phyaddr, MII_OFFSET_ANY,
738 0);
739 if (error != 0) {
740 device_printf(dev, "attaching PHYs failed\n");
749 goto fail;
750 }
751
752 /*
753 * Force PHY to FPGA mode.
754 */
755 if ((sc->jme_flags & JME_FLAG_FPGA) != 0) {
756 mii = device_get_softc(sc->jme_miibus);

--- 2518 unchanged lines hidden ---
741 goto fail;
742 }
743
744 /*
745 * Force PHY to FPGA mode.
746 */
747 if ((sc->jme_flags & JME_FLAG_FPGA) != 0) {
748 mii = device_get_softc(sc->jme_miibus);

--- 2518 unchanged lines hidden ---