From: Andrew Lunn <andrew@lunn.ch>
To: Yibo Dong <dong100@mucse.com>
Cc: andrew+netdev@lunn.ch, davem@davemloft.net, edumazet@google.com,
kuba@kernel.org, pabeni@redhat.com, horms@kernel.org,
corbet@lwn.net, gur.stavi@huawei.com, maddy@linux.ibm.com,
mpe@ellerman.id.au, danishanwar@ti.com, lee@trager.us,
gongfan1@huawei.com, lorenzo@kernel.org, geert+renesas@glider.be,
Parthiban.Veerasooran@microchip.com, lukas.bulwahn@redhat.com,
alexanderduyck@fb.com, richardcochran@gmail.com,
netdev@vger.kernel.org, linux-doc@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH v5 3/5] net: rnpgbe: Add basic mbx ops support
Date: Thu, 21 Aug 2025 05:06:50 +0200 [thread overview]
Message-ID: <f0c9aee0-0e57-429e-8918-d91bf307018e@lunn.ch> (raw)
In-Reply-To: <6981CF6C1312658E+20250821014411.GB1742451@nic-Precision-5820-Tower>
On Thu, Aug 21, 2025 at 09:44:11AM +0800, Yibo Dong wrote:
> On Wed, Aug 20, 2025 at 10:23:44PM +0200, Andrew Lunn wrote:
> > > +/**
> > > + * mucse_mbx_get_ack - Read ack from reg
> > > + * @mbx: pointer to the MBX structure
> > > + * @reg: register to read
> > > + *
> > > + * @return: the ack value
> > > + **/
> > > +static u16 mucse_mbx_get_ack(struct mucse_mbx_info *mbx, int reg)
> > > +{
> > > + return (mbx_data_rd32(mbx, reg) >> 16);
> > > +}
> >
> > > +static int mucse_check_for_ack_pf(struct mucse_hw *hw)
> > > +{
> > > + struct mucse_mbx_info *mbx = &hw->mbx;
> > > + u16 hw_fw_ack;
> > > +
> > > + hw_fw_ack = mucse_mbx_get_ack(mbx, MBX_FW2PF_COUNTER);
> >
> > > +int mucse_write_mbx_pf(struct mucse_hw *hw, u32 *msg, u16 size)
> > > +{
> > > + struct mucse_mbx_info *mbx = &hw->mbx;
> > > + int size_inwords = size / 4;
> > > + u32 ctrl_reg;
> > > + int ret;
> > > + int i;
> > > +
> > > + ctrl_reg = PF2FW_MBOX_CTRL(mbx);
> > > + ret = mucse_obtain_mbx_lock_pf(hw);
> > > + if (ret)
> > > + return ret;
> > > +
> > > + for (i = 0; i < size_inwords; i++)
> > > + mbx_data_wr32(mbx, MBX_FW_PF_SHM_DATA + i * 4, msg[i]);
> > > +
> > > + /* flush msg and acks as we are overwriting the message buffer */
> > > + hw->mbx.fw_ack = mucse_mbx_get_ack(mbx, MBX_FW2PF_COUNTER);
> >
> > It seems like the ACK is always at MBX_FW2PF_COUNTER. So why pass it
> > to mucse_mbx_get_ack()? Please look at your other getters and setters.
> >
>
> 'mucse_mbx_get_ack' is always at MBX_FW2PF_COUNTER now, just for pf-fw mbx.
> But, in the future, there will be pf-vf mbx with different input.
> Should I move 'MBX_FW2PF_COUNTER' to function 'mucse_mbx_get_ack', and
> update the function when I add vf relative code in the future?
Maybe add mucse_mbx_get_pf_ack() so you can later add
mucse_mbx_get_vf_ack()?
The problem is, our crystal ball about what will come next is not very
good. So we review the code we see now, and make comments about it
now. You can add comments explaining why something is the way it is
because in the future it needs to be more generic to handle additional
use cases, etc. Or explain in the commit message.
Andrew
next prev parent reply other threads:[~2025-08-21 3:07 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-18 11:28 [PATCH v5 0/5] Add driver for 1Gbe network chips from MUCSE Dong Yibo
2025-08-18 11:28 ` [PATCH v5 1/5] net: rnpgbe: Add build support for rnpgbe Dong Yibo
2025-08-20 20:06 ` Andrew Lunn
2025-08-21 1:29 ` Yibo Dong
2025-08-21 3:00 ` Andrew Lunn
2025-08-18 11:28 ` [PATCH v5 2/5] net: rnpgbe: Add n500/n210 chip support Dong Yibo
2025-08-19 13:59 ` Vadim Fedorenko
2025-08-20 1:43 ` Yibo Dong
2025-08-20 20:10 ` Andrew Lunn
2025-08-21 1:53 ` Yibo Dong
2025-08-20 20:16 ` Andrew Lunn
2025-08-21 1:54 ` Yibo Dong
2025-08-18 11:28 ` [PATCH v5 3/5] net: rnpgbe: Add basic mbx ops support Dong Yibo
2025-08-20 20:23 ` Andrew Lunn
2025-08-21 1:44 ` Yibo Dong
2025-08-21 3:06 ` Andrew Lunn [this message]
2025-08-21 3:51 ` Yibo Dong
2025-08-18 11:28 ` [PATCH v5 4/5] net: rnpgbe: Add basic mbx_fw support Dong Yibo
2025-08-20 20:30 ` Andrew Lunn
2025-08-21 2:04 ` Yibo Dong
2025-08-20 20:37 ` Andrew Lunn
2025-08-21 2:49 ` Yibo Dong
2025-08-21 3:13 ` Andrew Lunn
2025-08-21 3:32 ` Yibo Dong
2025-08-22 19:52 ` Andrew Lunn
2025-08-23 1:12 ` Yibo Dong
2025-08-18 11:28 ` [PATCH v5 5/5] net: rnpgbe: Add register_netdev Dong Yibo
2025-08-20 20:42 ` Andrew Lunn
2025-08-21 3:43 ` Yibo Dong
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=f0c9aee0-0e57-429e-8918-d91bf307018e@lunn.ch \
--to=andrew@lunn.ch \
--cc=Parthiban.Veerasooran@microchip.com \
--cc=alexanderduyck@fb.com \
--cc=andrew+netdev@lunn.ch \
--cc=corbet@lwn.net \
--cc=danishanwar@ti.com \
--cc=davem@davemloft.net \
--cc=dong100@mucse.com \
--cc=edumazet@google.com \
--cc=geert+renesas@glider.be \
--cc=gongfan1@huawei.com \
--cc=gur.stavi@huawei.com \
--cc=horms@kernel.org \
--cc=kuba@kernel.org \
--cc=lee@trager.us \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lorenzo@kernel.org \
--cc=lukas.bulwahn@redhat.com \
--cc=maddy@linux.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=richardcochran@gmail.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
all inboxes | Powered by JetHome®