From patchwork Mon Dec 11 17:10:56 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ajit Khaparde X-Patchwork-Id: 135028 X-Patchwork-Delegate: ajit.khaparde@broadcom.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 0D517436C8; Mon, 11 Dec 2023 18:11:25 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id C221C42D7B; Mon, 11 Dec 2023 18:11:21 +0100 (CET) Received: from mail-qk1-f173.google.com (mail-qk1-f173.google.com [209.85.222.173]) by mails.dpdk.org (Postfix) with ESMTP id 269D142D7A for ; Mon, 11 Dec 2023 18:11:21 +0100 (CET) Received: by mail-qk1-f173.google.com with SMTP id af79cd13be357-77f552d4179so186233585a.1 for ; Mon, 11 Dec 2023 09:11:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1702314680; x=1702919480; darn=dpdk.org; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:from:to:cc:subject:date:message-id:reply-to; bh=VF57EqXTgEW7ccyj6tFtKAzF+R7UkIkEkbd61aygsV8=; b=BlJTmWKRbUinNGXUv/aItg2pGyA74wDuTs6JwIIHn0Wmq3h87Ihp6/5/rtNyt1GrJg I7Vs9tGe64Xe9fl+9pdST059D9a/ZM4nMxK+Tr+ZmiLjw1hTf8CTkV/tfjmI4MpEPB2z 7P47d3s3vV3J7fyBWElyaZi4YEoSk9NptrkbY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1702314680; x=1702919480; h=mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=VF57EqXTgEW7ccyj6tFtKAzF+R7UkIkEkbd61aygsV8=; b=nArZBk4ZIrfdT0M57yyGfrA9dhi4h9+oO3pA4EXZTB1o8Xr2I7MMym8EdetaNTs3WE YTKKaHBhRsN2puL+RtdV45N/EvrwTQQQ41kNnqjO8duOxyad/hHn6k/9x20QnbCuFpaV WP6pxaxSOziN3IQb/US3rOGQeb2p4vhoR/XzdmBsGvGiKWc5udkZiB+2OTlfLV2gLgR5 Erv1++FMCCdddJnbTx3FSjvjJGqOG5i4RL0JzfuHA4psljGQrq4+GpnZDHhlfsrZS0ek /LboGLOfpHjd9KRD3kd1O3luPDzNdH4sRteLeJdAOv7LP2BWtHqOcp1X4wpOBA15whkj O0qQ== X-Gm-Message-State: AOJu0Yx0YwFQdvuc/uZLZTOXimnK2IBlSrFmpFGqAKdZSAZslOJfBndw vtpTpNbT9CQAl5htdHiOEt03CgEyX7tajEZYdZQPaj/CLeArdAvXUJgWUox6lSw9x+i/Hb2N1b5 fOKDHc/cZkBLn77cMApxrWBcOcX2g4xTSMHiXfvWJsNKKoUbBHz1ET6k7CsU0jj9T4EaP X-Google-Smtp-Source: AGHT+IEKTUPvjiDkY8tEskfZn2Z2nKCawFTKbMEKxQp3WFLjR3F9aMJiizvmWEQy73KrMlS5urPCAw== X-Received: by 2002:a05:620a:3:b0:77f:37e7:bd6e with SMTP id j3-20020a05620a000300b0077f37e7bd6emr5790603qki.121.1702314680128; Mon, 11 Dec 2023 09:11:20 -0800 (PST) Received: from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id qz16-20020a05620a8c1000b0077efdfbd730sm3094581qkn.34.2023.12.11.09.11.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 11 Dec 2023 09:11:18 -0800 (PST) From: Ajit Khaparde To: dev@dpdk.org Cc: Damodharam Ammepalli Subject: [PATCH v3 01/14] net/bnxt: refactor epoch setting Date: Mon, 11 Dec 2023 09:10:56 -0800 Message-Id: <20231211171109.89716-2-ajit.khaparde@broadcom.com> X-Mailer: git-send-email 2.39.2 (Apple Git-143) In-Reply-To: <20231211171109.89716-1-ajit.khaparde@broadcom.com> References: <20231211171109.89716-1-ajit.khaparde@broadcom.com> MIME-Version: 1.0 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 Fix epoch bit setting when we ring the doorbell. Epoch bit needs to toggle alternatively from 0 to 1 every time the ring indices wrap. Currently its value is everything but an alternating 0 and 1. Remove unnecessary field db_epoch_shift from bnxt_db_info structure. Signed-off-by: Ajit Khaparde Reviewed-by: Damodharam Ammepalli --- drivers/net/bnxt/bnxt_cpr.h | 5 ++--- drivers/net/bnxt/bnxt_ring.c | 9 ++------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/net/bnxt/bnxt_cpr.h b/drivers/net/bnxt/bnxt_cpr.h index 2de154322d..26e81a6a7e 100644 --- a/drivers/net/bnxt/bnxt_cpr.h +++ b/drivers/net/bnxt/bnxt_cpr.h @@ -53,11 +53,10 @@ struct bnxt_db_info { bool db_64; uint32_t db_ring_mask; uint32_t db_epoch_mask; - uint32_t db_epoch_shift; }; -#define DB_EPOCH(db, idx) (((idx) & (db)->db_epoch_mask) << \ - ((db)->db_epoch_shift)) +#define DB_EPOCH(db, idx) (!!((idx) & (db)->db_epoch_mask) << \ + DBR_EPOCH_SFT) #define DB_RING_IDX(db, idx) (((idx) & (db)->db_ring_mask) | \ DB_EPOCH(db, idx)) diff --git a/drivers/net/bnxt/bnxt_ring.c b/drivers/net/bnxt/bnxt_ring.c index 34b2510d54..6dacb1b37f 100644 --- a/drivers/net/bnxt/bnxt_ring.c +++ b/drivers/net/bnxt/bnxt_ring.c @@ -371,9 +371,10 @@ static void bnxt_set_db(struct bnxt *bp, db->db_key64 = DBR_PATH_L2; break; } - if (BNXT_CHIP_SR2(bp)) { + if (BNXT_CHIP_P7(bp)) { db->db_key64 |= DBR_VALID; db_offset = bp->legacy_db_size; + db->db_epoch_mask = ring_mask + 1; } else if (BNXT_VF(bp)) { db_offset = DB_VF_OFFSET; } @@ -397,12 +398,6 @@ static void bnxt_set_db(struct bnxt *bp, db->db_64 = false; } db->db_ring_mask = ring_mask; - - if (BNXT_CHIP_SR2(bp)) { - db->db_epoch_mask = db->db_ring_mask + 1; - db->db_epoch_shift = DBR_EPOCH_SFT - - rte_log2_u32(db->db_epoch_mask); - } } static int bnxt_alloc_cmpl_ring(struct bnxt *bp, int queue_index,