bnxt_en: Refactor bnxt_ptp_init()
authorMichael Chan <michael.chan@broadcom.com>
Fri, 22 Nov 2024 22:45:45 +0000 (14:45 -0800)
committerPaolo Abeni <pabeni@redhat.com>
Tue, 26 Nov 2024 14:29:31 +0000 (15:29 +0100)
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>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.c
drivers/net/ethernet/broadcom/bnxt/bnxt_ptp.h

index b754115..9c4b8ea 100644 (file)
@@ -9296,7 +9296,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;
 
@@ -9343,8 +9342,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 075ccd5..2d4e19b 100644 (file)
@@ -1038,7 +1038,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;
@@ -1061,7 +1061,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 c7851f8..a95f05e 100644 (file)
@@ -135,6 +135,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;
 
@@ -168,7 +169,7 @@ 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);
 static inline u64 bnxt_timecounter_cyc2time(struct bnxt_ptp_cfg *ptp, u64 ts)
 {