Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Apr 2017 16:22:54 +0000 (UTC)
From:      Sean Bruno <sbruno@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r316581 - head/sys/dev/bnxt
Message-ID:  <201704061622.v36GMsEM044354@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: sbruno
Date: Thu Apr  6 16:22:54 2017
New Revision: 316581
URL: https://svnweb.freebsd.org/changeset/base/316581

Log:
  tx and rx interrupts are not combined in bnxt(4) and should be handled
  independantly.
  
  Submitted by:	venkatkumar.duvvuru@broadcom.com>
  Differential Revision:	https://reviews.freebsd.org/D10297

Modified:
  head/sys/dev/bnxt/if_bnxt.c

Modified: head/sys/dev/bnxt/if_bnxt.c
==============================================================================
--- head/sys/dev/bnxt/if_bnxt.c	Thu Apr  6 16:19:19 2017	(r316580)
+++ head/sys/dev/bnxt/if_bnxt.c	Thu Apr  6 16:22:54 2017	(r316581)
@@ -177,7 +177,8 @@ static void bnxt_update_admin_status(if_
 
 /* Interrupt enable / disable */
 static void bnxt_intr_enable(if_ctx_t ctx);
-static int bnxt_queue_intr_enable(if_ctx_t ctx, uint16_t qid);
+static int bnxt_rx_queue_intr_enable(if_ctx_t ctx, uint16_t qid);
+static int bnxt_tx_queue_intr_enable(if_ctx_t ctx, uint16_t qid);
 static void bnxt_disable_intr(if_ctx_t ctx);
 static int bnxt_msix_intr_assign(if_ctx_t ctx, int msix);
 
@@ -253,8 +254,8 @@ static device_method_t bnxt_iflib_method
 	DEVMETHOD(ifdi_update_admin_status, bnxt_update_admin_status),
 
 	DEVMETHOD(ifdi_intr_enable, bnxt_intr_enable),
-	DEVMETHOD(ifdi_tx_queue_intr_enable, bnxt_queue_intr_enable),
-	DEVMETHOD(ifdi_rx_queue_intr_enable, bnxt_queue_intr_enable),
+	DEVMETHOD(ifdi_tx_queue_intr_enable, bnxt_tx_queue_intr_enable),
+	DEVMETHOD(ifdi_rx_queue_intr_enable, bnxt_rx_queue_intr_enable),
 	DEVMETHOD(ifdi_intr_disable, bnxt_disable_intr),
 	DEVMETHOD(ifdi_msix_intr_assign, bnxt_msix_intr_assign),
 
@@ -1437,7 +1438,16 @@ bnxt_intr_enable(if_ctx_t ctx)
 
 /* Enable interrupt for a single queue */
 static int
-bnxt_queue_intr_enable(if_ctx_t ctx, uint16_t qid)
+bnxt_tx_queue_intr_enable(if_ctx_t ctx, uint16_t qid)
+{
+	struct bnxt_softc *softc = iflib_get_softc(ctx);
+
+	bnxt_do_enable_intr(&softc->tx_cp_rings[qid]);
+	return 0;
+}
+
+static int
+bnxt_rx_queue_intr_enable(if_ctx_t ctx, uint16_t qid)
 {
 	struct bnxt_softc *softc = iflib_get_softc(ctx);
 
@@ -1482,7 +1492,7 @@ bnxt_msix_intr_assign(if_ctx_t ctx, int 
 
 	for (i=0; i<softc->scctx->isc_nrxqsets; i++) {
 		rc = iflib_irq_alloc_generic(ctx, &softc->rx_cp_rings[i].irq,
-		    softc->rx_cp_rings[i].ring.id + 1, IFLIB_INTR_RXTX,
+		    softc->rx_cp_rings[i].ring.id + 1, IFLIB_INTR_RX,
 		    bnxt_handle_rx_cp, &softc->rx_cp_rings[i], i, "rx_cp");
 		if (rc) {
 			device_printf(iflib_get_dev(ctx),



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201704061622.v36GMsEM044354>