@@ -249,6 +249,7 @@ struct adf_accel_vf_info {
struct ratelimit_state vf2pf_ratelimit;
u32 vf_nr;
bool init;
+ u8 vf_compat_ver;
};
struct adf_accel_dev {
@@ -278,7 +279,7 @@ struct adf_accel_dev {
struct mutex vf2pf_lock; /* protect CSR access */
struct completion msg_received;
struct pfvf_message response; /* temp field holding pf2vf response */
- u8 pf_version;
+ u8 pf_compat_ver;
} vf;
};
bool is_vf;
@@ -64,6 +64,8 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u8 vf_nr,
else
compat = ADF_PF2VF_VF_COMPAT_UNKNOWN;
+ vf_info->vf_compat_ver = vf_compat_ver;
+
resp->type = ADF_PF2VF_MSGTYPE_VERSION_RESP;
resp->data = FIELD_PREP(ADF_PF2VF_VERSION_RESP_VERS_MASK,
ADF_PFVF_COMPAT_THIS_VERSION) |
@@ -78,6 +80,9 @@ static int adf_handle_vf2pf_msg(struct adf_accel_dev *accel_dev, u8 vf_nr,
"Legacy VersionRequest received from VF%d to PF (vers 1.1)\n",
vf_nr);
+ /* legacy driver, VF compat_ver is 0 */
+ vf_info->vf_compat_ver = 0;
+
/* PF always newer than legacy VF */
compat = ADF_PF2VF_VF_COMPATIBLE;
@@ -89,6 +89,6 @@ int adf_vf2pf_request_version(struct adf_accel_dev *accel_dev)
return -EINVAL;
}
- accel_dev->vf.pf_version = pf_version;
+ accel_dev->vf.pf_compat_ver = pf_version;
return 0;
}
@@ -58,6 +58,7 @@ static int adf_enable_sriov(struct adf_accel_dev *accel_dev)
/* This ptr will be populated when VFs will be created */
vf_info->accel_dev = accel_dev;
vf_info->vf_nr = i;
+ vf_info->vf_compat_ver = 0;
mutex_init(&vf_info->pf2vf_lock);
ratelimit_state_init(&vf_info->vf2pf_ratelimit,