All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Fainelli <f.fainelli@gmail.com>
To: Woojung.Huh@microchip.com, davem@davemloft.net
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH net] lan78xx: changed to use updated phy-ignore-interrupts
Date: Fri, 22 Jan 2016 19:33:40 -0800	[thread overview]
Message-ID: <56A2F494.50900@gmail.com> (raw)
In-Reply-To: <9235D6609DB808459E95D78E17F2E43D4049C34C@CHN-SV-EXMX02.mchp-main.com>

On 21/01/2016 12:15, Woojung.Huh@microchip.com wrote:
> Update lan78xx to use patch of commit 4f2aaf7dd95b
> ("Merge branch 'fix-phy-ignore-interrupts'")

Looks fine, just one nit below:

> 
> Signed-off-by: Woojung Huh <woojung.huh@microchip.com>
> ---
>  drivers/net/usb/lan78xx.c | 28 ++++++++++++++--------------
>  1 file changed, 14 insertions(+), 14 deletions(-)
> 
> diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
> index 2ed5333..85ca7de 100644
> --- a/drivers/net/usb/lan78xx.c
> +++ b/drivers/net/usb/lan78xx.c
> @@ -36,7 +36,7 @@
>  #define DRIVER_AUTHOR	"WOOJUNG HUH <woojung.huh@microchip.com>"
>  #define DRIVER_DESC	"LAN78XX USB 3.0 Gigabit Ethernet Devices"
>  #define DRIVER_NAME	"lan78xx"
> -#define DRIVER_VERSION	"1.0.1"
> +#define DRIVER_VERSION	"1.0.2"
>  
>  #define TX_TIMEOUT_JIFFIES		(5 * HZ)
>  #define THROTTLE_JIFFIES		(HZ / 8)
> @@ -914,6 +914,8 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
>  		ret = lan78xx_write_reg(dev, MAC_CR, buf);
>  		if (unlikely(ret < 0))
>  			return -EIO;
> +
> +		phy_mac_interrupt(phydev, 0);
>  	} else if (phydev->link && !dev->link_on) {
>  		dev->link_on = true;
>  
> @@ -954,6 +956,7 @@ static int lan78xx_link_reset(struct lan78xx_net *dev)
>  
>  		ret = lan78xx_update_flowcontrol(dev, ecmd.duplex, ladv, radv);
>  		netif_carrier_on(dev->net);

Do you need this netif_carrier_on() call here? PHYLIB should set that
already.

> +		phy_mac_interrupt(phydev, 1);
>  	}
>  
>  	return ret;
> @@ -1495,7 +1498,6 @@ done:
>  static int lan78xx_mdio_init(struct lan78xx_net *dev)
>  {
>  	int ret;
> -	int i;
>  
>  	dev->mdiobus = mdiobus_alloc();
>  	if (!dev->mdiobus) {
> @@ -1511,10 +1513,6 @@ static int lan78xx_mdio_init(struct lan78xx_net *dev)
>  	snprintf(dev->mdiobus->id, MII_BUS_ID_SIZE, "usb-%03d:%03d",
>  		 dev->udev->bus->busnum, dev->udev->devnum);
>  
> -	/* handle our own interrupt */
> -	for (i = 0; i < PHY_MAX_ADDR; i++)
> -		dev->mdiobus->irq[i] = PHY_IGNORE_INTERRUPT;
> -
>  	switch (dev->devid & ID_REV_CHIP_ID_MASK_) {
>  	case 0x78000000:
>  	case 0x78500000:
> @@ -1558,6 +1556,16 @@ static int lan78xx_phy_init(struct lan78xx_net *dev)
>  		return -EIO;
>  	}
>  
> +	/* Enable PHY interrupts.
> +	 * We handle our own interrupt
> +	 */
> +	ret = phy_read(phydev, LAN88XX_INT_STS);
> +	ret = phy_write(phydev, LAN88XX_INT_MASK,
> +			LAN88XX_INT_MASK_MDINTPIN_EN_ |
> +			LAN88XX_INT_MASK_LINK_CHANGE_);
> +
> +	phydev->irq = PHY_IGNORE_INTERRUPT;
> +
>  	ret = phy_connect_direct(dev->net, phydev,
>  				 lan78xx_link_status_change,
>  				 PHY_INTERFACE_MODE_GMII);
> @@ -1580,14 +1588,6 @@ static int lan78xx_phy_init(struct lan78xx_net *dev)
>  			      SUPPORTED_Pause | SUPPORTED_Asym_Pause);
>  	genphy_config_aneg(phydev);
>  
> -	/* Workaround to enable PHY interrupt.
> -	 * phy_start_interrupts() is API for requesting and enabling
> -	 * PHY interrupt. However, USB-to-Ethernet device can't use
> -	 * request_irq() called in phy_start_interrupts().
> -	 * Set PHY to PHY_HALTED and call phy_start()
> -	 * to make a call to phy_enable_interrupts()
> -	 */
> -	phy_stop(phydev);
>  	phy_start(phydev);
>  
>  	netif_dbg(dev, ifup, dev->net, "phy initialised successfully");
> 

  reply	other threads:[~2016-01-23  3:33 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-21 20:15 [PATCH net] lan78xx: changed to use updated phy-ignore-interrupts Woojung.Huh
2016-01-23  3:33 ` Florian Fainelli [this message]
2016-01-25 16:26   ` Woojung.Huh

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=56A2F494.50900@gmail.com \
    --to=f.fainelli@gmail.com \
    --cc=Woojung.Huh@microchip.com \
    --cc=davem@davemloft.net \
    --cc=netdev@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.