static int e1000_link_test(struct e1000_adapter *adapter, uint64_t *data) { *data = 0; if (adapter->hw.media_type == e1000_media_type_internal_serdes) { int i = 0; adapter->hw.serdes_link_down = TRUE; /* on some blade server designs link establishment */ /* could take as long as 2-3 minutes. */ do { e1000_check_for_link(&adapter->hw); if (adapter->hw.serdes_link_down == FALSE) return *data; msec_delay(20); } while (i++ < 3750); *data = 1; } else { e1000_check_for_link(&adapter->hw); if(!(E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU)) { *data = 1; } } return *data; }
static int e1000_link_test(struct e1000_adapter *adapter, uint64_t *data) { *data = 0; e1000_check_for_link(&adapter->hw); if(!(E1000_READ_REG(&adapter->hw, STATUS) & E1000_STATUS_LU)) { *data = 1; } return *data; }