From: Paolo Abeni <pabeni@redhat.com>
To: Enguerrand de Ribaucourt
<enguerrand.de-ribaucourt@savoirfairelinux.com>,
netdev@vger.kernel.org
Cc: woojung.huh@microchip.com, davem@davemloft.net,
UNGLinuxDriver@microchip.com
Subject: Re: [PATCH v2] net: lan78xx: prevent LAN88XX specific operations
Date: Tue, 20 Dec 2022 13:45:08 +0100 [thread overview]
Message-ID: <d382c89ca5dc8675ed88efeae62f4adc0e72d6c0.camel@redhat.com> (raw)
In-Reply-To: <20221220113733.714233-1-enguerrand.de-ribaucourt@savoirfairelinux.com>
On Tue, 2022-12-20 at 12:37 +0100, Enguerrand de Ribaucourt wrote:
> Some operations during the cable switch workaround modify the register
> LAN88XX_INT_MASK of the PHY. However, this register is specific to the
> LAN8835 PHY. For instance, if a DP8322I PHY is connected to the LAN7801,
> that register (0x19), corresponds to the LED and MAC address
> configuration, resulting in unapropriate behavior.
>
> Use the generic phy interrupt functions instead.
>
> Fixes: 89b36fb5e532 ("lan78xx: Lan7801 Support for Fixed PHY")
> Reviewed-by: Paolo Abeni <pabeni@redhat.com>;
> Signed-off-by: Enguerrand de Ribaucourt <enguerrand.de-ribaucourt@savoirfairelinux.com>
> ---
> drivers/net/usb/lan78xx.c | 14 +++-----------
> 1 file changed, 3 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
> index f18ab8e220db..65d5d54994ff 100644
> --- a/drivers/net/usb/lan78xx.c
> +++ b/drivers/net/usb/lan78xx.c
> @@ -28,6 +28,7 @@
> #include <linux/phy_fixed.h>
> #include <linux/of_mdio.h>
> #include <linux/of_net.h>
> +#include <linux/phy.h>
> #include "lan78xx.h"
>
> #define DRIVER_AUTHOR "WOOJUNG HUH <woojung.huh@microchip.com>"
> @@ -2123,10 +2124,7 @@ static void lan78xx_link_status_change(struct net_device *net)
> * at forced 100 F/H mode.
> */
> if (!phydev->autoneg && (phydev->speed == 100)) {
> - /* disable phy interrupt */
> - temp = phy_read(phydev, LAN88XX_INT_MASK);
> - temp &= ~LAN88XX_INT_MASK_MDINTPIN_EN_;
> - phy_write(phydev, LAN88XX_INT_MASK, temp);
> + phy_disable_interrupts(phydev);
>
> temp = phy_read(phydev, MII_BMCR);
> temp &= ~(BMCR_SPEED100 | BMCR_SPEED1000);
> @@ -2134,13 +2132,7 @@ static void lan78xx_link_status_change(struct net_device *net)
> temp |= BMCR_SPEED100;
> phy_write(phydev, MII_BMCR, temp); /* set to 100 later */
>
> - /* clear pending interrupt generated while workaround */
> - temp = phy_read(phydev, LAN88XX_INT_STS);
> -
> - /* enable phy interrupt back */
> - temp = phy_read(phydev, LAN88XX_INT_MASK);
> - temp |= LAN88XX_INT_MASK_MDINTPIN_EN_;
> - phy_write(phydev, LAN88XX_INT_MASK, temp);
> + phy_request_interrupt(phydev);
> }
> }
>
Oops, this does not even build... please take your time testing the
code before sending patches to the ML.
Paolo
next prev parent reply other threads:[~2022-12-20 12:47 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-25 22:22 [PATCH 2/2 net] lan78xx: workaround of forced 100 Full/Half duplex mode error Woojung.Huh
2016-04-28 20:36 ` David Miller
2021-01-22 14:19 ` Marc Kleine-Budde
2022-12-16 14:49 ` [PATCH] net: lan78xx: isolate LAN88XX specific operations Enguerrand de Ribaucourt
2022-12-20 9:40 ` Paolo Abeni
2022-12-20 11:37 ` [PATCH v2] net: lan78xx: prevent " Enguerrand de Ribaucourt
2022-12-20 12:41 ` Paolo Abeni
2022-12-20 12:47 ` Enguerrand de Ribaucourt
2022-12-20 12:45 ` Paolo Abeni [this message]
2022-12-20 13:10 ` Enguerrand de Ribaucourt
2022-12-21 16:40 ` kernel test robot
2022-12-20 13:19 ` [PATCH v3 0/3] " Enguerrand de Ribaucourt
2022-12-20 13:19 ` [PATCH v3 1/3] net: phy: add EXPORT_SYMBOL to phy_disable_interrupts() Enguerrand de Ribaucourt
2022-12-20 14:40 ` Heiner Kallweit
2022-12-20 15:02 ` Enguerrand de Ribaucourt
2022-12-20 15:17 ` Andrew Lunn
2022-12-20 15:19 ` Heiner Kallweit
2022-12-20 15:48 ` Enguerrand de Ribaucourt
2022-12-20 16:55 ` Andrew Lunn
2022-12-20 19:43 ` Woojung.Huh
2022-12-21 18:03 ` Yuiko.Oshino
2022-12-20 16:13 ` Russell King (Oracle)
2022-12-20 16:22 ` Enguerrand de Ribaucourt
2022-12-20 16:47 ` AW: " Sven Schuchmann
2022-12-20 13:19 ` [PATCH v3 2/3] net: phy: make phy_enable_interrupts() non-static Enguerrand de Ribaucourt
2022-12-20 13:19 ` [PATCH v3 3/3] net: lan78xx: prevent LAN88XX specific operations Enguerrand de Ribaucourt
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=d382c89ca5dc8675ed88efeae62f4adc0e72d6c0.camel@redhat.com \
--to=pabeni@redhat.com \
--cc=UNGLinuxDriver@microchip.com \
--cc=davem@davemloft.net \
--cc=enguerrand.de-ribaucourt@savoirfairelinux.com \
--cc=netdev@vger.kernel.org \
--cc=woojung.huh@microchip.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;
as well as URLs for NNTP newsgroup(s).