diff options
Diffstat (limited to 'drivers/net/ethernet/qlogic/qed/qed_main.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qed/qed_main.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c index 0cbc74d6ca8b..158944aa6097 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_main.c +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c | |||
@@ -2102,6 +2102,28 @@ out: | |||
2102 | return status; | 2102 | return status; |
2103 | } | 2103 | } |
2104 | 2104 | ||
2105 | static int qed_read_module_eeprom(struct qed_dev *cdev, char *buf, | ||
2106 | u8 dev_addr, u32 offset, u32 len) | ||
2107 | { | ||
2108 | struct qed_hwfn *hwfn = QED_LEADING_HWFN(cdev); | ||
2109 | struct qed_ptt *ptt; | ||
2110 | int rc = 0; | ||
2111 | |||
2112 | if (IS_VF(cdev)) | ||
2113 | return 0; | ||
2114 | |||
2115 | ptt = qed_ptt_acquire(hwfn); | ||
2116 | if (!ptt) | ||
2117 | return -EAGAIN; | ||
2118 | |||
2119 | rc = qed_mcp_phy_sfp_read(hwfn, ptt, MFW_PORT(hwfn), dev_addr, | ||
2120 | offset, len, buf); | ||
2121 | |||
2122 | qed_ptt_release(hwfn, ptt); | ||
2123 | |||
2124 | return rc; | ||
2125 | } | ||
2126 | |||
2105 | static struct qed_selftest_ops qed_selftest_ops_pass = { | 2127 | static struct qed_selftest_ops qed_selftest_ops_pass = { |
2106 | .selftest_memory = &qed_selftest_memory, | 2128 | .selftest_memory = &qed_selftest_memory, |
2107 | .selftest_interrupt = &qed_selftest_interrupt, | 2129 | .selftest_interrupt = &qed_selftest_interrupt, |
@@ -2144,6 +2166,7 @@ const struct qed_common_ops qed_common_ops_pass = { | |||
2144 | .update_mac = &qed_update_mac, | 2166 | .update_mac = &qed_update_mac, |
2145 | .update_mtu = &qed_update_mtu, | 2167 | .update_mtu = &qed_update_mtu, |
2146 | .update_wol = &qed_update_wol, | 2168 | .update_wol = &qed_update_wol, |
2169 | .read_module_eeprom = &qed_read_module_eeprom, | ||
2147 | }; | 2170 | }; |
2148 | 2171 | ||
2149 | void qed_get_protocol_stats(struct qed_dev *cdev, | 2172 | void qed_get_protocol_stats(struct qed_dev *cdev, |