Lines Matching refs:mii

36 static u32 mii_get_an(struct mii_if_info *mii, u16 addr)  in mii_get_an()  argument
40 advert = mii->mdio_read(mii->dev, mii->phy_id, addr); in mii_get_an()
53 void mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd) in mii_ethtool_gset() argument
55 struct net_device *dev = mii->dev; in mii_ethtool_gset()
63 if (mii->supports_gmii) in mii_ethtool_gset()
74 ecmd->phy_address = mii->phy_id; in mii_ethtool_gset()
79 bmcr = mii->mdio_read(dev, mii->phy_id, MII_BMCR); in mii_ethtool_gset()
80 bmsr = mii->mdio_read(dev, mii->phy_id, MII_BMSR); in mii_ethtool_gset()
81 if (mii->supports_gmii) { in mii_ethtool_gset()
82 ctrl1000 = mii->mdio_read(dev, mii->phy_id, MII_CTRL1000); in mii_ethtool_gset()
83 stat1000 = mii->mdio_read(dev, mii->phy_id, MII_STAT1000); in mii_ethtool_gset()
86 ecmd->advertising |= mii_get_an(mii, MII_ADVERTISE); in mii_ethtool_gset()
87 if (mii->supports_gmii) in mii_ethtool_gset()
96 ecmd->lp_advertising = mii_get_an(mii, MII_LPA); in mii_ethtool_gset()
129 mii->full_duplex = ecmd->duplex; in mii_ethtool_gset()
142 void mii_ethtool_get_link_ksettings(struct mii_if_info *mii, in mii_ethtool_get_link_ksettings() argument
145 struct net_device *dev = mii->dev; in mii_ethtool_get_link_ksettings()
152 if (mii->supports_gmii) in mii_ethtool_get_link_ksettings()
160 cmd->base.phy_address = mii->phy_id; in mii_ethtool_get_link_ksettings()
165 bmcr = mii->mdio_read(dev, mii->phy_id, MII_BMCR); in mii_ethtool_get_link_ksettings()
166 bmsr = mii->mdio_read(dev, mii->phy_id, MII_BMSR); in mii_ethtool_get_link_ksettings()
167 if (mii->supports_gmii) { in mii_ethtool_get_link_ksettings()
168 ctrl1000 = mii->mdio_read(dev, mii->phy_id, MII_CTRL1000); in mii_ethtool_get_link_ksettings()
169 stat1000 = mii->mdio_read(dev, mii->phy_id, MII_STAT1000); in mii_ethtool_get_link_ksettings()
172 advertising |= mii_get_an(mii, MII_ADVERTISE); in mii_ethtool_get_link_ksettings()
173 if (mii->supports_gmii) in mii_ethtool_get_link_ksettings()
181 lp_advertising = mii_get_an(mii, MII_LPA); in mii_ethtool_get_link_ksettings()
216 mii->full_duplex = cmd->base.duplex; in mii_ethtool_get_link_ksettings()
235 int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd) in mii_ethtool_sset() argument
237 struct net_device *dev = mii->dev; in mii_ethtool_sset()
250 if (ecmd->phy_address != mii->phy_id) in mii_ethtool_sset()
254 if ((speed == SPEED_1000) && (!mii->supports_gmii)) in mii_ethtool_sset()
272 advert = mii->mdio_read(dev, mii->phy_id, MII_ADVERTISE); in mii_ethtool_sset()
274 if (mii->supports_gmii) { in mii_ethtool_sset()
275 advert2 = mii->mdio_read(dev, mii->phy_id, MII_CTRL1000); in mii_ethtool_sset()
280 if (mii->supports_gmii) in mii_ethtool_sset()
284 mii->mdio_write(dev, mii->phy_id, MII_ADVERTISE, tmp); in mii_ethtool_sset()
285 mii->advertising = tmp; in mii_ethtool_sset()
287 if ((mii->supports_gmii) && (advert2 != tmp2)) in mii_ethtool_sset()
288 mii->mdio_write(dev, mii->phy_id, MII_CTRL1000, tmp2); in mii_ethtool_sset()
291 bmcr = mii->mdio_read(dev, mii->phy_id, MII_BMCR); in mii_ethtool_sset()
293 mii->mdio_write(dev, mii->phy_id, MII_BMCR, bmcr); in mii_ethtool_sset()
295 mii->force_media = 0; in mii_ethtool_sset()
300 bmcr = mii->mdio_read(dev, mii->phy_id, MII_BMCR); in mii_ethtool_sset()
309 mii->full_duplex = 1; in mii_ethtool_sset()
311 mii->full_duplex = 0; in mii_ethtool_sset()
313 mii->mdio_write(dev, mii->phy_id, MII_BMCR, tmp); in mii_ethtool_sset()
315 mii->force_media = 1; in mii_ethtool_sset()
327 int mii_ethtool_set_link_ksettings(struct mii_if_info *mii, in mii_ethtool_set_link_ksettings() argument
330 struct net_device *dev = mii->dev; in mii_ethtool_set_link_ksettings()
341 if (cmd->base.phy_address != mii->phy_id) in mii_ethtool_set_link_ksettings()
346 if ((speed == SPEED_1000) && (!mii->supports_gmii)) in mii_ethtool_set_link_ksettings()
368 advert = mii->mdio_read(dev, mii->phy_id, MII_ADVERTISE); in mii_ethtool_set_link_ksettings()
370 if (mii->supports_gmii) { in mii_ethtool_set_link_ksettings()
371 advert2 = mii->mdio_read(dev, mii->phy_id, in mii_ethtool_set_link_ksettings()
378 if (mii->supports_gmii) in mii_ethtool_set_link_ksettings()
381 mii->mdio_write(dev, mii->phy_id, MII_ADVERTISE, tmp); in mii_ethtool_set_link_ksettings()
382 mii->advertising = tmp; in mii_ethtool_set_link_ksettings()
384 if ((mii->supports_gmii) && (advert2 != tmp2)) in mii_ethtool_set_link_ksettings()
385 mii->mdio_write(dev, mii->phy_id, MII_CTRL1000, tmp2); in mii_ethtool_set_link_ksettings()
388 bmcr = mii->mdio_read(dev, mii->phy_id, MII_BMCR); in mii_ethtool_set_link_ksettings()
390 mii->mdio_write(dev, mii->phy_id, MII_BMCR, bmcr); in mii_ethtool_set_link_ksettings()
392 mii->force_media = 0; in mii_ethtool_set_link_ksettings()
397 bmcr = mii->mdio_read(dev, mii->phy_id, MII_BMCR); in mii_ethtool_set_link_ksettings()
406 mii->full_duplex = 1; in mii_ethtool_set_link_ksettings()
408 mii->full_duplex = 0; in mii_ethtool_set_link_ksettings()
411 mii->mdio_write(dev, mii->phy_id, MII_BMCR, tmp); in mii_ethtool_set_link_ksettings()
413 mii->force_media = 1; in mii_ethtool_set_link_ksettings()
422 int mii_check_gmii_support(struct mii_if_info *mii) in mii_check_gmii_support() argument
426 reg = mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR); in mii_check_gmii_support()
428 reg = mii->mdio_read(mii->dev, mii->phy_id, MII_ESTATUS); in mii_check_gmii_support()
442 int mii_link_ok (struct mii_if_info *mii) in mii_link_ok() argument
445 mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR); in mii_link_ok()
446 if (mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR) & BMSR_LSTATUS) in mii_link_ok()
457 int mii_nway_restart (struct mii_if_info *mii) in mii_nway_restart() argument
463 bmcr = mii->mdio_read(mii->dev, mii->phy_id, MII_BMCR); in mii_nway_restart()
467 mii->mdio_write(mii->dev, mii->phy_id, MII_BMCR, bmcr); in mii_nway_restart()
482 void mii_check_link (struct mii_if_info *mii) in mii_check_link() argument
484 int cur_link = mii_link_ok(mii); in mii_check_link()
485 int prev_link = netif_carrier_ok(mii->dev); in mii_check_link()
488 netif_carrier_on(mii->dev); in mii_check_link()
490 netif_carrier_off(mii->dev); in mii_check_link()
502 unsigned int mii_check_media (struct mii_if_info *mii, in mii_check_media() argument
511 old_carrier = netif_carrier_ok(mii->dev) ? 1 : 0; in mii_check_media()
512 new_carrier = (unsigned int) mii_link_ok(mii); in mii_check_media()
522 netif_carrier_off(mii->dev); in mii_check_media()
524 netdev_info(mii->dev, "link down\n"); in mii_check_media()
531 netif_carrier_on(mii->dev); in mii_check_media()
533 if (mii->force_media) { in mii_check_media()
535 netdev_info(mii->dev, "link up\n"); in mii_check_media()
540 if ((!init_media) && (mii->advertising)) in mii_check_media()
541 advertise = mii->advertising; in mii_check_media()
543 advertise = mii->mdio_read(mii->dev, mii->phy_id, MII_ADVERTISE); in mii_check_media()
544 mii->advertising = advertise; in mii_check_media()
546 lpa = mii->mdio_read(mii->dev, mii->phy_id, MII_LPA); in mii_check_media()
547 if (mii->supports_gmii) in mii_check_media()
548 lpa2 = mii->mdio_read(mii->dev, mii->phy_id, MII_STAT1000); in mii_check_media()
557 netdev_info(mii->dev, "link up, %uMbps, %s-duplex, lpa 0x%04X\n", in mii_check_media()
564 if ((init_media) || (mii->full_duplex != duplex)) { in mii_check_media()
565 mii->full_duplex = duplex; in mii_check_media()