mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-03-16 12:14:06 +00:00
qed: Fix kernel-doc warnings
This patch fixes all the qed and qede kernel-doc warnings according to the guidelines that are described in Documentation/doc-guide/kernel-doc.rst. Signed-off-by: Ariel Elior <aelior@marvell.com> Signed-off-by: Omkar Kulkarni <okulkarni@marvell.com> Signed-off-by: Shai Malin <smalin@marvell.com> Signed-off-by: Prabhakar Kushwaha <pkushwaha@marvell.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
cfbe9b0021
commit
19198e4ec9
21 changed files with 2161 additions and 1892 deletions
|
@ -877,12 +877,13 @@ u32 qed_get_hsi_def_val(struct qed_dev *cdev, enum qed_hsi_def_type type);
|
|||
|
||||
|
||||
/**
|
||||
* @brief qed_concrete_to_sw_fid - get the sw function id from
|
||||
* the concrete value.
|
||||
* qed_concrete_to_sw_fid(): Get the sw function id from
|
||||
* the concrete value.
|
||||
*
|
||||
* @param concrete_fid
|
||||
* @cdev: Qed dev pointer.
|
||||
* @concrete_fid: Concrete fid.
|
||||
*
|
||||
* @return inline u8
|
||||
* Return: inline u8.
|
||||
*/
|
||||
static inline u8 qed_concrete_to_sw_fid(struct qed_dev *cdev,
|
||||
u32 concrete_fid)
|
||||
|
|
|
@ -28,24 +28,23 @@ struct qed_tid_mem {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qedo_cid_get_cxt_info - Returns the context info for a specific cid
|
||||
* qed_cxt_get_cid_info(): Returns the context info for a specific cidi.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_info: In/out.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_info in/out
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_cxt_get_cid_info(struct qed_hwfn *p_hwfn,
|
||||
struct qed_cxt_info *p_info);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_get_tid_mem_info
|
||||
* qed_cxt_get_tid_mem_info(): Returns the tid mem info.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_info
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_info: in/out.
|
||||
*
|
||||
* @return int
|
||||
* Return: int.
|
||||
*/
|
||||
int qed_cxt_get_tid_mem_info(struct qed_hwfn *p_hwfn,
|
||||
struct qed_tid_mem *p_info);
|
||||
|
@ -64,142 +63,155 @@ u32 qed_cxt_get_proto_cid_count(struct qed_hwfn *p_hwfn,
|
|||
enum protocol_type type, u32 *vf_cid);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_set_pf_params - Set the PF params for cxt init
|
||||
* qed_cxt_set_pf_params(): Set the PF params for cxt init.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param rdma_tasks - requested maximum
|
||||
* @return int
|
||||
* @p_hwfn: HW device data.
|
||||
* @rdma_tasks: Requested maximum.
|
||||
*
|
||||
* Return: int.
|
||||
*/
|
||||
int qed_cxt_set_pf_params(struct qed_hwfn *p_hwfn, u32 rdma_tasks);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_cfg_ilt_compute - compute ILT init parameters
|
||||
* qed_cxt_cfg_ilt_compute(): Compute ILT init parameters.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param last_line
|
||||
* @p_hwfn: HW device data.
|
||||
* @last_line: Last_line.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int
|
||||
*/
|
||||
int qed_cxt_cfg_ilt_compute(struct qed_hwfn *p_hwfn, u32 *last_line);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_cfg_ilt_compute_excess - how many lines can be decreased
|
||||
* qed_cxt_cfg_ilt_compute_excess(): How many lines can be decreased.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param used_lines
|
||||
* @p_hwfn: HW device data.
|
||||
* @used_lines: Used lines.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
u32 qed_cxt_cfg_ilt_compute_excess(struct qed_hwfn *p_hwfn, u32 used_lines);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_mngr_alloc - Allocate and init the context manager struct
|
||||
* qed_cxt_mngr_alloc(): Allocate and init the context manager struct.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_cxt_mngr_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_mngr_free
|
||||
* qed_cxt_mngr_free() - Context manager free.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_cxt_mngr_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_tables_alloc - Allocate ILT shadow, Searcher T2, acquired map
|
||||
* qed_cxt_tables_alloc(): Allocate ILT shadow, Searcher T2, acquired map.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_cxt_tables_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_mngr_setup - Reset the acquired CIDs
|
||||
* qed_cxt_mngr_setup(): Reset the acquired CIDs.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*/
|
||||
void qed_cxt_mngr_setup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_hw_init_common - Initailze ILT and DQ, common phase, per path.
|
||||
* qed_cxt_hw_init_common(): Initailze ILT and DQ, common phase, per path.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
*
|
||||
* @param p_hwfn
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_cxt_hw_init_common(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_hw_init_pf - Initailze ILT and DQ, PF phase, per path.
|
||||
* qed_cxt_hw_init_pf(): Initailze ILT and DQ, PF phase, per path.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_cxt_hw_init_pf(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief qed_qm_init_pf - Initailze the QM PF phase, per path
|
||||
* qed_qm_init_pf(): Initailze the QM PF phase, per path.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param is_pf_loading
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @is_pf_loading: Is pf pending.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_qm_init_pf(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt, bool is_pf_loading);
|
||||
|
||||
/**
|
||||
* @brief Reconfigures QM pf on the fly
|
||||
* qed_qm_reconf(): Reconfigures QM pf on the fly.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_qm_reconf(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
|
||||
|
||||
#define QED_CXT_PF_CID (0xff)
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_release - Release a cid
|
||||
* qed_cxt_release_cid(): Release a cid.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param cid
|
||||
* @p_hwfn: HW device data.
|
||||
* @cid: Cid.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_cxt_release_cid(struct qed_hwfn *p_hwfn, u32 cid);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_release - Release a cid belonging to a vf-queue
|
||||
* _qed_cxt_release_cid(): Release a cid belonging to a vf-queue.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param cid
|
||||
* @param vfid - engine relative index. QED_CXT_PF_CID if belongs to PF
|
||||
* @p_hwfn: HW device data.
|
||||
* @cid: Cid.
|
||||
* @vfid: Engine relative index. QED_CXT_PF_CID if belongs to PF.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void _qed_cxt_release_cid(struct qed_hwfn *p_hwfn, u32 cid, u8 vfid);
|
||||
|
||||
/**
|
||||
* @brief qed_cxt_acquire - Acquire a new cid of a specific protocol type
|
||||
* qed_cxt_acquire_cid(): Acquire a new cid of a specific protocol type.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param type
|
||||
* @param p_cid
|
||||
* @p_hwfn: HW device data.
|
||||
* @type: Type.
|
||||
* @p_cid: Pointer cid.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_cxt_acquire_cid(struct qed_hwfn *p_hwfn,
|
||||
enum protocol_type type, u32 *p_cid);
|
||||
|
||||
/**
|
||||
* @brief _qed_cxt_acquire - Acquire a new cid of a specific protocol type
|
||||
* for a vf-queue
|
||||
* _qed_cxt_acquire_cid(): Acquire a new cid of a specific protocol type
|
||||
* for a vf-queue.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param type
|
||||
* @param p_cid
|
||||
* @param vfid - engine relative index. QED_CXT_PF_CID if belongs to PF
|
||||
* @p_hwfn: HW device data.
|
||||
* @type: Type.
|
||||
* @p_cid: Pointer cid.
|
||||
* @vfid: Engine relative index. QED_CXT_PF_CID if belongs to PF.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int _qed_cxt_acquire_cid(struct qed_hwfn *p_hwfn,
|
||||
enum protocol_type type, u32 *p_cid, u8 vfid);
|
||||
|
|
|
@ -15,44 +15,52 @@
|
|||
#include "qed_int.h"
|
||||
|
||||
/**
|
||||
* @brief qed_init_dp - initialize the debug level
|
||||
* qed_init_dp(): Initialize the debug level.
|
||||
*
|
||||
* @param cdev
|
||||
* @param dp_module
|
||||
* @param dp_level
|
||||
* @cdev: Qed dev pointer.
|
||||
* @dp_module: Module debug parameter.
|
||||
* @dp_level: Module debug level.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_init_dp(struct qed_dev *cdev,
|
||||
u32 dp_module,
|
||||
u8 dp_level);
|
||||
|
||||
/**
|
||||
* @brief qed_init_struct - initialize the device structure to
|
||||
* its defaults
|
||||
* qed_init_struct(): Initialize the device structure to
|
||||
* its defaults.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_init_struct(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_resc_free -
|
||||
* qed_resc_free: Free device resources.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_resc_free(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_resc_alloc -
|
||||
* qed_resc_alloc(): Alloc device resources.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_resc_alloc(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_resc_setup -
|
||||
* qed_resc_setup(): Setup device resources.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_resc_setup(struct qed_dev *cdev);
|
||||
|
||||
|
@ -105,94 +113,97 @@ struct qed_hw_init_params {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_hw_init -
|
||||
* qed_hw_init(): Init Qed hardware.
|
||||
*
|
||||
* @param cdev
|
||||
* @param p_params
|
||||
* @cdev: Qed dev pointer.
|
||||
* @p_params: Pointers to params.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_hw_init(struct qed_dev *cdev, struct qed_hw_init_params *p_params);
|
||||
|
||||
/**
|
||||
* @brief qed_hw_timers_stop_all - stop the timers HW block
|
||||
* qed_hw_timers_stop_all(): Stop the timers HW block.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return void
|
||||
* Return: void.
|
||||
*/
|
||||
void qed_hw_timers_stop_all(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_hw_stop -
|
||||
* qed_hw_stop(): Stop Qed hardware.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: int.
|
||||
*/
|
||||
int qed_hw_stop(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_hw_stop_fastpath -should be called incase
|
||||
* slowpath is still required for the device,
|
||||
* but fastpath is not.
|
||||
* qed_hw_stop_fastpath(): Should be called incase
|
||||
* slowpath is still required for the device,
|
||||
* but fastpath is not.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_hw_stop_fastpath(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_hw_start_fastpath -restart fastpath traffic,
|
||||
* only if hw_stop_fastpath was called
|
||||
* qed_hw_start_fastpath(): Restart fastpath traffic,
|
||||
* only if hw_stop_fastpath was called.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_hw_start_fastpath(struct qed_hwfn *p_hwfn);
|
||||
|
||||
|
||||
/**
|
||||
* @brief qed_hw_prepare -
|
||||
* qed_hw_prepare(): Prepare Qed hardware.
|
||||
*
|
||||
* @param cdev
|
||||
* @param personality - personality to initialize
|
||||
* @cdev: Qed dev pointer.
|
||||
* @personality: Personality to initialize.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_hw_prepare(struct qed_dev *cdev,
|
||||
int personality);
|
||||
|
||||
/**
|
||||
* @brief qed_hw_remove -
|
||||
* qed_hw_remove(): Remove Qed hardware.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_hw_remove(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_acquire - Allocate a PTT window
|
||||
* qed_ptt_acquire(): Allocate a PTT window.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: struct qed_ptt.
|
||||
*
|
||||
* Should be called at the entry point to the driver (at the beginning of an
|
||||
* exported function)
|
||||
*
|
||||
* @param p_hwfn
|
||||
*
|
||||
* @return struct qed_ptt
|
||||
* exported function).
|
||||
*/
|
||||
struct qed_ptt *qed_ptt_acquire(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_release - Release PTT Window
|
||||
* qed_ptt_release(): Release PTT Window.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Void.
|
||||
*
|
||||
* Should be called at the end of a flow - at the end of the function that
|
||||
* acquired the PTT.
|
||||
*
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
*/
|
||||
void qed_ptt_release(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
@ -205,15 +216,17 @@ enum qed_dmae_address_type_t {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_dmae_host2grc - copy data from source addr to
|
||||
* dmae registers using the given ptt
|
||||
* qed_dmae_host2grc(): Copy data from source addr to
|
||||
* dmae registers using the given ptt.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param source_addr
|
||||
* @param grc_addr (dmae_data_offset)
|
||||
* @param size_in_dwords
|
||||
* @param p_params (default parameters will be used in case of NULL)
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @source_addr: Source address.
|
||||
* @grc_addr: GRC address (dmae_data_offset).
|
||||
* @size_in_dwords: Size.
|
||||
* @p_params: (default parameters will be used in case of NULL).
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_dmae_host2grc(struct qed_hwfn *p_hwfn,
|
||||
|
@ -224,29 +237,34 @@ qed_dmae_host2grc(struct qed_hwfn *p_hwfn,
|
|||
struct qed_dmae_params *p_params);
|
||||
|
||||
/**
|
||||
* @brief qed_dmae_grc2host - Read data from dmae data offset
|
||||
* to source address using the given ptt
|
||||
* qed_dmae_grc2host(): Read data from dmae data offset
|
||||
* to source address using the given ptt.
|
||||
*
|
||||
* @param p_ptt
|
||||
* @param grc_addr (dmae_data_offset)
|
||||
* @param dest_addr
|
||||
* @param size_in_dwords
|
||||
* @param p_params (default parameters will be used in case of NULL)
|
||||
* @p_ptt: P_ptt.
|
||||
* @grc_addr: GRC address (dmae_data_offset).
|
||||
* @dest_addr: Destination Address.
|
||||
* @size_in_dwords: Size.
|
||||
* @p_params: (default parameters will be used in case of NULL).
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_dmae_grc2host(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
|
||||
u32 grc_addr, dma_addr_t dest_addr, u32 size_in_dwords,
|
||||
struct qed_dmae_params *p_params);
|
||||
|
||||
/**
|
||||
* @brief qed_dmae_host2host - copy data from to source address
|
||||
* to a destination adress (for SRIOV) using the given ptt
|
||||
* qed_dmae_host2host(): Copy data from to source address
|
||||
* to a destination adrress (for SRIOV) using the given
|
||||
* ptt.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param source_addr
|
||||
* @param dest_addr
|
||||
* @param size_in_dwords
|
||||
* @param p_params (default parameters will be used in case of NULL)
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @source_addr: Source address.
|
||||
* @dest_addr: Destination address.
|
||||
* @size_in_dwords: size.
|
||||
* @p_params: (default parameters will be used in case of NULL).
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_dmae_host2host(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -259,51 +277,51 @@ int qed_chain_alloc(struct qed_dev *cdev, struct qed_chain *chain,
|
|||
void qed_chain_free(struct qed_dev *cdev, struct qed_chain *chain);
|
||||
|
||||
/**
|
||||
* @@brief qed_fw_l2_queue - Get absolute L2 queue ID
|
||||
* qed_fw_l2_queue(): Get absolute L2 queue ID.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param src_id - relative to p_hwfn
|
||||
* @param dst_id - absolute per engine
|
||||
* @p_hwfn: HW device data.
|
||||
* @src_id: Relative to p_hwfn.
|
||||
* @dst_id: Absolute per engine.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_fw_l2_queue(struct qed_hwfn *p_hwfn,
|
||||
u16 src_id,
|
||||
u16 *dst_id);
|
||||
|
||||
/**
|
||||
* @@brief qed_fw_vport - Get absolute vport ID
|
||||
* qed_fw_vport(): Get absolute vport ID.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param src_id - relative to p_hwfn
|
||||
* @param dst_id - absolute per engine
|
||||
* @p_hwfn: HW device data.
|
||||
* @src_id: Relative to p_hwfn.
|
||||
* @dst_id: Absolute per engine.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_fw_vport(struct qed_hwfn *p_hwfn,
|
||||
u8 src_id,
|
||||
u8 *dst_id);
|
||||
|
||||
/**
|
||||
* @@brief qed_fw_rss_eng - Get absolute RSS engine ID
|
||||
* qed_fw_rss_eng(): Get absolute RSS engine ID.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param src_id - relative to p_hwfn
|
||||
* @param dst_id - absolute per engine
|
||||
* @p_hwfn: HW device data.
|
||||
* @src_id: Relative to p_hwfn.
|
||||
* @dst_id: Absolute per engine.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_fw_rss_eng(struct qed_hwfn *p_hwfn,
|
||||
u8 src_id,
|
||||
u8 *dst_id);
|
||||
|
||||
/**
|
||||
* @brief qed_llh_get_num_ppfid - Return the allocated number of LLH filter
|
||||
* banks that are allocated to the PF.
|
||||
* qed_llh_get_num_ppfid(): Return the allocated number of LLH filter
|
||||
* banks that are allocated to the PF.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return u8 - Number of LLH filter banks
|
||||
* Return: u8 Number of LLH filter banks.
|
||||
*/
|
||||
u8 qed_llh_get_num_ppfid(struct qed_dev *cdev);
|
||||
|
||||
|
@ -314,45 +332,50 @@ enum qed_eng {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_llh_set_ppfid_affinity - Set the engine affinity for the given
|
||||
* LLH filter bank.
|
||||
* qed_llh_set_ppfid_affinity(): Set the engine affinity for the given
|
||||
* LLH filter bank.
|
||||
*
|
||||
* @param cdev
|
||||
* @param ppfid - relative within the allocated ppfids ('0' is the default one).
|
||||
* @param eng
|
||||
* @cdev: Qed dev pointer.
|
||||
* @ppfid: Relative within the allocated ppfids ('0' is the default one).
|
||||
* @eng: Engine.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_llh_set_ppfid_affinity(struct qed_dev *cdev,
|
||||
u8 ppfid, enum qed_eng eng);
|
||||
|
||||
/**
|
||||
* @brief qed_llh_set_roce_affinity - Set the RoCE engine affinity
|
||||
* qed_llh_set_roce_affinity(): Set the RoCE engine affinity.
|
||||
*
|
||||
* @param cdev
|
||||
* @param eng
|
||||
* @cdev: Qed dev pointer.
|
||||
* @eng: Engine.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_llh_set_roce_affinity(struct qed_dev *cdev, enum qed_eng eng);
|
||||
|
||||
/**
|
||||
* @brief qed_llh_add_mac_filter - Add a LLH MAC filter into the given filter
|
||||
* bank.
|
||||
* qed_llh_add_mac_filter(): Add a LLH MAC filter into the given filter
|
||||
* bank.
|
||||
*
|
||||
* @param cdev
|
||||
* @param ppfid - relative within the allocated ppfids ('0' is the default one).
|
||||
* @param mac_addr - MAC to add
|
||||
* @cdev: Qed dev pointer.
|
||||
* @ppfid: Relative within the allocated ppfids ('0' is the default one).
|
||||
* @mac_addr: MAC to add.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_llh_add_mac_filter(struct qed_dev *cdev,
|
||||
u8 ppfid, u8 mac_addr[ETH_ALEN]);
|
||||
|
||||
/**
|
||||
* @brief qed_llh_remove_mac_filter - Remove a LLH MAC filter from the given
|
||||
* filter bank.
|
||||
* qed_llh_remove_mac_filter(): Remove a LLH MAC filter from the given
|
||||
* filter bank.
|
||||
*
|
||||
* @param p_ptt
|
||||
* @param p_filter - MAC to remove
|
||||
* @cdev: Qed dev pointer.
|
||||
* @ppfid: Ppfid.
|
||||
* @mac_addr: MAC to remove
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_llh_remove_mac_filter(struct qed_dev *cdev,
|
||||
u8 ppfid, u8 mac_addr[ETH_ALEN]);
|
||||
|
@ -368,15 +391,16 @@ enum qed_llh_prot_filter_type_t {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_llh_add_protocol_filter - Add a LLH protocol filter into the
|
||||
* given filter bank.
|
||||
* qed_llh_add_protocol_filter(): Add a LLH protocol filter into the
|
||||
* given filter bank.
|
||||
*
|
||||
* @param cdev
|
||||
* @param ppfid - relative within the allocated ppfids ('0' is the default one).
|
||||
* @param type - type of filters and comparing
|
||||
* @param source_port_or_eth_type - source port or ethertype to add
|
||||
* @param dest_port - destination port to add
|
||||
* @param type - type of filters and comparing
|
||||
* @cdev: Qed dev pointer.
|
||||
* @ppfid: Relative within the allocated ppfids ('0' is the default one).
|
||||
* @type: Type of filters and comparing.
|
||||
* @source_port_or_eth_type: Source port or ethertype to add.
|
||||
* @dest_port: Destination port to add.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_llh_add_protocol_filter(struct qed_dev *cdev,
|
||||
|
@ -385,14 +409,14 @@ qed_llh_add_protocol_filter(struct qed_dev *cdev,
|
|||
u16 source_port_or_eth_type, u16 dest_port);
|
||||
|
||||
/**
|
||||
* @brief qed_llh_remove_protocol_filter - Remove a LLH protocol filter from
|
||||
* the given filter bank.
|
||||
* qed_llh_remove_protocol_filter(): Remove a LLH protocol filter from
|
||||
* the given filter bank.
|
||||
*
|
||||
* @param cdev
|
||||
* @param ppfid - relative within the allocated ppfids ('0' is the default one).
|
||||
* @param type - type of filters and comparing
|
||||
* @param source_port_or_eth_type - source port or ethertype to add
|
||||
* @param dest_port - destination port to add
|
||||
* @cdev: Qed dev pointer.
|
||||
* @ppfid: Relative within the allocated ppfids ('0' is the default one).
|
||||
* @type: Type of filters and comparing.
|
||||
* @source_port_or_eth_type: Source port or ethertype to add.
|
||||
* @dest_port: Destination port to add.
|
||||
*/
|
||||
void
|
||||
qed_llh_remove_protocol_filter(struct qed_dev *cdev,
|
||||
|
@ -401,31 +425,31 @@ qed_llh_remove_protocol_filter(struct qed_dev *cdev,
|
|||
u16 source_port_or_eth_type, u16 dest_port);
|
||||
|
||||
/**
|
||||
* *@brief Cleanup of previous driver remains prior to load
|
||||
* qed_final_cleanup(): Cleanup of previous driver remains prior to load.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param id - For PF, engine-relative. For VF, PF-relative.
|
||||
* @param is_vf - true iff cleanup is made for a VF.
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @id: For PF, engine-relative. For VF, PF-relative.
|
||||
* @is_vf: True iff cleanup is made for a VF.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_final_cleanup(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt, u16 id, bool is_vf);
|
||||
|
||||
/**
|
||||
* @brief qed_get_queue_coalesce - Retrieve coalesce value for a given queue.
|
||||
* qed_get_queue_coalesce(): Retrieve coalesce value for a given queue.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_coal - store coalesce value read from the hardware.
|
||||
* @param p_handle
|
||||
* @p_hwfn: HW device data.
|
||||
* @coal: Store coalesce value read from the hardware.
|
||||
* @handle: P_handle.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
**/
|
||||
int qed_get_queue_coalesce(struct qed_hwfn *p_hwfn, u16 *coal, void *handle);
|
||||
|
||||
/**
|
||||
* @brief qed_set_queue_coalesce - Configure coalesce parameters for Rx and
|
||||
* qed_set_queue_coalesce(): Configure coalesce parameters for Rx and
|
||||
* Tx queue. The fact that we can configure coalescing to up to 511, but on
|
||||
* varying accuracy [the bigger the value the less accurate] up to a mistake
|
||||
* of 3usec for the highest values.
|
||||
|
@ -433,37 +457,38 @@ int qed_get_queue_coalesce(struct qed_hwfn *p_hwfn, u16 *coal, void *handle);
|
|||
* should be in same range [i.e., either 0-0x7f, 0x80-0xff or 0x100-0x1ff]
|
||||
* otherwise configuration would break.
|
||||
*
|
||||
* @rx_coal: Rx Coalesce value in micro seconds.
|
||||
* @tx_coal: TX Coalesce value in micro seconds.
|
||||
* @p_handle: P_handle.
|
||||
*
|
||||
* @param rx_coal - Rx Coalesce value in micro seconds.
|
||||
* @param tx_coal - TX Coalesce value in micro seconds.
|
||||
* @param p_handle
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
**/
|
||||
int
|
||||
qed_set_queue_coalesce(u16 rx_coal, u16 tx_coal, void *p_handle);
|
||||
|
||||
/**
|
||||
* @brief qed_pglueb_set_pfid_enable - Enable or disable PCI BUS MASTER
|
||||
* qed_pglueb_set_pfid_enable(): Enable or disable PCI BUS MASTER.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param b_enable - true/false
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @b_enable: True/False.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_pglueb_set_pfid_enable(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt, bool b_enable);
|
||||
|
||||
/**
|
||||
* @brief db_recovery_add - add doorbell information to the doorbell
|
||||
* recovery mechanism.
|
||||
* qed_db_recovery_add(): add doorbell information to the doorbell
|
||||
* recovery mechanism.
|
||||
*
|
||||
* @param cdev
|
||||
* @param db_addr - doorbell address
|
||||
* @param db_data - address of where db_data is stored
|
||||
* @param db_width - doorbell is 32b pr 64b
|
||||
* @param db_space - doorbell recovery addresses are user or kernel space
|
||||
* @cdev: Qed dev pointer.
|
||||
* @db_addr: Doorbell address.
|
||||
* @db_data: Address of where db_data is stored.
|
||||
* @db_width: Doorbell is 32b pr 64b.
|
||||
* @db_space: Doorbell recovery addresses are user or kernel space.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_db_recovery_add(struct qed_dev *cdev,
|
||||
void __iomem *db_addr,
|
||||
|
@ -472,13 +497,15 @@ int qed_db_recovery_add(struct qed_dev *cdev,
|
|||
enum qed_db_rec_space db_space);
|
||||
|
||||
/**
|
||||
* @brief db_recovery_del - remove doorbell information from the doorbell
|
||||
* qed_db_recovery_del() - remove doorbell information from the doorbell
|
||||
* recovery mechanism. db_data serves as key (db_addr is not unique).
|
||||
*
|
||||
* @param cdev
|
||||
* @param db_addr - doorbell address
|
||||
* @param db_data - address where db_data is stored. Serves as key for the
|
||||
* @cdev: Qed dev pointer.
|
||||
* @db_addr: doorbell address.
|
||||
* @db_data: address where db_data is stored. Serves as key for the
|
||||
* entry to delete.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_db_recovery_del(struct qed_dev *cdev,
|
||||
void __iomem *db_addr, void *db_data);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -53,85 +53,94 @@ enum _dmae_cmd_crc_mask {
|
|||
#define DMAE_MAX_CLIENTS 32
|
||||
|
||||
/**
|
||||
* @brief qed_gtt_init - Initialize GTT windows
|
||||
* qed_gtt_init(): Initialize GTT windows.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_gtt_init(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_invalidate - Forces all ptt entries to be re-configured
|
||||
* qed_ptt_invalidate(): Forces all ptt entries to be re-configured
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_ptt_invalidate(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_pool_alloc - Allocate and initialize PTT pool
|
||||
* qed_ptt_pool_alloc(): Allocate and initialize PTT pool.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return struct _qed_status - success (0), negative - error.
|
||||
* Return: struct _qed_status - success (0), negative - error.
|
||||
*/
|
||||
int qed_ptt_pool_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_pool_free -
|
||||
* qed_ptt_pool_free(): Free PTT pool.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_ptt_pool_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_get_hw_addr - Get PTT's GRC/HW address
|
||||
* qed_ptt_get_hw_addr(): Get PTT's GRC/HW address.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt
|
||||
*
|
||||
* @return u32
|
||||
* Return: u32.
|
||||
*/
|
||||
u32 qed_ptt_get_hw_addr(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_get_bar_addr - Get PPT's external BAR address
|
||||
* qed_ptt_get_bar_addr(): Get PPT's external BAR address.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_ptt: P_ptt
|
||||
*
|
||||
* @return u32
|
||||
* Return: u32.
|
||||
*/
|
||||
u32 qed_ptt_get_bar_addr(struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief qed_ptt_set_win - Set PTT Window's GRC BAR address
|
||||
* qed_ptt_set_win(): Set PTT Window's GRC BAR address
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param new_hw_addr
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @new_hw_addr: New HW address.
|
||||
* @p_ptt: P_Ptt
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_ptt_set_win(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
u32 new_hw_addr);
|
||||
|
||||
/**
|
||||
* @brief qed_get_reserved_ptt - Get a specific reserved PTT
|
||||
* qed_get_reserved_ptt(): Get a specific reserved PTT.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param ptt_idx
|
||||
* @p_hwfn: HW device data.
|
||||
* @ptt_idx: Ptt Index.
|
||||
*
|
||||
* @return struct qed_ptt *
|
||||
* Return: struct qed_ptt *.
|
||||
*/
|
||||
struct qed_ptt *qed_get_reserved_ptt(struct qed_hwfn *p_hwfn,
|
||||
enum reserved_ptts ptt_idx);
|
||||
|
||||
/**
|
||||
* @brief qed_wr - Write value to BAR using the given ptt
|
||||
* qed_wr(): Write value to BAR using the given ptt.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param val
|
||||
* @param hw_addr
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @val: Val.
|
||||
* @hw_addr: HW address
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_wr(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -139,26 +148,28 @@ void qed_wr(struct qed_hwfn *p_hwfn,
|
|||
u32 val);
|
||||
|
||||
/**
|
||||
* @brief qed_rd - Read value from BAR using the given ptt
|
||||
* qed_rd(): Read value from BAR using the given ptt.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param val
|
||||
* @param hw_addr
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @hw_addr: HW address
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
u32 qed_rd(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
u32 hw_addr);
|
||||
|
||||
/**
|
||||
* @brief qed_memcpy_from - copy n bytes from BAR using the given
|
||||
* ptt
|
||||
* qed_memcpy_from(): Copy n bytes from BAR using the given ptt.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param dest
|
||||
* @param hw_addr
|
||||
* @param n
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @dest: Destination.
|
||||
* @hw_addr: HW address.
|
||||
* @n: N
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_memcpy_from(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -167,14 +178,15 @@ void qed_memcpy_from(struct qed_hwfn *p_hwfn,
|
|||
size_t n);
|
||||
|
||||
/**
|
||||
* @brief qed_memcpy_to - copy n bytes to BAR using the given
|
||||
* ptt
|
||||
* qed_memcpy_to(): Copy n bytes to BAR using the given ptt
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param hw_addr
|
||||
* @param src
|
||||
* @param n
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @hw_addr: HW address.
|
||||
* @src: Source.
|
||||
* @n: N
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_memcpy_to(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -182,83 +194,97 @@ void qed_memcpy_to(struct qed_hwfn *p_hwfn,
|
|||
void *src,
|
||||
size_t n);
|
||||
/**
|
||||
* @brief qed_fid_pretend - pretend to another function when
|
||||
* accessing the ptt window. There is no way to unpretend
|
||||
* a function. The only way to cancel a pretend is to
|
||||
* pretend back to the original function.
|
||||
* qed_fid_pretend(): pretend to another function when
|
||||
* accessing the ptt window. There is no way to unpretend
|
||||
* a function. The only way to cancel a pretend is to
|
||||
* pretend back to the original function.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param fid - fid field of pxp_pretend structure. Can contain
|
||||
* either pf / vf, port/path fields are don't care.
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @fid: fid field of pxp_pretend structure. Can contain
|
||||
* either pf / vf, port/path fields are don't care.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_fid_pretend(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
u16 fid);
|
||||
|
||||
/**
|
||||
* @brief qed_port_pretend - pretend to another port when
|
||||
* accessing the ptt window
|
||||
* qed_port_pretend(): Pretend to another port when accessing the ptt window
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param port_id - the port to pretend to
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @port_id: The port to pretend to
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_port_pretend(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
u8 port_id);
|
||||
|
||||
/**
|
||||
* @brief qed_port_unpretend - cancel any previously set port
|
||||
* pretend
|
||||
* qed_port_unpretend(): Cancel any previously set port pretend
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_port_unpretend(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief qed_port_fid_pretend - pretend to another port and another function
|
||||
* when accessing the ptt window
|
||||
* qed_port_fid_pretend(): Pretend to another port and another function
|
||||
* when accessing the ptt window
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param port_id - the port to pretend to
|
||||
* @param fid - fid field of pxp_pretend structure. Can contain either pf / vf.
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @port_id: The port to pretend to
|
||||
* @fid: fid field of pxp_pretend structure. Can contain either pf / vf.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_port_fid_pretend(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt, u8 port_id, u16 fid);
|
||||
|
||||
/**
|
||||
* @brief qed_vfid_to_concrete - build a concrete FID for a
|
||||
* given VF ID
|
||||
* qed_vfid_to_concrete(): Build a concrete FID for a given VF ID
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param vfid
|
||||
* @p_hwfn: HW device data.
|
||||
* @vfid: VFID.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
u32 qed_vfid_to_concrete(struct qed_hwfn *p_hwfn, u8 vfid);
|
||||
|
||||
/**
|
||||
* @brief qed_dmae_idx_to_go_cmd - map the idx to dmae cmd
|
||||
* this is declared here since other files will require it.
|
||||
* @param idx
|
||||
* qed_dmae_idx_to_go_cmd(): Map the idx to dmae cmd
|
||||
* this is declared here since other files will require it.
|
||||
*
|
||||
* @idx: Index
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
u32 qed_dmae_idx_to_go_cmd(u8 idx);
|
||||
|
||||
/**
|
||||
* @brief qed_dmae_info_alloc - Init the dmae_info structure
|
||||
* which is part of p_hwfn.
|
||||
* @param p_hwfn
|
||||
* qed_dmae_info_alloc(): Init the dmae_info structure
|
||||
* which is part of p_hwfn.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_dmae_info_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_dmae_info_free - Free the dmae_info structure
|
||||
* which is part of p_hwfn
|
||||
* qed_dmae_info_free(): Free the dmae_info structure
|
||||
* which is part of p_hwfn.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_dmae_info_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
|
@ -292,14 +318,16 @@ int qed_dmae_sanity(struct qed_hwfn *p_hwfn,
|
|||
#define QED_HW_ERR_MAX_STR_SIZE 256
|
||||
|
||||
/**
|
||||
* @brief qed_hw_err_notify - Notify upper layer driver and management FW
|
||||
* about a HW error.
|
||||
* qed_hw_err_notify(): Notify upper layer driver and management FW
|
||||
* about a HW error.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param err_type
|
||||
* @param fmt - debug data buffer to send to the MFW
|
||||
* @param ... - buffer format args
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @err_type: Err Type.
|
||||
* @fmt: Debug data buffer to send to the MFW
|
||||
* @...: buffer format args
|
||||
*
|
||||
* Return void.
|
||||
*/
|
||||
void __printf(4, 5) __cold qed_hw_err_notify(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
|
|
@ -12,23 +12,24 @@
|
|||
#include "qed.h"
|
||||
|
||||
/**
|
||||
* @brief qed_init_iro_array - init iro_arr.
|
||||
* qed_init_iro_array(): init iro_arr.
|
||||
*
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @param cdev
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_init_iro_array(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_init_run - Run the init-sequence.
|
||||
* qed_init_run(): Run the init-sequence.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @phase: Phase.
|
||||
* @phase_id: Phase ID.
|
||||
* @modes: Mode.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param phase
|
||||
* @param phase_id
|
||||
* @param modes
|
||||
* @return _qed_status_t
|
||||
* Return: _qed_status_t
|
||||
*/
|
||||
int qed_init_run(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -37,30 +38,31 @@ int qed_init_run(struct qed_hwfn *p_hwfn,
|
|||
int modes);
|
||||
|
||||
/**
|
||||
* @brief qed_init_hwfn_allocate - Allocate RT array, Store 'values' ptrs.
|
||||
* qed_init_alloc(): Allocate RT array, Store 'values' ptrs.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @param p_hwfn
|
||||
*
|
||||
* @return _qed_status_t
|
||||
* Return: _qed_status_t.
|
||||
*/
|
||||
int qed_init_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_init_hwfn_deallocate
|
||||
* qed_init_free(): Init HW function deallocate.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_init_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_init_store_rt_reg - Store a configuration value in the RT array.
|
||||
* qed_init_store_rt_reg(): Store a configuration value in the RT array.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @rt_offset: RT offset.
|
||||
* @val: Val.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param rt_offset
|
||||
* @param val
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_init_store_rt_reg(struct qed_hwfn *p_hwfn,
|
||||
u32 rt_offset,
|
||||
|
@ -72,15 +74,6 @@ void qed_init_store_rt_reg(struct qed_hwfn *p_hwfn,
|
|||
#define OVERWRITE_RT_REG(hwfn, offset, val) \
|
||||
qed_init_store_rt_reg(hwfn, offset, val)
|
||||
|
||||
/**
|
||||
* @brief
|
||||
*
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param rt_offset
|
||||
* @param val
|
||||
* @param size
|
||||
*/
|
||||
void qed_init_store_rt_agg(struct qed_hwfn *p_hwfn,
|
||||
u32 rt_offset,
|
||||
u32 *val,
|
||||
|
@ -90,11 +83,12 @@ void qed_init_store_rt_agg(struct qed_hwfn *p_hwfn,
|
|||
qed_init_store_rt_agg(hwfn, offset, (u32 *)&val, sizeof(val))
|
||||
|
||||
/**
|
||||
* @brief
|
||||
* Initialize GTT global windows and set admin window
|
||||
* related params of GTT/PTT to default values.
|
||||
* qed_gtt_init(): Initialize GTT global windows and set admin window
|
||||
* related params of GTT/PTT to default values.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return Void.
|
||||
*/
|
||||
void qed_gtt_init(struct qed_hwfn *p_hwfn);
|
||||
#endif
|
||||
|
|
|
@ -53,51 +53,54 @@ enum qed_coalescing_fsm {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_int_igu_enable_int - enable device interrupts
|
||||
* qed_int_igu_enable_int(): Enable device interrupts.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param int_mode - interrupt mode to use
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @int_mode: Interrupt mode to use.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_igu_enable_int(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
enum qed_int_mode int_mode);
|
||||
|
||||
/**
|
||||
* @brief qed_int_igu_disable_int - disable device interrupts
|
||||
* qed_int_igu_disable_int(): Disable device interrupts.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_igu_disable_int(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief qed_int_igu_read_sisr_reg - Reads the single isr multiple dpc
|
||||
* register from igu.
|
||||
* qed_int_igu_read_sisr_reg(): Reads the single isr multiple dpc
|
||||
* register from igu.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return u64
|
||||
* Return: u64.
|
||||
*/
|
||||
u64 qed_int_igu_read_sisr_reg(struct qed_hwfn *p_hwfn);
|
||||
|
||||
#define QED_SP_SB_ID 0xffff
|
||||
/**
|
||||
* @brief qed_int_sb_init - Initializes the sb_info structure.
|
||||
* qed_int_sb_init(): Initializes the sb_info structure.
|
||||
*
|
||||
* once the structure is initialized it can be passed to sb related functions.
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @sb_info: points to an uninitialized (but allocated) sb_info structure
|
||||
* @sb_virt_addr: SB Virtual address.
|
||||
* @sb_phy_addr: SB Physial address.
|
||||
* @sb_id: the sb_id to be used (zero based in driver)
|
||||
* should use QED_SP_SB_ID for SP Status block
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param sb_info points to an uninitialized (but
|
||||
* allocated) sb_info structure
|
||||
* @param sb_virt_addr
|
||||
* @param sb_phy_addr
|
||||
* @param sb_id the sb_id to be used (zero based in driver)
|
||||
* should use QED_SP_SB_ID for SP Status block
|
||||
* Return: int.
|
||||
*
|
||||
* @return int
|
||||
* Once the structure is initialized it can be passed to sb related functions.
|
||||
*/
|
||||
int qed_int_sb_init(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -106,82 +109,91 @@ int qed_int_sb_init(struct qed_hwfn *p_hwfn,
|
|||
dma_addr_t sb_phy_addr,
|
||||
u16 sb_id);
|
||||
/**
|
||||
* @brief qed_int_sb_setup - Setup the sb.
|
||||
* qed_int_sb_setup(): Setup the sb.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param sb_info initialized sb_info structure
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @sb_info: Initialized sb_info structure.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_sb_setup(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
struct qed_sb_info *sb_info);
|
||||
|
||||
/**
|
||||
* @brief qed_int_sb_release - releases the sb_info structure.
|
||||
* qed_int_sb_release(): Releases the sb_info structure.
|
||||
*
|
||||
* once the structure is released, it's memory can be freed
|
||||
* @p_hwfn: HW device data.
|
||||
* @sb_info: Points to an allocated sb_info structure.
|
||||
* @sb_id: The sb_id to be used (zero based in driver)
|
||||
* should never be equal to QED_SP_SB_ID
|
||||
* (SP Status block).
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param sb_info points to an allocated sb_info structure
|
||||
* @param sb_id the sb_id to be used (zero based in driver)
|
||||
* should never be equal to QED_SP_SB_ID
|
||||
* (SP Status block)
|
||||
* Return: int.
|
||||
*
|
||||
* @return int
|
||||
* Once the structure is released, it's memory can be freed.
|
||||
*/
|
||||
int qed_int_sb_release(struct qed_hwfn *p_hwfn,
|
||||
struct qed_sb_info *sb_info,
|
||||
u16 sb_id);
|
||||
|
||||
/**
|
||||
* @brief qed_int_sp_dpc - To be called when an interrupt is received on the
|
||||
* default status block.
|
||||
* qed_int_sp_dpc(): To be called when an interrupt is received on the
|
||||
* default status block.
|
||||
*
|
||||
* @param p_hwfn - pointer to hwfn
|
||||
* @t: Tasklet.
|
||||
*
|
||||
* Return: Void.
|
||||
*
|
||||
*/
|
||||
void qed_int_sp_dpc(struct tasklet_struct *t);
|
||||
|
||||
/**
|
||||
* @brief qed_int_get_num_sbs - get the number of status
|
||||
* blocks configured for this funciton in the igu.
|
||||
* qed_int_get_num_sbs(): Get the number of status blocks configured
|
||||
* for this funciton in the igu.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_sb_cnt_info
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_sb_cnt_info: Pointer to SB count info.
|
||||
*
|
||||
* @return int - number of status blocks configured
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_get_num_sbs(struct qed_hwfn *p_hwfn,
|
||||
struct qed_sb_cnt_info *p_sb_cnt_info);
|
||||
|
||||
/**
|
||||
* @brief qed_int_disable_post_isr_release - performs the cleanup post ISR
|
||||
* qed_int_disable_post_isr_release(): Performs the cleanup post ISR
|
||||
* release. The API need to be called after releasing all slowpath IRQs
|
||||
* of the device.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_disable_post_isr_release(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_int_attn_clr_enable - sets whether the general behavior is
|
||||
* qed_int_attn_clr_enable: Sets whether the general behavior is
|
||||
* preventing attentions from being reasserted, or following the
|
||||
* attributes of the specific attention.
|
||||
*
|
||||
* @param cdev
|
||||
* @param clr_enable
|
||||
* @cdev: Qed dev pointer.
|
||||
* @clr_enable: Clear enable
|
||||
*
|
||||
* Return: Void.
|
||||
*
|
||||
*/
|
||||
void qed_int_attn_clr_enable(struct qed_dev *cdev, bool clr_enable);
|
||||
|
||||
/**
|
||||
* @brief - Doorbell Recovery handler.
|
||||
* qed_db_rec_handler(): Doorbell Recovery handler.
|
||||
* Run doorbell recovery in case of PF overflow (and flush DORQ if
|
||||
* needed).
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_db_rec_handler(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
|
||||
|
||||
|
@ -223,30 +235,34 @@ struct qed_igu_info {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief - Make sure the IGU CAM reflects the resources provided by MFW
|
||||
* qed_int_igu_reset_cam(): Make sure the IGU CAM reflects the resources
|
||||
* provided by MFW.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
int qed_int_igu_reset_cam(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief Translate the weakly-defined client sb-id into an IGU sb-id
|
||||
* qed_get_igu_sb_id(): Translate the weakly-defined client sb-id into
|
||||
* an IGU sb-id
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param sb_id - user provided sb_id
|
||||
* @p_hwfn: HW device data.
|
||||
* @sb_id: user provided sb_id.
|
||||
*
|
||||
* @return an index inside IGU CAM where the SB resides
|
||||
* Return: An index inside IGU CAM where the SB resides.
|
||||
*/
|
||||
u16 qed_get_igu_sb_id(struct qed_hwfn *p_hwfn, u16 sb_id);
|
||||
|
||||
/**
|
||||
* @brief return a pointer to an unused valid SB
|
||||
* qed_get_igu_free_sb(): Return a pointer to an unused valid SB
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param b_is_pf - true iff we want a SB belonging to a PF
|
||||
* @p_hwfn: HW device data.
|
||||
* @b_is_pf: True iff we want a SB belonging to a PF.
|
||||
*
|
||||
* @return point to an igu_block, NULL if none is available
|
||||
* Return: Point to an igu_block, NULL if none is available.
|
||||
*/
|
||||
struct qed_igu_block *qed_get_igu_free_sb(struct qed_hwfn *p_hwfn,
|
||||
bool b_is_pf);
|
||||
|
@ -259,15 +275,15 @@ void qed_int_igu_init_pure_rt(struct qed_hwfn *p_hwfn,
|
|||
void qed_int_igu_init_rt(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_int_igu_read_cam - Reads the IGU CAM.
|
||||
* qed_int_igu_read_cam(): Reads the IGU CAM.
|
||||
* This function needs to be called during hardware
|
||||
* prepare. It reads the info from igu cam to know which
|
||||
* status block is the default / base status block etc.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_int_igu_read_cam(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
@ -275,24 +291,22 @@ int qed_int_igu_read_cam(struct qed_hwfn *p_hwfn,
|
|||
typedef int (*qed_int_comp_cb_t)(struct qed_hwfn *p_hwfn,
|
||||
void *cookie);
|
||||
/**
|
||||
* @brief qed_int_register_cb - Register callback func for
|
||||
* slowhwfn statusblock.
|
||||
* qed_int_register_cb(): Register callback func for slowhwfn statusblock.
|
||||
*
|
||||
* Every protocol that uses the slowhwfn status block
|
||||
* should register a callback function that will be called
|
||||
* once there is an update of the sp status block.
|
||||
* @p_hwfn: HW device data.
|
||||
* @comp_cb: Function to be called when there is an
|
||||
* interrupt on the sp sb
|
||||
* @cookie: Passed to the callback function
|
||||
* @sb_idx: (OUT) parameter which gives the chosen index
|
||||
* for this protocol.
|
||||
* @p_fw_cons: Pointer to the actual address of the
|
||||
* consumer for this protocol.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param comp_cb - function to be called when there is an
|
||||
* interrupt on the sp sb
|
||||
* Return: Int.
|
||||
*
|
||||
* @param cookie - passed to the callback function
|
||||
* @param sb_idx - OUT parameter which gives the chosen index
|
||||
* for this protocol.
|
||||
* @param p_fw_cons - pointer to the actual address of the
|
||||
* consumer for this protocol.
|
||||
*
|
||||
* @return int
|
||||
* Every protocol that uses the slowhwfn status block
|
||||
* should register a callback function that will be called
|
||||
* once there is an update of the sp status block.
|
||||
*/
|
||||
int qed_int_register_cb(struct qed_hwfn *p_hwfn,
|
||||
qed_int_comp_cb_t comp_cb,
|
||||
|
@ -301,37 +315,40 @@ int qed_int_register_cb(struct qed_hwfn *p_hwfn,
|
|||
__le16 **p_fw_cons);
|
||||
|
||||
/**
|
||||
* @brief qed_int_unregister_cb - Unregisters callback
|
||||
* function from sp sb.
|
||||
* Partner of qed_int_register_cb -> should be called
|
||||
* when no longer required.
|
||||
* qed_int_unregister_cb(): Unregisters callback function from sp sb.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param pi
|
||||
* @p_hwfn: HW device data.
|
||||
* @pi: Producer Index.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*
|
||||
* Partner of qed_int_register_cb -> should be called
|
||||
* when no longer required.
|
||||
*/
|
||||
int qed_int_unregister_cb(struct qed_hwfn *p_hwfn,
|
||||
u8 pi);
|
||||
|
||||
/**
|
||||
* @brief qed_int_get_sp_sb_id - Get the slowhwfn sb id.
|
||||
* qed_int_get_sp_sb_id(): Get the slowhwfn sb id.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return u16
|
||||
* Return: u16.
|
||||
*/
|
||||
u16 qed_int_get_sp_sb_id(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief Status block cleanup. Should be called for each status
|
||||
* block that will be used -> both PF / VF
|
||||
* qed_int_igu_init_pure_rt_single(): Status block cleanup.
|
||||
* Should be called for each status
|
||||
* block that will be used -> both PF / VF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param igu_sb_id - igu status block id
|
||||
* @param opaque - opaque fid of the sb owner.
|
||||
* @param b_set - set(1) / clear(0)
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @igu_sb_id: IGU status block id.
|
||||
* @opaque: Opaque fid of the sb owner.
|
||||
* @b_set: Set(1) / Clear(0).
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_igu_init_pure_rt_single(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -340,15 +357,16 @@ void qed_int_igu_init_pure_rt_single(struct qed_hwfn *p_hwfn,
|
|||
bool b_set);
|
||||
|
||||
/**
|
||||
* @brief qed_int_cau_conf - configure cau for a given status
|
||||
* block
|
||||
* qed_int_cau_conf_sb(): Configure cau for a given status block.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param ptt
|
||||
* @param sb_phys
|
||||
* @param igu_sb_id
|
||||
* @param vf_number
|
||||
* @param vf_valid
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @sb_phys: SB Physical.
|
||||
* @igu_sb_id: IGU status block id.
|
||||
* @vf_number: VF number
|
||||
* @vf_valid: VF valid or not.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_cau_conf_sb(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
|
@ -358,52 +376,58 @@ void qed_int_cau_conf_sb(struct qed_hwfn *p_hwfn,
|
|||
u8 vf_valid);
|
||||
|
||||
/**
|
||||
* @brief qed_int_alloc
|
||||
* qed_int_alloc(): QED interrupt alloc.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_int_alloc(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief qed_int_free
|
||||
* qed_int_free(): QED interrupt free.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_int_setup
|
||||
* qed_int_setup(): QED interrupt setup.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_int_setup(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt);
|
||||
|
||||
/**
|
||||
* @brief - Enable Interrupt & Attention for hw function
|
||||
* qed_int_igu_enable(): Enable Interrupt & Attention for hw function.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param int_mode
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @int_mode: Interrut mode
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_int_igu_enable(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt,
|
||||
enum qed_int_mode int_mode);
|
||||
|
||||
/**
|
||||
* @brief - Initialize CAU status block entry
|
||||
* qed_init_cau_sb_entry(): Initialize CAU status block entry.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_sb_entry
|
||||
* @param pf_id
|
||||
* @param vf_number
|
||||
* @param vf_valid
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_sb_entry: Pointer SB entry.
|
||||
* @pf_id: PF number
|
||||
* @vf_number: VF number
|
||||
* @vf_valid: VF valid or not.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_init_cau_sb_entry(struct qed_hwfn *p_hwfn,
|
||||
struct cau_sb_entry *p_sb_entry,
|
||||
|
|
|
@ -34,10 +34,13 @@ void qed_iscsi_setup(struct qed_hwfn *p_hwfn);
|
|||
void qed_iscsi_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief - Fills provided statistics struct with statistics.
|
||||
* qed_get_protocol_stats_iscsi(): Fills provided statistics
|
||||
* struct with statistics.
|
||||
*
|
||||
* @param cdev
|
||||
* @param stats - points to struct that will be filled with statistics.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @stats: Points to struct that will be filled with statistics.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_get_protocol_stats_iscsi(struct qed_dev *cdev,
|
||||
struct qed_mcp_iscsi_stats *stats);
|
||||
|
|
|
@ -92,18 +92,18 @@ struct qed_filter_mcast {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_eth_rx_queue_stop - This ramrod closes an Rx queue
|
||||
* qed_eth_rx_queue_stop(): This ramrod closes an Rx queue.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_rxq Handler of queue to close
|
||||
* @param eq_completion_only If True completion will be on
|
||||
* EQe, if False completion will be
|
||||
* on EQe if p_hwfn opaque
|
||||
* different from the RXQ opaque
|
||||
* otherwise on CQe.
|
||||
* @param cqe_completion If True completion will be
|
||||
* receive on CQe.
|
||||
* @return int
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_rxq: Handler of queue to close
|
||||
* @eq_completion_only: If True completion will be on
|
||||
* EQe, if False completion will be
|
||||
* on EQe if p_hwfn opaque
|
||||
* different from the RXQ opaque
|
||||
* otherwise on CQe.
|
||||
* @cqe_completion: If True completion will be receive on CQe.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_eth_rx_queue_stop(struct qed_hwfn *p_hwfn,
|
||||
|
@ -111,12 +111,12 @@ qed_eth_rx_queue_stop(struct qed_hwfn *p_hwfn,
|
|||
bool eq_completion_only, bool cqe_completion);
|
||||
|
||||
/**
|
||||
* @brief qed_eth_tx_queue_stop - closes a Tx queue
|
||||
* qed_eth_tx_queue_stop(): Closes a Tx queue.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_txq - handle to Tx queue needed to be closed
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_txq: handle to Tx queue needed to be closed.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_eth_tx_queue_stop(struct qed_hwfn *p_hwfn, void *p_txq);
|
||||
|
||||
|
@ -205,16 +205,15 @@ int qed_sp_vport_update(struct qed_hwfn *p_hwfn,
|
|||
struct qed_spq_comp_cb *p_comp_data);
|
||||
|
||||
/**
|
||||
* @brief qed_sp_vport_stop -
|
||||
* qed_sp_vport_stop: This ramrod closes a VPort after all its
|
||||
* RX and TX queues are terminated.
|
||||
* An Assert is generated if any queues are left open.
|
||||
*
|
||||
* This ramrod closes a VPort after all its RX and TX queues are terminated.
|
||||
* An Assert is generated if any queues are left open.
|
||||
* @p_hwfn: HW device data.
|
||||
* @opaque_fid: Opaque FID
|
||||
* @vport_id: VPort ID.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param opaque_fid
|
||||
* @param vport_id VPort ID
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_sp_vport_stop(struct qed_hwfn *p_hwfn, u16 opaque_fid, u8 vport_id);
|
||||
|
||||
|
@ -225,22 +224,21 @@ int qed_sp_eth_filter_ucast(struct qed_hwfn *p_hwfn,
|
|||
struct qed_spq_comp_cb *p_comp_data);
|
||||
|
||||
/**
|
||||
* @brief qed_sp_rx_eth_queues_update -
|
||||
* qed_sp_eth_rx_queues_update(): This ramrod updates an RX queue.
|
||||
* It is used for setting the active state
|
||||
* of the queue and updating the TPA and
|
||||
* SGE parameters.
|
||||
* @p_hwfn: HW device data.
|
||||
* @pp_rxq_handlers: An array of queue handlers to be updated.
|
||||
* @num_rxqs: number of queues to update.
|
||||
* @complete_cqe_flg: Post completion to the CQE Ring if set.
|
||||
* @complete_event_flg: Post completion to the Event Ring if set.
|
||||
* @comp_mode: Comp mode.
|
||||
* @p_comp_data: Pointer Comp data.
|
||||
*
|
||||
* This ramrod updates an RX queue. It is used for setting the active state
|
||||
* of the queue and updating the TPA and SGE parameters.
|
||||
* Return: Int.
|
||||
*
|
||||
* @note At the moment - only used by non-linux VFs.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param pp_rxq_handlers An array of queue handlers to be updated.
|
||||
* @param num_rxqs number of queues to update.
|
||||
* @param complete_cqe_flg Post completion to the CQE Ring if set
|
||||
* @param complete_event_flg Post completion to the Event Ring if set
|
||||
* @param comp_mode
|
||||
* @param p_comp_data
|
||||
*
|
||||
* @return int
|
||||
* Note At the moment - only used by non-linux VFs.
|
||||
*/
|
||||
|
||||
int
|
||||
|
@ -257,30 +255,32 @@ void qed_get_vport_stats(struct qed_dev *cdev, struct qed_eth_stats *stats);
|
|||
void qed_reset_vport_stats(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* *@brief qed_arfs_mode_configure -
|
||||
* qed_arfs_mode_configure(): Enable or disable rfs mode.
|
||||
* It must accept at least one of tcp or udp true
|
||||
* and at least one of ipv4 or ipv6 true to enable
|
||||
* rfs mode.
|
||||
*
|
||||
**Enable or disable rfs mode. It must accept atleast one of tcp or udp true
|
||||
**and atleast one of ipv4 or ipv6 true to enable rfs mode.
|
||||
*
|
||||
**@param p_hwfn
|
||||
**@param p_ptt
|
||||
**@param p_cfg_params - arfs mode configuration parameters.
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @p_cfg_params: arfs mode configuration parameters.
|
||||
*
|
||||
* Return. Void.
|
||||
*/
|
||||
void qed_arfs_mode_configure(struct qed_hwfn *p_hwfn,
|
||||
struct qed_ptt *p_ptt,
|
||||
struct qed_arfs_config_params *p_cfg_params);
|
||||
|
||||
/**
|
||||
* @brief - qed_configure_rfs_ntuple_filter
|
||||
* qed_configure_rfs_ntuple_filter(): This ramrod should be used to add
|
||||
* or remove arfs hw filter
|
||||
*
|
||||
* This ramrod should be used to add or remove arfs hw filter
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cb: Used for QED_SPQ_MODE_CB,where client would initialize
|
||||
* it with cookie and callback function address, if not
|
||||
* using this mode then client must pass NULL.
|
||||
* @p_params: Pointer to params.
|
||||
*
|
||||
* @params p_hwfn
|
||||
* @params p_cb - Used for QED_SPQ_MODE_CB,where client would initialize
|
||||
* it with cookie and callback function address, if not
|
||||
* using this mode then client must pass NULL.
|
||||
* @params p_params
|
||||
* Return: Void.
|
||||
*/
|
||||
int
|
||||
qed_configure_rfs_ntuple_filter(struct qed_hwfn *p_hwfn,
|
||||
|
@ -374,16 +374,17 @@ qed_sp_eth_vport_start(struct qed_hwfn *p_hwfn,
|
|||
struct qed_sp_vport_start_params *p_params);
|
||||
|
||||
/**
|
||||
* @brief - Starts an Rx queue, when queue_cid is already prepared
|
||||
* qed_eth_rxq_start_ramrod(): Starts an Rx queue, when queue_cid is
|
||||
* already prepared
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_cid
|
||||
* @param bd_max_bytes
|
||||
* @param bd_chain_phys_addr
|
||||
* @param cqe_pbl_addr
|
||||
* @param cqe_pbl_size
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cid: Pointer CID.
|
||||
* @bd_max_bytes: Max bytes.
|
||||
* @bd_chain_phys_addr: Chain physcial address.
|
||||
* @cqe_pbl_addr: PBL address.
|
||||
* @cqe_pbl_size: PBL size.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_eth_rxq_start_ramrod(struct qed_hwfn *p_hwfn,
|
||||
|
@ -393,15 +394,16 @@ qed_eth_rxq_start_ramrod(struct qed_hwfn *p_hwfn,
|
|||
dma_addr_t cqe_pbl_addr, u16 cqe_pbl_size);
|
||||
|
||||
/**
|
||||
* @brief - Starts a Tx queue, where queue_cid is already prepared
|
||||
* qed_eth_txq_start_ramrod(): Starts a Tx queue, where queue_cid is
|
||||
* already prepared
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_cid
|
||||
* @param pbl_addr
|
||||
* @param pbl_size
|
||||
* @param p_pq_params - parameters for choosing the PQ for this Tx queue
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cid: Pointer CID.
|
||||
* @pbl_addr: PBL address.
|
||||
* @pbl_size: PBL size.
|
||||
* @pq_id: Parameters for choosing the PQ for this Tx queue.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_eth_txq_start_ramrod(struct qed_hwfn *p_hwfn,
|
||||
|
|
|
@ -119,41 +119,41 @@ struct qed_ll2_info {
|
|||
extern const struct qed_ll2_ops qed_ll2_ops_pass;
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_acquire_connection - allocate resources,
|
||||
* starts rx & tx (if relevant) queues pair. Provides
|
||||
* connecion handler as output parameter.
|
||||
* qed_ll2_acquire_connection(): Allocate resources,
|
||||
* starts rx & tx (if relevant) queues pair.
|
||||
* Provides connecion handler as output
|
||||
* parameter.
|
||||
*
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @data: Describes connection parameters.
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param data - describes connection parameters
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_ll2_acquire_connection(void *cxt, struct qed_ll2_acquire_data *data);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_establish_connection - start previously
|
||||
* allocated LL2 queues pair
|
||||
* qed_ll2_establish_connection(): start previously allocated LL2 queues pair
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param p_ptt
|
||||
* @param connection_handle LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection.
|
||||
*
|
||||
* @return 0 on success, failure otherwise
|
||||
* Return: 0 on success, failure otherwise.
|
||||
*/
|
||||
int qed_ll2_establish_connection(void *cxt, u8 connection_handle);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_post_rx_buffers - submit buffers to LL2 Rx queue.
|
||||
* qed_ll2_post_rx_buffer(): Submit buffers to LL2 Rx queue.
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param connection_handle LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection
|
||||
* @param addr rx (physical address) buffers to submit
|
||||
* @param cookie
|
||||
* @param notify_fw produce corresponding Rx BD immediately
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection.
|
||||
* @addr: RX (physical address) buffers to submit.
|
||||
* @buf_len: Buffer Len.
|
||||
* @cookie: Cookie.
|
||||
* @notify_fw: Produce corresponding Rx BD immediately.
|
||||
*
|
||||
* @return 0 on success, failure otherwise
|
||||
* Return: 0 on success, failure otherwise.
|
||||
*/
|
||||
int qed_ll2_post_rx_buffer(void *cxt,
|
||||
u8 connection_handle,
|
||||
|
@ -161,15 +161,15 @@ int qed_ll2_post_rx_buffer(void *cxt,
|
|||
u16 buf_len, void *cookie, u8 notify_fw);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_prepare_tx_packet - request for start Tx BD
|
||||
* to prepare Tx packet submission to FW.
|
||||
* qed_ll2_prepare_tx_packet(): Request for start Tx BD
|
||||
* to prepare Tx packet submission to FW.
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param connection_handle
|
||||
* @param pkt - info regarding the tx packet
|
||||
* @param notify_fw - issue doorbell to fw for this packet
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: Connection handle.
|
||||
* @pkt: Info regarding the tx packet.
|
||||
* @notify_fw: Issue doorbell to fw for this packet.
|
||||
*
|
||||
* @return 0 on success, failure otherwise
|
||||
* Return: 0 on success, failure otherwise.
|
||||
*/
|
||||
int qed_ll2_prepare_tx_packet(void *cxt,
|
||||
u8 connection_handle,
|
||||
|
@ -177,81 +177,83 @@ int qed_ll2_prepare_tx_packet(void *cxt,
|
|||
bool notify_fw);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_release_connection - releases resources
|
||||
* allocated for LL2 connection
|
||||
* qed_ll2_release_connection(): Releases resources allocated for LL2
|
||||
* connection.
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param connection_handle LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_ll2_release_connection(void *cxt, u8 connection_handle);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_set_fragment_of_tx_packet - provides fragments to fill
|
||||
* Tx BD of BDs requested by
|
||||
* qed_ll2_prepare_tx_packet
|
||||
* qed_ll2_set_fragment_of_tx_packet(): Provides fragments to fill
|
||||
* Tx BD of BDs requested by
|
||||
* qed_ll2_prepare_tx_packet
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param connection_handle LL2 connection's handle
|
||||
* obtained from
|
||||
* qed_ll2_require_connection
|
||||
* @param addr
|
||||
* @param nbytes
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection.
|
||||
* @addr: Address.
|
||||
* @nbytes: Number of bytes.
|
||||
*
|
||||
* @return 0 on success, failure otherwise
|
||||
* Return: 0 on success, failure otherwise.
|
||||
*/
|
||||
int qed_ll2_set_fragment_of_tx_packet(void *cxt,
|
||||
u8 connection_handle,
|
||||
dma_addr_t addr, u16 nbytes);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_terminate_connection - stops Tx/Rx queues
|
||||
* qed_ll2_terminate_connection(): Stops Tx/Rx queues
|
||||
*
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection.
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param connection_handle LL2 connection's handle
|
||||
* obtained from
|
||||
* qed_ll2_require_connection
|
||||
*
|
||||
* @return 0 on success, failure otherwise
|
||||
* Return: 0 on success, failure otherwise.
|
||||
*/
|
||||
int qed_ll2_terminate_connection(void *cxt, u8 connection_handle);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_get_stats - get LL2 queue's statistics
|
||||
* qed_ll2_get_stats(): Get LL2 queue's statistics
|
||||
*
|
||||
* @cxt: Pointer to the hw-function [opaque to some].
|
||||
* @connection_handle: LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection.
|
||||
* @p_stats: Pointer Status.
|
||||
*
|
||||
* @param cxt - pointer to the hw-function [opaque to some]
|
||||
* @param connection_handle LL2 connection's handle obtained from
|
||||
* qed_ll2_require_connection
|
||||
* @param p_stats
|
||||
*
|
||||
* @return 0 on success, failure otherwise
|
||||
* Return: 0 on success, failure otherwise.
|
||||
*/
|
||||
int qed_ll2_get_stats(void *cxt,
|
||||
u8 connection_handle, struct qed_ll2_stats *p_stats);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_alloc - Allocates LL2 connections set
|
||||
* qed_ll2_alloc(): Allocates LL2 connections set.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_ll2_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_setup - Inits LL2 connections set
|
||||
* qed_ll2_setup(): Inits LL2 connections set.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*
|
||||
*/
|
||||
void qed_ll2_setup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_ll2_free - Releases LL2 connections set
|
||||
* qed_ll2_free(): Releases LL2 connections set
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*
|
||||
*/
|
||||
void qed_ll2_free(struct qed_hwfn *p_hwfn);
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -6,47 +6,47 @@
|
|||
#include <linux/types.h>
|
||||
|
||||
/**
|
||||
* @brief qed_selftest_memory - Perform memory test
|
||||
* qed_selftest_memory(): Perform memory test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_selftest_memory(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_selftest_interrupt - Perform interrupt test
|
||||
* qed_selftest_interrupt(): Perform interrupt test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_selftest_interrupt(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_selftest_register - Perform register test
|
||||
* qed_selftest_register(): Perform register test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_selftest_register(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_selftest_clock - Perform clock test
|
||||
* qed_selftest_clock(): Perform clock test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_selftest_clock(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief qed_selftest_nvram - Perform nvram test
|
||||
* qed_selftest_nvram(): Perform nvram test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_selftest_nvram(struct qed_dev *cdev);
|
||||
|
||||
|
|
|
@ -31,23 +31,18 @@ struct qed_spq_comp_cb {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_eth_cqe_completion - handles the completion of a
|
||||
* ramrod on the cqe ring
|
||||
* qed_eth_cqe_completion(): handles the completion of a
|
||||
* ramrod on the cqe ring.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param cqe
|
||||
* @p_hwfn: HW device data.
|
||||
* @cqe: CQE.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_eth_cqe_completion(struct qed_hwfn *p_hwfn,
|
||||
struct eth_slow_path_rx_cqe *cqe);
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* QED Slow-hwfn queue interface
|
||||
*/
|
||||
|
||||
/* QED Slow-hwfn queue interface */
|
||||
union ramrod_data {
|
||||
struct pf_start_ramrod_data pf_start;
|
||||
struct pf_update_ramrod_data pf_update;
|
||||
|
@ -207,117 +202,128 @@ struct qed_spq {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief qed_spq_post - Posts a Slow hwfn request to FW, or lacking that
|
||||
* Pends it to the future list.
|
||||
* qed_spq_post(): Posts a Slow hwfn request to FW, or lacking that
|
||||
* Pends it to the future list.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_req
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ent: Ent.
|
||||
* @fw_return_code: Return code from firmware.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_spq_post(struct qed_hwfn *p_hwfn,
|
||||
struct qed_spq_entry *p_ent,
|
||||
u8 *fw_return_code);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_allocate - Alloocates & initializes the SPQ and EQ.
|
||||
* qed_spq_alloc(): Alloocates & initializes the SPQ and EQ.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_spq_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_setup - Reset the SPQ to its start state.
|
||||
* qed_spq_setup(): Reset the SPQ to its start state.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_spq_setup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_deallocate - Deallocates the given SPQ struct.
|
||||
* qed_spq_free(): Deallocates the given SPQ struct.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_spq_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_get_entry - Obtain an entrry from the spq
|
||||
* free pool list.
|
||||
* qed_spq_get_entry(): Obtain an entrry from the spq
|
||||
* free pool list.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @pp_ent: PP ENT.
|
||||
*
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param pp_ent
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_spq_get_entry(struct qed_hwfn *p_hwfn,
|
||||
struct qed_spq_entry **pp_ent);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_return_entry - Return an entry to spq free
|
||||
* pool list
|
||||
* qed_spq_return_entry(): Return an entry to spq free pool list.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ent
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ent: P ENT.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_spq_return_entry(struct qed_hwfn *p_hwfn,
|
||||
struct qed_spq_entry *p_ent);
|
||||
/**
|
||||
* @brief qed_eq_allocate - Allocates & initializes an EQ struct
|
||||
* qed_eq_alloc(): Allocates & initializes an EQ struct.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param num_elem number of elements in the eq
|
||||
* @p_hwfn: HW device data.
|
||||
* @num_elem: number of elements in the eq.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_eq_alloc(struct qed_hwfn *p_hwfn, u16 num_elem);
|
||||
|
||||
/**
|
||||
* @brief qed_eq_setup - Reset the EQ to its start state.
|
||||
* qed_eq_setup(): Reset the EQ to its start state.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_eq_setup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_eq_free - deallocates the given EQ struct.
|
||||
* qed_eq_free(): deallocates the given EQ struct.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_eq_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_eq_prod_update - update the FW with default EQ producer
|
||||
* qed_eq_prod_update(): update the FW with default EQ producer.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param prod
|
||||
* @p_hwfn: HW device data.
|
||||
* @prod: Prod.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_eq_prod_update(struct qed_hwfn *p_hwfn,
|
||||
u16 prod);
|
||||
|
||||
/**
|
||||
* @brief qed_eq_completion - Completes currently pending EQ elements
|
||||
* qed_eq_completion(): Completes currently pending EQ elements.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param cookie
|
||||
* @p_hwfn: HW device data.
|
||||
* @cookie: Cookie.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_eq_completion(struct qed_hwfn *p_hwfn,
|
||||
void *cookie);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_completion - Completes a single event
|
||||
* qed_spq_completion(): Completes a single event.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param echo - echo value from cookie (used for determining completion)
|
||||
* @param p_data - data from cookie (used in callback function if applicable)
|
||||
* @p_hwfn: HW device data.
|
||||
* @echo: echo value from cookie (used for determining completion).
|
||||
* @fw_return_code: FW return code.
|
||||
* @p_data: data from cookie (used in callback function if applicable).
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_spq_completion(struct qed_hwfn *p_hwfn,
|
||||
__le16 echo,
|
||||
|
@ -325,44 +331,43 @@ int qed_spq_completion(struct qed_hwfn *p_hwfn,
|
|||
union event_ring_data *p_data);
|
||||
|
||||
/**
|
||||
* @brief qed_spq_get_cid - Given p_hwfn, return cid for the hwfn's SPQ
|
||||
* qed_spq_get_cid(): Given p_hwfn, return cid for the hwfn's SPQ.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return u32 - SPQ CID
|
||||
* Return: u32 - SPQ CID.
|
||||
*/
|
||||
u32 qed_spq_get_cid(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_consq_alloc - Allocates & initializes an ConsQ
|
||||
* struct
|
||||
* qed_consq_alloc(): Allocates & initializes an ConsQ struct.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_consq_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_consq_setup - Reset the ConsQ to its start state.
|
||||
* qed_consq_setup(): Reset the ConsQ to its start state.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return Void.
|
||||
*/
|
||||
void qed_consq_setup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_consq_free - deallocates the given ConsQ struct.
|
||||
* qed_consq_free(): deallocates the given ConsQ struct.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return Void.
|
||||
*/
|
||||
void qed_consq_free(struct qed_hwfn *p_hwfn);
|
||||
int qed_spq_pend_post(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @file
|
||||
*
|
||||
* @brief Slow-hwfn low-level commands (Ramrods) function definitions.
|
||||
*/
|
||||
/* Slow-hwfn low-level commands (Ramrods) function definitions. */
|
||||
|
||||
#define QED_SP_EQ_COMPLETION 0x01
|
||||
#define QED_SP_CQE_COMPLETION 0x02
|
||||
|
@ -377,12 +382,15 @@ struct qed_sp_init_data {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief Returns a SPQ entry to the pool / frees the entry if allocated.
|
||||
* Should be called on in error flows after initializing the SPQ entry
|
||||
* and before posting it.
|
||||
* qed_sp_destroy_request(): Returns a SPQ entry to the pool / frees the
|
||||
* entry if allocated. Should be called on in error
|
||||
* flows after initializing the SPQ entry
|
||||
* and before posting it.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ent
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ent: Ent.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_sp_destroy_request(struct qed_hwfn *p_hwfn,
|
||||
struct qed_spq_entry *p_ent);
|
||||
|
@ -394,7 +402,14 @@ int qed_sp_init_request(struct qed_hwfn *p_hwfn,
|
|||
struct qed_sp_init_data *p_data);
|
||||
|
||||
/**
|
||||
* @brief qed_sp_pf_start - PF Function Start Ramrod
|
||||
* qed_sp_pf_start(): PF Function Start Ramrod.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_ptt: P_ptt.
|
||||
* @p_tunn: P_tunn.
|
||||
* @allow_npar_tx_switch: Allow NPAR TX Switch.
|
||||
*
|
||||
* Return: Int.
|
||||
*
|
||||
* This ramrod is sent to initialize a physical function (PF). It will
|
||||
* configure the function related parameters and write its completion to the
|
||||
|
@ -404,12 +419,6 @@ int qed_sp_init_request(struct qed_hwfn *p_hwfn,
|
|||
* allocated by the driver on host memory and its parameters are written
|
||||
* to the internal RAM of the UStorm by the Function Start Ramrod.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_ptt
|
||||
* @param p_tunn
|
||||
* @param allow_npar_tx_switch
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
|
||||
int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
|
||||
|
@ -418,47 +427,33 @@ int qed_sp_pf_start(struct qed_hwfn *p_hwfn,
|
|||
bool allow_npar_tx_switch);
|
||||
|
||||
/**
|
||||
* @brief qed_sp_pf_update - PF Function Update Ramrod
|
||||
* qed_sp_pf_update(): PF Function Update Ramrod.
|
||||
*
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Int.
|
||||
*
|
||||
* This ramrod updates function-related parameters. Every parameter can be
|
||||
* updated independently, according to configuration flags.
|
||||
*
|
||||
* @param p_hwfn
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
|
||||
int qed_sp_pf_update(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_sp_pf_update_stag - Update firmware of new outer tag
|
||||
* qed_sp_pf_update_stag(): Update firmware of new outer tag.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_sp_pf_update_stag(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_sp_pf_stop - PF Function Stop Ramrod
|
||||
* qed_sp_pf_update_ufp(): PF ufp update Ramrod.
|
||||
*
|
||||
* This ramrod is sent to close a Physical Function (PF). It is the last ramrod
|
||||
* sent and the last completion written to the PFs Event Ring. This ramrod also
|
||||
* deletes the context for the Slowhwfn connection on this PF.
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @note Not required for first packet.
|
||||
*
|
||||
* @param p_hwfn
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief qed_sp_pf_update_ufp - PF ufp update Ramrod
|
||||
*
|
||||
* @param p_hwfn
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_sp_pf_update_ufp(struct qed_hwfn *p_hwfn);
|
||||
|
||||
|
@ -470,11 +465,11 @@ int qed_sp_pf_update_tunn_cfg(struct qed_hwfn *p_hwfn,
|
|||
enum spq_mode comp_mode,
|
||||
struct qed_spq_comp_cb *p_comp_data);
|
||||
/**
|
||||
* @brief qed_sp_heartbeat_ramrod - Send empty Ramrod
|
||||
* qed_sp_heartbeat_ramrod(): Send empty Ramrod.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
|
||||
int qed_sp_heartbeat_ramrod(struct qed_hwfn *p_hwfn);
|
||||
|
|
|
@ -250,29 +250,31 @@ extern const struct qed_iov_hv_ops qed_iov_ops_pass;
|
|||
|
||||
#ifdef CONFIG_QED_SRIOV
|
||||
/**
|
||||
* @brief Check if given VF ID @vfid is valid
|
||||
* w.r.t. @b_enabled_only value
|
||||
* if b_enabled_only = true - only enabled VF id is valid
|
||||
* else any VF id less than max_vfs is valid
|
||||
* qed_iov_is_valid_vfid(): Check if given VF ID @vfid is valid
|
||||
* w.r.t. @b_enabled_only value
|
||||
* if b_enabled_only = true - only enabled
|
||||
* VF id is valid.
|
||||
* else any VF id less than max_vfs is valid.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param rel_vf_id - Relative VF ID
|
||||
* @param b_enabled_only - consider only enabled VF
|
||||
* @param b_non_malicious - true iff we want to validate vf isn't malicious.
|
||||
* @p_hwfn: HW device data.
|
||||
* @rel_vf_id: Relative VF ID.
|
||||
* @b_enabled_only: consider only enabled VF.
|
||||
* @b_non_malicious: true iff we want to validate vf isn't malicious.
|
||||
*
|
||||
* @return bool - true for valid VF ID
|
||||
* Return: bool - true for valid VF ID
|
||||
*/
|
||||
bool qed_iov_is_valid_vfid(struct qed_hwfn *p_hwfn,
|
||||
int rel_vf_id,
|
||||
bool b_enabled_only, bool b_non_malicious);
|
||||
|
||||
/**
|
||||
* @brief - Given a VF index, return index of next [including that] active VF.
|
||||
* qed_iov_get_next_active_vf(): Given a VF index, return index of
|
||||
* next [including that] active VF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param rel_vf_id
|
||||
* @p_hwfn: HW device data.
|
||||
* @rel_vf_id: VF ID.
|
||||
*
|
||||
* @return MAX_NUM_VFS in case no further active VFs, otherwise index.
|
||||
* Return: MAX_NUM_VFS in case no further active VFs, otherwise index.
|
||||
*/
|
||||
u16 qed_iov_get_next_active_vf(struct qed_hwfn *p_hwfn, u16 rel_vf_id);
|
||||
|
||||
|
@ -280,83 +282,92 @@ void qed_iov_bulletin_set_udp_ports(struct qed_hwfn *p_hwfn,
|
|||
int vfid, u16 vxlan_port, u16 geneve_port);
|
||||
|
||||
/**
|
||||
* @brief Read sriov related information and allocated resources
|
||||
* reads from configuration space, shmem, etc.
|
||||
* qed_iov_hw_info(): Read sriov related information and allocated resources
|
||||
* reads from configuration space, shmem, etc.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_iov_hw_info(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_add_tlv - place a given tlv on the tlv buffer at next offset
|
||||
* qed_add_tlv(): place a given tlv on the tlv buffer at next offset
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_iov
|
||||
* @param type
|
||||
* @param length
|
||||
* @p_hwfn: HW device data.
|
||||
* @offset: offset.
|
||||
* @type: Type
|
||||
* @length: Length.
|
||||
*
|
||||
* @return pointer to the newly placed tlv
|
||||
* Return: pointer to the newly placed tlv
|
||||
*/
|
||||
void *qed_add_tlv(struct qed_hwfn *p_hwfn, u8 **offset, u16 type, u16 length);
|
||||
|
||||
/**
|
||||
* @brief list the types and lengths of the tlvs on the buffer
|
||||
* qed_dp_tlv_list(): list the types and lengths of the tlvs on the buffer
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param tlvs_list
|
||||
* @p_hwfn: HW device data.
|
||||
* @tlvs_list: Tlvs_list.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_dp_tlv_list(struct qed_hwfn *p_hwfn, void *tlvs_list);
|
||||
|
||||
/**
|
||||
* @brief qed_iov_alloc - allocate sriov related resources
|
||||
* qed_iov_alloc(): allocate sriov related resources
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_iov_alloc(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_iov_setup - setup sriov related resources
|
||||
* qed_iov_setup(): setup sriov related resources
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_iov_setup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_iov_free - free sriov related resources
|
||||
* qed_iov_free(): free sriov related resources
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_iov_free(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief free sriov related memory that was allocated during hw_prepare
|
||||
* qed_iov_free_hw_info(): free sriov related memory that was
|
||||
* allocated during hw_prepare
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_iov_free_hw_info(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief Mark structs of vfs that have been FLR-ed.
|
||||
* qed_iov_mark_vf_flr(): Mark structs of vfs that have been FLR-ed.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param disabled_vfs - bitmask of all VFs on path that were FLRed
|
||||
* @p_hwfn: HW device data.
|
||||
* @disabled_vfs: bitmask of all VFs on path that were FLRed
|
||||
*
|
||||
* @return true iff one of the PF's vfs got FLRed. false otherwise.
|
||||
* Return: true iff one of the PF's vfs got FLRed. false otherwise.
|
||||
*/
|
||||
bool qed_iov_mark_vf_flr(struct qed_hwfn *p_hwfn, u32 *disabled_vfs);
|
||||
|
||||
/**
|
||||
* @brief Search extended TLVs in request/reply buffer.
|
||||
* qed_iov_search_list_tlvs(): Search extended TLVs in request/reply buffer.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_tlvs_list - Pointer to tlvs list
|
||||
* @param req_type - Type of TLV
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_tlvs_list: Pointer to tlvs list
|
||||
* @req_type: Type of TLV
|
||||
*
|
||||
* @return pointer to tlv type if found, otherwise returns NULL.
|
||||
* Return: pointer to tlv type if found, otherwise returns NULL.
|
||||
*/
|
||||
void *qed_iov_search_list_tlvs(struct qed_hwfn *p_hwfn,
|
||||
void *p_tlvs_list, u16 req_type);
|
||||
|
|
|
@ -688,13 +688,16 @@ struct qed_vf_iov {
|
|||
};
|
||||
|
||||
/**
|
||||
* @brief VF - Set Rx/Tx coalesce per VF's relative queue.
|
||||
* Coalesce value '0' will omit the configuration.
|
||||
* qed_vf_pf_set_coalesce(): VF - Set Rx/Tx coalesce per VF's relative queue.
|
||||
* Coalesce value '0' will omit the
|
||||
* configuration.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param rx_coal - coalesce value in micro second for rx queue
|
||||
* @param tx_coal - coalesce value in micro second for tx queue
|
||||
* @param p_cid - queue cid
|
||||
* @p_hwfn: HW device data.
|
||||
* @rx_coal: coalesce value in micro second for rx queue.
|
||||
* @tx_coal: coalesce value in micro second for tx queue.
|
||||
* @p_cid: queue cid.
|
||||
*
|
||||
* Return: Int.
|
||||
*
|
||||
**/
|
||||
int qed_vf_pf_set_coalesce(struct qed_hwfn *p_hwfn,
|
||||
|
@ -702,148 +705,172 @@ int qed_vf_pf_set_coalesce(struct qed_hwfn *p_hwfn,
|
|||
u16 tx_coal, struct qed_queue_cid *p_cid);
|
||||
|
||||
/**
|
||||
* @brief VF - Get coalesce per VF's relative queue.
|
||||
* qed_vf_pf_get_coalesce(): VF - Get coalesce per VF's relative queue.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_coal - coalesce value in micro second for VF queues.
|
||||
* @param p_cid - queue cid
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_coal: coalesce value in micro second for VF queues.
|
||||
* @p_cid: queue cid.
|
||||
*
|
||||
* Return: Int.
|
||||
**/
|
||||
int qed_vf_pf_get_coalesce(struct qed_hwfn *p_hwfn,
|
||||
u16 *p_coal, struct qed_queue_cid *p_cid);
|
||||
|
||||
#ifdef CONFIG_QED_SRIOV
|
||||
/**
|
||||
* @brief Read the VF bulletin and act on it if needed
|
||||
* qed_vf_read_bulletin(): Read the VF bulletin and act on it if needed.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_change - qed fills 1 iff bulletin board has changed, 0 otherwise.
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_change: qed fills 1 iff bulletin board has changed, 0 otherwise.
|
||||
*
|
||||
* @return enum _qed_status
|
||||
* Return: enum _qed_status.
|
||||
*/
|
||||
int qed_vf_read_bulletin(struct qed_hwfn *p_hwfn, u8 *p_change);
|
||||
|
||||
/**
|
||||
* @brief Get link paramters for VF from qed
|
||||
* qed_vf_get_link_params(): Get link parameters for VF from qed
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param params - the link params structure to be filled for the VF
|
||||
* @p_hwfn: HW device data.
|
||||
* @params: the link params structure to be filled for the VF.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_link_params(struct qed_hwfn *p_hwfn,
|
||||
struct qed_mcp_link_params *params);
|
||||
|
||||
/**
|
||||
* @brief Get link state for VF from qed
|
||||
* qed_vf_get_link_state(): Get link state for VF from qed.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param link - the link state structure to be filled for the VF
|
||||
* @p_hwfn: HW device data.
|
||||
* @link: the link state structure to be filled for the VF
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_link_state(struct qed_hwfn *p_hwfn,
|
||||
struct qed_mcp_link_state *link);
|
||||
|
||||
/**
|
||||
* @brief Get link capabilities for VF from qed
|
||||
* qed_vf_get_link_caps(): Get link capabilities for VF from qed.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_link_caps - the link capabilities structure to be filled for the VF
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_link_caps: the link capabilities structure to be filled for the VF
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_link_caps(struct qed_hwfn *p_hwfn,
|
||||
struct qed_mcp_link_capabilities *p_link_caps);
|
||||
|
||||
/**
|
||||
* @brief Get number of Rx queues allocated for VF by qed
|
||||
* qed_vf_get_num_rxqs(): Get number of Rx queues allocated for VF by qed
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param num_rxqs - allocated RX queues
|
||||
* @p_hwfn: HW device data.
|
||||
* @num_rxqs: allocated RX queues
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_num_rxqs(struct qed_hwfn *p_hwfn, u8 *num_rxqs);
|
||||
|
||||
/**
|
||||
* @brief Get number of Rx queues allocated for VF by qed
|
||||
* qed_vf_get_num_txqs(): Get number of Rx queues allocated for VF by qed
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param num_txqs - allocated RX queues
|
||||
* @p_hwfn: HW device data.
|
||||
* @num_txqs: allocated RX queues
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_num_txqs(struct qed_hwfn *p_hwfn, u8 *num_txqs);
|
||||
|
||||
/**
|
||||
* @brief Get number of available connections [both Rx and Tx] for VF
|
||||
* qed_vf_get_num_cids(): Get number of available connections
|
||||
* [both Rx and Tx] for VF
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param num_cids - allocated number of connections
|
||||
* @p_hwfn: HW device data.
|
||||
* @num_cids: allocated number of connections
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_num_cids(struct qed_hwfn *p_hwfn, u8 *num_cids);
|
||||
|
||||
/**
|
||||
* @brief Get port mac address for VF
|
||||
* qed_vf_get_port_mac(): Get port mac address for VF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param port_mac - destination location for port mac
|
||||
* @p_hwfn: HW device data.
|
||||
* @port_mac: destination location for port mac
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_port_mac(struct qed_hwfn *p_hwfn, u8 *port_mac);
|
||||
|
||||
/**
|
||||
* @brief Get number of VLAN filters allocated for VF by qed
|
||||
* qed_vf_get_num_vlan_filters(): Get number of VLAN filters allocated
|
||||
* for VF by qed.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param num_rxqs - allocated VLAN filters
|
||||
* @p_hwfn: HW device data.
|
||||
* @num_vlan_filters: allocated VLAN filters
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_num_vlan_filters(struct qed_hwfn *p_hwfn,
|
||||
u8 *num_vlan_filters);
|
||||
|
||||
/**
|
||||
* @brief Get number of MAC filters allocated for VF by qed
|
||||
* qed_vf_get_num_mac_filters(): Get number of MAC filters allocated
|
||||
* for VF by qed
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param num_rxqs - allocated MAC filters
|
||||
* @p_hwfn: HW device data.
|
||||
* @num_mac_filters: allocated MAC filters
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_num_mac_filters(struct qed_hwfn *p_hwfn, u8 *num_mac_filters);
|
||||
|
||||
/**
|
||||
* @brief Check if VF can set a MAC address
|
||||
* qed_vf_check_mac(): Check if VF can set a MAC address
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param mac
|
||||
* @p_hwfn: HW device data.
|
||||
* @mac: Mac.
|
||||
*
|
||||
* @return bool
|
||||
* Return: bool.
|
||||
*/
|
||||
bool qed_vf_check_mac(struct qed_hwfn *p_hwfn, u8 *mac);
|
||||
|
||||
/**
|
||||
* @brief Set firmware version information in dev_info from VFs acquire response tlv
|
||||
* qed_vf_get_fw_version(): Set firmware version information
|
||||
* in dev_info from VFs acquire response tlv
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param fw_major
|
||||
* @param fw_minor
|
||||
* @param fw_rev
|
||||
* @param fw_eng
|
||||
* @p_hwfn: HW device data.
|
||||
* @fw_major: FW major.
|
||||
* @fw_minor: FW minor.
|
||||
* @fw_rev: FW rev.
|
||||
* @fw_eng: FW eng.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_get_fw_version(struct qed_hwfn *p_hwfn,
|
||||
u16 *fw_major, u16 *fw_minor,
|
||||
u16 *fw_rev, u16 *fw_eng);
|
||||
|
||||
/**
|
||||
* @brief hw preparation for VF
|
||||
* sends ACQUIRE message
|
||||
* qed_vf_hw_prepare(): hw preparation for VF sends ACQUIRE message
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_vf_hw_prepare(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief VF - start the RX Queue by sending a message to the PF
|
||||
* @param p_hwfn
|
||||
* @param p_cid - Only relative fields are relevant
|
||||
* @param bd_max_bytes - maximum number of bytes per bd
|
||||
* @param bd_chain_phys_addr - physical address of bd chain
|
||||
* @param cqe_pbl_addr - physical address of pbl
|
||||
* @param cqe_pbl_size - pbl size
|
||||
* @param pp_prod - pointer to the producer to be
|
||||
* used in fastpath
|
||||
* qed_vf_pf_rxq_start(): start the RX Queue by sending a message to the PF
|
||||
*
|
||||
* @return int
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cid: Only relative fields are relevant
|
||||
* @bd_max_bytes: maximum number of bytes per bd
|
||||
* @bd_chain_phys_addr: physical address of bd chain
|
||||
* @cqe_pbl_addr: physical address of pbl
|
||||
* @cqe_pbl_size: pbl size
|
||||
* @pp_prod: pointer to the producer to be used in fastpath
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_vf_pf_rxq_start(struct qed_hwfn *p_hwfn,
|
||||
struct qed_queue_cid *p_cid,
|
||||
|
@ -853,18 +880,16 @@ int qed_vf_pf_rxq_start(struct qed_hwfn *p_hwfn,
|
|||
u16 cqe_pbl_size, void __iomem **pp_prod);
|
||||
|
||||
/**
|
||||
* @brief VF - start the TX queue by sending a message to the
|
||||
* PF.
|
||||
* qed_vf_pf_txq_start(): VF - start the TX queue by sending a message to the
|
||||
* PF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param tx_queue_id - zero based within the VF
|
||||
* @param sb - status block for this queue
|
||||
* @param sb_index - index within the status block
|
||||
* @param bd_chain_phys_addr - physical address of tx chain
|
||||
* @param pp_doorbell - pointer to address to which to
|
||||
* write the doorbell too..
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cid: CID.
|
||||
* @pbl_addr: PBL address.
|
||||
* @pbl_size: PBL Size.
|
||||
* @pp_doorbell: pointer to address to which to write the doorbell too.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int
|
||||
qed_vf_pf_txq_start(struct qed_hwfn *p_hwfn,
|
||||
|
@ -873,90 +898,91 @@ qed_vf_pf_txq_start(struct qed_hwfn *p_hwfn,
|
|||
u16 pbl_size, void __iomem **pp_doorbell);
|
||||
|
||||
/**
|
||||
* @brief VF - stop the RX queue by sending a message to the PF
|
||||
* qed_vf_pf_rxq_stop(): VF - stop the RX queue by sending a message to the PF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_cid
|
||||
* @param cqe_completion
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cid: CID.
|
||||
* @cqe_completion: CQE Completion.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_vf_pf_rxq_stop(struct qed_hwfn *p_hwfn,
|
||||
struct qed_queue_cid *p_cid, bool cqe_completion);
|
||||
|
||||
/**
|
||||
* @brief VF - stop the TX queue by sending a message to the PF
|
||||
* qed_vf_pf_txq_stop(): VF - stop the TX queue by sending a message to the PF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param tx_qid
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_cid: CID.
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_vf_pf_txq_stop(struct qed_hwfn *p_hwfn, struct qed_queue_cid *p_cid);
|
||||
|
||||
/**
|
||||
* @brief VF - send a vport update command
|
||||
* qed_vf_pf_vport_update(): VF - send a vport update command.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param params
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_params: Params
|
||||
*
|
||||
* @return int
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_vf_pf_vport_update(struct qed_hwfn *p_hwfn,
|
||||
struct qed_sp_vport_update_params *p_params);
|
||||
|
||||
/**
|
||||
* qed_vf_pf_reset(): VF - send a close message to PF.
|
||||
*
|
||||
* @brief VF - send a close message to PF
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @param p_hwfn
|
||||
*
|
||||
* @return enum _qed_status
|
||||
* Return: enum _qed_status
|
||||
*/
|
||||
int qed_vf_pf_reset(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief VF - free vf`s memories
|
||||
* qed_vf_pf_release(): VF - free vf`s memories.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return enum _qed_status
|
||||
* Return: enum _qed_status
|
||||
*/
|
||||
int qed_vf_pf_release(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief qed_vf_get_igu_sb_id - Get the IGU SB ID for a given
|
||||
* qed_vf_get_igu_sb_id(): Get the IGU SB ID for a given
|
||||
* sb_id. For VFs igu sbs don't have to be contiguous
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param sb_id
|
||||
* @p_hwfn: HW device data.
|
||||
* @sb_id: SB ID.
|
||||
*
|
||||
* @return INLINE u16
|
||||
* Return: INLINE u16
|
||||
*/
|
||||
u16 qed_vf_get_igu_sb_id(struct qed_hwfn *p_hwfn, u16 sb_id);
|
||||
|
||||
/**
|
||||
* @brief Stores [or removes] a configured sb_info.
|
||||
* qed_vf_set_sb_info(): Stores [or removes] a configured sb_info.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param sb_id - zero-based SB index [for fastpath]
|
||||
* @param sb_info - may be NULL [during removal].
|
||||
* @p_hwfn: HW device data.
|
||||
* @sb_id: zero-based SB index [for fastpath]
|
||||
* @p_sb: may be NULL [during removal].
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void qed_vf_set_sb_info(struct qed_hwfn *p_hwfn,
|
||||
u16 sb_id, struct qed_sb_info *p_sb);
|
||||
|
||||
/**
|
||||
* @brief qed_vf_pf_vport_start - perform vport start for VF.
|
||||
* qed_vf_pf_vport_start(): perform vport start for VF.
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param vport_id
|
||||
* @param mtu
|
||||
* @param inner_vlan_removal
|
||||
* @param tpa_mode
|
||||
* @param max_buffers_per_cqe,
|
||||
* @param only_untagged - default behavior regarding vlan acceptance
|
||||
* @p_hwfn: HW device data.
|
||||
* @vport_id: Vport ID.
|
||||
* @mtu: MTU.
|
||||
* @inner_vlan_removal: Innter VLAN removal.
|
||||
* @tpa_mode: TPA mode
|
||||
* @max_buffers_per_cqe: Max buffer pre CQE.
|
||||
* @only_untagged: default behavior regarding vlan acceptance
|
||||
*
|
||||
* @return enum _qed_status
|
||||
* Return: enum _qed_status
|
||||
*/
|
||||
int qed_vf_pf_vport_start(struct qed_hwfn *p_hwfn,
|
||||
u8 vport_id,
|
||||
|
@ -966,11 +992,11 @@ int qed_vf_pf_vport_start(struct qed_hwfn *p_hwfn,
|
|||
u8 max_buffers_per_cqe, u8 only_untagged);
|
||||
|
||||
/**
|
||||
* @brief qed_vf_pf_vport_stop - stop the VF's vport
|
||||
* qed_vf_pf_vport_stop(): stop the VF's vport
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return enum _qed_status
|
||||
* Return: enum _qed_status
|
||||
*/
|
||||
int qed_vf_pf_vport_stop(struct qed_hwfn *p_hwfn);
|
||||
|
||||
|
@ -981,42 +1007,49 @@ void qed_vf_pf_filter_mcast(struct qed_hwfn *p_hwfn,
|
|||
struct qed_filter_mcast *p_filter_cmd);
|
||||
|
||||
/**
|
||||
* @brief qed_vf_pf_int_cleanup - clean the SB of the VF
|
||||
* qed_vf_pf_int_cleanup(): clean the SB of the VF
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @p_hwfn: HW device data.
|
||||
*
|
||||
* @return enum _qed_status
|
||||
* Return: enum _qed_status
|
||||
*/
|
||||
int qed_vf_pf_int_cleanup(struct qed_hwfn *p_hwfn);
|
||||
|
||||
/**
|
||||
* @brief - return the link params in a given bulletin board
|
||||
* __qed_vf_get_link_params(): return the link params in a given bulletin board
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_params - pointer to a struct to fill with link params
|
||||
* @param p_bulletin
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_params: pointer to a struct to fill with link params
|
||||
* @p_bulletin: Bulletin.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void __qed_vf_get_link_params(struct qed_hwfn *p_hwfn,
|
||||
struct qed_mcp_link_params *p_params,
|
||||
struct qed_bulletin_content *p_bulletin);
|
||||
|
||||
/**
|
||||
* @brief - return the link state in a given bulletin board
|
||||
* __qed_vf_get_link_state(): return the link state in a given bulletin board
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_link - pointer to a struct to fill with link state
|
||||
* @param p_bulletin
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_link: pointer to a struct to fill with link state
|
||||
* @p_bulletin: Bulletin.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void __qed_vf_get_link_state(struct qed_hwfn *p_hwfn,
|
||||
struct qed_mcp_link_state *p_link,
|
||||
struct qed_bulletin_content *p_bulletin);
|
||||
|
||||
/**
|
||||
* @brief - return the link capabilities in a given bulletin board
|
||||
* __qed_vf_get_link_caps(): return the link capabilities in a given
|
||||
* bulletin board
|
||||
*
|
||||
* @param p_hwfn
|
||||
* @param p_link - pointer to a struct to fill with link capabilities
|
||||
* @param p_bulletin
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_link_caps: pointer to a struct to fill with link capabilities
|
||||
* @p_bulletin: Bulletin.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void __qed_vf_get_link_caps(struct qed_hwfn *p_hwfn,
|
||||
struct qed_mcp_link_capabilities *p_link_caps,
|
||||
|
@ -1029,9 +1062,13 @@ int qed_vf_pf_tunnel_param_update(struct qed_hwfn *p_hwfn,
|
|||
|
||||
u32 qed_vf_hw_bar_size(struct qed_hwfn *p_hwfn, enum BAR_ID bar_id);
|
||||
/**
|
||||
* @brief - Ask PF to update the MAC address in it's bulletin board
|
||||
* qed_vf_pf_bulletin_update_mac(): Ask PF to update the MAC address in
|
||||
* it's bulletin board
|
||||
*
|
||||
* @param p_mac - mac address to be updated in bulletin board
|
||||
* @p_hwfn: HW device data.
|
||||
* @p_mac: mac address to be updated in bulletin board
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int qed_vf_pf_bulletin_update_mac(struct qed_hwfn *p_hwfn, u8 *p_mac);
|
||||
|
||||
|
|
|
@ -2800,10 +2800,13 @@ static void qede_get_eth_tlv_data(void *dev, void *data)
|
|||
}
|
||||
|
||||
/**
|
||||
* qede_io_error_detected - called when PCI error is detected
|
||||
* qede_io_error_detected(): Called when PCI error is detected
|
||||
*
|
||||
* @pdev: Pointer to PCI device
|
||||
* @state: The current pci connection state
|
||||
*
|
||||
*Return: pci_ers_result_t.
|
||||
*
|
||||
* This function is called after a PCI bus error affecting
|
||||
* this device has been detected.
|
||||
*/
|
||||
|
|
|
@ -268,14 +268,15 @@ static inline dma_addr_t qed_chain_get_pbl_phys(const struct qed_chain *chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_advance_page -
|
||||
* qed_chain_advance_page(): Advance the next element across pages for a
|
||||
* linked chain.
|
||||
*
|
||||
* Advance the next element across pages for a linked chain
|
||||
* @p_chain: P_chain.
|
||||
* @p_next_elem: P_next_elem.
|
||||
* @idx_to_inc: Idx_to_inc.
|
||||
* @page_to_inc: page_to_inc.
|
||||
*
|
||||
* @param p_chain
|
||||
* @param p_next_elem
|
||||
* @param idx_to_inc
|
||||
* @param page_to_inc
|
||||
* Return: Void.
|
||||
*/
|
||||
static inline void
|
||||
qed_chain_advance_page(struct qed_chain *p_chain,
|
||||
|
@ -336,12 +337,14 @@ qed_chain_advance_page(struct qed_chain *p_chain,
|
|||
} while (0)
|
||||
|
||||
/**
|
||||
* @brief qed_chain_return_produced -
|
||||
* qed_chain_return_produced(): A chain in which the driver "Produces"
|
||||
* elements should use this API
|
||||
* to indicate previous produced elements
|
||||
* are now consumed.
|
||||
*
|
||||
* A chain in which the driver "Produces" elements should use this API
|
||||
* to indicate previous produced elements are now consumed.
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* @param p_chain
|
||||
* Return: Void.
|
||||
*/
|
||||
static inline void qed_chain_return_produced(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -353,15 +356,15 @@ static inline void qed_chain_return_produced(struct qed_chain *p_chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_produce -
|
||||
* qed_chain_produce(): A chain in which the driver "Produces"
|
||||
* elements should use this to get a pointer to
|
||||
* the next element which can be "Produced". It's driver
|
||||
* responsibility to validate that the chain has room for
|
||||
* new element.
|
||||
*
|
||||
* A chain in which the driver "Produces" elements should use this to get
|
||||
* a pointer to the next element which can be "Produced". It's driver
|
||||
* responsibility to validate that the chain has room for new element.
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* @param p_chain
|
||||
*
|
||||
* @return void*, a pointer to next element
|
||||
* Return: void*, a pointer to next element.
|
||||
*/
|
||||
static inline void *qed_chain_produce(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -395,14 +398,11 @@ static inline void *qed_chain_produce(struct qed_chain *p_chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_get_capacity -
|
||||
* qed_chain_get_capacity(): Get the maximum number of BDs in chain
|
||||
*
|
||||
* Get the maximum number of BDs in chain
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* @param p_chain
|
||||
* @param num
|
||||
*
|
||||
* @return number of unusable BDs
|
||||
* Return: number of unusable BDs.
|
||||
*/
|
||||
static inline u32 qed_chain_get_capacity(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -410,12 +410,14 @@ static inline u32 qed_chain_get_capacity(struct qed_chain *p_chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_recycle_consumed -
|
||||
* qed_chain_recycle_consumed(): Returns an element which was
|
||||
* previously consumed;
|
||||
* Increments producers so they could
|
||||
* be written to FW.
|
||||
*
|
||||
* Returns an element which was previously consumed;
|
||||
* Increments producers so they could be written to FW.
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* @param p_chain
|
||||
* Return: Void.
|
||||
*/
|
||||
static inline void qed_chain_recycle_consumed(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -427,14 +429,13 @@ static inline void qed_chain_recycle_consumed(struct qed_chain *p_chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_consume -
|
||||
* qed_chain_consume(): A Chain in which the driver utilizes data written
|
||||
* by a different source (i.e., FW) should use this to
|
||||
* access passed buffers.
|
||||
*
|
||||
* A Chain in which the driver utilizes data written by a different source
|
||||
* (i.e., FW) should use this to access passed buffers.
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* @param p_chain
|
||||
*
|
||||
* @return void*, a pointer to the next buffer written
|
||||
* Return: void*, a pointer to the next buffer written.
|
||||
*/
|
||||
static inline void *qed_chain_consume(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -468,9 +469,11 @@ static inline void *qed_chain_consume(struct qed_chain *p_chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_reset - Resets the chain to its start state
|
||||
* qed_chain_reset(): Resets the chain to its start state.
|
||||
*
|
||||
* @param p_chain pointer to a previously allocated chain
|
||||
* @p_chain: pointer to a previously allocated chain.
|
||||
*
|
||||
* Return Void.
|
||||
*/
|
||||
static inline void qed_chain_reset(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -519,13 +522,12 @@ static inline void qed_chain_reset(struct qed_chain *p_chain)
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_get_last_elem -
|
||||
* qed_chain_get_last_elem(): Returns a pointer to the last element of the
|
||||
* chain.
|
||||
*
|
||||
* Returns a pointer to the last element of the chain
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* @param p_chain
|
||||
*
|
||||
* @return void*
|
||||
* Return: void*.
|
||||
*/
|
||||
static inline void *qed_chain_get_last_elem(struct qed_chain *p_chain)
|
||||
{
|
||||
|
@ -563,10 +565,13 @@ out:
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_set_prod - sets the prod to the given value
|
||||
* qed_chain_set_prod(): sets the prod to the given value.
|
||||
*
|
||||
* @param prod_idx
|
||||
* @param p_prod_elem
|
||||
* @p_chain: Chain.
|
||||
* @prod_idx: Prod Idx.
|
||||
* @p_prod_elem: Prod elem.
|
||||
*
|
||||
* Return Void.
|
||||
*/
|
||||
static inline void qed_chain_set_prod(struct qed_chain *p_chain,
|
||||
u32 prod_idx, void *p_prod_elem)
|
||||
|
@ -610,9 +615,11 @@ static inline void qed_chain_set_prod(struct qed_chain *p_chain,
|
|||
}
|
||||
|
||||
/**
|
||||
* @brief qed_chain_pbl_zero_mem - set chain memory to 0
|
||||
* qed_chain_pbl_zero_mem(): set chain memory to 0.
|
||||
*
|
||||
* @param p_chain
|
||||
* @p_chain: Chain.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
static inline void qed_chain_pbl_zero_mem(struct qed_chain *p_chain)
|
||||
{
|
||||
|
|
|
@ -819,47 +819,47 @@ struct qed_common_cb_ops {
|
|||
|
||||
struct qed_selftest_ops {
|
||||
/**
|
||||
* @brief selftest_interrupt - Perform interrupt test
|
||||
* selftest_interrupt(): Perform interrupt test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*selftest_interrupt)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief selftest_memory - Perform memory test
|
||||
* selftest_memory(): Perform memory test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*selftest_memory)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief selftest_register - Perform register test
|
||||
* selftest_register(): Perform register test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*selftest_register)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief selftest_clock - Perform clock test
|
||||
* selftest_clock(): Perform clock test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*selftest_clock)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief selftest_nvram - Perform nvram test
|
||||
* selftest_nvram(): Perform nvram test.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*selftest_nvram) (struct qed_dev *cdev);
|
||||
};
|
||||
|
@ -927,47 +927,53 @@ struct qed_common_ops {
|
|||
enum qed_hw_err_type err_type);
|
||||
|
||||
/**
|
||||
* @brief can_link_change - can the instance change the link or not
|
||||
* can_link_change(): can the instance change the link or not.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return true if link-change is allowed, false otherwise.
|
||||
* Return: true if link-change is allowed, false otherwise.
|
||||
*/
|
||||
bool (*can_link_change)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief set_link - set links according to params
|
||||
* set_link(): set links according to params.
|
||||
*
|
||||
* @param cdev
|
||||
* @param params - values used to override the default link configuration
|
||||
* @cdev: Qed dev pointer.
|
||||
* @params: values used to override the default link configuration.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*set_link)(struct qed_dev *cdev,
|
||||
struct qed_link_params *params);
|
||||
|
||||
/**
|
||||
* @brief get_link - returns the current link state.
|
||||
* get_link(): returns the current link state.
|
||||
*
|
||||
* @param cdev
|
||||
* @param if_link - structure to be filled with current link configuration.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @if_link: structure to be filled with current link configuration.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void (*get_link)(struct qed_dev *cdev,
|
||||
struct qed_link_output *if_link);
|
||||
|
||||
/**
|
||||
* @brief - drains chip in case Tx completions fail to arrive due to pause.
|
||||
* drain(): drains chip in case Tx completions fail to arrive due to pause.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*drain)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief update_msglvl - update module debug level
|
||||
* update_msglvl(): update module debug level.
|
||||
*
|
||||
* @param cdev
|
||||
* @param dp_module
|
||||
* @param dp_level
|
||||
* @cdev: Qed dev pointer.
|
||||
* @dp_module: Debug module.
|
||||
* @dp_level: Debug level.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void (*update_msglvl)(struct qed_dev *cdev,
|
||||
u32 dp_module,
|
||||
|
@ -981,70 +987,73 @@ struct qed_common_ops {
|
|||
struct qed_chain *p_chain);
|
||||
|
||||
/**
|
||||
* @brief nvm_flash - Flash nvm data.
|
||||
* nvm_flash(): Flash nvm data.
|
||||
*
|
||||
* @param cdev
|
||||
* @param name - file containing the data
|
||||
* @cdev: Qed dev pointer.
|
||||
* @name: file containing the data.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*nvm_flash)(struct qed_dev *cdev, const char *name);
|
||||
|
||||
/**
|
||||
* @brief nvm_get_image - reads an entire image from nvram
|
||||
* nvm_get_image(): reads an entire image from nvram.
|
||||
*
|
||||
* @param cdev
|
||||
* @param type - type of the request nvram image
|
||||
* @param buf - preallocated buffer to fill with the image
|
||||
* @param len - length of the allocated buffer
|
||||
* @cdev: Qed dev pointer.
|
||||
* @type: type of the request nvram image.
|
||||
* @buf: preallocated buffer to fill with the image.
|
||||
* @len: length of the allocated buffer.
|
||||
*
|
||||
* @return 0 on success, error otherwise
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*nvm_get_image)(struct qed_dev *cdev,
|
||||
enum qed_nvm_images type, u8 *buf, u16 len);
|
||||
|
||||
/**
|
||||
* @brief set_coalesce - Configure Rx coalesce value in usec
|
||||
* set_coalesce(): Configure Rx coalesce value in usec.
|
||||
*
|
||||
* @param cdev
|
||||
* @param rx_coal - Rx coalesce value in usec
|
||||
* @param tx_coal - Tx coalesce value in usec
|
||||
* @param qid - Queue index
|
||||
* @param sb_id - Status Block Id
|
||||
* @cdev: Qed dev pointer.
|
||||
* @rx_coal: Rx coalesce value in usec.
|
||||
* @tx_coal: Tx coalesce value in usec.
|
||||
* @handle: Handle.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*set_coalesce)(struct qed_dev *cdev,
|
||||
u16 rx_coal, u16 tx_coal, void *handle);
|
||||
|
||||
/**
|
||||
* @brief set_led - Configure LED mode
|
||||
* set_led() - Configure LED mode.
|
||||
*
|
||||
* @param cdev
|
||||
* @param mode - LED mode
|
||||
* @cdev: Qed dev pointer.
|
||||
* @mode: LED mode.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*set_led)(struct qed_dev *cdev,
|
||||
enum qed_led_mode mode);
|
||||
|
||||
/**
|
||||
* @brief attn_clr_enable - Prevent attentions from being reasserted
|
||||
* attn_clr_enable(): Prevent attentions from being reasserted.
|
||||
*
|
||||
* @param cdev
|
||||
* @param clr_enable
|
||||
* @cdev: Qed dev pointer.
|
||||
* @clr_enable: Clear enable.
|
||||
*
|
||||
* Return: Void.
|
||||
*/
|
||||
void (*attn_clr_enable)(struct qed_dev *cdev, bool clr_enable);
|
||||
|
||||
/**
|
||||
* @brief db_recovery_add - add doorbell information to the doorbell
|
||||
* recovery mechanism.
|
||||
* db_recovery_add(): add doorbell information to the doorbell
|
||||
* recovery mechanism.
|
||||
*
|
||||
* @param cdev
|
||||
* @param db_addr - doorbell address
|
||||
* @param db_data - address of where db_data is stored
|
||||
* @param db_is_32b - doorbell is 32b pr 64b
|
||||
* @param db_is_user - doorbell recovery addresses are user or kernel space
|
||||
* @cdev: Qed dev pointer.
|
||||
* @db_addr: Doorbell address.
|
||||
* @db_data: Dddress of where db_data is stored.
|
||||
* @db_width: Doorbell is 32b or 64b.
|
||||
* @db_space: Doorbell recovery addresses are user or kernel space.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*db_recovery_add)(struct qed_dev *cdev,
|
||||
void __iomem *db_addr,
|
||||
|
@ -1053,114 +1062,130 @@ struct qed_common_ops {
|
|||
enum qed_db_rec_space db_space);
|
||||
|
||||
/**
|
||||
* @brief db_recovery_del - remove doorbell information from the doorbell
|
||||
* db_recovery_del(): remove doorbell information from the doorbell
|
||||
* recovery mechanism. db_data serves as key (db_addr is not unique).
|
||||
*
|
||||
* @param cdev
|
||||
* @param db_addr - doorbell address
|
||||
* @param db_data - address where db_data is stored. Serves as key for the
|
||||
* entry to delete.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @db_addr: Doorbell address.
|
||||
* @db_data: Address where db_data is stored. Serves as key for the
|
||||
* entry to delete.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*db_recovery_del)(struct qed_dev *cdev,
|
||||
void __iomem *db_addr, void *db_data);
|
||||
|
||||
/**
|
||||
* @brief recovery_process - Trigger a recovery process
|
||||
* recovery_process(): Trigger a recovery process.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*recovery_process)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief recovery_prolog - Execute the prolog operations of a recovery process
|
||||
* recovery_prolog(): Execute the prolog operations of a recovery process.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*recovery_prolog)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief update_drv_state - API to inform the change in the driver state.
|
||||
* update_drv_state(): API to inform the change in the driver state.
|
||||
*
|
||||
* @param cdev
|
||||
* @param active
|
||||
* @cdev: Qed dev pointer.
|
||||
* @active: Active
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*update_drv_state)(struct qed_dev *cdev, bool active);
|
||||
|
||||
/**
|
||||
* @brief update_mac - API to inform the change in the mac address
|
||||
* update_mac(): API to inform the change in the mac address.
|
||||
*
|
||||
* @param cdev
|
||||
* @param mac
|
||||
* @cdev: Qed dev pointer.
|
||||
* @mac: MAC.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*update_mac)(struct qed_dev *cdev, u8 *mac);
|
||||
|
||||
/**
|
||||
* @brief update_mtu - API to inform the change in the mtu
|
||||
* update_mtu(): API to inform the change in the mtu.
|
||||
*
|
||||
* @param cdev
|
||||
* @param mtu
|
||||
* @cdev: Qed dev pointer.
|
||||
* @mtu: MTU.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*update_mtu)(struct qed_dev *cdev, u16 mtu);
|
||||
|
||||
/**
|
||||
* @brief update_wol - update of changes in the WoL configuration
|
||||
* update_wol(): Update of changes in the WoL configuration.
|
||||
*
|
||||
* @param cdev
|
||||
* @param enabled - true iff WoL should be enabled.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @enabled: true iff WoL should be enabled.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*update_wol) (struct qed_dev *cdev, bool enabled);
|
||||
|
||||
/**
|
||||
* @brief read_module_eeprom
|
||||
* read_module_eeprom(): Read EEPROM.
|
||||
*
|
||||
* @param cdev
|
||||
* @param buf - buffer
|
||||
* @param dev_addr - PHY device memory region
|
||||
* @param offset - offset into eeprom contents to be read
|
||||
* @param len - buffer length, i.e., max bytes to be read
|
||||
* @cdev: Qed dev pointer.
|
||||
* @buf: buffer.
|
||||
* @dev_addr: PHY device memory region.
|
||||
* @offset: offset into eeprom contents to be read.
|
||||
* @len: buffer length, i.e., max bytes to be read.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*read_module_eeprom)(struct qed_dev *cdev,
|
||||
char *buf, u8 dev_addr, u32 offset, u32 len);
|
||||
|
||||
/**
|
||||
* @brief get_affin_hwfn_idx
|
||||
* get_affin_hwfn_idx(): Get affine HW function.
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* Return: u8.
|
||||
*/
|
||||
u8 (*get_affin_hwfn_idx)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief read_nvm_cfg - Read NVM config attribute value.
|
||||
* @param cdev
|
||||
* @param buf - buffer
|
||||
* @param cmd - NVM CFG command id
|
||||
* @param entity_id - Entity id
|
||||
* read_nvm_cfg(): Read NVM config attribute value.
|
||||
*
|
||||
* @cdev: Qed dev pointer.
|
||||
* @buf: Buffer.
|
||||
* @cmd: NVM CFG command id.
|
||||
* @entity_id: Entity id.
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*read_nvm_cfg)(struct qed_dev *cdev, u8 **buf, u32 cmd,
|
||||
u32 entity_id);
|
||||
/**
|
||||
* @brief read_nvm_cfg - Read NVM config attribute value.
|
||||
* @param cdev
|
||||
* @param cmd - NVM CFG command id
|
||||
* read_nvm_cfg_len(): Read NVM config attribute value.
|
||||
*
|
||||
* @return config id length, 0 on error.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @cmd: NVM CFG command id.
|
||||
*
|
||||
* Return: config id length, 0 on error.
|
||||
*/
|
||||
int (*read_nvm_cfg_len)(struct qed_dev *cdev, u32 cmd);
|
||||
|
||||
/**
|
||||
* @brief set_grc_config - Configure value for grc config id.
|
||||
* @param cdev
|
||||
* @param cfg_id - grc config id
|
||||
* @param val - grc config value
|
||||
* set_grc_config(): Configure value for grc config id.
|
||||
*
|
||||
* @cdev: Qed dev pointer.
|
||||
* @cfg_id: grc config id
|
||||
* @val: grc config value
|
||||
*
|
||||
* Return: Int.
|
||||
*/
|
||||
int (*set_grc_config)(struct qed_dev *cdev, u32 cfg_id, u32 val);
|
||||
|
||||
|
@ -1397,18 +1422,16 @@ static inline u16 qed_sb_update_sb_idx(struct qed_sb_info *sb_info)
|
|||
}
|
||||
|
||||
/**
|
||||
* qed_sb_ack(): This function creates an update command for interrupts
|
||||
* that is written to the IGU.
|
||||
*
|
||||
* @brief This function creates an update command for interrupts that is
|
||||
* written to the IGU.
|
||||
* @sb_info: This is the structure allocated and
|
||||
* initialized per status block. Assumption is
|
||||
* that it was initialized using qed_sb_init
|
||||
* @int_cmd: Enable/Disable/Nop
|
||||
* @upd_flg: Whether igu consumer should be updated.
|
||||
*
|
||||
* @param sb_info - This is the structure allocated and
|
||||
* initialized per status block. Assumption is
|
||||
* that it was initialized using qed_sb_init
|
||||
* @param int_cmd - Enable/Disable/Nop
|
||||
* @param upd_flg - whether igu consumer should be
|
||||
* updated.
|
||||
*
|
||||
* @return inline void
|
||||
* Return: inline void.
|
||||
*/
|
||||
static inline void qed_sb_ack(struct qed_sb_info *sb_info,
|
||||
enum igu_int_cmd int_cmd,
|
||||
|
|
|
@ -182,7 +182,7 @@ struct qed_iscsi_cb_ops {
|
|||
* @param stats - pointer to struck that would be filled
|
||||
* we stats
|
||||
* @return 0 on success, error otherwise.
|
||||
* @change_mac Change MAC of interface
|
||||
* @change_mac: Change MAC of interface
|
||||
* @param cdev
|
||||
* @param handle - the connection handle.
|
||||
* @param mac - new MAC to configure.
|
||||
|
|
|
@ -208,57 +208,57 @@ enum qed_ll2_xmit_flags {
|
|||
|
||||
struct qed_ll2_ops {
|
||||
/**
|
||||
* @brief start - initializes ll2
|
||||
* start(): Initializes ll2.
|
||||
*
|
||||
* @param cdev
|
||||
* @param params - protocol driver configuration for the ll2.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @params: Protocol driver configuration for the ll2.
|
||||
*
|
||||
* @return 0 on success, otherwise error value.
|
||||
* Return: 0 on success, otherwise error value.
|
||||
*/
|
||||
int (*start)(struct qed_dev *cdev, struct qed_ll2_params *params);
|
||||
|
||||
/**
|
||||
* @brief stop - stops the ll2
|
||||
* stop(): Stops the ll2
|
||||
*
|
||||
* @param cdev
|
||||
* @cdev: Qed dev pointer.
|
||||
*
|
||||
* @return 0 on success, otherwise error value.
|
||||
* Return: 0 on success, otherwise error value.
|
||||
*/
|
||||
int (*stop)(struct qed_dev *cdev);
|
||||
|
||||
/**
|
||||
* @brief start_xmit - transmits an skb over the ll2 interface
|
||||
* start_xmit(): Transmits an skb over the ll2 interface
|
||||
*
|
||||
* @param cdev
|
||||
* @param skb
|
||||
* @param xmit_flags - Transmit options defined by the enum qed_ll2_xmit_flags.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @skb: SKB.
|
||||
* @xmit_flags: Transmit options defined by the enum qed_ll2_xmit_flags.
|
||||
*
|
||||
* @return 0 on success, otherwise error value.
|
||||
* Return: 0 on success, otherwise error value.
|
||||
*/
|
||||
int (*start_xmit)(struct qed_dev *cdev, struct sk_buff *skb,
|
||||
unsigned long xmit_flags);
|
||||
|
||||
/**
|
||||
* @brief register_cb_ops - protocol driver register the callback for Rx/Tx
|
||||
* register_cb_ops(): Protocol driver register the callback for Rx/Tx
|
||||
* packets. Should be called before `start'.
|
||||
*
|
||||
* @param cdev
|
||||
* @param cookie - to be passed to the callback functions.
|
||||
* @param ops - the callback functions to register for Rx / Tx.
|
||||
* @cdev: Qed dev pointer.
|
||||
* @cookie: to be passed to the callback functions.
|
||||
* @ops: the callback functions to register for Rx / Tx.
|
||||
*
|
||||
* @return 0 on success, otherwise error value.
|
||||
* Return: 0 on success, otherwise error value.
|
||||
*/
|
||||
void (*register_cb_ops)(struct qed_dev *cdev,
|
||||
const struct qed_ll2_cb_ops *ops,
|
||||
void *cookie);
|
||||
|
||||
/**
|
||||
* @brief get LL2 related statistics
|
||||
* get_stats(): Get LL2 related statistics.
|
||||
*
|
||||
* @param cdev
|
||||
* @param stats - pointer to struct that would be filled with stats
|
||||
* @cdev: Qed dev pointer.
|
||||
* @stats: Pointer to struct that would be filled with stats.
|
||||
*
|
||||
* @return 0 on success, error otherwise.
|
||||
* Return: 0 on success, error otherwise.
|
||||
*/
|
||||
int (*get_stats)(struct qed_dev *cdev, struct qed_ll2_stats *stats);
|
||||
};
|
||||
|
|
|
@ -171,6 +171,23 @@ struct nvmetcp_task_params {
|
|||
* @param dest_port
|
||||
* @clear_all_filters: Clear all filters.
|
||||
* @param cdev
|
||||
* @init_read_io: Init read IO.
|
||||
* @task_params
|
||||
* @cmd_pdu_header
|
||||
* @nvme_cmd
|
||||
* @sgl_task_params
|
||||
* @init_write_io: Init write IO.
|
||||
* @task_params
|
||||
* @cmd_pdu_header
|
||||
* @nvme_cmd
|
||||
* @sgl_task_params
|
||||
* @init_icreq_exchange: Exchange ICReq.
|
||||
* @task_params
|
||||
* @init_conn_req_pdu_hdr
|
||||
* @tx_sgl_task_params
|
||||
* @rx_sgl_task_params
|
||||
* @init_task_cleanup: Init task cleanup.
|
||||
* @task_params
|
||||
*/
|
||||
struct qed_nvmetcp_ops {
|
||||
const struct qed_common_ops *common;
|
||||
|
|
Loading…
Add table
Reference in a new issue