From: Michal Swiatkowski <michal.swiatkowski@linux.intel.com>
To: Michael Chan <michael.chan@broadcom.com>
Cc: davem@davemloft.net, netdev@vger.kernel.org, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, andrew+netdev@lunn.ch,
pavan.chebbi@broadcom.com, andrew.gospodarek@broadcom.com,
Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Subject: Re: [PATCH net-next 4/6] bnxt_en: Skip MAC loopback selftest if it is unsupported by FW
Date: Mon, 16 Dec 2024 07:56:22 +0100 [thread overview]
Message-ID: <Z1/PFuPhm5cOGnAv@mev-dev.igk.intel.com> (raw)
In-Reply-To: <20241215205943.2341612-5-michael.chan@broadcom.com>
On Sun, Dec 15, 2024 at 12:59:41PM -0800, Michael Chan wrote:
> Call the new HWRM_PORT_MAC_QCAPS to check if mac loopback is
> supported. Skip the MAC loopback ethtool self test if it is
> not supported.
>
> Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
> Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
> Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
> Signed-off-by: Michael Chan <michael.chan@broadcom.com>
> ---
> drivers/net/ethernet/broadcom/bnxt/bnxt.c | 29 +++++++++++++++++++
> drivers/net/ethernet/broadcom/bnxt/bnxt.h | 5 ++++
> .../net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 11 ++++---
> 3 files changed, 41 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> index 631dbda725ab..5a19146d6902 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> @@ -11551,6 +11551,31 @@ static int bnxt_hwrm_phy_qcaps(struct bnxt *bp)
> return rc;
> }
>
> +static int bnxt_hwrm_mac_qcaps(struct bnxt *bp)
> +{
> + struct hwrm_port_mac_qcaps_output *resp;
> + struct hwrm_port_mac_qcaps_input *req;
> + int rc;
> +
> + if (bp->hwrm_spec_code < 0x10a03)
> + return 0;
> +
> + rc = hwrm_req_init(bp, req, HWRM_PORT_MAC_QCAPS);
> + if (rc)
> + return rc;
> +
> + resp = hwrm_req_hold(bp, req);
> + rc = hwrm_req_send_silent(bp, req);
> + if (rc)
> + goto hwrm_mac_qcaps_exit;
> +
> + bp->mac_flags = resp->flags;
> +
> +hwrm_mac_qcaps_exit:
> + hwrm_req_drop(bp, req);
> + return rc;
> +}
> +
> static bool bnxt_support_dropped(u16 advertising, u16 supported)
> {
> u16 diff = advertising ^ supported;
> @@ -15679,6 +15704,10 @@ static int bnxt_probe_phy(struct bnxt *bp, bool fw_dflt)
> bp->dev->priv_flags |= IFF_SUPP_NOFCS;
> else
> bp->dev->priv_flags &= ~IFF_SUPP_NOFCS;
> +
> + bp->mac_flags = 0;
> + bnxt_hwrm_mac_qcaps(bp);
The value returned from the function is ignored. Change it to return
void, or do sth here with returned value.
Thanks
> +
> if (!fw_dflt)
> return 0;
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.h b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
> index d5e81e008ab5..094c9e95b463 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
> @@ -2668,6 +2668,11 @@ struct bnxt {
> #define BNXT_PHY_FL_BANK_SEL (PORT_PHY_QCAPS_RESP_FLAGS2_BANK_ADDR_SUPPORTED << 8)
> #define BNXT_PHY_FL_SPEEDS2 (PORT_PHY_QCAPS_RESP_FLAGS2_SPEEDS2_SUPPORTED << 8)
>
> + /* copied from flags in hwrm_port_mac_qcaps_output */
> + u8 mac_flags;
> +#define BNXT_MAC_FL_NO_MAC_LPBK \
> + PORT_MAC_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED
> +
> u8 num_tests;
> struct bnxt_test_info *test_info;
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
> index e5904f2d56df..3bc2bd732021 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
> @@ -4896,21 +4896,24 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
> bnxt_close_nic(bp, true, false);
> bnxt_run_fw_tests(bp, test_mask, &test_results);
>
> - buf[BNXT_MACLPBK_TEST_IDX] = 1;
> - bnxt_hwrm_mac_loopback(bp, true);
> - msleep(250);
> rc = bnxt_half_open_nic(bp);
> if (rc) {
> - bnxt_hwrm_mac_loopback(bp, false);
> etest->flags |= ETH_TEST_FL_FAILED;
> return;
> }
> + buf[BNXT_MACLPBK_TEST_IDX] = 1;
> + if (bp->mac_flags & BNXT_MAC_FL_NO_MAC_LPBK)
> + goto skip_mac_loopback;
> +
> + bnxt_hwrm_mac_loopback(bp, true);
> + msleep(250);
> if (bnxt_run_loopback(bp))
> etest->flags |= ETH_TEST_FL_FAILED;
> else
> buf[BNXT_MACLPBK_TEST_IDX] = 0;
>
> bnxt_hwrm_mac_loopback(bp, false);
> +skip_mac_loopback:
> buf[BNXT_PHYLPBK_TEST_IDX] = 1;
> if (bp->phy_flags & BNXT_PHY_FL_NO_PHY_LPBK)
> goto skip_phy_loopback;
> --
> 2.30.1
next prev parent reply other threads:[~2024-12-16 6:59 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-12-15 20:59 [PATCH net-next 0/6] bnxt_en: Driver update Michael Chan
2024-12-15 20:59 ` [PATCH net-next 1/6] bnxt_en: Use FW defined resource limits for RoCE Michael Chan
2024-12-15 20:59 ` [PATCH net-next 2/6] bnxt_en: Do not allow ethtool -m on an untrusted VF Michael Chan
2024-12-16 14:25 ` kernel test robot
2024-12-16 14:50 ` Ido Schimmel
2024-12-15 20:59 ` [PATCH net-next 3/6] bnxt_en: Skip PHY loopback ethtool selftest if unsupported by FW Michael Chan
2024-12-15 20:59 ` [PATCH net-next 4/6] bnxt_en: Skip MAC loopback selftest if it is " Michael Chan
2024-12-16 6:56 ` Michal Swiatkowski [this message]
2024-12-15 20:59 ` [PATCH net-next 5/6] bnxt_en: Skip reading PXP registers during ethtool -d if unsupported Michael Chan
2024-12-15 20:59 ` [PATCH net-next 6/6] MAINTAINERS: bnxt_en: Add Pavan Chebbi as co-maintainer Michael Chan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Z1/PFuPhm5cOGnAv@mev-dev.igk.intel.com \
--to=michal.swiatkowski@linux.intel.com \
--cc=andrew+netdev@lunn.ch \
--cc=andrew.gospodarek@broadcom.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kalesh-anakkur.purayil@broadcom.com \
--cc=kuba@kernel.org \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavan.chebbi@broadcom.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.