]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/spdk/dpdk/drivers/crypto/octeontx/otx_cryptodev_mbox.c
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / spdk / dpdk / drivers / crypto / octeontx / otx_cryptodev_mbox.c
index a8e51a8e7c2d40a9837ed570d2d37bc4fd447366..a884ad6fba9ddb344338c4a657b909b7c5a38101 100644 (file)
@@ -24,6 +24,9 @@ otx_cpt_handle_mbox_intr(struct cpt_vf *cptvf)
        CPT_LOG_DP_DEBUG("%s: Mailbox msg 0x%lx from PF",
                    cptvf->dev_name, (unsigned int long)mbx.msg);
        switch (mbx.msg) {
+       case OTX_CPT_MSG_VF_UP:
+               cptvf->pf_acked = true;
+               break;
        case OTX_CPT_MSG_READY:
                {
                        otx_cpt_chipid_vfid_t cid;
@@ -39,11 +42,19 @@ otx_cpt_handle_mbox_intr(struct cpt_vf *cptvf)
        case OTX_CPT_MSG_QBIND_GRP:
                cptvf->pf_acked = true;
                cptvf->vftype = mbx.data;
-               CPT_LOG_DP_DEBUG("%s: VF %d type %s group %d",
+               CPT_LOG_DP_DEBUG("%s: VF %d group %d",
                                 cptvf->dev_name, cptvf->vfid,
-                                ((mbx.data == SE_TYPE) ? "SE" : "AE"),
                                 cptvf->vfgrp);
                break;
+       case OTX_CPT_MSG_PF_TYPE:
+               cptvf->pf_acked = true;
+               if (mbx.data == OTX_CPT_PF_TYPE_AE)
+                       cptvf->vftype = OTX_CPT_VF_TYPE_AE;
+               else if (mbx.data == OTX_CPT_PF_TYPE_SE)
+                       cptvf->vftype = OTX_CPT_VF_TYPE_SE;
+               else
+                       cptvf->vftype = OTX_CPT_VF_TYPE_INVALID;
+               break;
        case OTX_CPT_MBOX_MSG_TYPE_ACK:
                cptvf->pf_acked = true;
                break;
@@ -116,6 +127,20 @@ otx_cpt_check_pf_ready(struct cpt_vf *cptvf)
        return 0;
 }
 
+int
+otx_cpt_get_dev_type(struct cpt_vf *cptvf)
+{
+       struct cpt_mbox mbx = {0, 0};
+
+       mbx.msg = OTX_CPT_MSG_PF_TYPE;
+       if (otx_cpt_send_msg_to_pf_timeout(cptvf, &mbx)) {
+               CPT_LOG_ERR("%s: PF didn't respond to query msg",
+                           cptvf->dev_name);
+               return 1;
+       }
+       return 0;
+}
+
 int
 otx_cpt_send_vq_size_msg(struct cpt_vf *cptvf)
 {