1 /* SPDX-License-Identifier: BSD-3-Clause
2 * Copyright(c) 2020-2021 Xilinx, Inc.
5 #include "sfc_efx_mcdi.h"
8 #include "sfc_vdpa_debug.h"
9 #include "sfc_vdpa_log.h"
11 static sfc_efx_mcdi_dma_alloc_cb sfc_vdpa_mcdi_dma_alloc;
13 sfc_vdpa_mcdi_dma_alloc(void *cookie, const char *name, size_t len,
16 struct sfc_vdpa_adapter *sva = cookie;
18 return sfc_vdpa_dma_alloc(sva, name, len, esmp);
21 static sfc_efx_mcdi_dma_free_cb sfc_vdpa_mcdi_dma_free;
23 sfc_vdpa_mcdi_dma_free(void *cookie, efsys_mem_t *esmp)
25 struct sfc_vdpa_adapter *sva = cookie;
27 sfc_vdpa_dma_free(sva, esmp);
30 static sfc_efx_mcdi_sched_restart_cb sfc_vdpa_mcdi_sched_restart;
32 sfc_vdpa_mcdi_sched_restart(void *cookie)
37 static sfc_efx_mcdi_mgmt_evq_poll_cb sfc_vdpa_mcdi_mgmt_evq_poll;
39 sfc_vdpa_mcdi_mgmt_evq_poll(void *cookie)
44 static const struct sfc_efx_mcdi_ops sfc_vdpa_mcdi_ops = {
45 .dma_alloc = sfc_vdpa_mcdi_dma_alloc,
46 .dma_free = sfc_vdpa_mcdi_dma_free,
47 .sched_restart = sfc_vdpa_mcdi_sched_restart,
48 .mgmt_evq_poll = sfc_vdpa_mcdi_mgmt_evq_poll,
53 sfc_vdpa_mcdi_init(struct sfc_vdpa_adapter *sva)
57 sfc_vdpa_log_init(sva, "entry");
59 logtype = sfc_vdpa_register_logtype(&(sva->pdev->addr),
60 SFC_VDPA_LOGTYPE_MCDI_STR,
63 return sfc_efx_mcdi_init(&sva->mcdi, logtype,
64 sva->log_prefix, sva->nic,
65 &sfc_vdpa_mcdi_ops, sva);
69 sfc_vdpa_mcdi_fini(struct sfc_vdpa_adapter *sva)
71 sfc_vdpa_log_init(sva, "entry");
72 sfc_efx_mcdi_fini(&sva->mcdi);