]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
octeontx2-pf: Move shared APIs to header file
authorGeetha sowjanya <gakula@marvell.com>
Wed, 23 Oct 2024 16:18:43 +0000 (21:48 +0530)
committerJakub Kicinski <kuba@kernel.org>
Thu, 31 Oct 2024 00:50:32 +0000 (17:50 -0700)
Move mbox, hw resources and interrupt configuration functions to common
header file. So, that they can be used later by the RVU representor driver.

Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20241023161843.15543-5-gakula@marvell.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
drivers/net/ethernet/marvell/octeontx2/nic/otx2_pf.c
drivers/net/ethernet/marvell/octeontx2/nic/otx2_vf.c

index b36b87dae2cb38c22c304cd6580e275408619542..327254e578d57f36e00e9c31021258f22ae1a25c 100644 (file)
@@ -1000,6 +1000,17 @@ int otx2_aura_init(struct otx2_nic *pfvf, int aura_id,
 int otx2_init_rsrc(struct pci_dev *pdev, struct otx2_nic *pf);
 void otx2_free_queue_mem(struct otx2_qset *qset);
 int otx2_alloc_queue_mem(struct otx2_nic *pf);
+int otx2_init_hw_resources(struct otx2_nic *pfvf);
+void otx2_free_hw_resources(struct otx2_nic *pf);
+int otx2_wq_init(struct otx2_nic *pf);
+int otx2_check_pf_usable(struct otx2_nic *pf);
+int otx2_pfaf_mbox_init(struct otx2_nic *pf);
+int otx2_register_mbox_intr(struct otx2_nic *pf, bool probe_af);
+int otx2_realloc_msix_vectors(struct otx2_nic *pf);
+void otx2_pfaf_mbox_destroy(struct otx2_nic *pf);
+void otx2_disable_mbox_intr(struct otx2_nic *pf);
+void otx2_disable_napi(struct otx2_nic *pf);
+irqreturn_t otx2_cq_intr_handler(int irq, void *cq_irq);
 
 /* RSS configuration APIs*/
 int otx2_rss_init(struct otx2_nic *pfvf);
index 15ed1305fbf8dac5f84ef9642a184edb43eb20dd..e6b03bad2dba3f62a83e57ef9d61d16e9b721149 100644 (file)
@@ -1008,7 +1008,7 @@ static irqreturn_t otx2_pfaf_mbox_intr_handler(int irq, void *pf_irq)
        return IRQ_HANDLED;
 }
 
-static void otx2_disable_mbox_intr(struct otx2_nic *pf)
+void otx2_disable_mbox_intr(struct otx2_nic *pf)
 {
        int vector = pci_irq_vector(pf->pdev, RVU_PF_INT_VEC_AFPF_MBOX);
 
@@ -1017,7 +1017,7 @@ static void otx2_disable_mbox_intr(struct otx2_nic *pf)
        free_irq(vector, pf);
 }
 
-static int otx2_register_mbox_intr(struct otx2_nic *pf, bool probe_af)
+int otx2_register_mbox_intr(struct otx2_nic *pf, bool probe_af)
 {
        struct otx2_hw *hw = &pf->hw;
        struct msg_req *req;
@@ -1061,7 +1061,7 @@ static int otx2_register_mbox_intr(struct otx2_nic *pf, bool probe_af)
        return 0;
 }
 
-static void otx2_pfaf_mbox_destroy(struct otx2_nic *pf)
+void otx2_pfaf_mbox_destroy(struct otx2_nic *pf)
 {
        struct mbox *mbox = &pf->mbox;
 
@@ -1077,7 +1077,7 @@ static void otx2_pfaf_mbox_destroy(struct otx2_nic *pf)
        otx2_mbox_destroy(&mbox->mbox_up);
 }
 
-static int otx2_pfaf_mbox_init(struct otx2_nic *pf)
+int otx2_pfaf_mbox_init(struct otx2_nic *pf)
 {
        struct mbox *mbox = &pf->mbox;
        void __iomem *hwbase;
@@ -1379,7 +1379,7 @@ done:
        return IRQ_HANDLED;
 }
 
-static irqreturn_t otx2_cq_intr_handler(int irq, void *cq_irq)
+irqreturn_t otx2_cq_intr_handler(int irq, void *cq_irq)
 {
        struct otx2_cq_poll *cq_poll = (struct otx2_cq_poll *)cq_irq;
        struct otx2_nic *pf = (struct otx2_nic *)cq_poll->dev;
@@ -1399,15 +1399,18 @@ static irqreturn_t otx2_cq_intr_handler(int irq, void *cq_irq)
        return IRQ_HANDLED;
 }
 
-static void otx2_disable_napi(struct otx2_nic *pf)
+void otx2_disable_napi(struct otx2_nic *pf)
 {
        struct otx2_qset *qset = &pf->qset;
        struct otx2_cq_poll *cq_poll;
+       struct work_struct *work;
        int qidx;
 
        for (qidx = 0; qidx < pf->hw.cint_cnt; qidx++) {
                cq_poll = &qset->napi[qidx];
-               cancel_work_sync(&cq_poll->dim.work);
+               work = &cq_poll->dim.work;
+               if (work->func)
+                       cancel_work_sync(work);
                napi_disable(&cq_poll->napi);
                netif_napi_del(&cq_poll->napi);
        }
@@ -1477,7 +1480,7 @@ static int otx2_get_rbuf_size(struct otx2_nic *pf, int mtu)
        return ALIGN(rbuf_size, 2048);
 }
 
-static int otx2_init_hw_resources(struct otx2_nic *pf)
+int otx2_init_hw_resources(struct otx2_nic *pf)
 {
        struct nix_lf_free_req *free_req;
        struct mbox *mbox = &pf->mbox;
@@ -1602,7 +1605,7 @@ exit:
        return err;
 }
 
-static void otx2_free_hw_resources(struct otx2_nic *pf)
+void otx2_free_hw_resources(struct otx2_nic *pf)
 {
        struct otx2_qset *qset = &pf->qset;
        struct nix_lf_free_req *free_req;
@@ -2807,7 +2810,7 @@ static const struct net_device_ops otx2_netdev_ops = {
        .ndo_set_vf_trust       = otx2_ndo_set_vf_trust,
 };
 
-static int otx2_wq_init(struct otx2_nic *pf)
+int otx2_wq_init(struct otx2_nic *pf)
 {
        pf->otx2_wq = create_singlethread_workqueue("otx2_wq");
        if (!pf->otx2_wq)
@@ -2818,7 +2821,7 @@ static int otx2_wq_init(struct otx2_nic *pf)
        return 0;
 }
 
-static int otx2_check_pf_usable(struct otx2_nic *nic)
+int otx2_check_pf_usable(struct otx2_nic *nic)
 {
        u64 rev;
 
@@ -2836,7 +2839,7 @@ static int otx2_check_pf_usable(struct otx2_nic *nic)
        return 0;
 }
 
-static int otx2_realloc_msix_vectors(struct otx2_nic *pf)
+int otx2_realloc_msix_vectors(struct otx2_nic *pf)
 {
        struct otx2_hw *hw = &pf->hw;
        int num_vec, err;
index 79a8acac628340ac745c25c7c02a9a3be9bc3afe..c4e6c78a8deb696b42b12d37ab300e6ef96fe5d3 100644 (file)
@@ -500,7 +500,7 @@ static const struct net_device_ops otx2vf_netdev_ops = {
        .ndo_setup_tc = otx2_setup_tc,
 };
 
-static int otx2_wq_init(struct otx2_nic *vf)
+static int otx2_vf_wq_init(struct otx2_nic *vf)
 {
        vf->otx2_wq = create_singlethread_workqueue("otx2vf_wq");
        if (!vf->otx2_wq)
@@ -689,7 +689,7 @@ static int otx2vf_probe(struct pci_dev *pdev, const struct pci_device_id *id)
                goto err_ptp_destroy;
        }
 
-       err = otx2_wq_init(vf);
+       err = otx2_vf_wq_init(vf);
        if (err)
                goto err_unreg_netdev;