diff options
author | Neerav Parikh <Neerav.Parikh@intel.com> | 2014-04-01 03:11:56 -0400 |
---|---|---|
committer | Jeff Kirsher <jeffrey.t.kirsher@intel.com> | 2014-04-28 08:58:57 -0400 |
commit | 6bb3f23c55bc8c14e9721c64bf51a8290ee50779 (patch) | |
tree | 3ba6b3c382171c7115b3bbf05a96c0b6d09cf12a | |
parent | f4f94b94d6d6923ba7abfd1eedf931dcc1ccbbd5 (diff) |
i40e/i40evf: Retrieve and store missing link config information
Some information returned via "Get Link Status" command was not
being cached in the struct i40e_link_status.
Add this so the driver can utilize this information as needed.
Change-ID: If084a0ae2a63b16b97572196b993742af2c67772
Signed-off-by: Neerav Parikh <neerav.parikh@intel.com>
Acked-by: Greg Rose <gregory.v.rose@intel.com>
Tested-by: Kavindya Deegala <kavindya.s.deegala@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_common.c | 7 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/i40e/i40e_type.h | 3 | ||||
-rw-r--r-- | drivers/net/ethernet/intel/i40evf/i40e_type.h | 3 |
3 files changed, 13 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/i40e/i40e_common.c b/drivers/net/ethernet/intel/i40e/i40e_common.c index 55d029f78e9a..22eefda3a530 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_common.c +++ b/drivers/net/ethernet/intel/i40e/i40e_common.c | |||
@@ -975,6 +975,13 @@ i40e_status i40e_aq_get_link_info(struct i40e_hw *hw, | |||
975 | hw_link_info->an_info = resp->an_info; | 975 | hw_link_info->an_info = resp->an_info; |
976 | hw_link_info->ext_info = resp->ext_info; | 976 | hw_link_info->ext_info = resp->ext_info; |
977 | hw_link_info->loopback = resp->loopback; | 977 | hw_link_info->loopback = resp->loopback; |
978 | hw_link_info->max_frame_size = le16_to_cpu(resp->max_frame_size); | ||
979 | hw_link_info->pacing = resp->config & I40E_AQ_CONFIG_PACING_MASK; | ||
980 | |||
981 | if (resp->config & I40E_AQ_CONFIG_CRC_ENA) | ||
982 | hw_link_info->crc_enable = true; | ||
983 | else | ||
984 | hw_link_info->crc_enable = false; | ||
978 | 985 | ||
979 | if (resp->command_flags & cpu_to_le16(I40E_AQ_LSE_ENABLE)) | 986 | if (resp->command_flags & cpu_to_le16(I40E_AQ_LSE_ENABLE)) |
980 | hw_link_info->lse_enable = true; | 987 | hw_link_info->lse_enable = true; |
diff --git a/drivers/net/ethernet/intel/i40e/i40e_type.h b/drivers/net/ethernet/intel/i40e/i40e_type.h index 668acc78d34e..c4df8bac2db1 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_type.h +++ b/drivers/net/ethernet/intel/i40e/i40e_type.h | |||
@@ -167,6 +167,9 @@ struct i40e_link_status { | |||
167 | u8 loopback; | 167 | u8 loopback; |
168 | /* is Link Status Event notification to SW enabled */ | 168 | /* is Link Status Event notification to SW enabled */ |
169 | bool lse_enable; | 169 | bool lse_enable; |
170 | u16 max_frame_size; | ||
171 | bool crc_enable; | ||
172 | u8 pacing; | ||
170 | }; | 173 | }; |
171 | 174 | ||
172 | struct i40e_phy_info { | 175 | struct i40e_phy_info { |
diff --git a/drivers/net/ethernet/intel/i40evf/i40e_type.h b/drivers/net/ethernet/intel/i40evf/i40e_type.h index 449a3be24210..51a6dee3c7b1 100644 --- a/drivers/net/ethernet/intel/i40evf/i40e_type.h +++ b/drivers/net/ethernet/intel/i40evf/i40e_type.h | |||
@@ -173,6 +173,9 @@ struct i40e_link_status { | |||
173 | u8 loopback; | 173 | u8 loopback; |
174 | /* is Link Status Event notification to SW enabled */ | 174 | /* is Link Status Event notification to SW enabled */ |
175 | bool lse_enable; | 175 | bool lse_enable; |
176 | u16 max_frame_size; | ||
177 | bool crc_enable; | ||
178 | u8 pacing; | ||
176 | }; | 179 | }; |
177 | 180 | ||
178 | struct i40e_phy_info { | 181 | struct i40e_phy_info { |