Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] mii: Add test for GigE support

Signed-off-by: Dale Farnsworth <dale@farnsworth.org>
Signed-off-by: Jeff Garzik <jgarzik@pobox.com>

authored by

Dale Farnsworth and committed by
Jeff Garzik
43ec6e95 7a700faf

+16
+15
drivers/net/mii.c
··· 207 207 return 0; 208 208 } 209 209 210 + int mii_check_gmii_support(struct mii_if_info *mii) 211 + { 212 + int reg; 213 + 214 + reg = mii->mdio_read(mii->dev, mii->phy_id, MII_BMSR); 215 + if (reg & BMSR_ESTATEN) { 216 + reg = mii->mdio_read(mii->dev, mii->phy_id, MII_ESTATUS); 217 + if (reg & (ESTATUS_1000_TFULL | ESTATUS_1000_THALF)) 218 + return 1; 219 + } 220 + 221 + return 0; 222 + } 223 + 210 224 int mii_link_ok (struct mii_if_info *mii) 211 225 { 212 226 /* first, a dummy read, needed to latch some MII phys */ ··· 408 394 EXPORT_SYMBOL(mii_ethtool_sset); 409 395 EXPORT_SYMBOL(mii_check_link); 410 396 EXPORT_SYMBOL(mii_check_media); 397 + EXPORT_SYMBOL(mii_check_gmii_support); 411 398 EXPORT_SYMBOL(generic_mii_ioctl); 412 399
+1
include/linux/mii.h
··· 158 158 extern int mii_nway_restart (struct mii_if_info *mii); 159 159 extern int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd); 160 160 extern int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd); 161 + extern int mii_check_gmii_support(struct mii_if_info *mii); 161 162 extern void mii_check_link (struct mii_if_info *mii); 162 163 extern unsigned int mii_check_media (struct mii_if_info *mii, 163 164 unsigned int ok_to_print,