• Bruce Allan's avatar
    e1000e: Fix/cleanup PHY reset code for ICHx/PCHx · e98cac44
    Bruce Allan authored
    i) Fixes a bug where e1000_sw_lcd_config_ich8lan() was calling
    e1000_lan_init_done_ich8lan() to poll the STATUS.LAN_INIT_DONE bit to
    make sure the MAC had completed the PHY configuration.  However,
    e1000_lan_init_done_ich8lan() had already been called in one of the two
    places where PHY reset occurs for ICHx/PCHx parts, which caused the second
    call to busy-wait for 150 msec because the LAN_INIT_DONE bit had already
    been checked and cleared.
    
    ii) Cleanup the two separate PHY reset code paths, i.e. the full-chip reset
    in e1000_reset_hw_ich8lan() and the PHY-only reset in
    e1000_phy_hw_reset_ich8lan().  There was duplicate code in both paths to be
    performed post-reset that are now combined into one new function -
    e1000_post_phy_reset_ich8lan().  This cleanup also included moving the
    clearing of the PHY Reset Asserted bit in the STATUS register (now done for
    all ICH/PCH parts) and the check for the indication from h/w that basic
    configuration has completed back to where it previously was in
    e1000_get_cfg_done_ich8lan().
    
    iii) Corrected a few comments
    Signed-off-by: default avatarBruce Allan <bruce.w.allan@intel.com>
    Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e98cac44
ich8lan.c 94.8 KB