diff options
author | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-06-20 11:25:44 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-06-20 11:25:44 -0400 |
commit | af52739b922f656eb1f39016fabaabe4baeda2e2 (patch) | |
tree | 79a7aa810d0493cd0cf4adebac26d37f12e8b545 /drivers/net/ethernet/qlogic/qed/qed_main.c | |
parent | 25ed6a5e97809129a1bc852b6b5c7d03baa112c4 (diff) | |
parent | 33688abb2802ff3a230bd2441f765477b94cc89e (diff) |
Merge 4.7-rc4 into staging-next
We want the fixes in here, and we can resolve a merge issue in
drivers/iio/industrialio-trigger.c
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qed/qed_main.c')
-rw-r--r-- | drivers/net/ethernet/qlogic/qed/qed_main.c | 45 |
1 files changed, 36 insertions, 9 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_main.c b/drivers/net/ethernet/qlogic/qed/qed_main.c index 753064679bde..61cc6869fa65 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_main.c +++ b/drivers/net/ethernet/qlogic/qed/qed_main.c | |||
@@ -1105,6 +1105,39 @@ static int qed_get_port_type(u32 media_type) | |||
1105 | return port_type; | 1105 | return port_type; |
1106 | } | 1106 | } |
1107 | 1107 | ||
1108 | static int qed_get_link_data(struct qed_hwfn *hwfn, | ||
1109 | struct qed_mcp_link_params *params, | ||
1110 | struct qed_mcp_link_state *link, | ||
1111 | struct qed_mcp_link_capabilities *link_caps) | ||
1112 | { | ||
1113 | void *p; | ||
1114 | |||
1115 | if (!IS_PF(hwfn->cdev)) { | ||
1116 | qed_vf_get_link_params(hwfn, params); | ||
1117 | qed_vf_get_link_state(hwfn, link); | ||
1118 | qed_vf_get_link_caps(hwfn, link_caps); | ||
1119 | |||
1120 | return 0; | ||
1121 | } | ||
1122 | |||
1123 | p = qed_mcp_get_link_params(hwfn); | ||
1124 | if (!p) | ||
1125 | return -ENXIO; | ||
1126 | memcpy(params, p, sizeof(*params)); | ||
1127 | |||
1128 | p = qed_mcp_get_link_state(hwfn); | ||
1129 | if (!p) | ||
1130 | return -ENXIO; | ||
1131 | memcpy(link, p, sizeof(*link)); | ||
1132 | |||
1133 | p = qed_mcp_get_link_capabilities(hwfn); | ||
1134 | if (!p) | ||
1135 | return -ENXIO; | ||
1136 | memcpy(link_caps, p, sizeof(*link_caps)); | ||
1137 | |||
1138 | return 0; | ||
1139 | } | ||
1140 | |||
1108 | static void qed_fill_link(struct qed_hwfn *hwfn, | 1141 | static void qed_fill_link(struct qed_hwfn *hwfn, |
1109 | struct qed_link_output *if_link) | 1142 | struct qed_link_output *if_link) |
1110 | { | 1143 | { |
@@ -1116,15 +1149,9 @@ static void qed_fill_link(struct qed_hwfn *hwfn, | |||
1116 | memset(if_link, 0, sizeof(*if_link)); | 1149 | memset(if_link, 0, sizeof(*if_link)); |
1117 | 1150 | ||
1118 | /* Prepare source inputs */ | 1151 | /* Prepare source inputs */ |
1119 | if (IS_PF(hwfn->cdev)) { | 1152 | if (qed_get_link_data(hwfn, ¶ms, &link, &link_caps)) { |
1120 | memcpy(¶ms, qed_mcp_get_link_params(hwfn), sizeof(params)); | 1153 | dev_warn(&hwfn->cdev->pdev->dev, "no link data available\n"); |
1121 | memcpy(&link, qed_mcp_get_link_state(hwfn), sizeof(link)); | 1154 | return; |
1122 | memcpy(&link_caps, qed_mcp_get_link_capabilities(hwfn), | ||
1123 | sizeof(link_caps)); | ||
1124 | } else { | ||
1125 | qed_vf_get_link_params(hwfn, ¶ms); | ||
1126 | qed_vf_get_link_state(hwfn, &link); | ||
1127 | qed_vf_get_link_caps(hwfn, &link_caps); | ||
1128 | } | 1155 | } |
1129 | 1156 | ||
1130 | /* Set the link parameters to pass to protocol driver */ | 1157 | /* Set the link parameters to pass to protocol driver */ |