[v3] net: jme: fix suspend/resume on JMC260
diff mbox series

Message ID 1456239844-4109-1-git-send-email-diego.viola@gmail.com
State New, archived
Headers show
Series
  • [v3] net: jme: fix suspend/resume on JMC260
Related show

Commit Message

Diego Viola Feb. 23, 2016, 3:04 p.m. UTC
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@gmail.com>
---
 drivers/net/ethernet/jme.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Diego Viola Feb. 23, 2016, 4:34 p.m. UTC | #1
On Tue, Feb 23, 2016 at 12:04 PM, Diego Viola <diego.viola@gmail.com> wrote:
> 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@gmail.com>
> ---
>  drivers/net/ethernet/jme.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
> index b1de7af..8adbe8f 100644
> --- a/drivers/net/ethernet/jme.c
> +++ b/drivers/net/ethernet/jme.c
> @@ -3312,13 +3312,14 @@ jme_resume(struct device *dev)
>                 jme_reset_phy_processor(jme);
>         jme_phy_calibration(jme);
>         jme_phy_setEA(jme);
> -       jme_start_irq(jme);
>         netif_device_attach(netdev);
>
>         atomic_inc(&jme->link_changing);
>
>         jme_reset_link(jme);
>
> +       jme_start_irq(jme);
> +
>         return 0;
>  }
>
> --
> 2.7.1
>

I've sent this v3 patch and I think it's better than v2 and v1, as it
includes the link to my bug report and the description is better.

Diego
Diego Viola Feb. 25, 2016, 12:43 a.m. UTC | #2
On Tue, Feb 23, 2016 at 1:34 PM, Diego Viola <diego.viola@gmail.com> wrote:
> On Tue, Feb 23, 2016 at 12:04 PM, Diego Viola <diego.viola@gmail.com> wrote:
>> 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@gmail.com>
>> ---
>>  drivers/net/ethernet/jme.c | 3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
>> index b1de7af..8adbe8f 100644
>> --- a/drivers/net/ethernet/jme.c
>> +++ b/drivers/net/ethernet/jme.c
>> @@ -3312,13 +3312,14 @@ jme_resume(struct device *dev)
>>                 jme_reset_phy_processor(jme);
>>         jme_phy_calibration(jme);
>>         jme_phy_setEA(jme);
>> -       jme_start_irq(jme);
>>         netif_device_attach(netdev);
>>
>>         atomic_inc(&jme->link_changing);
>>
>>         jme_reset_link(jme);
>>
>> +       jme_start_irq(jme);
>> +
>>         return 0;
>>  }
>>
>> --
>> 2.7.1
>>
>
> I've sent this v3 patch and I think it's better than v2 and v1, as it
> includes the link to my bug report and the description is better.
>
> Diego

Hi guys,

I just wanted to say that there's another user that have reported
success with the JMC250 (different card) using the jme driver with the
fix.

He was also getting hangs apparently.

I got an email from him, see his response here: http://ix.io/oBA

It's the same user that have posted this:
http://ubuntuforums.org/showthread.php?t=2301294

Thanks,
Diego
David Miller Feb. 25, 2016, 4:58 a.m. UTC | #3
From: Diego Viola <diego.viola@gmail.com>
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@gmail.com>

Applied and queued up for -stable, thanks.
Diego Viola Feb. 25, 2016, 3:38 p.m. UTC | #4
On Thu, Feb 25, 2016 at 1:58 AM, David Miller <davem@davemloft.net> wrote:
> From: Diego Viola <diego.viola@gmail.com>
> 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@gmail.com>
>
> Applied and queued up for -stable, thanks.

Thanks.

Diego
Guo-Fu Tseng March 2, 2016, 5:14 a.m. UTC | #5
On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
> From: Diego Viola <diego.viola@gmail.com>
> 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@gmail.com>
> 
> Applied and queued up for -stable, thanks.

Just reviewed it, it should have no side effect.

Thanks David, Diego.

Guo-Fu Tseng
Diego Viola March 3, 2016, 3:19 a.m. UTC | #6
On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@cooldavid.org> wrote:
> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>> From: Diego Viola <diego.viola@gmail.com>
>> 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@gmail.com>
>>
>> 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
Diego Viola March 3, 2016, 5:55 a.m. UTC | #7
On Thu, Mar 3, 2016 at 12:19 AM, Diego Viola <diego.viola@gmail.com> wrote:
> On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@cooldavid.org> wrote:
>> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>>> From: Diego Viola <diego.viola@gmail.com>
>>> 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@gmail.com>
>>>
>>> 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
Diego Viola March 3, 2016, 9:14 p.m. UTC | #8
On Thu, Mar 3, 2016 at 2:55 AM, Diego Viola <diego.viola@gmail.com> wrote:
> On Thu, Mar 3, 2016 at 12:19 AM, Diego Viola <diego.viola@gmail.com> wrote:
>> On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@cooldavid.org> wrote:
>>> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>>>> From: Diego Viola <diego.viola@gmail.com>
>>>> 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@gmail.com>
>>>>
>>>> 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

Actually, I just tried it now and I CAN read see the packets coming in
in the tcpdump output.

The machine just doesn't wake up from S3 after I send the packets.

Any ideas?

Diego
Diego Viola March 3, 2016, 9:19 p.m. UTC | #9
On Thu, Mar 3, 2016 at 6:14 PM, Diego Viola <diego.viola@gmail.com> wrote:
> On Thu, Mar 3, 2016 at 2:55 AM, Diego Viola <diego.viola@gmail.com> wrote:
>> On Thu, Mar 3, 2016 at 12:19 AM, Diego Viola <diego.viola@gmail.com> wrote:
>>> On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@cooldavid.org> wrote:
>>>> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>>>>> From: Diego Viola <diego.viola@gmail.com>
>>>>> 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@gmail.com>
>>>>>
>>>>> 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
>
> Actually, I just tried it now and I CAN read see the packets coming in
> in the tcpdump output.
>
> The machine just doesn't wake up from S3 after I send the packets.
>
> Any ideas?
>
> Diego

I can see the packets in the tcpdump output*
Diego Viola March 4, 2016, 4:32 a.m. UTC | #10
On Thu, Mar 3, 2016 at 6:19 PM, Diego Viola <diego.viola@gmail.com> wrote:
> On Thu, Mar 3, 2016 at 6:14 PM, Diego Viola <diego.viola@gmail.com> wrote:
>> On Thu, Mar 3, 2016 at 2:55 AM, Diego Viola <diego.viola@gmail.com> wrote:
>>> On Thu, Mar 3, 2016 at 12:19 AM, Diego Viola <diego.viola@gmail.com> wrote:
>>>> On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@cooldavid.org> wrote:
>>>>> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>>>>>> From: Diego Viola <diego.viola@gmail.com>
>>>>>> 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@gmail.com>
>>>>>>
>>>>>> 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
>>
>> Actually, I just tried it now and I CAN read see the packets coming in
>> in the tcpdump output.
>>
>> The machine just doesn't wake up from S3 after I send the packets.
>>
>> Any ideas?
>>
>> Diego
>
> I can see the packets in the tcpdump output*

I just tried again and I can't capture those packets anymore,
strangely ICMP packets with ping arrive fine but when I try to send
WoL packets they don't arrive.

Diego
Diego Viola March 5, 2016, 2:26 a.m. UTC | #11
On Fri, Mar 4, 2016 at 1:32 AM, Diego Viola <diego.viola@gmail.com> wrote:
> On Thu, Mar 3, 2016 at 6:19 PM, Diego Viola <diego.viola@gmail.com> wrote:
>> On Thu, Mar 3, 2016 at 6:14 PM, Diego Viola <diego.viola@gmail.com> wrote:
>>> On Thu, Mar 3, 2016 at 2:55 AM, Diego Viola <diego.viola@gmail.com> wrote:
>>>> On Thu, Mar 3, 2016 at 12:19 AM, Diego Viola <diego.viola@gmail.com> wrote:
>>>>> On Wed, Mar 2, 2016 at 2:14 AM, Guo-Fu Tseng <cooldavid@cooldavid.org> wrote:
>>>>>> On Wed, 24 Feb 2016 23:58:56 -0500 (EST), David Miller wrote
>>>>>>> From: Diego Viola <diego.viola@gmail.com>
>>>>>>> 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@gmail.com>
>>>>>>>
>>>>>>> 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
>>>
>>> Actually, I just tried it now and I CAN read see the packets coming in
>>> in the tcpdump output.
>>>
>>> The machine just doesn't wake up from S3 after I send the packets.
>>>
>>> Any ideas?
>>>
>>> Diego
>>
>> I can see the packets in the tcpdump output*
>
> I just tried again and I can't capture those packets anymore,
> strangely ICMP packets with ping arrive fine but when I try to send
> WoL packets they don't arrive.
>
> Diego

It looks like the problem is ACPI after all, because I tried enabling
resume by keyboard/mouse/lan, etc. and none of these methods work.

I'd like to be able to debug the BIOS ACPI thing, but I don't know
where to start.

I've tried disassembling the DSDT and this is what I get: http://ix.io/oYY

Any ideas what to do next?

Diego

Patch
diff mbox series

diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
index b1de7af..8adbe8f 100644
--- a/drivers/net/ethernet/jme.c
+++ b/drivers/net/ethernet/jme.c
@@ -3312,13 +3312,14 @@  jme_resume(struct device *dev)
 		jme_reset_phy_processor(jme);
 	jme_phy_calibration(jme);
 	jme_phy_setEA(jme);
-	jme_start_irq(jme);
 	netif_device_attach(netdev);
 
 	atomic_inc(&jme->link_changing);
 
 	jme_reset_link(jme);
 
+	jme_start_irq(jme);
+
 	return 0;
 }