Re: [PATCH v3 5/6] bnxt_en: Use auxiliary bus calls over proprietary calls

Ajit Khaparde
2022-11-09T18:45:39Z

[-- Attachment #1: Type: text/plain, Size: 2119 bytes --]

On Sun, Nov 6, 2022 at 10:41 PM Leon Romanovsky <leon@kernel.org> wrote:
>
> On Fri, Nov 04, 2022 at 09:27:32AM -0700, Ajit Khaparde wrote:
> > Wherever possible use the function ops provided by auxiliary bus
> > instead of using proprietary ops.
> >
> > Defined bnxt_re_suspend and bnxt_re_resume calls which can be
> > invoked by the bnxt_en driver instead of the ULP stop/start calls.
> >
> > Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
> > Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
> > ---
> > drivers/infiniband/hw/bnxt_re/main.c | 102 +++++++++++-------
> > drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 40 ++++---
> > drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h | 2 -
> > 3 files changed, 87 insertions(+), 57 deletions(-)
>
> <...>
>
> > void bnxt_ulp_sriov_cfg(struct bnxt *bp, int num_vfs)
> > diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
> > index 26b7c627342b..e96f93d38a30 100644
> > --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
> > +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.h
> > @@ -29,8 +29,6 @@ struct bnxt_msix_entry {
> > struct bnxt_ulp_ops {
>
> Once you convert to use AUX bus, this struct should go too.

We got rid of the bnxt_en_ops which the bnxt_re driver used to
communicate with bnxt_en.
Similarly We have tried to clean up most of the bnxt_ulp_ops.
In most of the cases we used the functions and entry points provided
by the auxiliary bus driver framework.
As you can see in the v4, there are the minimal functions needed to
support the functionality.

We will try to work on getting rid of the remaining if we find any
other viable alternative for those in future.

>
> > /* async_notifier() cannot sleep (in BH context) */
> > void (*ulp_async_notifier)(void *, struct hwrm_async_event_cmpl *);
> > - void (*ulp_stop)(void *);
> > - void (*ulp_start)(void *);
> > void (*ulp_sriov_config)(void *, int);
> > void (*ulp_shutdown)(void *);
> > void (*ulp_irq_stop)(void *);
> > --
> > 2.37.1 (Apple Git-137.1)
> >
>
>