From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id BB6FEA0524; Mon, 3 May 2021 00:31:37 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A54A94110B; Mon, 3 May 2021 00:31:37 +0200 (CEST) Received: from mail-qt1-f173.google.com (mail-qt1-f173.google.com [209.85.160.173]) by mails.dpdk.org (Postfix) with ESMTP id 2E0CC40150 for ; Mon, 3 May 2021 00:31:36 +0200 (CEST) Received: by mail-qt1-f173.google.com with SMTP id n22so2477408qtk.9 for ; Sun, 02 May 2021 15:31:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=PJhPtgMJbLdfn2RVlMOMSOCJfqtuxqN1LsomLc1SZik=; b=gtRj+6eio+ADsmS5yWoRlBSTlsv1gBhMLTQbPMHxPgqM2dq1bJCC44yN8lMC6FnS5Y oDt8oxRsQtrx1QeEt0Mg5Vmhg+I4kYA6aVE+5FDuE/QxfHTPTVExB3aw5gpmibA1pJPt RniteoTWqmyVgirNtcTSgMl5u3PTKmqH2+AXw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=PJhPtgMJbLdfn2RVlMOMSOCJfqtuxqN1LsomLc1SZik=; b=pGq7n83PjZIC7hEr8swTftUgKshSbwr2xtv2ONRc3ZwridgCERgKxOKmnHrRca8tdt 7RX6fbvjcm0j2CBDxs66iyM9djqbluWce2srlNh2sOnr1AtudwrGBytUgTwN+L/kiyhX WfqQ6lhBhqmC5XPS7zZPb62+yjKowjnra5BvMq833drmah9UmMDdRQ1d0J7yTrsYVg0K TTx6JAkv1VvCwTNLSZpP0STKhU8REG9DljM2/1prSoCTaCdUSFlQkYw6Xbo0yR/F2rvq XW7iOpCJuuvqjYvFF/ADWxMb/DFCPuJAOKJoKI3jkCqrvmHi7KDWrlXUE7utZ5jG0IUK DBAg== X-Gm-Message-State: AOAM533sYAs9+wmRyNjSbff/7rUf3on+6Afm7ck+YxMITLhdH444RW/q 1zAZBR/H/HiS9vqX1vFO5uCoIXFb+RkhlFCGQSVqSi2vJUmdSA== X-Google-Smtp-Source: ABdhPJxZt0u3V7Vd7IGtfqvwz0I8cmiS75RseYN8w9yKvPmqFhKRL1AeLrFckkYHplqjkvJ3LoUGUve0RtNBYnC/mX0= X-Received: by 2002:ac8:6f4c:: with SMTP id n12mr14830277qtv.22.1619994695458; Sun, 02 May 2021 15:31:35 -0700 (PDT) MIME-Version: 1.0 References: <20210426060755.12821-1-somnath.kotur@broadcom.com> <20210426060755.12821-2-somnath.kotur@broadcom.com> In-Reply-To: <20210426060755.12821-2-somnath.kotur@broadcom.com> From: Ajit Khaparde Date: Sun, 2 May 2021 15:31:19 -0700 Message-ID: To: Somnath Kotur Cc: dpdk-dev , Ferruh Yigit , dpdk stable Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="0000000000006155f705c16068d5" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [dpdk-dev] [PATCH 2/2] net/bnxt: fix Rx FIFO pending bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" --0000000000006155f705c16068d5 Content-Type: text/plain; charset="UTF-8" On Sun, Apr 25, 2021 at 11:09 PM Somnath Kotur wrote: > Fix to clear the Rx FIFO while reading the timestamp. > If the Rx FIFO has pending bit set, keep reading to clear it > and return the last valid timestamp instead of unconditionally > returning an error. > > Fixes: b11cceb83a34 ("net/bnxt: support timesync") > Cc: stable@dpdk.org > > Signed-off-by: Somnath Kotur > Reviewed-by: Ajit Khaparde > Patch applied to dpdk-next-net-brcm. Thanks > --- > drivers/net/bnxt/bnxt.h | 1 + > drivers/net/bnxt/bnxt_ethdev.c | 38 ++++++++++++++++++++++++++++++---- > 2 files changed, 35 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/bnxt/bnxt.h b/drivers/net/bnxt/bnxt.h > index dfdfa9f7a0..8f3ae41911 100644 > --- a/drivers/net/bnxt/bnxt.h > +++ b/drivers/net/bnxt/bnxt.h > @@ -306,6 +306,7 @@ struct rte_flow { > struct bnxt_vnic_info *vnic; > }; > > +#define BNXT_PTP_RX_PND_CNT 10 > #define BNXT_PTP_FLAGS_PATH_TX 0x0 > #define BNXT_PTP_FLAGS_PATH_RX 0x1 > #define BNXT_PTP_FLAGS_CURRENT_TIME 0x2 > diff --git a/drivers/net/bnxt/bnxt_ethdev.c > b/drivers/net/bnxt/bnxt_ethdev.c > index f5d2dc8590..eb81bf3991 100644 > --- a/drivers/net/bnxt/bnxt_ethdev.c > +++ b/drivers/net/bnxt/bnxt_ethdev.c > @@ -3388,6 +3388,38 @@ static int bnxt_get_tx_ts(struct bnxt *bp, uint64_t > *ts) > return 0; > } > > +static int bnxt_clr_rx_ts(struct bnxt *bp, uint64_t *last_ts) > +{ > + struct bnxt_ptp_cfg *ptp = bp->ptp_cfg; > + struct bnxt_pf_info *pf = bp->pf; > + uint16_t port_id; > + int i = 0; > + uint32_t fifo; > + > + if (!ptp || (bp->flags & BNXT_FLAG_CHIP_P5)) > + return -EINVAL; > + > + port_id = pf->port_id; > + fifo = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 + > + ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO])); > + while ((fifo & BNXT_PTP_RX_FIFO_PENDING) && (i < > BNXT_PTP_RX_PND_CNT)) { > + rte_write32(1 << port_id, (uint8_t *)bp->bar0 + > + ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO_ADV]); > + fifo = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 + > + > ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO])); > + *last_ts = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 > + > + > ptp->rx_mapped_regs[BNXT_PTP_RX_TS_L])); > + *last_ts |= (uint64_t)rte_le_to_cpu_32(rte_read32((uint8_t > *)bp->bar0 + > + > ptp->rx_mapped_regs[BNXT_PTP_RX_TS_H])) << 32; > + i++; > + } > + > + if (i >= BNXT_PTP_RX_PND_CNT) > + return -EBUSY; > + > + return 0; > +} > + > static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t *ts) > { > struct bnxt_ptp_cfg *ptp = bp->ptp_cfg; > @@ -3406,10 +3438,8 @@ static int bnxt_get_rx_ts(struct bnxt *bp, uint64_t > *ts) > > fifo = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 + > ptp->rx_mapped_regs[BNXT_PTP_RX_FIFO])); > - if (fifo & BNXT_PTP_RX_FIFO_PENDING) { > -/* bnxt_clr_rx_ts(bp); TBD */ > - return -EBUSY; > - } > + if (fifo & BNXT_PTP_RX_FIFO_PENDING) > + return bnxt_clr_rx_ts(bp, ts); > > *ts = rte_le_to_cpu_32(rte_read32((uint8_t *)bp->bar0 + > ptp->rx_mapped_regs[BNXT_PTP_RX_TS_L])); > -- > 2.28.0.497.g54e85e7 > > --0000000000006155f705c16068d5--