]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bnxt_en: Refactor bnxt_ptp_init()
authorMichael Chan <michael.chan@broadcom.com>
Fri, 22 Nov 2024 22:45:45 +0000 (14:45 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 5 Dec 2024 12:54:00 +0000 (13:54 +0100)
[ Upstream commit 1e9614cd956268e10a669c0593e7e54d03d0c087 ]

Instead of passing the 2nd parameter phc_cfg to bnxt_ptp_init().
Store it in bp->ptp_cfg so that the caller doesn't need to know what
the value should be.

In the next patch, we'll need to call bnxt_ptp_init() in bnxt_resume()
and this will make it easier.

Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Stable-dep-of: 3661c05c54e8 ("bnxt_en: Unregister PTP during PCI shutdown and suspend")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h

index bc0592ae6c4ba75fd40af306f6406f9584850ed8..f999c10cefac6693f021e86a16aac379aa14e140 100644 (file)
@@ -9008,7 +9008,6 @@ static int __bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
        struct hwrm_port_mac_ptp_qcfg_output *resp;
        struct hwrm_port_mac_ptp_qcfg_input *req;
        struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
-       bool phc_cfg;
        u8 flags;
        int rc;
 
@@ -9055,8 +9054,9 @@ static int __bnxt_hwrm_ptp_qcfg(struct bnxt *bp)
                rc = -ENODEV;
                goto exit;
        }
-       phc_cfg = (flags & PORT_MAC_PTP_QCFG_RESP_FLAGS_RTC_CONFIGURED) != 0;
-       rc = bnxt_ptp_init(bp, phc_cfg);
+       ptp->rtc_configured =
+               (flags & PORT_MAC_PTP_QCFG_RESP_FLAGS_RTC_CONFIGURED) != 0;
+       rc = bnxt_ptp_init(bp);
        if (rc)
                netdev_warn(bp->dev, "PTP initialization failed.\n");
 exit:
index fa514be87650286b181aa1c2a0acaca216333d4f..781225d3ba8ffc4bea21a5e5acc1923aa6f62fed 100644 (file)
@@ -1024,7 +1024,7 @@ static void bnxt_ptp_free(struct bnxt *bp)
        }
 }
 
-int bnxt_ptp_init(struct bnxt *bp, bool phc_cfg)
+int bnxt_ptp_init(struct bnxt *bp)
 {
        struct bnxt_ptp_cfg *ptp = bp->ptp_cfg;
        int rc;
@@ -1047,7 +1047,7 @@ int bnxt_ptp_init(struct bnxt *bp, bool phc_cfg)
 
        if (BNXT_PTP_USE_RTC(bp)) {
                bnxt_ptp_timecounter_init(bp, false);
-               rc = bnxt_ptp_init_rtc(bp, phc_cfg);
+               rc = bnxt_ptp_init_rtc(bp, ptp->rtc_configured);
                if (rc)
                        goto out;
        } else {
index f322466ecad350da1bf213007370e29a261a2a0c..61e89bb2d2690c1c7264e2b95be1ea8919b1b884 100644 (file)
@@ -133,6 +133,7 @@ struct bnxt_ptp_cfg {
                                         BNXT_PTP_MSG_PDELAY_REQ |      \
                                         BNXT_PTP_MSG_PDELAY_RESP)
        u8                      tx_tstamp_en:1;
+       u8                      rtc_configured:1;
        int                     rx_filter;
        u32                     tstamp_filters;
 
@@ -180,6 +181,6 @@ void bnxt_tx_ts_cmp(struct bnxt *bp, struct bnxt_napi *bnapi,
                    struct tx_ts_cmp *tscmp);
 void bnxt_ptp_rtc_timecounter_init(struct bnxt_ptp_cfg *ptp, u64 ns);
 int bnxt_ptp_init_rtc(struct bnxt *bp, bool phc_cfg);
-int bnxt_ptp_init(struct bnxt *bp, bool phc_cfg);
+int bnxt_ptp_init(struct bnxt *bp);
 void bnxt_ptp_clear(struct bnxt *bp);
 #endif