mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: "ASIX_Allan [Office]" <allan@asix.com.tw>
To: "'Jon Hunter'" <jonathanh@nvidia.com>,
	<robert.foss@collabora.com>, <freddy@asix.com.tw>,
	<Dean_Jenkins@mentor.com>, <Mark_Craske@mentor.com>,
	<davem@davemloft.net>, <ivecera@redhat.com>,
	<john.stultz@linaro.org>, <vpalatin@chromium.org>,
	<stephen@networkplumber.org>, <grundler@chromium.org>,
	<changchias@gmail.com>, <andrew@lunn.ch>, <tremyfr@gmail.com>,
	<colin.king@canonical.com>, <linux-usb@vger.kernel.org>,
	<netdev@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
	<vpalatin@google.com>
Subject: RE: [PATCH v3 3/5] net: asix: Fix AX88772x resume failures
Date: Tue, 29 Nov 2016 16:54:28 +0800	[thread overview]
Message-ID: <014301d24a1e$34513fe0$9cf3bfa0$@asix.com.tw> (raw)
In-Reply-To: <6aebd7f5-188a-f6b0-7eb0-75b764e069d3@nvidia.com>

Dear Jon ,

We can reproduce your issue on x86 Linux kernel 4.9.0-rc system in our site
and modified the following code can fix this issue. Please let us know if
you still have problems. Thanks a lot.

static void ax88772_suspend(struct usbnet *dev)
{
        struct asix_common_private *priv = dev->driver_priv;
        u16 medium;

        /* Stop MAC operation */
-       medium = asix_read_medium_status(dev, 0);
+      medium = asix_read_medium_status(dev, 1);
        medium &= ~AX_MEDIUM_RE;
-       asix_write_medium_mode(dev, medium, 0);
+      asix_write_medium_mode(dev, medium, 1);

        netdev_dbg(dev->net, "ax88772_suspend: medium=0x%04x\n",
-                  asix_read_medium_status(dev, 0));
+                 asix_read_medium_status(dev, 1));

        /* Preserve BMCR for restoring */
        priv->presvd_phy_bmcr =
                asix_mdio_read_nopm(dev->net, dev->mii.phy_id, MII_BMCR);

        /* Preserve ANAR for restoring */
        priv->presvd_phy_advertise =
                asix_mdio_read_nopm(dev->net, dev->mii.phy_id,
MII_ADVERTISE);
} 


---
Best regards,
Allan Chou
Technical Support Division
ASIX Electronics Corporation
TEL: 886-3-5799500 ext.228
FAX: 886-3-5799558
E-mail: allan@asix.com.tw 
http://www.asix.com.tw/ 


-----Original Message-----
From: Jon Hunter [mailto:jonathanh@nvidia.com] 
Sent: Tuesday, November 22, 2016 11:34 PM
To: allan@asix.com.tw; robert.foss@collabora.com; freddy@asix.com.tw;
Dean_Jenkins@mentor.com; Mark_Craske@mentor.com; davem@davemloft.net;
ivecera@redhat.com; john.stultz@linaro.org; vpalatin@chromium.org;
stephen@networkplumber.org; grundler@chromium.org; changchias@gmail.com;
andrew@lunn.ch; tremyfr@gmail.com; colin.king@canonical.com;
linux-usb@vger.kernel.org; netdev@vger.kernel.org;
linux-kernel@vger.kernel.org; vpalatin@google.com
Subject: Re: [PATCH v3 3/5] net: asix: Fix AX88772x resume failures

Hi Allan,

On 18/11/16 15:09, Jon Hunter wrote:
> Hi Allan,
> 
> On 14/11/16 09:45, ASIX_Allan [Office] wrote:
>> Hi Jon,
>>
>> Please help to double check if the USB host controller of your Terga 
>> platform had been powered OFF while running the ax88772_suspend() 
>> routine or not?
> 
> Sorry for the delay. Today I set up a local board to reproduce this on 
> and was able to recreate the same problem. The Tegra xhci driver does 
> not power off during suspend and simply calls xhci_suspend(). I also 
> checked vbus to see if it was turning off but it is not. Furthermore I 
> don't see a new USB device detected after the error and so I don't see 
> any evidence that it ever disconnects.

In an attempt to isolate if this is a Tegra issue or not, I recompiled
v4.9-rc6 for x86 and I was able to reproduce the problem on my desktop ...

[  256.030060] PM: Syncing filesystems ... done.
[  256.113925] PM: Preparing system for sleep (mem) [  256.114119] Freezing
user space processes ... (elapsed 0.002 seconds) done.
[  256.116701] Freezing remaining freezable tasks ... (elapsed 0.001
seconds) done.
[  256.118041] PM: Suspending system (mem) [  256.118058] Suspending
console(s) (use no_console_suspend to debug) [  256.118324] asix 1-1.2:1.0
eth2: Failed to read reg index 0x0000: -19 [  256.118327] asix 1-1.2:1.0
eth2: Error reading Medium Status register: ffffffed [  256.118329] asix
1-1.2:1.0 eth2: Failed to write reg index 0x0000: -19 [  256.118332] asix
1-1.2:1.0 eth2: Failed to write Medium Mode mode to 0xfeed: ffffffed [
256.118374] sd 0:0:0:0: [sda] Synchronizing SCSI cache [  256.118471] sd
0:0:0:0: [sda] Stopping disk [  256.152992] hpet1: lost 1 rtc interrupts [
256.153893] serial 00:06: disabled [  256.153899] serial 00:06: System
wakeup disabled by ACPI [  256.154068] e1000e: EEE TX LPI TIMER: 00000011 [
256.628281] PM: suspend of devices complete after 509.782 msecs [
256.628620] PM: late suspend of devices complete after 0.336 msecs [
256.629366] ehci-pci 0000:00:1d.0: System wakeup enabled by ACPI [
256.629595] tg3 0000:03:00.0: System wakeup enabled by ACPI [  256.629601]
ehci-pci 0000:00:1a.0: System wakeup enabled by ACPI [  256.629652] e1000e
0000:00:19.0: System wakeup enabled by ACPI [  256.629812] xhci_hcd
0000:00:14.0: System wakeup enabled by ACPI [  256.648347] PM: noirq suspend
of devices complete after 19.713 msecs [  256.648685] ACPI: Preparing to
enter system sleep state S3 [  256.668275] PM: Saving platform NVS memory [
256.668283] Disabling non-boot CPUs ...

To reproduce this, I did the following:

1. Connect the asix device and noted the net interface (ie. eth2) 2.
Disabled the interface (ie. sudo ifconfig eth2 down) 3. Ran a suspend-resume
cycle using rtcwake (eg. sudo rtcwake -d rtc0 -m mem -s 5)

Cheers
Jon

--
nvpublic

  reply	other threads:[~2016-11-29  8:56 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-25 20:06 [PATCH v3 0/5] net/usb: asix driver improvements robert.foss
2016-08-25 20:06 ` [PATCH v3 1/5] net: asix: Add in_pm parameter robert.foss
2016-08-25 20:06 ` [PATCH v3 2/5] net: asix: Avoid looping when the device is disconnected robert.foss
2016-08-25 20:06 ` [PATCH v3 3/5] net: asix: Fix AX88772x resume failures robert.foss
2016-11-10 12:01   ` Jon Hunter
2016-11-14  8:50     ` ASIX_Allan [Home]
2016-11-14  9:34       ` Jon Hunter
2016-11-14  9:45         ` ASIX_Allan [Office]
2016-11-18 15:09           ` Jon Hunter
2016-11-22 15:34             ` Jon Hunter
2016-11-29  8:54               ` ASIX_Allan [Office] [this message]
2016-11-29 10:51                 ` Jon Hunter
2016-08-25 20:06 ` [PATCH v3 4/5] net: asix: see 802.3 spec for phy reset robert.foss
2016-08-25 20:06 ` [PATCH v3 5/5] net: asix: autoneg will set WRITE_MEDIUM reg robert.foss
2016-09-01 16:43   ` Eric Dumazet
2016-09-01 16:47     ` Robert Foss
2016-09-01 17:02       ` Eric Dumazet
2016-09-06 16:41         ` Grant Grundler
2016-09-06 21:48           ` Robert Foss
2016-08-25 20:06 ` [PATCH v3 1/5] net: asix: Add in_pm parameter robert.foss
2016-08-25 20:06 ` [PATCH v3 2/5] net: asix: Avoid looping when the device is disconnected robert.foss
2016-08-25 20:06 ` [PATCH v3 3/5] net: asix: Fix AX88772x resume failures robert.foss
2016-08-25 20:06 ` [PATCH v3 4/5] net: asix: see 802.3 spec for phy reset robert.foss
2016-08-25 20:06 ` [PATCH v3 5/5] net: asix: autoneg will set WRITE_MEDIUM reg robert.foss
2016-08-27  4:24 ` [PATCH v3 0/5] net/usb: asix driver improvements David Miller
2016-08-29 13:32 ` [PATCH v3 1/5] net: asix: Add in_pm parameter robert.foss
2016-08-29 13:32 ` [PATCH v3 2/5] net: asix: Avoid looping when the device is disconnected robert.foss
2016-08-29 13:32 ` [PATCH v3 3/5] net: asix: Fix AX88772x resume failures robert.foss
2016-08-29 13:32 ` [PATCH v3 4/5] net: asix: see 802.3 spec for phy reset robert.foss
2016-08-29 13:32 ` [PATCH v3 5/5] net: asix: autoneg will set WRITE_MEDIUM reg robert.foss
2016-08-31 17:28 ` [PATCH v3 0/5] net/usb: asix driver improvements Robert Foss
2016-09-01  4:07 ` David Miller

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='014301d24a1e$34513fe0$9cf3bfa0$@asix.com.tw' \
    --to=allan@asix.com.tw \
    --cc=Dean_Jenkins@mentor.com \
    --cc=Mark_Craske@mentor.com \
    --cc=andrew@lunn.ch \
    --cc=changchias@gmail.com \
    --cc=colin.king@canonical.com \
    --cc=davem@davemloft.net \
    --cc=freddy@asix.com.tw \
    --cc=grundler@chromium.org \
    --cc=ivecera@redhat.com \
    --cc=john.stultz@linaro.org \
    --cc=jonathanh@nvidia.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=robert.foss@collabora.com \
    --cc=stephen@networkplumber.org \
    --cc=tremyfr@gmail.com \
    --cc=vpalatin@chromium.org \
    --cc=vpalatin@google.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

Powered by JetHome