From: Luis Henriques <luis.henriques@canonical.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: stable@vger.kernel.org, David Miller <davem@davemloft.net>,
Michel Stam <m.stam@fugro.nl>,
Charles Keepax <ckeepax@opensource.wolfsonmicro.com>,
Riku Voipio <riku.voipio@linaro.org>,
netdev@vger.kernel.org
Subject: Re: Please backport asix (USB Ethernet) fixes
Date: Mon, 19 Oct 2015 11:22:48 +0100 [thread overview]
Message-ID: <20151019102248.GC3424@ares> (raw)
In-Reply-To: <1444061376.5302.21.camel@citrix.com>
On Mon, Oct 05, 2015 at 05:09:36PM +0100, Ian Campbell wrote:
> Hi David + stable@,
>
> Please could these two be backported:
> 3cc81d85ee01 "asix: Don't reset PHY on if_up for ASIX 88772"
> 436c2a5036b6 "asix: Do full reset during ax88772_bind"
>
> 3cc81d85ee01 was in v3.18-rc1 while 436c2a5036b6 was in v3.18-rc5 so both
> should be backported to anything older which still has active longterm
> support, please.
>
> Our automated test is occasionally tripping over a failure to achieve link
> on the arndale board with 3.16 (both the Debian Jessie kernel used at host
> install time and the 3.16 kernel under test), reporting lots of this:
> Oct 4 02:01:17.077037 [ 411.069293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:21.037081 [ 414.525294] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:24.493057 [ 419.773293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:29.741083 [ 423.229292] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:33.197066 [ 426.685292] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:36.653128 [ 430.141291] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:40.109050 [ 440.765293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:50.733034 [ 446.141292] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:56.109092 [ 471.614170] asix 2-3.2.4:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1
> Oct 4 02:02:21.581182 [ 486.973293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:02:36.941033 [ 803.390169] asix 2-3.2.4:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1
> Oct 4 02:07:53.353184 [ 805.182045] asix 2-3.2.4:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1
> Oct 4 02:07:55.145152 [ 818.109291] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:08:08.073064 [ 825.149291] asix 2-3.2.4:1.0 eth0: link down
>
> It appears that we no longer see this in 3.18 (although they still use
> Debian's 3.16 at install time, which obscures things a little in the data
> mining). These are the only commits to this driver between 3.16 and 3.18
> and they sound like they might plausibly fix this.
>
Thanks Ian, I'm queuing these 2 commits for the 3.16 kernel.
Cheers,
--
Luís
> Thanks,
>
> Ian.
>
> commit 3cc81d85ee01e5a0b7ea2f4190e2ed1165f53c31
> Author: Michel Stam <m.stam@fugro.nl>
> Date: Thu Oct 2 10:22:02 2014 +0200
>
> asix: Don't reset PHY on if_up for ASIX 88772
>
> I've noticed every time the interface is set to 'up,', the kernel
> reports that the link speed is set to 100 Mbps/Full Duplex, even
> when ethtool is used to set autonegotiation to 'off', half
> duplex, 10 Mbps.
> It can be tested by:
> ifconfig eth0 down
> ethtool -s eth0 autoneg off speed 10 duplex half
> ifconfig eth0 up
>
> Then checking 'dmesg' for the link speed.
>
> Signed-off-by: Michel Stam <m.stam@fugro.nl>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
> index 5d19409..2c05f6c 100644
> --- a/drivers/net/usb/asix_devices.c
> +++ b/drivers/net/usb/asix_devices.c
> @@ -890,7 +890,7 @@ static const struct driver_info ax88772_info = {
> .unbind = ax88772_unbind,
> .status = asix_status,
> .link_reset = ax88772_link_reset,
> - .reset = ax88772_reset,
> + .reset = ax88772_link_reset,
> .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR | FLAG_MULTI_PACKET,
> .rx_fixup = asix_rx_fixup_common,
> .tx_fixup = asix_tx_fixup,
>
> commit 436c2a5036b6ffe813310df2cf327d3b69be0734
> Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> Date: Thu Nov 6 15:49:41 2014 +0000
>
> asix: Do full reset during ax88772_bind
>
> commit 3cc81d85ee01 ("asix: Don't reset PHY on if_up for ASIX 88772")
> causes the ethernet on Arndale to no longer function. This appears to
> be because the Arndale ethernet requires a full reset before it will
> function correctly, however simply reverting the above patch causes
> problems with ethtool settings getting reset.
>
> It seems the problem is that the ethernet is not properly reset during
> bind, and indeed the code in ax88772_bind that resets the device is a
> very small subset of the actual ax88772_reset function. This patch uses
> ax88772_reset in place of the existing reset code in ax88772_bind which
> removes some code duplication and fixes the ethernet on Arndale.
>
> It is still possible that the original patch causes some issues with
> suspend and resume but that seems like a separate issue and I haven't
> had a chance to test that yet.
>
> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> Tested-by: Riku Voipio <riku.voipio@linaro.org>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
> index 2c05f6c..816d511 100644
> --- a/drivers/net/usb/asix_devices.c
> +++ b/drivers/net/usb/asix_devices.c
> @@ -465,19 +465,7 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
> return ret;
> }
>
> - ret = asix_sw_reset(dev, AX_SWRESET_IPPD | AX_SWRESET_PRL);
> - if (ret < 0)
> - return ret;
> -
> - msleep(150);
> -
> - ret = asix_sw_reset(dev, AX_SWRESET_CLEAR);
> - if (ret < 0)
> - return ret;
> -
> - msleep(150);
> -
> - ret = asix_sw_reset(dev, embd_phy ? AX_SWRESET_IPRL : AX_SWRESET_PRTE);
> + ax88772_reset(dev);
>
> /* Read PHYID register *AFTER* the PHY was reset properly */
> phyid = asix_get_phyid(dev);
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Luis Henriques <luis.henriques@canonical.com>
To: Ian Campbell <ian.campbell@citrix.com>
Cc: stable@vger.kernel.org, David Miller <davem@davemloft.net>,
Michel Stam <m.stam@fugro.nl>,
Charles Keepax <ckeepax@opensource.wolfsonmicro.com>,
Riku Voipio <riku.voipio@linaro.org>,
netdev@vger.kernel.org
Subject: Re: [STABLE] Please backport asix (USB Ethernet) fixes
Date: Mon, 19 Oct 2015 11:22:48 +0100 [thread overview]
Message-ID: <20151019102248.GC3424@ares> (raw)
In-Reply-To: <1444061376.5302.21.camel@citrix.com>
On Mon, Oct 05, 2015 at 05:09:36PM +0100, Ian Campbell wrote:
> Hi David + stable@,
>
> Please could these two be backported:
> 3cc81d85ee01 "asix: Don't reset PHY on if_up for ASIX 88772"
> 436c2a5036b6 "asix: Do full reset during ax88772_bind"
>
> 3cc81d85ee01 was in v3.18-rc1 while 436c2a5036b6 was in v3.18-rc5 so both
> should be backported to anything older which still has active longterm
> support, please.
>
> Our automated test is occasionally tripping over a failure to achieve link
> on the arndale board with 3.16 (both the Debian Jessie kernel used at host
> install time and the 3.16 kernel under test), reporting lots of this:
> Oct 4 02:01:17.077037 [ 411.069293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:21.037081 [ 414.525294] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:24.493057 [ 419.773293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:29.741083 [ 423.229292] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:33.197066 [ 426.685292] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:36.653128 [ 430.141291] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:40.109050 [ 440.765293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:50.733034 [ 446.141292] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:01:56.109092 [ 471.614170] asix 2-3.2.4:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1
> Oct 4 02:02:21.581182 [ 486.973293] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:02:36.941033 [ 803.390169] asix 2-3.2.4:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1
> Oct 4 02:07:53.353184 [ 805.182045] asix 2-3.2.4:1.0 eth0: link up, 100Mbps, full-duplex, lpa 0xC1E1
> Oct 4 02:07:55.145152 [ 818.109291] asix 2-3.2.4:1.0 eth0: link down
> Oct 4 02:08:08.073064 [ 825.149291] asix 2-3.2.4:1.0 eth0: link down
>
> It appears that we no longer see this in 3.18 (although they still use
> Debian's 3.16 at install time, which obscures things a little in the data
> mining). These are the only commits to this driver between 3.16 and 3.18
> and they sound like they might plausibly fix this.
>
Thanks Ian, I'm queuing these 2 commits for the 3.16 kernel.
Cheers,
--
Lu�s
> Thanks,
>
> Ian.
>
> commit 3cc81d85ee01e5a0b7ea2f4190e2ed1165f53c31
> Author: Michel Stam <m.stam@fugro.nl>
> Date: Thu Oct 2 10:22:02 2014 +0200
>
> asix: Don't reset PHY on if_up for ASIX 88772
>
> I've noticed every time the interface is set to 'up,', the kernel
> reports that the link speed is set to 100 Mbps/Full Duplex, even
> when ethtool is used to set autonegotiation to 'off', half
> duplex, 10 Mbps.
> It can be tested by:
> ifconfig eth0 down
> ethtool -s eth0 autoneg off speed 10 duplex half
> ifconfig eth0 up
>
> Then checking 'dmesg' for the link speed.
>
> Signed-off-by: Michel Stam <m.stam@fugro.nl>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
> index 5d19409..2c05f6c 100644
> --- a/drivers/net/usb/asix_devices.c
> +++ b/drivers/net/usb/asix_devices.c
> @@ -890,7 +890,7 @@ static const struct driver_info ax88772_info = {
> .unbind = ax88772_unbind,
> .status = asix_status,
> .link_reset = ax88772_link_reset,
> - .reset = ax88772_reset,
> + .reset = ax88772_link_reset,
> .flags = FLAG_ETHER | FLAG_FRAMING_AX | FLAG_LINK_INTR | FLAG_MULTI_PACKET,
> .rx_fixup = asix_rx_fixup_common,
> .tx_fixup = asix_tx_fixup,
>
> commit 436c2a5036b6ffe813310df2cf327d3b69be0734
> Author: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> Date: Thu Nov 6 15:49:41 2014 +0000
>
> asix: Do full reset during ax88772_bind
>
> commit 3cc81d85ee01 ("asix: Don't reset PHY on if_up for ASIX 88772")
> causes the ethernet on Arndale to no longer function. This appears to
> be because the Arndale ethernet requires a full reset before it will
> function correctly, however simply reverting the above patch causes
> problems with ethtool settings getting reset.
>
> It seems the problem is that the ethernet is not properly reset during
> bind, and indeed the code in ax88772_bind that resets the device is a
> very small subset of the actual ax88772_reset function. This patch uses
> ax88772_reset in place of the existing reset code in ax88772_bind which
> removes some code duplication and fixes the ethernet on Arndale.
>
> It is still possible that the original patch causes some issues with
> suspend and resume but that seems like a separate issue and I haven't
> had a chance to test that yet.
>
> Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com>
> Tested-by: Riku Voipio <riku.voipio@linaro.org>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
> index 2c05f6c..816d511 100644
> --- a/drivers/net/usb/asix_devices.c
> +++ b/drivers/net/usb/asix_devices.c
> @@ -465,19 +465,7 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
> return ret;
> }
>
> - ret = asix_sw_reset(dev, AX_SWRESET_IPPD | AX_SWRESET_PRL);
> - if (ret < 0)
> - return ret;
> -
> - msleep(150);
> -
> - ret = asix_sw_reset(dev, AX_SWRESET_CLEAR);
> - if (ret < 0)
> - return ret;
> -
> - msleep(150);
> -
> - ret = asix_sw_reset(dev, embd_phy ? AX_SWRESET_IPRL : AX_SWRESET_PRTE);
> + ax88772_reset(dev);
>
> /* Read PHYID register *AFTER* the PHY was reset properly */
> phyid = asix_get_phyid(dev);
> --
> To unsubscribe from this list: send the line "unsubscribe stable" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-10-19 10:22 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-05 16:09 Please backport asix (USB Ethernet) fixes Ian Campbell
2015-10-05 16:09 ` [STABLE] " Ian Campbell
2015-10-19 10:22 ` Luis Henriques [this message]
2015-10-19 10:22 ` Luis Henriques
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=20151019102248.GC3424@ares \
--to=luis.henriques@canonical.com \
--cc=ckeepax@opensource.wolfsonmicro.com \
--cc=davem@davemloft.net \
--cc=ian.campbell@citrix.com \
--cc=m.stam@fugro.nl \
--cc=netdev@vger.kernel.org \
--cc=riku.voipio@linaro.org \
--cc=stable@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.