From: Michael Chan <michael.chan@broadcom.com>
To: davem@davemloft.net
Cc: netdev@vger.kernel.org
Subject: [PATCH net-next 04/10] bnxt_en: Refactor bnxt_hwrm_set_coal().
Date: Thu, 25 Feb 2016 03:19:28 -0500 [thread overview]
Message-ID: <1456388374-1440-5-git-send-email-michael.chan@broadcom.com> (raw)
In-Reply-To: <1456388374-1440-1-git-send-email-michael.chan@broadcom.com>
Add a function to set all the coalescing parameters. The function can
be used later to set both rx and tx coalescing parameters.
Signed-off-by: Michael Chan <mchan@broadcom.com>
---
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 26 +++++++++++++++++---------
1 file changed, 17 insertions(+), 9 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index a7103b5..b87b367 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -3521,6 +3521,21 @@ static void bnxt_hwrm_ring_free(struct bnxt *bp, bool close_path)
}
}
+static void bnxt_hwrm_set_coal_params(
+ struct bnxt *bp, u32 max_bufs, u32 buf_tmrs, u16 flags,
+ struct hwrm_ring_cmpl_ring_cfg_aggint_params_input *req)
+{
+ req->flags = cpu_to_le16(flags);
+ req->num_cmpl_dma_aggr = cpu_to_le16((u16)max_bufs);
+ req->num_cmpl_dma_aggr_during_int = cpu_to_le16(max_bufs >> 16);
+ req->cmpl_aggr_dma_tmr = cpu_to_le16((u16)buf_tmrs);
+ req->cmpl_aggr_dma_tmr_during_int = cpu_to_le16(buf_tmrs >> 16);
+ /* Minimum time between 2 interrupts set to buf_tmr x 2 */
+ req->int_lat_tmr_min = cpu_to_le16((u16)buf_tmrs * 2);
+ req->int_lat_tmr_max = cpu_to_le16((u16)buf_tmrs * 4);
+ req->num_cmpl_aggr_int = cpu_to_le16((u16)max_bufs * 4);
+}
+
int bnxt_hwrm_set_coal(struct bnxt *bp)
{
int i, rc = 0;
@@ -3553,15 +3568,8 @@ int bnxt_hwrm_set_coal(struct bnxt *bp)
if (bp->rx_coal_ticks < 25)
flags |= RING_CMPL_RING_CFG_AGGINT_PARAMS_REQ_FLAGS_RING_IDLE;
- req.flags = cpu_to_le16(flags);
- req.num_cmpl_dma_aggr = cpu_to_le16(max_buf);
- req.num_cmpl_dma_aggr_during_int = cpu_to_le16(max_buf_irq);
- req.cmpl_aggr_dma_tmr = cpu_to_le16(buf_tmr);
- req.cmpl_aggr_dma_tmr_during_int = cpu_to_le16(buf_tmr_irq);
- /* Minimum time between 2 interrupts set to buf_tmr x 2 */
- req.int_lat_tmr_min = cpu_to_le16(buf_tmr * 2);
- req.int_lat_tmr_max = cpu_to_le16(buf_tmr * 4);
- req.num_cmpl_aggr_int = cpu_to_le16(max_buf * 4);
+ bnxt_hwrm_set_coal_params(bp, max_buf_irq << 16 | max_buf,
+ buf_tmr_irq << 16 | buf_tmr, flags, &req);
mutex_lock(&bp->hwrm_cmd_lock);
for (i = 0; i < bp->cp_nr_rings; i++) {
--
1.8.3.1
next prev parent reply other threads:[~2016-02-25 8:19 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-25 8:19 [PATCH net-next 00/10] bnxt_en: updates for net-next Michael Chan
2016-02-25 8:19 ` [PATCH net-next 01/10] bnxt_en: Improve bnxt_vf_update_mac() Michael Chan
2016-02-25 16:31 ` David Miller
2016-02-25 16:57 ` Michael Chan
2016-02-25 17:09 ` David Miller
2016-02-25 17:15 ` Michael Chan
2016-02-25 19:02 ` David Miller
2016-02-25 8:19 ` [PATCH net-next 02/10] bnxt_en: Send PF driver unload notification to all VFs Michael Chan
2016-02-25 8:19 ` [PATCH net-next 03/10] bnxt_en: Store irq coalescing timer values in micro seconds Michael Chan
2016-02-25 8:19 ` Michael Chan [this message]
2016-02-25 16:32 ` [PATCH net-next 04/10] bnxt_en: Refactor bnxt_hwrm_set_coal() David Miller
2016-02-25 8:19 ` [PATCH net-next 05/10] bnxt_en: Add coalescing support for tx rings Michael Chan
2016-02-25 8:19 ` [PATCH net-next 06/10] bnxt_en: Use firmware provided message timeout value Michael Chan
2016-02-25 8:19 ` [PATCH net-next 07/10] bnxt_en: Fix dmesg log firmware error messages Michael Chan
2016-02-25 8:19 ` [PATCH net-next 08/10] bnxt_en: Add installed-package firmware version reporting via Ethtool GDRVINFO Michael Chan
2016-02-25 8:19 ` [PATCH net-next 09/10] bnxt_en: Refactor _hwrm_send_message() Michael Chan
2016-02-25 8:19 ` [PATCH net-next 10/10] bnxt_en: Add hwrm_send_message_silent() Michael Chan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1456388374-1440-5-git-send-email-michael.chan@broadcom.com \
--to=michael.chan@broadcom.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).