// SPDX-License-Identifier: GPL-2.0 /* Marvell OcteonTX CPT driver * * Copyright (C) 2019 Marvell International Ltd. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License version 2 as * published by the Free Software Foundation. */ #include <linux/delay.h> #include "otx_cptvf.h" #define CPT_MBOX_MSG_TIMEOUT … static char *get_mbox_opcode_str(int msg_opcode) { … } static void dump_mbox_msg(struct otx_cpt_mbox *mbox_msg, int vf_id) { … } static void cptvf_send_msg_to_pf(struct otx_cptvf *cptvf, struct otx_cpt_mbox *mbx) { … } /* Interrupt handler to handle mailbox messages from VFs */ void otx_cptvf_handle_mbox_intr(struct otx_cptvf *cptvf) { … } static int cptvf_send_msg_to_pf_timeout(struct otx_cptvf *cptvf, struct otx_cpt_mbox *mbx) { … } /* * Checks if VF is able to comminicate with PF * and also gets the CPT number this VF is associated to. */ int otx_cptvf_check_pf_ready(struct otx_cptvf *cptvf) { … } /* * Communicate VQs size to PF to program CPT(0)_PF_Q(0-15)_CTL of the VF. * Must be ACKed. */ int otx_cptvf_send_vq_size_msg(struct otx_cptvf *cptvf) { … } /* * Communicate VF group required to PF and get the VQ binded to that group */ int otx_cptvf_send_vf_to_grp_msg(struct otx_cptvf *cptvf, int group) { … } /* * Communicate VF group required to PF and get the VQ binded to that group */ int otx_cptvf_send_vf_priority_msg(struct otx_cptvf *cptvf) { … } /* * Communicate to PF that VF is UP and running */ int otx_cptvf_send_vf_up(struct otx_cptvf *cptvf) { … } /* * Communicate to PF that VF is DOWN and running */ int otx_cptvf_send_vf_down(struct otx_cptvf *cptvf) { … }