Hi,

e1000e probe fails on our Ivy Bridge as e1000_init_phy_params_pchlan()
is unable to determine the phy type. The phy->id had value 0xffff0090
right before e1000e_get_phy_type_from_id(phy->id) was called.

I traced the problem to e1000_phy_is_accessible_pchlan(). The first
register read (PHY_ID1) seems to always return 0xffff. I tested and
saw that it does not to matter which register is read first, it always
returns 0xffff. The second read returns proper value, so I hacked it
like this for now:

diff --git a/drivers/net/ethernet/intel/e1000e/ich8lan.c 
b/drivers/net/ethernet/intel/e1000e/ich8lan.c
index 238ab2f..292a234 100644
--- a/drivers/net/ethernet/intel/e1000e/ich8lan.c
+++ b/drivers/net/ethernet/intel/e1000e/ich8lan.c
@@ -329,6 +329,7 @@ static bool e1000_phy_is_accessible_pchlan(struct e1000_hw 
*hw)
        u32 phy_id;
 
        e1e_rphy_locked(hw, PHY_ID1, &phy_reg);
+       e1e_rphy_locked(hw, PHY_ID1, &phy_reg);
        phy_id = (u32)(phy_reg << 16);
        e1e_rphy_locked(hw, PHY_ID2, &phy_reg);
        phy_id |= (u32)(phy_reg & PHY_REVISION_MASK);

Br,

-- 
heikki

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
E1000-devel mailing list
E1000-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to