• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // SPDX-License-Identifier: (BSD-3-Clause OR GPL-2.0-only)
2 /* Copyright(c) 2015 - 2021 Intel Corporation */
3 #include <linux/pci.h>
4 #include "adf_accel_devices.h"
5 #include "adf_pfvf_msg.h"
6 #include "adf_pfvf_pf_msg.h"
7 #include "adf_pfvf_pf_proto.h"
8 
adf_pf2vf_notify_restarting(struct adf_accel_dev * accel_dev)9 void adf_pf2vf_notify_restarting(struct adf_accel_dev *accel_dev)
10 {
11 	struct adf_accel_vf_info *vf;
12 	struct pfvf_message msg = { .type = ADF_PF2VF_MSGTYPE_RESTARTING };
13 	int i, num_vfs = pci_num_vf(accel_to_pci_dev(accel_dev));
14 
15 	for (i = 0, vf = accel_dev->pf.vf_info; i < num_vfs; i++, vf++) {
16 		if (vf->init && adf_send_pf2vf_msg(accel_dev, i, msg))
17 			dev_err(&GET_DEV(accel_dev),
18 				"Failed to send restarting msg to VF%d\n", i);
19 	}
20 }
21 
adf_pf_capabilities_msg_provider(struct adf_accel_dev * accel_dev,u8 * buffer,u8 compat)22 int adf_pf_capabilities_msg_provider(struct adf_accel_dev *accel_dev,
23 				     u8 *buffer, u8 compat)
24 {
25 	struct adf_hw_device_data *hw_data = accel_dev->hw_device;
26 	struct capabilities_v2 caps_msg;
27 
28 	caps_msg.ext_dc_caps = hw_data->extended_dc_capabilities;
29 	caps_msg.capabilities = hw_data->accel_capabilities_mask;
30 
31 	caps_msg.hdr.version = ADF_PFVF_CAPABILITIES_V2_VERSION;
32 	caps_msg.hdr.payload_size =
33 			ADF_PFVF_BLKMSG_PAYLOAD_SIZE(struct capabilities_v2);
34 
35 	memcpy(buffer, &caps_msg, sizeof(caps_msg));
36 
37 	return 0;
38 }
39 
adf_pf_ring_to_svc_msg_provider(struct adf_accel_dev * accel_dev,u8 * buffer,u8 compat)40 int adf_pf_ring_to_svc_msg_provider(struct adf_accel_dev *accel_dev,
41 				    u8 *buffer, u8 compat)
42 {
43 	struct ring_to_svc_map_v1 rts_map_msg;
44 
45 	rts_map_msg.map = accel_dev->hw_device->ring_to_svc_map;
46 	rts_map_msg.hdr.version = ADF_PFVF_RING_TO_SVC_VERSION;
47 	rts_map_msg.hdr.payload_size = ADF_PFVF_BLKMSG_PAYLOAD_SIZE(rts_map_msg);
48 
49 	memcpy(buffer, &rts_map_msg, sizeof(rts_map_msg));
50 
51 	return 0;
52 }
53