iavf: use libie adminq descriptors
Use libie_aq_desc instead of iavf_aq_desc. Do needed changes to allow clean build Use libie_aq_raw() wherever it can be used. Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com> Signed-off-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Tested-by: Rafal Romanowski <rafal.romanowski@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
This commit is contained in:
committed by
Tony Nguyen
parent
b46012a200
commit
0eb61b3569
@@ -18,7 +18,7 @@ static enum iavf_status iavf_alloc_adminq_asq_ring(struct iavf_hw *hw)
|
||||
ret_code = iavf_allocate_dma_mem(hw, &hw->aq.asq.desc_buf,
|
||||
iavf_mem_atq_ring,
|
||||
(hw->aq.num_asq_entries *
|
||||
sizeof(struct iavf_aq_desc)),
|
||||
sizeof(struct libie_aq_desc)),
|
||||
IAVF_ADMINQ_DESC_ALIGNMENT);
|
||||
if (ret_code)
|
||||
return ret_code;
|
||||
@@ -45,7 +45,7 @@ static enum iavf_status iavf_alloc_adminq_arq_ring(struct iavf_hw *hw)
|
||||
ret_code = iavf_allocate_dma_mem(hw, &hw->aq.arq.desc_buf,
|
||||
iavf_mem_arq_ring,
|
||||
(hw->aq.num_arq_entries *
|
||||
sizeof(struct iavf_aq_desc)),
|
||||
sizeof(struct libie_aq_desc)),
|
||||
IAVF_ADMINQ_DESC_ALIGNMENT);
|
||||
|
||||
return ret_code;
|
||||
@@ -81,7 +81,7 @@ static void iavf_free_adminq_arq(struct iavf_hw *hw)
|
||||
**/
|
||||
static enum iavf_status iavf_alloc_arq_bufs(struct iavf_hw *hw)
|
||||
{
|
||||
struct iavf_aq_desc *desc;
|
||||
struct libie_aq_desc *desc;
|
||||
struct iavf_dma_mem *bi;
|
||||
enum iavf_status ret_code;
|
||||
int i;
|
||||
@@ -111,9 +111,9 @@ static enum iavf_status iavf_alloc_arq_bufs(struct iavf_hw *hw)
|
||||
/* now configure the descriptors for use */
|
||||
desc = IAVF_ADMINQ_DESC(hw->aq.arq, i);
|
||||
|
||||
desc->flags = cpu_to_le16(IAVF_AQ_FLAG_BUF);
|
||||
desc->flags = cpu_to_le16(LIBIE_AQ_FLAG_BUF);
|
||||
if (hw->aq.arq_buf_size > IAVF_AQ_LARGE_BUF)
|
||||
desc->flags |= cpu_to_le16(IAVF_AQ_FLAG_LB);
|
||||
desc->flags |= cpu_to_le16(LIBIE_AQ_FLAG_LB);
|
||||
desc->opcode = 0;
|
||||
/* This is in accordance with Admin queue design, there is no
|
||||
* register for buffer size configuration
|
||||
@@ -122,12 +122,12 @@ static enum iavf_status iavf_alloc_arq_bufs(struct iavf_hw *hw)
|
||||
desc->retval = 0;
|
||||
desc->cookie_high = 0;
|
||||
desc->cookie_low = 0;
|
||||
desc->params.external.addr_high =
|
||||
desc->params.generic.addr_high =
|
||||
cpu_to_le32(upper_32_bits(bi->pa));
|
||||
desc->params.external.addr_low =
|
||||
desc->params.generic.addr_low =
|
||||
cpu_to_le32(lower_32_bits(bi->pa));
|
||||
desc->params.external.param0 = 0;
|
||||
desc->params.external.param1 = 0;
|
||||
desc->params.generic.param0 = 0;
|
||||
desc->params.generic.param1 = 0;
|
||||
}
|
||||
|
||||
alloc_arq_bufs:
|
||||
@@ -558,8 +558,8 @@ static u16 iavf_clean_asq(struct iavf_hw *hw)
|
||||
struct iavf_adminq_ring *asq = &hw->aq.asq;
|
||||
struct iavf_asq_cmd_details *details;
|
||||
u16 ntc = asq->next_to_clean;
|
||||
struct iavf_aq_desc desc_cb;
|
||||
struct iavf_aq_desc *desc;
|
||||
struct libie_aq_desc desc_cb;
|
||||
struct libie_aq_desc *desc;
|
||||
|
||||
desc = IAVF_ADMINQ_DESC(*asq, ntc);
|
||||
details = IAVF_ADMINQ_DETAILS(*asq, ntc);
|
||||
@@ -573,7 +573,7 @@ static u16 iavf_clean_asq(struct iavf_hw *hw)
|
||||
desc_cb = *desc;
|
||||
cb_func(hw, &desc_cb);
|
||||
}
|
||||
memset((void *)desc, 0, sizeof(struct iavf_aq_desc));
|
||||
memset((void *)desc, 0, sizeof(struct libie_aq_desc));
|
||||
memset((void *)details, 0,
|
||||
sizeof(struct iavf_asq_cmd_details));
|
||||
ntc++;
|
||||
@@ -615,14 +615,14 @@ bool iavf_asq_done(struct iavf_hw *hw)
|
||||
* queue. It runs the queue, cleans the queue, etc
|
||||
**/
|
||||
enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
|
||||
struct iavf_aq_desc *desc,
|
||||
struct libie_aq_desc *desc,
|
||||
void *buff, /* can be NULL */
|
||||
u16 buff_size,
|
||||
struct iavf_asq_cmd_details *cmd_details)
|
||||
{
|
||||
struct iavf_dma_mem *dma_buff = NULL;
|
||||
struct iavf_asq_cmd_details *details;
|
||||
struct iavf_aq_desc *desc_on_ring;
|
||||
struct libie_aq_desc *desc_on_ring;
|
||||
bool cmd_completed = false;
|
||||
enum iavf_status status = 0;
|
||||
u16 retval = 0;
|
||||
@@ -637,7 +637,7 @@ enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
|
||||
goto asq_send_command_error;
|
||||
}
|
||||
|
||||
hw->aq.asq_last_status = IAVF_AQ_RC_OK;
|
||||
hw->aq.asq_last_status = LIBIE_AQ_RC_OK;
|
||||
|
||||
val = rd32(hw, IAVF_VF_ATQH1);
|
||||
if (val >= hw->aq.num_asq_entries) {
|
||||
@@ -717,9 +717,9 @@ enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
|
||||
/* Update the address values in the desc with the pa value
|
||||
* for respective buffer
|
||||
*/
|
||||
desc_on_ring->params.external.addr_high =
|
||||
desc_on_ring->params.generic.addr_high =
|
||||
cpu_to_le32(upper_32_bits(dma_buff->pa));
|
||||
desc_on_ring->params.external.addr_low =
|
||||
desc_on_ring->params.generic.addr_low =
|
||||
cpu_to_le32(lower_32_bits(dma_buff->pa));
|
||||
}
|
||||
|
||||
@@ -766,13 +766,13 @@ enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
|
||||
retval &= 0xff;
|
||||
}
|
||||
cmd_completed = true;
|
||||
if ((enum iavf_admin_queue_err)retval == IAVF_AQ_RC_OK)
|
||||
if ((enum libie_aq_err)retval == LIBIE_AQ_RC_OK)
|
||||
status = 0;
|
||||
else if ((enum iavf_admin_queue_err)retval == IAVF_AQ_RC_EBUSY)
|
||||
else if ((enum libie_aq_err)retval == LIBIE_AQ_RC_EBUSY)
|
||||
status = IAVF_ERR_NOT_READY;
|
||||
else
|
||||
status = IAVF_ERR_ADMIN_QUEUE_ERROR;
|
||||
hw->aq.asq_last_status = (enum iavf_admin_queue_err)retval;
|
||||
hw->aq.asq_last_status = (enum libie_aq_err)retval;
|
||||
}
|
||||
|
||||
iavf_debug(hw, IAVF_DEBUG_AQ_MESSAGE,
|
||||
@@ -809,12 +809,12 @@ asq_send_command_error:
|
||||
*
|
||||
* Fill the desc with default values
|
||||
**/
|
||||
void iavf_fill_default_direct_cmd_desc(struct iavf_aq_desc *desc, u16 opcode)
|
||||
void iavf_fill_default_direct_cmd_desc(struct libie_aq_desc *desc, u16 opcode)
|
||||
{
|
||||
/* zero out the desc */
|
||||
memset((void *)desc, 0, sizeof(struct iavf_aq_desc));
|
||||
memset((void *)desc, 0, sizeof(struct libie_aq_desc));
|
||||
desc->opcode = cpu_to_le16(opcode);
|
||||
desc->flags = cpu_to_le16(IAVF_AQ_FLAG_SI);
|
||||
desc->flags = cpu_to_le16(LIBIE_AQ_FLAG_SI);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -832,7 +832,7 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
|
||||
u16 *pending)
|
||||
{
|
||||
u16 ntc = hw->aq.arq.next_to_clean;
|
||||
struct iavf_aq_desc *desc;
|
||||
struct libie_aq_desc *desc;
|
||||
enum iavf_status ret_code = 0;
|
||||
struct iavf_dma_mem *bi;
|
||||
u16 desc_idx;
|
||||
@@ -866,9 +866,9 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
|
||||
desc_idx = ntc;
|
||||
|
||||
hw->aq.arq_last_status =
|
||||
(enum iavf_admin_queue_err)le16_to_cpu(desc->retval);
|
||||
(enum libie_aq_err)le16_to_cpu(desc->retval);
|
||||
flags = le16_to_cpu(desc->flags);
|
||||
if (flags & IAVF_AQ_FLAG_ERR) {
|
||||
if (flags & LIBIE_AQ_FLAG_ERR) {
|
||||
ret_code = IAVF_ERR_ADMIN_QUEUE_ERROR;
|
||||
iavf_debug(hw,
|
||||
IAVF_DEBUG_AQ_MESSAGE,
|
||||
@@ -892,14 +892,14 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
|
||||
* size
|
||||
*/
|
||||
bi = &hw->aq.arq.r.arq_bi[ntc];
|
||||
memset((void *)desc, 0, sizeof(struct iavf_aq_desc));
|
||||
memset((void *)desc, 0, sizeof(struct libie_aq_desc));
|
||||
|
||||
desc->flags = cpu_to_le16(IAVF_AQ_FLAG_BUF);
|
||||
desc->flags = cpu_to_le16(LIBIE_AQ_FLAG_BUF);
|
||||
if (hw->aq.arq_buf_size > IAVF_AQ_LARGE_BUF)
|
||||
desc->flags |= cpu_to_le16(IAVF_AQ_FLAG_LB);
|
||||
desc->flags |= cpu_to_le16(LIBIE_AQ_FLAG_LB);
|
||||
desc->datalen = cpu_to_le16((u16)bi->size);
|
||||
desc->params.external.addr_high = cpu_to_le32(upper_32_bits(bi->pa));
|
||||
desc->params.external.addr_low = cpu_to_le32(lower_32_bits(bi->pa));
|
||||
desc->params.generic.addr_high = cpu_to_le32(upper_32_bits(bi->pa));
|
||||
desc->params.generic.addr_low = cpu_to_le32(lower_32_bits(bi->pa));
|
||||
|
||||
/* set tail = the last cleaned desc index. */
|
||||
wr32(hw, IAVF_VF_ARQT1, ntc);
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#include "iavf_adminq_cmd.h"
|
||||
|
||||
#define IAVF_ADMINQ_DESC(R, i) \
|
||||
(&(((struct iavf_aq_desc *)((R).desc_buf.va))[i]))
|
||||
(&(((struct libie_aq_desc *)((R).desc_buf.va))[i]))
|
||||
|
||||
#define IAVF_ADMINQ_DESC_ALIGNMENT 4096
|
||||
|
||||
@@ -39,7 +39,7 @@ struct iavf_asq_cmd_details {
|
||||
u16 flags_dis;
|
||||
bool async;
|
||||
bool postpone;
|
||||
struct iavf_aq_desc *wb_desc;
|
||||
struct libie_aq_desc *wb_desc;
|
||||
};
|
||||
|
||||
#define IAVF_ADMINQ_DETAILS(R, i) \
|
||||
@@ -47,7 +47,7 @@ struct iavf_asq_cmd_details {
|
||||
|
||||
/* ARQ event information */
|
||||
struct iavf_arq_event_info {
|
||||
struct iavf_aq_desc desc;
|
||||
struct libie_aq_desc desc;
|
||||
u16 msg_len;
|
||||
u16 buf_len;
|
||||
u8 *msg_buf;
|
||||
@@ -72,8 +72,8 @@ struct iavf_adminq_info {
|
||||
struct mutex arq_mutex; /* Receive queue lock */
|
||||
|
||||
/* last status values on send and receive queues */
|
||||
enum iavf_admin_queue_err asq_last_status;
|
||||
enum iavf_admin_queue_err arq_last_status;
|
||||
enum libie_aq_err asq_last_status;
|
||||
enum libie_aq_err arq_last_status;
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -123,6 +123,6 @@ static inline int iavf_aq_rc_to_posix(int aq_ret, int aq_rc)
|
||||
#define IAVF_AQ_LARGE_BUF 512
|
||||
#define IAVF_ASQ_CMD_TIMEOUT 250000 /* usecs */
|
||||
|
||||
void iavf_fill_default_direct_cmd_desc(struct iavf_aq_desc *desc, u16 opcode);
|
||||
void iavf_fill_default_direct_cmd_desc(struct libie_aq_desc *desc, u16 opcode);
|
||||
|
||||
#endif /* _IAVF_ADMINQ_H_ */
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
#ifndef _IAVF_ADMINQ_CMD_H_
|
||||
#define _IAVF_ADMINQ_CMD_H_
|
||||
|
||||
#include <linux/net/intel/libie/adminq.h>
|
||||
|
||||
/* This header file defines the iavf Admin Queue commands and is shared between
|
||||
* iavf Firmware and Software.
|
||||
*
|
||||
@@ -21,87 +23,6 @@
|
||||
/* API version 1.7 implements additional link and PHY-specific APIs */
|
||||
#define IAVF_MINOR_VER_GET_LINK_INFO_XL710 0x0007
|
||||
|
||||
struct iavf_aq_desc {
|
||||
__le16 flags;
|
||||
__le16 opcode;
|
||||
__le16 datalen;
|
||||
__le16 retval;
|
||||
__le32 cookie_high;
|
||||
__le32 cookie_low;
|
||||
union {
|
||||
struct {
|
||||
__le32 param0;
|
||||
__le32 param1;
|
||||
__le32 param2;
|
||||
__le32 param3;
|
||||
} internal;
|
||||
struct {
|
||||
__le32 param0;
|
||||
__le32 param1;
|
||||
__le32 addr_high;
|
||||
__le32 addr_low;
|
||||
} external;
|
||||
u8 raw[16];
|
||||
} params;
|
||||
};
|
||||
|
||||
/* Flags sub-structure
|
||||
* |0 |1 |2 |3 |4 |5 |6 |7 |8 |9 |10 |11 |12 |13 |14 |15 |
|
||||
* |DD |CMP|ERR|VFE| * * RESERVED * * |LB |RD |VFC|BUF|SI |EI |FE |
|
||||
*/
|
||||
|
||||
/* command flags and offsets*/
|
||||
#define IAVF_AQ_FLAG_DD_SHIFT 0
|
||||
#define IAVF_AQ_FLAG_CMP_SHIFT 1
|
||||
#define IAVF_AQ_FLAG_ERR_SHIFT 2
|
||||
#define IAVF_AQ_FLAG_VFE_SHIFT 3
|
||||
#define IAVF_AQ_FLAG_LB_SHIFT 9
|
||||
#define IAVF_AQ_FLAG_RD_SHIFT 10
|
||||
#define IAVF_AQ_FLAG_VFC_SHIFT 11
|
||||
#define IAVF_AQ_FLAG_BUF_SHIFT 12
|
||||
#define IAVF_AQ_FLAG_SI_SHIFT 13
|
||||
#define IAVF_AQ_FLAG_EI_SHIFT 14
|
||||
#define IAVF_AQ_FLAG_FE_SHIFT 15
|
||||
|
||||
#define IAVF_AQ_FLAG_DD BIT(IAVF_AQ_FLAG_DD_SHIFT) /* 0x1 */
|
||||
#define IAVF_AQ_FLAG_CMP BIT(IAVF_AQ_FLAG_CMP_SHIFT) /* 0x2 */
|
||||
#define IAVF_AQ_FLAG_ERR BIT(IAVF_AQ_FLAG_ERR_SHIFT) /* 0x4 */
|
||||
#define IAVF_AQ_FLAG_VFE BIT(IAVF_AQ_FLAG_VFE_SHIFT) /* 0x8 */
|
||||
#define IAVF_AQ_FLAG_LB BIT(IAVF_AQ_FLAG_LB_SHIFT) /* 0x200 */
|
||||
#define IAVF_AQ_FLAG_RD BIT(IAVF_AQ_FLAG_RD_SHIFT) /* 0x400 */
|
||||
#define IAVF_AQ_FLAG_VFC BIT(IAVF_AQ_FLAG_VFC_SHIFT) /* 0x800 */
|
||||
#define IAVF_AQ_FLAG_BUF BIT(IAVF_AQ_FLAG_BUF_SHIFT) /* 0x1000 */
|
||||
#define IAVF_AQ_FLAG_SI BIT(IAVF_AQ_FLAG_SI_SHIFT) /* 0x2000 */
|
||||
#define IAVF_AQ_FLAG_EI BIT(IAVF_AQ_FLAG_EI_SHIFT) /* 0x4000 */
|
||||
#define IAVF_AQ_FLAG_FE BIT(IAVF_AQ_FLAG_FE_SHIFT) /* 0x8000 */
|
||||
|
||||
/* error codes */
|
||||
enum iavf_admin_queue_err {
|
||||
IAVF_AQ_RC_OK = 0, /* success */
|
||||
IAVF_AQ_RC_EPERM = 1, /* Operation not permitted */
|
||||
IAVF_AQ_RC_ENOENT = 2, /* No such element */
|
||||
IAVF_AQ_RC_ESRCH = 3, /* Bad opcode */
|
||||
IAVF_AQ_RC_EINTR = 4, /* operation interrupted */
|
||||
IAVF_AQ_RC_EIO = 5, /* I/O error */
|
||||
IAVF_AQ_RC_ENXIO = 6, /* No such resource */
|
||||
IAVF_AQ_RC_E2BIG = 7, /* Arg too long */
|
||||
IAVF_AQ_RC_EAGAIN = 8, /* Try again */
|
||||
IAVF_AQ_RC_ENOMEM = 9, /* Out of memory */
|
||||
IAVF_AQ_RC_EACCES = 10, /* Permission denied */
|
||||
IAVF_AQ_RC_EFAULT = 11, /* Bad address */
|
||||
IAVF_AQ_RC_EBUSY = 12, /* Device or resource busy */
|
||||
IAVF_AQ_RC_EEXIST = 13, /* object already exists */
|
||||
IAVF_AQ_RC_EINVAL = 14, /* Invalid argument */
|
||||
IAVF_AQ_RC_ENOTTY = 15, /* Not a typewriter */
|
||||
IAVF_AQ_RC_ENOSPC = 16, /* No space left or alloc failure */
|
||||
IAVF_AQ_RC_ENOSYS = 17, /* Function not implemented */
|
||||
IAVF_AQ_RC_ERANGE = 18, /* Parameter out of range */
|
||||
IAVF_AQ_RC_EFLUSHED = 19, /* Cmd flushed due to prev cmd error */
|
||||
IAVF_AQ_RC_BAD_ADDR = 20, /* Descriptor contains a bad pointer */
|
||||
IAVF_AQ_RC_EMODE = 21, /* Op not allowed in current dev mode */
|
||||
IAVF_AQ_RC_EFBIG = 22, /* File too large */
|
||||
};
|
||||
|
||||
/* Admin Queue command opcodes */
|
||||
enum iavf_admin_queue_opc {
|
||||
/* aq commands */
|
||||
|
||||
@@ -12,55 +12,47 @@
|
||||
* @hw: pointer to the HW structure
|
||||
* @aq_err: the AQ error code to convert
|
||||
**/
|
||||
const char *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err aq_err)
|
||||
const char *iavf_aq_str(struct iavf_hw *hw, enum libie_aq_err aq_err)
|
||||
{
|
||||
switch (aq_err) {
|
||||
case IAVF_AQ_RC_OK:
|
||||
case LIBIE_AQ_RC_OK:
|
||||
return "OK";
|
||||
case IAVF_AQ_RC_EPERM:
|
||||
return "IAVF_AQ_RC_EPERM";
|
||||
case IAVF_AQ_RC_ENOENT:
|
||||
return "IAVF_AQ_RC_ENOENT";
|
||||
case IAVF_AQ_RC_ESRCH:
|
||||
return "IAVF_AQ_RC_ESRCH";
|
||||
case IAVF_AQ_RC_EINTR:
|
||||
return "IAVF_AQ_RC_EINTR";
|
||||
case IAVF_AQ_RC_EIO:
|
||||
return "IAVF_AQ_RC_EIO";
|
||||
case IAVF_AQ_RC_ENXIO:
|
||||
return "IAVF_AQ_RC_ENXIO";
|
||||
case IAVF_AQ_RC_E2BIG:
|
||||
return "IAVF_AQ_RC_E2BIG";
|
||||
case IAVF_AQ_RC_EAGAIN:
|
||||
return "IAVF_AQ_RC_EAGAIN";
|
||||
case IAVF_AQ_RC_ENOMEM:
|
||||
return "IAVF_AQ_RC_ENOMEM";
|
||||
case IAVF_AQ_RC_EACCES:
|
||||
return "IAVF_AQ_RC_EACCES";
|
||||
case IAVF_AQ_RC_EFAULT:
|
||||
return "IAVF_AQ_RC_EFAULT";
|
||||
case IAVF_AQ_RC_EBUSY:
|
||||
return "IAVF_AQ_RC_EBUSY";
|
||||
case IAVF_AQ_RC_EEXIST:
|
||||
return "IAVF_AQ_RC_EEXIST";
|
||||
case IAVF_AQ_RC_EINVAL:
|
||||
return "IAVF_AQ_RC_EINVAL";
|
||||
case IAVF_AQ_RC_ENOTTY:
|
||||
return "IAVF_AQ_RC_ENOTTY";
|
||||
case IAVF_AQ_RC_ENOSPC:
|
||||
return "IAVF_AQ_RC_ENOSPC";
|
||||
case IAVF_AQ_RC_ENOSYS:
|
||||
return "IAVF_AQ_RC_ENOSYS";
|
||||
case IAVF_AQ_RC_ERANGE:
|
||||
return "IAVF_AQ_RC_ERANGE";
|
||||
case IAVF_AQ_RC_EFLUSHED:
|
||||
return "IAVF_AQ_RC_EFLUSHED";
|
||||
case IAVF_AQ_RC_BAD_ADDR:
|
||||
return "IAVF_AQ_RC_BAD_ADDR";
|
||||
case IAVF_AQ_RC_EMODE:
|
||||
return "IAVF_AQ_RC_EMODE";
|
||||
case IAVF_AQ_RC_EFBIG:
|
||||
return "IAVF_AQ_RC_EFBIG";
|
||||
case LIBIE_AQ_RC_EPERM:
|
||||
return "LIBIE_AQ_RC_EPERM";
|
||||
case LIBIE_AQ_RC_ENOENT:
|
||||
return "LIBIE_AQ_RC_ENOENT";
|
||||
case LIBIE_AQ_RC_ESRCH:
|
||||
return "LIBIE_AQ_RC_ESRCH";
|
||||
case LIBIE_AQ_RC_EIO:
|
||||
return "LIBIE_AQ_RC_EIO";
|
||||
case LIBIE_AQ_RC_EAGAIN:
|
||||
return "LIBIE_AQ_RC_EAGAIN";
|
||||
case LIBIE_AQ_RC_ENOMEM:
|
||||
return "LIBIE_AQ_RC_ENOMEM";
|
||||
case LIBIE_AQ_RC_EACCES:
|
||||
return "LIBIE_AQ_RC_EACCES";
|
||||
case LIBIE_AQ_RC_EBUSY:
|
||||
return "LIBIE_AQ_RC_EBUSY";
|
||||
case LIBIE_AQ_RC_EEXIST:
|
||||
return "LIBIE_AQ_RC_EEXIST";
|
||||
case LIBIE_AQ_RC_EINVAL:
|
||||
return "LIBIE_AQ_RC_EINVAL";
|
||||
case LIBIE_AQ_RC_ENOSPC:
|
||||
return "LIBIE_AQ_RC_ENOSPC";
|
||||
case LIBIE_AQ_RC_ENOSYS:
|
||||
return "LIBIE_AQ_RC_ENOSYS";
|
||||
case LIBIE_AQ_RC_EMODE:
|
||||
return "LIBIE_AQ_RC_EMODE";
|
||||
case LIBIE_AQ_RC_ENOSEC:
|
||||
return "LIBIE_AQ_RC_ENOSEC";
|
||||
case LIBIE_AQ_RC_EBADSIG:
|
||||
return "LIBIE_AQ_RC_EBADSIG";
|
||||
case LIBIE_AQ_RC_ESVN:
|
||||
return "LIBIE_AQ_RC_ESVN";
|
||||
case LIBIE_AQ_RC_EBADMAN:
|
||||
return "LIBIE_AQ_RC_EBADMAN";
|
||||
case LIBIE_AQ_RC_EBADBUF:
|
||||
return "LIBIE_AQ_RC_EBADBUF";
|
||||
}
|
||||
|
||||
snprintf(hw->err_str, sizeof(hw->err_str), "%d", aq_err);
|
||||
@@ -228,7 +220,7 @@ const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status stat_err)
|
||||
void iavf_debug_aq(struct iavf_hw *hw, enum iavf_debug_mask mask, void *desc,
|
||||
void *buffer, u16 buf_len)
|
||||
{
|
||||
struct iavf_aq_desc *aq_desc = (struct iavf_aq_desc *)desc;
|
||||
struct libie_aq_desc *aq_desc = (struct libie_aq_desc *)desc;
|
||||
u8 *buf = (u8 *)buffer;
|
||||
|
||||
if ((!(mask & hw->debug_mask)) || !desc)
|
||||
@@ -244,11 +236,11 @@ void iavf_debug_aq(struct iavf_hw *hw, enum iavf_debug_mask mask, void *desc,
|
||||
le32_to_cpu(aq_desc->cookie_high),
|
||||
le32_to_cpu(aq_desc->cookie_low));
|
||||
iavf_debug(hw, mask, "\tparam (0,1) 0x%08X 0x%08X\n",
|
||||
le32_to_cpu(aq_desc->params.internal.param0),
|
||||
le32_to_cpu(aq_desc->params.internal.param1));
|
||||
le32_to_cpu(aq_desc->params.generic.param0),
|
||||
le32_to_cpu(aq_desc->params.generic.param1));
|
||||
iavf_debug(hw, mask, "\taddr (h,l) 0x%08X 0x%08X\n",
|
||||
le32_to_cpu(aq_desc->params.external.addr_high),
|
||||
le32_to_cpu(aq_desc->params.external.addr_low));
|
||||
le32_to_cpu(aq_desc->params.generic.addr_high),
|
||||
le32_to_cpu(aq_desc->params.generic.addr_low));
|
||||
|
||||
if (buffer && aq_desc->datalen) {
|
||||
u16 len = le16_to_cpu(aq_desc->datalen);
|
||||
@@ -297,11 +289,11 @@ bool iavf_check_asq_alive(struct iavf_hw *hw)
|
||||
**/
|
||||
enum iavf_status iavf_aq_queue_shutdown(struct iavf_hw *hw, bool unloading)
|
||||
{
|
||||
struct iavf_aq_desc desc;
|
||||
struct iavf_aqc_queue_shutdown *cmd =
|
||||
(struct iavf_aqc_queue_shutdown *)&desc.params.raw;
|
||||
struct iavf_aqc_queue_shutdown *cmd;
|
||||
struct libie_aq_desc desc;
|
||||
enum iavf_status status;
|
||||
|
||||
cmd = libie_aq_raw(&desc);
|
||||
iavf_fill_default_direct_cmd_desc(&desc, iavf_aqc_opc_queue_shutdown);
|
||||
|
||||
if (unloading)
|
||||
@@ -327,12 +319,13 @@ static enum iavf_status iavf_aq_get_set_rss_lut(struct iavf_hw *hw,
|
||||
u8 *lut, u16 lut_size,
|
||||
bool set)
|
||||
{
|
||||
struct iavf_aqc_get_set_rss_lut *cmd_resp;
|
||||
struct libie_aq_desc desc;
|
||||
enum iavf_status status;
|
||||
struct iavf_aq_desc desc;
|
||||
struct iavf_aqc_get_set_rss_lut *cmd_resp =
|
||||
(struct iavf_aqc_get_set_rss_lut *)&desc.params.raw;
|
||||
u16 flags;
|
||||
|
||||
cmd_resp = libie_aq_raw(&desc);
|
||||
|
||||
if (set)
|
||||
iavf_fill_default_direct_cmd_desc(&desc,
|
||||
iavf_aqc_opc_set_rss_lut);
|
||||
@@ -341,8 +334,8 @@ static enum iavf_status iavf_aq_get_set_rss_lut(struct iavf_hw *hw,
|
||||
iavf_aqc_opc_get_rss_lut);
|
||||
|
||||
/* Indirect command */
|
||||
desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_BUF);
|
||||
desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_RD);
|
||||
desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_BUF);
|
||||
desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_RD);
|
||||
|
||||
vsi_id = FIELD_PREP(IAVF_AQC_SET_RSS_LUT_VSI_ID_MASK, vsi_id) |
|
||||
FIELD_PREP(IAVF_AQC_SET_RSS_LUT_VSI_VALID, 1);
|
||||
@@ -392,11 +385,12 @@ iavf_status iavf_aq_get_set_rss_key(struct iavf_hw *hw, u16 vsi_id,
|
||||
struct iavf_aqc_get_set_rss_key_data *key,
|
||||
bool set)
|
||||
{
|
||||
enum iavf_status status;
|
||||
struct iavf_aq_desc desc;
|
||||
struct iavf_aqc_get_set_rss_key *cmd_resp =
|
||||
(struct iavf_aqc_get_set_rss_key *)&desc.params.raw;
|
||||
u16 key_size = sizeof(struct iavf_aqc_get_set_rss_key_data);
|
||||
struct iavf_aqc_get_set_rss_key *cmd_resp;
|
||||
struct libie_aq_desc desc;
|
||||
enum iavf_status status;
|
||||
|
||||
cmd_resp = libie_aq_raw(&desc);
|
||||
|
||||
if (set)
|
||||
iavf_fill_default_direct_cmd_desc(&desc,
|
||||
@@ -406,8 +400,8 @@ iavf_status iavf_aq_get_set_rss_key(struct iavf_hw *hw, u16 vsi_id,
|
||||
iavf_aqc_opc_get_rss_key);
|
||||
|
||||
/* Indirect command */
|
||||
desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_BUF);
|
||||
desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_RD);
|
||||
desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_BUF);
|
||||
desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_RD);
|
||||
|
||||
vsi_id = FIELD_PREP(IAVF_AQC_SET_RSS_KEY_VSI_ID_MASK, vsi_id) |
|
||||
FIELD_PREP(IAVF_AQC_SET_RSS_KEY_VSI_VALID, 1);
|
||||
@@ -452,18 +446,18 @@ enum iavf_status iavf_aq_send_msg_to_pf(struct iavf_hw *hw,
|
||||
struct iavf_asq_cmd_details *cmd_details)
|
||||
{
|
||||
struct iavf_asq_cmd_details details;
|
||||
struct iavf_aq_desc desc;
|
||||
struct libie_aq_desc desc;
|
||||
enum iavf_status status;
|
||||
|
||||
iavf_fill_default_direct_cmd_desc(&desc, iavf_aqc_opc_send_msg_to_pf);
|
||||
desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_SI);
|
||||
desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_SI);
|
||||
desc.cookie_high = cpu_to_le32(v_opcode);
|
||||
desc.cookie_low = cpu_to_le32(v_retval);
|
||||
if (msglen) {
|
||||
desc.flags |= cpu_to_le16((u16)(IAVF_AQ_FLAG_BUF
|
||||
| IAVF_AQ_FLAG_RD));
|
||||
desc.flags |= cpu_to_le16((u16)(LIBIE_AQ_FLAG_BUF
|
||||
| LIBIE_AQ_FLAG_RD));
|
||||
if (msglen > IAVF_AQ_LARGE_BUF)
|
||||
desc.flags |= cpu_to_le16((u16)IAVF_AQ_FLAG_LB);
|
||||
desc.flags |= cpu_to_le16((u16)LIBIE_AQ_FLAG_LB);
|
||||
desc.datalen = cpu_to_le16(msglen);
|
||||
}
|
||||
if (!cmd_details) {
|
||||
|
||||
@@ -22,7 +22,7 @@ enum iavf_status iavf_clean_arq_element(struct iavf_hw *hw,
|
||||
struct iavf_arq_event_info *e,
|
||||
u16 *events_pending);
|
||||
enum iavf_status iavf_asq_send_command(struct iavf_hw *hw,
|
||||
struct iavf_aq_desc *desc,
|
||||
struct libie_aq_desc *desc,
|
||||
void *buff, /* can be NULL */
|
||||
u16 buff_size,
|
||||
struct iavf_asq_cmd_details *cmd_details);
|
||||
@@ -34,7 +34,7 @@ void iavf_debug_aq(struct iavf_hw *hw, enum iavf_debug_mask mask,
|
||||
|
||||
bool iavf_check_asq_alive(struct iavf_hw *hw);
|
||||
enum iavf_status iavf_aq_queue_shutdown(struct iavf_hw *hw, bool unloading);
|
||||
const char *iavf_aq_str(struct iavf_hw *hw, enum iavf_admin_queue_err aq_err);
|
||||
const char *iavf_aq_str(struct iavf_hw *hw, enum libie_aq_err aq_err);
|
||||
const char *iavf_stat_str(struct iavf_hw *hw, enum iavf_status stat_err);
|
||||
|
||||
enum iavf_status iavf_aq_set_rss_lut(struct iavf_hw *hw, u16 seid,
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
/* forward declaration */
|
||||
struct iavf_hw;
|
||||
typedef void (*IAVF_ADMINQ_CALLBACK)(struct iavf_hw *, struct iavf_aq_desc *);
|
||||
typedef void (*IAVF_ADMINQ_CALLBACK)(struct iavf_hw *, struct libie_aq_desc *);
|
||||
|
||||
/* Data type manipulation macros. */
|
||||
|
||||
|
||||
Reference in New Issue
Block a user