From: netdev-bot+sashiko@kernel.org
To: hsu.chih.kai@realtek.com
Cc: davem@davemloft.net, kuba@kernel.org, netdev@vger.kernel.org,
nic_swsd@realtek.com, linux-kernel@vger.kernel.org,
linux-usb@vger.kernel.org, edumazet@google.com, bjorn@mork.no,
pabeni@redhat.com, andrew+netdev@lunn.ch
Subject: Re: [PATCH net-next v5 1/9] r8152: split r8156_init per chip and add missing init writes
Date: Mon, 05 Oct 2026 09:57:19 +0000 [thread overview]
Message-ID: <179119423934.434549.8623262119068946046@kernel.org> (raw)
In-Reply-To: <20261001091144.28191-2-nic_swsd@realtek.com>
Thank you for your contribution! Sashiko AI review found 1 potential
issue(s) to consider.
Critical: 0 · High: 0 · Medium: 1 · Low: 0
If you believe none of the issues are legitimate, please reply to each
issue of Medium severity or higher and explain why the AI is wrong.
If any of them are legitimate and you plan to respin, please let patchwork
know by including "pw-bot: cr" as a separate line at the end of your reply
(one such reply per series is enough).
- [Medium] This patch is presented as splitting r8156_init() per chip,
but it also changes hardware behaviour for all four chip families, and…
--
r8152: split r8156_init per chip and add missing init writes
This commit splits the shared r8156_init() into separate init functions
for RTL8156, RTL8156B, RTL8157 and RTL8159. It also moves the
AUTOLOAD_DONE polling into a new wait_autoload_done() helper. While
splitting, it adds several new register writes to the per-chip init
paths, including clearing RX_END_TRANSFER_EN on RTL8157.
> diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
> index af3d7dcb2f141..4d8f0815d79d1 100644
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
[ ... ]
> @@ -8421,73 +8444,261 @@ static void r8156_init(struct r8152 *tp)
[ ... ]
> set_bit(GREEN_ETHERNET, &tp->flags);
>
> - /* RX aggregation / 16 bytes RX descriptor
> - * BIT(11) is specific to RTL8159, with unknown meaning
> - */
> - if (tp->version == RTL_VER_17)
> - ocp_word_clr_bits(tp, MCU_TYPE_USB, USB_USB_CTRL,
> - RX_AGG_DISABLE | RX_DESC_16B | BIT(11));
> - else if (tp->version == RTL_VER_16)
> - ocp_word_clr_bits(tp, MCU_TYPE_USB, USB_USB_CTRL, RX_AGG_DISABLE | RX_DESC_16B);
> + ocp_word_clr_bits(tp, MCU_TYPE_USB, USB_USB_CTRL,
> + RX_AGG_DISABLE | RX_ZERO_EN);
[ ... ]
> +static void r8157_init(struct r8152 *tp)
> +{
[ ... ]
> + /* RX aggregation / 16 bytes RX descriptor / Bulk In End transfer */
> + ocp_word_clr_bits(tp, MCU_TYPE_USB, USB_USB_CTRL,
> + RX_AGG_DISABLE | RX_DESC_16B | RX_END_TRANSFER_EN);
[Severity: Medium]
Is this a functional fix for RTL8157 that should go in as its own patch
with a Fixes: tag?
Before this patch, the RTL_VER_16 branch in r8156_init() cleared only
RX_AGG_DISABLE | RX_DESC_16B. BIT(11) was cleared only for RTL_VER_17,
and the comment said its meaning was unknown. r8157_init() now clears
RX_END_TRANSFER_EN as well.
The commit message says that while this bit is set, "Bulk-in transfers
are suspended", and that "the driver must manually clear it to resume
Bulk-in transfers".
That sounds like an RX stall on RTL8157 that goes back to commit
fd3c7d080df5 ("r8152: Add support for the RTL8157 hardware"). This fix
has no Fixes: tag and is part of a refactor touching about 490 lines,
so it seems unlikely to reach net or stable.
Later patches in this series do carry Fixes: tags: "r8152: fix up and
down register settings for RTL8156/8156B/8157/8159" and "r8152: add
rtl8157_unload and rtl8157_change_mtu".
Could this change be sent as a small standalone fix ahead of the split?
The other new hardware writes raise the same question. The commit
message lists them, but it doesn't say what problem or symptom each one
fixes:
PREBOOT_OPTION and RMT_WAKE_EN, cleared in all four init functions
r8156b_u2phy_backup() writing 0xd3ce/0xd3d0/0xd3d4/0xd3d8/0xd3dc
0xcf04 interrupt mitigation disable in r8157_init()/r8159_init()
0xcd06 BIT(11) in r8157_init()/r8159_init()
0xb9a6 BIT(0) and 0xb9a2 = 0x0448 in r8159_init()
Could these be split out, or have their purpose explained? If one of
them causes a regression, a bisect would land on this large mixed
commit.
r8156b_init() also moves the AUTO_SPEEDUP clear. It used to be part of
the USB_FW_CTRL read-modify-write that ran after usb_enable_lpm() and
the flow control setup:
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_FW_CTRL);
...
ocp_data &= ~AUTO_SPEEDUP;
ocp_write_word(tp, MCU_TYPE_USB, USB_FW_CTRL, ocp_data);
Now it runs right after r8153_u2p3en():
r8153_u2p3en(tp, false);
/* Disable Auto Speed up */
ocp_word_clr_bits(tp, MCU_TYPE_USB, USB_FW_CTRL, AUTO_SPEEDUP);
That is before the MSC timer, r8156b_u2phy_backup(), power-cut, UPS and
LPM setup. Is this reordering intended for RTL8156B? The commit message
doesn't mention it.
--
Sashiko AI review · https://netdev-ai.bots.linux.dev/sashiko/#/patchset/20261001091144.28191-1-nic_swsd%40realtek.com
next prev parent reply other threads:[~2026-10-05 9:57 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-01 9:11 [PATCH net-next v5 0/9] r8152: refactor and extend RTL8157/8159 support Chih Kai Hsu
2026-10-01 9:11 ` [PATCH net-next v5 1/9] r8152: split r8156_init per chip and add missing init writes Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko [this message]
2026-10-01 9:11 ` [PATCH net-next v5 2/9] r8152: split RTL_VER_17 into QFN68 and QFN100 package variants Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko
2026-10-01 9:11 ` [PATCH net-next v5 3/9] r8152: split rtl8156_enable/up/down into per-chip-family functions Chih Kai Hsu
2026-10-01 9:11 ` [PATCH net-next v5 4/9] r8152: fix up and down register settings for RTL8156/8156B/8157/8159 Chih Kai Hsu
2026-10-01 9:11 ` [PATCH net-next v5 5/9] r8152: split r8157_hw_phy_cfg into RTL8157 and RTL8159 variants Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko
2026-10-01 9:11 ` [PATCH net-next v5 6/9] r8152: add rtl8157_unload and rtl8157_change_mtu Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko
2026-10-01 9:11 ` [PATCH net-next v5 7/9] r8152: add TGPHY register access for RTL8157 and RTL8159 Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko
2026-10-01 9:11 ` [PATCH net-next v5 8/9] r8152: extract rtl_fc_pause_pkt_en() and apply it to RTL8156/8157/8159 Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko
2026-10-01 9:11 ` [PATCH net-next v5 9/9] r8152: enable UPS for RTL8157 and RTL8159 QFN68 Chih Kai Hsu
2026-10-05 9:57 ` netdev-bot+sashiko
2026-10-01 9:13 ` [PATCH net-next v5 0/9] r8152: refactor and extend RTL8157/8159 support netdev-bot+sinfo
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=179119423934.434549.8623262119068946046@kernel.org \
--to=netdev-bot+sashiko@kernel.org \
--cc=andrew+netdev@lunn.ch \
--cc=bjorn@mork.no \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=hsu.chih.kai@realtek.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-usb@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nic_swsd@realtek.com \
--cc=pabeni@redhat.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®