diff mbox series

[net,v2] net: phy: realtek: add support for RTL8366S Gigabit PHY

Message ID 20240725204147.69730-1-mark@mentovai.com (mailing list archive)
State Accepted
Commit 225990c487c1023e7b3aa89beb6a68011fbc0461
Delegated to: Netdev Maintainers
Headers show
Series [net,v2] net: phy: realtek: add support for RTL8366S Gigabit PHY | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 273 this patch: 273
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers success CCed 8 of 8 maintainers
netdev/build_clang success Errors and warnings before: 281 this patch: 281
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 281 this patch: 281
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 13 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0
netdev/contest fail net-next-2024-07-26--03-00 (tests: 706)

Commit Message

Mark Mentovai July 25, 2024, 8:41 p.m. UTC
The PHY built in to the Realtek RTL8366S switch controller was
previously supported by genphy_driver. This PHY does not implement MMD
operations. Since commit 9b01c885be36 ("net: phy: c22: migrate to
genphy_c45_write_eee_adv()"), MMD register reads have been made during
phy_probe to determine EEE support. For genphy_driver, these reads are
transformed into 802.3 annex 22D clause 45-over-clause 22
mmd_phy_indirect operations that perform MII register writes to
MII_MMD_CTRL and MII_MMD_DATA. This overwrites those two MII registers,
which on this PHY are reserved and have another function, rendering the
PHY unusable while so configured.

Proper support for this PHY is restored by providing a phy_driver that
declares MMD operations as unsupported by using the helper functions
provided for that purpose, while remaining otherwise identical to
genphy_driver.

Fixes: 9b01c885be36 ("net: phy: c22: migrate to genphy_c45_write_eee_adv()")
Reported-by: Russell Senior <russell@personaltelco.net>
Closes: https://github.com/openwrt/openwrt/issues/15981
Link: https://github.com/openwrt/openwrt/issues/15739
Signed-off-by: Mark Mentovai <mark@mentovai.com>
---
 drivers/net/phy/realtek.c | 7 +++++++
 1 file changed, 7 insertions(+)

Comments

Maxime Chevallier July 26, 2024, 7:26 a.m. UTC | #1
Hello Mark,

On Thu, 25 Jul 2024 16:41:44 -0400
Mark Mentovai <mark@mentovai.com> wrote:

> The PHY built in to the Realtek RTL8366S switch controller was
> previously supported by genphy_driver. This PHY does not implement MMD
> operations. Since commit 9b01c885be36 ("net: phy: c22: migrate to
> genphy_c45_write_eee_adv()"), MMD register reads have been made during
> phy_probe to determine EEE support. For genphy_driver, these reads are
> transformed into 802.3 annex 22D clause 45-over-clause 22
> mmd_phy_indirect operations that perform MII register writes to
> MII_MMD_CTRL and MII_MMD_DATA. This overwrites those two MII registers,
> which on this PHY are reserved and have another function, rendering the
> PHY unusable while so configured.
> 
> Proper support for this PHY is restored by providing a phy_driver that
> declares MMD operations as unsupported by using the helper functions
> provided for that purpose, while remaining otherwise identical to
> genphy_driver.
> 
> Fixes: 9b01c885be36 ("net: phy: c22: migrate to genphy_c45_write_eee_adv()")
> Reported-by: Russell Senior <russell@personaltelco.net>
> Closes: https://github.com/openwrt/openwrt/issues/15981
> Link: https://github.com/openwrt/openwrt/issues/15739
> Signed-off-by: Mark Mentovai <mark@mentovai.com>

This looks correct to me.

Reviewed-by: Maxime Chevallier <maxime.chevallier@bootlin.com>

Thanks,

Maxime
patchwork-bot+netdevbpf@kernel.org July 26, 2024, 1:30 p.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (main)
by David S. Miller <davem@davemloft.net>:

On Thu, 25 Jul 2024 16:41:44 -0400 you wrote:
> The PHY built in to the Realtek RTL8366S switch controller was
> previously supported by genphy_driver. This PHY does not implement MMD
> operations. Since commit 9b01c885be36 ("net: phy: c22: migrate to
> genphy_c45_write_eee_adv()"), MMD register reads have been made during
> phy_probe to determine EEE support. For genphy_driver, these reads are
> transformed into 802.3 annex 22D clause 45-over-clause 22
> mmd_phy_indirect operations that perform MII register writes to
> MII_MMD_CTRL and MII_MMD_DATA. This overwrites those two MII registers,
> which on this PHY are reserved and have another function, rendering the
> PHY unusable while so configured.
> 
> [...]

Here is the summary with links:
  - [net,v2] net: phy: realtek: add support for RTL8366S Gigabit PHY
    https://git.kernel.org/netdev/net/c/225990c487c1

You are awesome, thank you!
diff mbox series

Patch

diff --git a/drivers/net/phy/realtek.c b/drivers/net/phy/realtek.c
index bed839237fb5..87865918dab6 100644
--- a/drivers/net/phy/realtek.c
+++ b/drivers/net/phy/realtek.c
@@ -1465,6 +1465,13 @@  static struct phy_driver realtek_drvs[] = {
 		.handle_interrupt = genphy_handle_interrupt_no_ack,
 		.suspend	= genphy_suspend,
 		.resume		= genphy_resume,
+	}, {
+		PHY_ID_MATCH_EXACT(0x001cc960),
+		.name		= "RTL8366S Gigabit Ethernet",
+		.suspend	= genphy_suspend,
+		.resume		= genphy_resume,
+		.read_mmd	= genphy_read_mmd_unsupported,
+		.write_mmd	= genphy_write_mmd_unsupported,
 	},
 };