On 3/2/2023 9:20 PM, Mingxia Liu wrote:
> Support device init and add the following dev ops:
>  - dev_configure
>  - dev_close
>  - dev_infos_get
>  - link_update
>  - dev_supported_ptypes_get
> 
> Signed-off-by: Mingxia Liu <mingxia....@intel.com>

<...>

> +static void
> +cpfl_handle_virtchnl_msg(struct cpfl_adapter_ext *adapter)
> +{
> +     struct idpf_adapter *base = &adapter->base;
> +     struct idpf_dma_mem *dma_mem = NULL;
> +     struct idpf_hw *hw = &base->hw;
> +     struct virtchnl2_event *vc_event;
> +     struct idpf_ctlq_msg ctlq_msg;
> +     enum idpf_mbx_opc mbx_op;
> +     struct idpf_vport *vport;
> +     enum virtchnl_ops vc_op;
> +     uint16_t pending = 1;
> +     int ret;
> +
> +     while (pending) {
> +             ret = idpf_vc_ctlq_recv(hw->arq, &pending, &ctlq_msg);
> +             if (ret) {
> +                     PMD_DRV_LOG(INFO, "Failed to read msg from virtual 
> channel, ret: %d", ret);
> +                     return;
> +             }
> +
> +             memcpy(base->mbx_resp, ctlq_msg.ctx.indirect.payload->va,
> +                        IDPF_DFLT_MBX_BUF_SIZE);
> +
> +             mbx_op = rte_le_to_cpu_16(ctlq_msg.opcode);
> +             vc_op = rte_le_to_cpu_32(ctlq_msg.cookie.mbx.chnl_opcode);
> +             base->cmd_retval = 
> rte_le_to_cpu_32(ctlq_msg.cookie.mbx.chnl_retval);
> +
> +             switch (mbx_op) {
> +             case idpf_mbq_opc_send_msg_to_peer_pf:
> +                     if (vc_op == VIRTCHNL2_OP_EVENT) {


Raslan reported following build error [1], 'VIRTCHNL2_OP_EVENT' is not
an element of "enum virtchnl_ops", can you please check?


I guess there are a few options, have a new enum for virtchnl2, like
"enum virtchnl2_ops" which inlucde all 'VIRTCHNL2_OP_',

OR

use 'uint32_t' type (instead of "enum virtchnl_ops") when
'VIRTCHNL2_OP_' opcodes can be used, this seems simpler.


BTW, this is same in the idfp driver.


[1]
drivers/libtmp_rte_net_cpfl.a.p/net_cpfl_cpfl_ethdev.c.o -c
../../root/dpdk/drivers/net/cpfl/cpfl_ethdev.c
../../root/dpdk/drivers/net/cpfl/cpfl_ethdev.c:1118:14: error:
comparison of constant 522 with expression of type 'enum virtchnl_ops'
is always false [-Werror,-Wtautological-constant-out-of-range-compare]
                        if (vc_op == VIRTCHNL2_OP_EVENT) {
                            ~~~~~ ^  ~~~~~~~~~~~~~~~~~~
1 error generated.

Reply via email to