From: Vadim Fedorenko <vadim.fedorenko@linux.dev>
To: Bhargava Marreddy <bhargava.marreddy@broadcom.com>,
davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
pabeni@redhat.com, andrew+netdev@lunn.ch, horms@kernel.org
Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
michael.chan@broadcom.com, pavan.chebbi@broadcom.com,
vsrama-krishna.nemani@broadcom.com, vikas.gupta@broadcom.com,
Rajashekar Hudumula <rajashekar.hudumula@broadcom.com>,
Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
Subject: Re: [PATCH net-next v11 05/10] bng_en: add support for link async events
Date: Wed, 8 Apr 2026 13:51:53 +0100 [thread overview]
Message-ID: <3596a43d-8c8e-47ac-ae73-ee282f3be945@linux.dev> (raw)
In-Reply-To: <20260403073724.194360-6-bhargava.marreddy@broadcom.com>
On 03/04/2026 08:37, Bhargava Marreddy wrote:
> Register for firmware asynchronous events, including link-status,
> link-speed, and PHY configuration changes. Upon event reception,
> re-query the PHY and update ethtool settings accordingly.
>
> Signed-off-by: Bhargava Marreddy <bhargava.marreddy@broadcom.com>
> Reviewed-by: Vikas Gupta <vikas.gupta@broadcom.com>
> Reviewed-by: Rajashekar Hudumula <rajashekar.hudumula@broadcom.com>
> Reviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>
> ---
> .../ethernet/broadcom/bnge/bnge_hwrm_lib.c | 19 +++++++++-
> .../net/ethernet/broadcom/bnge/bnge_link.c | 18 ++++++++++
> .../net/ethernet/broadcom/bnge/bnge_link.h | 1 +
> .../net/ethernet/broadcom/bnge/bnge_netdev.c | 23 ++++++++++++
> .../net/ethernet/broadcom/bnge/bnge_txrx.c | 35 ++++++++++++++++---
> 5 files changed, 91 insertions(+), 5 deletions(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
> index acb712ddbd7e..de51add96ac3 100644
> --- a/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
> +++ b/drivers/net/ethernet/broadcom/bnge/bnge_hwrm_lib.c
> @@ -15,6 +15,13 @@
> #include "bnge_rmem.h"
> #include "bnge_resc.h"
>
> +static const u16 bnge_async_events_arr[] = {
> + ASYNC_EVENT_CMPL_EVENT_ID_LINK_STATUS_CHANGE,
> + ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CHANGE,
> + ASYNC_EVENT_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE,
> + ASYNC_EVENT_CMPL_EVENT_ID_PORT_PHY_CFG_CHANGE,
> +};
> +
> int bnge_hwrm_ver_get(struct bnge_dev *bd)
> {
> u32 dev_caps_cfg, hwrm_ver, hwrm_spec_code;
> @@ -166,10 +173,12 @@ int bnge_hwrm_fw_set_time(struct bnge_dev *bd)
>
> int bnge_hwrm_func_drv_rgtr(struct bnge_dev *bd)
> {
> + DECLARE_BITMAP(async_events_bmap, 256);
> struct hwrm_func_drv_rgtr_output *resp;
> struct hwrm_func_drv_rgtr_input *req;
> + u32 events[8];
> u32 flags;
> - int rc;
> + int rc, i;
>
> rc = bnge_hwrm_req_init(bd, req, HWRM_FUNC_DRV_RGTR);
> if (rc)
> @@ -190,6 +199,14 @@ int bnge_hwrm_func_drv_rgtr(struct bnge_dev *bd)
> req->ver_min = cpu_to_le16(DRV_VER_MIN);
> req->ver_upd = cpu_to_le16(DRV_VER_UPD);
>
> + memset(async_events_bmap, 0, sizeof(async_events_bmap));
bitmap API has bitmap_zero()
> + for (i = 0; i < ARRAY_SIZE(bnge_async_events_arr); i++)
> + __set_bit(bnge_async_events_arr[i], async_events_bmap);
> +
> + bitmap_to_arr32(events, async_events_bmap, 256);
> + for (i = 0; i < ARRAY_SIZE(req->async_event_fwd); i++)
> + req->async_event_fwd[i] |= cpu_to_le32(events[i]);
> +
> resp = bnge_hwrm_req_hold(bd, req);
> rc = bnge_hwrm_req_send(bd, req);
> if (!rc) {
next prev parent reply other threads:[~2026-04-08 12:52 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-03 7:37 [PATCH net-next v11 00/10] bng_en: add link management and statistics support Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 01/10] bng_en: add per-PF workqueue, timer, and slow-path task Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 02/10] bng_en: query PHY capabilities and report link status Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 03/10] bng_en: add ethtool link settings, get_link, and nway_reset Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 04/10] bng_en: implement ethtool pauseparam operations Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 05/10] bng_en: add support for link async events Bhargava Marreddy
2026-04-08 12:51 ` Vadim Fedorenko [this message]
2026-04-03 7:37 ` [PATCH net-next v11 06/10] bng_en: add HW stats infra and structured ethtool ops Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 07/10] bng_en: periodically fetch and accumulate hardware statistics Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 08/10] bng_en: implement ndo_get_stats64 Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 09/10] bng_en: implement netdev_stat_ops Bhargava Marreddy
2026-04-03 7:37 ` [PATCH net-next v11 10/10] bng_en: add support for ethtool -S stats display Bhargava Marreddy
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=3596a43d-8c8e-47ac-ae73-ee282f3be945@linux.dev \
--to=vadim.fedorenko@linux.dev \
--cc=ajit.khaparde@broadcom.com \
--cc=andrew+netdev@lunn.ch \
--cc=bhargava.marreddy@broadcom.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=michael.chan@broadcom.com \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pavan.chebbi@broadcom.com \
--cc=rajashekar.hudumula@broadcom.com \
--cc=vikas.gupta@broadcom.com \
--cc=vsrama-krishna.nemani@broadcom.com \
/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