diff options
author | Tomer Tayar <Tomer.Tayar@cavium.com> | 2017-03-28 15:12:50 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-03-28 18:05:23 -0700 |
commit | 1226337ad98ffc7982244a67a47faab1eacaca33 (patch) | |
tree | ce2f59239b9539ba676c864a0d969a189fb1832b /drivers/net/ethernet/qlogic/qed/qed_mcp.h | |
parent | 30b38236e1313e216a869d38cef867d327a0009b (diff) | |
download | linux-1226337ad98ffc7982244a67a47faab1eacaca33.tar.bz2 |
qed: Correct HW stop flow
Management firmware is used as arbiter between different PFs
which are loading/unloading, but in order to use the synchronization
it offers the contending configurations need to be applied either
between their LOAD_REQ <-> LOAD_DONE or UNLOAD_REQ <-> UNLOAD_DONE
management firmware commands.
Existing HW stop flow utilizes 2 different functions: qed_hw_stop() and
qed_hw_reset() which don't abide this requirement; Most of the closure
is doing outside the scope of the unload request.
This patch removes qed_hw_reset() and places the relevant stop
functionality underneath the management firmware protection.
Signed-off-by: Tomer Tayar <Tomer.Tayar@cavium.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qlogic/qed/qed_mcp.h')
-rw-r--r-- | drivers/net/ethernet/qlogic/qed/qed_mcp.h | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.h b/drivers/net/ethernet/qlogic/qed/qed_mcp.h index f63693d38934..7d067d047e7a 100644 --- a/drivers/net/ethernet/qlogic/qed/qed_mcp.h +++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.h @@ -593,6 +593,26 @@ int qed_mcp_load_req(struct qed_hwfn *p_hwfn, u32 *p_load_code); /** + * @brief Sends a UNLOAD_REQ message to the MFW + * + * @param p_hwfn + * @param p_ptt + * + * @return int - 0 - Operation was successful. + */ +int qed_mcp_unload_req(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); + +/** + * @brief Sends a UNLOAD_DONE message to the MFW + * + * @param p_hwfn + * @param p_ptt + * + * @return int - 0 - Operation was successful. + */ +int qed_mcp_unload_done(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt); + +/** * @brief Read the MFW mailbox into Current buffer. * * @param p_hwfn |