bnxt_en: Do not initialize PTP on older P3/P4 chips
authorMichael Chan <michael.chan@broadcom.com>
Mon, 17 Apr 2023 06:58:18 +0000 (23:58 -0700)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 18 Apr 2023 10:27:15 +0000 (12:27 +0200)
The driver does not support PTP on these older chips and it is assuming
that firmware on these older chips will not return the
PORT_MAC_PTP_QCFG_RESP_FLAGS_HWRM_ACCESS flag in __bnxt_hwrm_ptp_qcfg(),
causing the function to abort quietly.

But newer firmware now sets this flag and so __bnxt_hwrm_ptp_qcfg()
will proceed further.  Eventually it will fail in bnxt_ptp_init() ->
bnxt_map_ptp_regs() because there is no code to support the older chips.
The driver will then complain:

"PTP initialization failed.\n"

Fix it so that we abort quietly earlier without going through the
unnecessary steps and alarming the user with the warning log.

Fixes: ae5c42f0b92c ("bnxt_en: Get PTP hardware capability from firmware")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index c23e3b397bcffac45ba6e61c6767df793c28ffec..ef97a4190b39206cc86ba0607308ed7b970983b5 100644 (file)
@@ -7627,7 +7627,7 @@ static int __bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
        u8 flags;
        int rc;
 
-       if (bp->hwrm_spec_code < 0x10801) {
+       if (bp->hwrm_spec_code < 0x10801 || !BNXT_CHIP_P5_THOR(bp)) {
                rc = -ENODEV;
                goto no_ptp;
        }