1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /* QLogic FCoE Offload Driver
3 * Copyright (c) 2016-2018 Cavium Inc.
5 #ifndef _FCOE_FW_FUNCS_H
6 #define _FCOE_FW_FUNCS_H
7 #include "drv_scsi_fw_funcs.h"
9 #include <linux/qed/qed_if.h>
11 struct fcoe_task_params
{
12 /* Output parameter [set/filled by the HSI function] */
13 struct e4_fcoe_task_context
*context
;
15 /* Output parameter [set/filled by the HSI function] */
17 enum fcoe_task_type task_type
;
18 u32 tx_io_size
; /* in bytes */
19 u32 rx_io_size
; /* in bytes */
24 /* Whether it's Tape device or not (0=Disk, 1=Tape) */
29 * @brief init_initiator_rw_fcoe_task - Initializes FCoE task context for
30 * read/write task types and init fcoe_sqe
32 * @param task_params - Pointer to task parameters struct
33 * @param sgl_task_params - Pointer to SGL task params
34 * @param sense_data_buffer_phys_addr - Pointer to sense data buffer
35 * @param task_retry_id - retry identification - Used only for Tape device
36 * @param fcp_cmnd_payload - FCP CMD Payload
38 int init_initiator_rw_fcoe_task(struct fcoe_task_params
*task_params
,
39 struct scsi_sgl_task_params
*sgl_task_params
,
40 struct regpair sense_data_buffer_phys_addr
,
42 u8 fcp_cmd_payload
[32]);
45 * @brief init_initiator_midpath_fcoe_task - Initializes FCoE task context for
46 * midpath/unsolicited task types and init fcoe_sqe
48 * @param task_params - Pointer to task parameters struct
49 * @param mid_path_fc_header - FC header
50 * @param tx_sgl_task_params - Pointer to Tx SGL task params
51 * @param rx_sgl_task_params - Pointer to Rx SGL task params
52 * @param fw_to_place_fc_header - Indication if the FW will place the FC header
53 * in addition to the data arrives.
55 int init_initiator_midpath_unsolicited_fcoe_task(
56 struct fcoe_task_params
*task_params
,
57 struct fcoe_tx_mid_path_params
*mid_path_fc_header
,
58 struct scsi_sgl_task_params
*tx_sgl_task_params
,
59 struct scsi_sgl_task_params
*rx_sgl_task_params
,
60 u8 fw_to_place_fc_header
);
63 * @brief init_initiator_abort_fcoe_task - Initializes FCoE task context for
64 * abort task types and init fcoe_sqe
66 * @param task_params - Pointer to task parameters struct
68 int init_initiator_abort_fcoe_task(struct fcoe_task_params
*task_params
);
71 * @brief init_initiator_cleanup_fcoe_task - Initializes FCoE task context for
72 * cleanup task types and init fcoe_sqe
75 * @param task_params - Pointer to task parameters struct
77 int init_initiator_cleanup_fcoe_task(struct fcoe_task_params
*task_params
);
80 * @brief init_initiator_cleanup_fcoe_task - Initializes FCoE task context for
81 * sequence recovery task types and init fcoe_sqe
84 * @param task_params - Pointer to task parameters struct
85 * @param desired_offset - The desired offest the task will be re-sent from
87 int init_initiator_sequence_recovery_fcoe_task(
88 struct fcoe_task_params
*task_params
,