Lines 323-350
static void ixgbe_setup_mux_ctl(struct ixgbe_hw *hw)
Link Here
|
323 |
} |
323 |
} |
324 |
|
324 |
|
325 |
/** |
325 |
/** |
326 |
* ixgbe_identify_phy_x550em - Get PHY type based on device id |
326 |
* ixgbe_identify_phy_x550em - Get PHY type based on device id |
327 |
* @hw: pointer to hardware structure |
327 |
* @hw: pointer to hardware structure |
328 |
* |
328 |
* |
329 |
* Returns error code |
329 |
* Returns error code |
330 |
*/ |
330 |
*/ |
331 |
static s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw) |
331 |
static s32 ixgbe_identify_phy_x550em(struct ixgbe_hw *hw) |
332 |
{ |
332 |
{ |
|
|
333 |
s32 ret_val; |
334 |
|
333 |
switch (hw->device_id) { |
335 |
switch (hw->device_id) { |
334 |
case IXGBE_DEV_ID_X550EM_X_SFP: |
336 |
case IXGBE_DEV_ID_X550EM_X_SFP: |
335 |
/* set up for CS4227 usage */ |
337 |
/* set up for CS4227 usage */ |
336 |
hw->phy.phy_semaphore_mask = IXGBE_GSSR_SHARED_I2C_SM; |
338 |
hw->phy.phy_semaphore_mask = IXGBE_GSSR_SHARED_I2C_SM; |
337 |
ixgbe_setup_mux_ctl(hw); |
339 |
ixgbe_setup_mux_ctl(hw); |
338 |
ixgbe_check_cs4227(hw); |
340 |
ixgbe_check_cs4227(hw); |
339 |
|
341 |
|
340 |
return ixgbe_identify_module_generic(hw); |
342 |
ret_val = ixgbe_identify_module_generic(hw); |
|
|
343 |
|
344 |
/* Set PHY type none if no SFP detected */ |
345 |
if (ret_val == IXGBE_ERR_SFP_NOT_PRESENT) { |
346 |
hw->phy.type = ixgbe_phy_none; |
347 |
return IXGBE_SUCCESS; |
348 |
} |
349 |
return ret_val; |
341 |
break; |
350 |
break; |
342 |
case IXGBE_DEV_ID_X550EM_X_KX4: |
351 |
case IXGBE_DEV_ID_X550EM_X_KX4: |
343 |
hw->phy.type = ixgbe_phy_x550em_kx4; |
352 |
hw->phy.type = ixgbe_phy_x550em_kx4; |
344 |
break; |
353 |
break; |
345 |
case IXGBE_DEV_ID_X550EM_X_KR: |
354 |
case IXGBE_DEV_ID_X550EM_X_KR: |
346 |
hw->phy.type = ixgbe_phy_x550em_kr; |
355 |
hw->phy.type = ixgbe_phy_x550em_kr; |
347 |
break; |
356 |
break; |
348 |
case IXGBE_DEV_ID_X550EM_X_1G_T: |
357 |
case IXGBE_DEV_ID_X550EM_X_1G_T: |
349 |
case IXGBE_DEV_ID_X550EM_X_10G_T: |
358 |
case IXGBE_DEV_ID_X550EM_X_10G_T: |
350 |
return ixgbe_identify_phy_generic(hw); |
359 |
return ixgbe_identify_phy_generic(hw); |