From: "Frank.Sae" <Frank.Sae@motor-comm.com>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Peter Geis <pgwipeout@gmail.com>,
Heiner Kallweit <hkallweit1@gmail.com>,
Russell King <linux@armlinux.org.uk>,
"David S . Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
xiaogang.fan@motor-comm.com, fei.zhang@motor-comm.com,
hua.sun@motor-comm.com, netdev@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH net-next v2 5/5] net: phy: Add driver for Motorcomm yt8531 gigabit ethernet phy
Date: Sun, 29 Jan 2023 09:56:09 +0800 [thread overview]
Message-ID: <3fc60e9f-b688-8aaa-a112-ca100815a69d@motor-comm.com> (raw)
In-Reply-To: <Y9VCfkzjHBDjXmet@lunn.ch>
Hi Andrew,
On 2023/1/28 23:42, Andrew Lunn wrote:
> On Sat, Jan 28, 2023 at 11:13:14AM +0800, Frank Sae wrote:
>> Add a driver for the motorcomm yt8531 gigabit ethernet phy. We have
>> verified the driver on AM335x platform with yt8531 board. On the
>> board, yt8531 gigabit ethernet phy works in utp mode, RGMII
>> interface, supports 1000M/100M/10M speeds, and wol(magic package).
>>
>> Signed-off-by: Frank Sae <Frank.Sae@motor-comm.com>
>> ---
>> drivers/net/phy/Kconfig | 2 +-
>> drivers/net/phy/motorcomm.c | 204 +++++++++++++++++++++++++++++++++++-
>> 2 files changed, 203 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
>> index f5df2edc94a5..dc2f7d0b0cd8 100644
>> --- a/drivers/net/phy/Kconfig
>> +++ b/drivers/net/phy/Kconfig
>> @@ -257,7 +257,7 @@ config MOTORCOMM_PHY
>> tristate "Motorcomm PHYs"
>> help
>> Enables support for Motorcomm network PHYs.
>> - Currently supports the YT8511, YT8521, YT8531S Gigabit Ethernet PHYs.
>> + Currently supports the YT8511, YT8521, YT8531, YT8531S Gigabit Ethernet PHYs.
>
> This is O.K. for now, but when you add the next PHY, please do this in
> some other way, because it does not scale. Maybe just say YT85xx?
>
>>
>> config NATIONAL_PHY
>> tristate "National Semiconductor PHYs"
>> diff --git a/drivers/net/phy/motorcomm.c b/drivers/net/phy/motorcomm.c
>> index 9559fc52814f..f1fc912738e0 100644
>> --- a/drivers/net/phy/motorcomm.c
>> +++ b/drivers/net/phy/motorcomm.c
>> @@ -1,6 +1,6 @@
>> // SPDX-License-Identifier: GPL-2.0+
>> /*
>> - * Motorcomm 8511/8521/8531S PHY driver.
>> + * Motorcomm 8511/8521/8531/8531S PHY driver.
>> *
>> * Author: Peter Geis <pgwipeout@gmail.com>
>> * Author: Frank <Frank.Sae@motor-comm.com>
>> @@ -14,6 +14,7 @@
>>
>> #define PHY_ID_YT8511 0x0000010a
>> #define PHY_ID_YT8521 0x0000011A
>> +#define PHY_ID_YT8531 0x4f51e91b
>> #define PHY_ID_YT8531S 0x4F51E91A
>>
>> /* YT8521/YT8531S Register Overview
>> @@ -517,6 +518,68 @@ static int ytphy_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol)
>> return phy_restore_page(phydev, old_page, ret);
>> }
>>
>> +static int yt8531_set_wol(struct phy_device *phydev,
>> + struct ethtool_wolinfo *wol)
>> +{
>> + struct net_device *p_attached_dev;
>> + const u16 mac_addr_reg[] = {
>> + YTPHY_WOL_MACADDR2_REG,
>> + YTPHY_WOL_MACADDR1_REG,
>> + YTPHY_WOL_MACADDR0_REG,
>> + };
>> + const u8 *mac_addr;
>> + u16 mask, val;
>> + int ret;
>> + u8 i;
>> +
>> + if (wol->wolopts & WAKE_MAGIC) {
>> + p_attached_dev = phydev->attached_dev;
>> + if (!p_attached_dev)
>> + return -ENODEV;
>> +
>> + mac_addr = (const u8 *)p_attached_dev->dev_addr;
>> + if (!is_valid_ether_addr(mac_addr))
>> + return -EINVAL;
>
> Have you ever seen that happen? It suggests the MAC driver has a bug,
> not validating its MAC address.
I have never seen that happen.
Do you mean that I should change the code from
+ if (wol->wolopts & WAKE_MAGIC) {
+ p_attached_dev = phydev->attached_dev;
+ if (!p_attached_dev)
+ return -ENODEV;
+
+ mac_addr = (const u8 *)p_attached_dev->dev_addr;
+ if (!is_valid_ether_addr(mac_addr))
+ return -EINVAL;
to
+ if (wol->wolopts & WAKE_MAGIC) {
+ mac_addr = phydev->attached_dev->dev_addr;
?
> Also, does the PHY actually care? Will the firmware crash if given a
> bad MAC address?
>
The PHY actually is not care this. The firmware is not crash if given a
bad MAC address.
> Andrew
prev parent reply other threads:[~2023-01-29 1:55 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-28 3:13 [PATCH net-next v2 0/5] add dts for yt8521 and yt8531s, add driver for yt8531 Frank Sae
2023-01-28 3:13 ` [PATCH net-next v2 1/5] dt-bindings: net: Add Motorcomm yt8xxx ethernet phy Frank Sae
2023-01-28 15:05 ` Andrew Lunn
2023-01-31 18:25 ` Krzysztof Kozlowski
2023-01-28 3:13 ` [PATCH net-next v2 2/5] net: phy: Add BIT macro for Motorcomm yt8521/yt8531 gigabit " Frank Sae
2023-01-28 15:10 ` Andrew Lunn
2023-01-28 3:13 ` [PATCH net-next v2 3/5] net: phy: Add dts support for Motorcomm yt8521 " Frank Sae
2023-01-28 15:15 ` Andrew Lunn
2023-01-28 3:13 ` [PATCH net-next v2 4/5] net: phy: Add dts support for Motorcomm yt8531s " Frank Sae
2023-01-28 15:35 ` Andrew Lunn
2023-01-28 3:13 ` [PATCH net-next v2 5/5] net: phy: Add driver for Motorcomm yt8531 " Frank Sae
2023-01-28 15:42 ` Andrew Lunn
2023-01-29 1:56 ` Frank.Sae [this message]
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=3fc60e9f-b688-8aaa-a112-ca100815a69d@motor-comm.com \
--to=frank.sae@motor-comm.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fei.zhang@motor-comm.com \
--cc=hkallweit1@gmail.com \
--cc=hua.sun@motor-comm.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=pgwipeout@gmail.com \
--cc=xiaogang.fan@motor-comm.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®