コード例 #1
0
static int
bmtphy_probe(device_t dev)
{
	int	rval;

	/* Let exphy(4) take precedence for these. */
	rval = mii_phy_dev_probe(dev, bmtphys_lp, BUS_PROBE_LOW_PRIORITY);
	if (rval <= 0)
		return (rval);

	return (mii_phy_dev_probe(dev, bmtphys_dp, BUS_PROBE_DEFAULT));
}
コード例 #2
0
ファイル: rlphy.c プロジェクト: 2trill2spill/freebsd
static int
rlphy_probe(device_t dev)
{
	int rv;

	rv = mii_phy_dev_probe(dev, rlphys, BUS_PROBE_DEFAULT);
	if (rv <= 0)
		return (rv);

	if (mii_dev_mac_match(dev, "rl") || mii_dev_mac_match(dev, "re"))
		return (mii_phy_dev_probe(dev, rlintphys, BUS_PROBE_DEFAULT));
	return (ENXIO);
}
コード例 #3
0
ファイル: rlphy.c プロジェクト: ele7enxxh/dtrace-pf
static int
rlphy_probe(device_t dev)
{
	const char *nic;
	int rv;

	rv = mii_phy_dev_probe(dev, rlphys, BUS_PROBE_DEFAULT);
	if (rv <= 0)
		return (rv);

	nic = device_get_name(device_get_parent(device_get_parent(dev)));
	if (strcmp(nic, "rl") == 0 || strcmp(nic, "re") == 0)
		return (mii_phy_dev_probe(dev, rlintphys, BUS_PROBE_DEFAULT));
	return (ENXIO);
}
コード例 #4
0
ファイル: bmtphy.c プロジェクト: AmirAbrams/haiku
static int
bmtphy_probe(device_t dev)
{
	int	rval;

	/* Let exphy(4) take precedence for these. */
	rval = mii_phy_dev_probe(dev, bmtphys_lp, BUS_PROBE_LOW_PRIORITY);
#ifndef __HAIKU__
	if (rval <= 0)
#else
	if (rval <= 0 && rval != ENXIO)
		return (rval);
#endif

	return (mii_phy_dev_probe(dev, bmtphys_dp, BUS_PROBE_DEFAULT));
}
コード例 #5
0
static int
tlphy_probe(device_t dev)
{

	if (strcmp(device_get_name(device_get_parent(device_get_parent(dev))),
	    "tl") != 0)
		return (ENXIO);
	return (mii_phy_dev_probe(dev, tlphys, BUS_PROBE_DEFAULT));
}
コード例 #6
0
static int
rlphy_attach(device_t dev)
{
	struct mii_softc	*sc;
	struct mii_attach_args	*ma;
	struct mii_data		*mii;
	struct rlphy_softc 	*rsc;

	sc = device_get_softc(dev);
	ma = device_get_ivars(dev);
	sc->mii_dev = device_get_parent(dev);
	mii = device_get_softc(sc->mii_dev);

        /*
         * Check whether we're the RTL8201L PHY and remember so the status
         * routine can query the proper register for speed detection.
         */
	rsc = (struct rlphy_softc *)sc;
	if (mii_phy_dev_probe(dev, rlphys, 0) == 0)
		rsc->sc_is_RTL8201L++;
	
	/*
	 * The RealTek PHY can never be isolated, so never allow non-zero
	 * instances!
	 */
	if (mii->mii_instance != 0) {
		device_printf(dev, "ignoring this PHY, non-zero instance\n");
		return (ENXIO);
	}

	LIST_INSERT_HEAD(&mii->mii_phys, sc, mii_list);

	sc->mii_inst = mii->mii_instance;
	sc->mii_phy = ma->mii_phyno;
	sc->mii_service = rlphy_service;
	sc->mii_pdata = mii;
	mii->mii_instance++;

	sc->mii_flags |= MIIF_NOISOLATE;

#define	ADD(m, c)	ifmedia_add(&mii->mii_media, (m), (c), NULL)

	ADD(IFM_MAKEWORD(IFM_ETHER, IFM_100_TX, IFM_LOOP, sc->mii_inst),
	    MII_MEDIA_100_TX);

	mii_phy_reset(sc);

	sc->mii_capabilities =
	    PHY_READ(sc, MII_BMSR) & ma->mii_capmask;
	device_printf(dev, " ");
	mii_phy_add_media(sc);
	printf("\n");
#undef ADD
	MIIBUS_MEDIAINIT(sc->mii_dev);
	return (0);
}
コード例 #7
0
static int
rlswitch_probe(device_t dev)
{
	int rv;

	rv = mii_phy_dev_probe(dev, rlswitches, BUS_PROBE_DEFAULT);
	if (rv <= 0)
		return (rv);

	return (ENXIO);
}
コード例 #8
0
ファイル: micphy.c プロジェクト: Lxg1582/freebsd
static int
micphy_probe(device_t dev)
{

	return (mii_phy_dev_probe(dev, micphys, BUS_PROBE_DEFAULT));
}
コード例 #9
0
ファイル: nsphyter.c プロジェクト: looncraz/haiku
static int
nsphyter_probe(device_t dev)
{

	return (mii_phy_dev_probe(dev, nsphyters, BUS_PROBE_DEFAULT));
}