Setup vf2pf doorbell register for ACC101

Signed-off-by: Hernan Vargas <hernan.var...@intel.com>
---
 drivers/baseband/acc100/acc100_vf_enum.h | 6 ++++++
 drivers/baseband/acc100/rte_acc100_pmd.c | 8 ++++++++
 2 files changed, 14 insertions(+)

diff --git a/drivers/baseband/acc100/acc100_vf_enum.h 
b/drivers/baseband/acc100/acc100_vf_enum.h
index b512af33fc..5807a9d0fd 100644
--- a/drivers/baseband/acc100/acc100_vf_enum.h
+++ b/drivers/baseband/acc100/acc100_vf_enum.h
@@ -70,4 +70,10 @@ enum {
        ACC100_VF_INT_QMGR_AQ_OVERTHRESHOLD = 9,
 };
 
+/* TIP PF2VF Comms */
+enum {
+       ACC100_VF2PF_STATUS_REQUEST = 0,
+       ACC100_VF2PF_USING_VF = 1,
+};
+
 #endif /* ACC100_VF_ENUM_H */
diff --git a/drivers/baseband/acc100/rte_acc100_pmd.c 
b/drivers/baseband/acc100/rte_acc100_pmd.c
index e0df07bc20..548f228f23 100644
--- a/drivers/baseband/acc100/rte_acc100_pmd.c
+++ b/drivers/baseband/acc100/rte_acc100_pmd.c
@@ -292,6 +292,13 @@ fetch_acc100_config(struct rte_bbdev *dev)
                        acc100_conf->q_dl_5g.aq_depth_log2);
 }
 
+static inline void
+acc100_vf2pf(struct acc100_device *d, unsigned int payload)
+{
+       if (d->device_variant == ACC101_VARIANT)
+               acc100_reg_write(d, HWVfHiVfToPfDbellVf, payload);
+}
+
 static void
 free_base_addresses(void **base_addrs, int size)
 {
@@ -712,6 +719,7 @@ acc100_setup_queues(struct rte_bbdev *dev, uint16_t 
num_queues, int socket_id)
 
        /* Mark as configured properly */
        d->configured = true;
+       acc100_vf2pf(d, ACC100_VF2PF_USING_VF);
 
        rte_bbdev_log_debug(
                        "ACC100 (%s) configured  sw_rings = %p, sw_rings_iova = 
%#"
-- 
2.37.1

Reply via email to