[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4fc4c81f-8fe7-a641-c906-df0af2a63749@gmail.com>
Date: Tue, 1 Oct 2019 20:37:50 +0200
From: Heiner Kallweit <hkallweit1@...il.com>
To: Oleksij Rempel <o.rempel@...gutronix.de>,
Andrew Lunn <andrew@...n.ch>,
Florian Fainelli <f.fainelli@...il.com>
Cc: Pengutronix Kernel Team <kernel@...gutronix.de>,
"David S. Miller" <davem@...emloft.net>, netdev@...r.kernel.org,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 1/3] net: phy: at803x: use PHY_ID_MATCH_EXACT for IDs
On 01.10.2019 08:08, Oleksij Rempel wrote:
> Use exact match for all IDs. We have no sanity checks, so we can peek
> a device with no exact ID and different register layout.
>
I think it would be better to use PHY_ID_MATCH_EXACT for the newly
added AR9331 only. The mask 0xffffffef for the other Atheros PHY's
may be there for a reason. In this case other PHY's matching the
mask would be silently switched to the genphy driver and may
misbehave.
> Suggested-by: Heiner Kallweit <hkallweit1@...il.com>
> Signed-off-by: Oleksij Rempel <o.rempel@...gutronix.de>
> ---
> drivers/net/phy/at803x.c | 13 ++++---------
> 1 file changed, 4 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/phy/at803x.c b/drivers/net/phy/at803x.c
> index 6ad8b1c63c34..7895dbe600ac 100644
> --- a/drivers/net/phy/at803x.c
> +++ b/drivers/net/phy/at803x.c
> @@ -364,9 +364,8 @@ static int at803x_aneg_done(struct phy_device *phydev)
> static struct phy_driver at803x_driver[] = {
> {
> /* ATHEROS 8035 */
> - .phy_id = ATH8035_PHY_ID,
> + PHY_ID_MATCH_EXACT(ATH8035_PHY_ID),
> .name = "Atheros 8035 ethernet",
> - .phy_id_mask = AT803X_PHY_ID_MASK,
> .probe = at803x_probe,
> .config_init = at803x_config_init,
> .set_wol = at803x_set_wol,
> @@ -378,9 +377,8 @@ static struct phy_driver at803x_driver[] = {
> .config_intr = at803x_config_intr,
> }, {
> /* ATHEROS 8030 */
> - .phy_id = ATH8030_PHY_ID,
> + PHY_ID_MATCH_EXACT(ATH8030_PHY_ID),
> .name = "Atheros 8030 ethernet",
> - .phy_id_mask = AT803X_PHY_ID_MASK,
> .probe = at803x_probe,
> .config_init = at803x_config_init,
> .link_change_notify = at803x_link_change_notify,
> @@ -393,9 +391,8 @@ static struct phy_driver at803x_driver[] = {
> .config_intr = at803x_config_intr,
> }, {
> /* ATHEROS 8031 */
> - .phy_id = ATH8031_PHY_ID,
> + PHY_ID_MATCH_EXACT(ATH8031_PHY_ID),
> .name = "Atheros 8031 ethernet",
> - .phy_id_mask = AT803X_PHY_ID_MASK,
> .probe = at803x_probe,
> .config_init = at803x_config_init,
> .set_wol = at803x_set_wol,
> @@ -411,9 +408,7 @@ static struct phy_driver at803x_driver[] = {
> module_phy_driver(at803x_driver);
>
> static struct mdio_device_id __maybe_unused atheros_tbl[] = {
> - { ATH8030_PHY_ID, AT803X_PHY_ID_MASK },
> - { ATH8031_PHY_ID, AT803X_PHY_ID_MASK },
> - { ATH8035_PHY_ID, AT803X_PHY_ID_MASK },
> + { PHY_ID_MATCH_VENDOR(ATH8030_PHY_ID) },
> { }
> };
>
>
Powered by blists - more mailing lists