Re: [PATCH v3] net: jme: fix suspend/resume on JMC260

From: Diego Viola
Date: Thu Mar 03 2016 - 00:55:40 EST


On Thu, Mar 3, 2016 at 12:19 AM, Diego Viola <diego.viola@xxxxxxxxx> wrote:
> On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@xxxxxxxxxxxxx> wrote:
>> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>>> From: Diego Viola <diego.viola@xxxxxxxxx>
>>> Date: Tue, 23 Feb 2016 12:04:04 -0300
>>>
>>> > The JMC260 network card fails to suspend/resume because the call to
>>> > jme_start_irq() was too early, moving the call to jme_start_irq() after
>>> > the call to jme_reset_link() makes it work.
>>> >
>>> > Prior this change suspend/resume would fail unless /sys/power/pm_async=0
>>> > was explicitly specified.
>>> >
>>> > Relevant bug report: https://bugzilla.kernel.org/show_bug.cgi?id=112351
>>> >
>>> > Signed-off-by: Diego Viola <diego.viola@xxxxxxxxx>
>>>
>>> Applied and queued up for -stable, thanks.
>>
>> Just reviewed it, it should have no side effect.
>>
>> Thanks David, Diego.
>>
>> Guo-Fu Tseng
>>
>
> Hi all,
>
> I'm having another issue with jme and I'm not sure if it's related to
> the same issue with suspend/resume, but the problem now is WoL.
>
> Let me try to describe the problem a bit:
>
> I put my machine to sleep in S3 and I send WoL packets from a laptop,
> and the machine doesn't wake up at all, I tried inspecting packets
> with tcpdump and nothing shows up in the tcpdump output.
>
> When the machine is in working state, and I send WoL packets and I
> initiate a S3, it refuses to go in sleep mode.
>
> I tried the same in Windows (waking up from S3 via WoL) and it works there.
>
> Does anyone have any ideas what the problem can be? I talked with Guo
> and he suspects the problem is motherboard failure, I also think the
> issue can be a BIOS bug since I hear so many horror stories about AMI
> BIOS issues with Linux.
>
> But it's still a mystery to me given all these conditions I mentioned.
>
> Diego

The reason I believe that both problems might be connected
(suspend/resume & WoL) is that when I disable WoL with ethtool, e.g.

sudo ethtool -s eth0 wol d

The resume from suspend hang disappears, and there is no need for the
patch that moves the jme_start_irq() function call anymore, this also
regardless of pm_async being 1 or 0.

Can someone experienced with power management help here please?

Diego