1/* SPDX-License-Identifier: BSD-3-Clause */
2/* Copyright(c) 2007-2022 Intel Corporation */
3#ifndef ADF_PFVF_VF_PROTO_H
4#define ADF_PFVF_VF_PROTO_H
5
6#include <linux/types.h>
7#include "adf_accel_devices.h"
8
9#define ADF_PFVF_MSG_COLLISION_DETECT_DELAY 10
10#define ADF_PFVF_MSG_ACK_DELAY 2
11#define ADF_PFVF_MSG_ACK_MAX_RETRY 100
12
13/* How often to retry if there is no response */
14#define ADF_PFVF_MSG_RESP_RETRIES 5
15#define ADF_PFVF_MSG_RESP_TIMEOUT                                              \
16	(ADF_PFVF_MSG_ACK_DELAY * ADF_PFVF_MSG_ACK_MAX_RETRY +                 \
17	 ADF_PFVF_MSG_COLLISION_DETECT_DELAY)
18
19int adf_send_vf2pf_msg(struct adf_accel_dev *accel_dev,
20		       struct pfvf_message msg);
21int adf_send_vf2pf_req(struct adf_accel_dev *accel_dev,
22		       struct pfvf_message msg,
23		       struct pfvf_message *resp);
24int adf_send_vf2pf_blkmsg_req(struct adf_accel_dev *accel_dev,
25			      u8 type,
26			      u8 *buffer,
27			      unsigned int *buffer_len);
28
29int adf_enable_vf2pf_comms(struct adf_accel_dev *accel_dev);
30
31#endif /* ADF_PFVF_VF_PROTO_H */
32