Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-06 Thread Oliver Freyermuth
Am 06.03.2017 um 22:51 schrieb Johannes Berg:
>> I realized I also have a Win10 installation on that machine - and may
>> as well try WoWLAN with it. 
>> Enabling (in the dreaded device manager) wake via the WiFi device,
>> magic packet mode, I also cannot wake the machine. 
> 
> Ok. I didn't even know it was easy to actually get this configured on
> Windows :)
At least I hope it's so easy in Windows (and that's what "the internet" told 
me). 
I'm also not sure whether that's fully sufficient, since I never got it to work
(at least not with WiFi ;-) ). 
Also, it seems extremely driver dependent
to configure more complex stuff than magic packet (i.e. anything else is not in 
the normal
device manager GUI, but in the driver-specific options for each device). 

>> So if it was a driver bug, it would have to be present both in
>> Windows and Linux drivers - but I guess it's just another case
>> of broken system firmware *sigh*. 
> 
> Agree, that seems rather unlikely. Unless there's some kind of "magic"
> setup that the UEFI wants, and the driver knows nothing about ... also
> seems unlikely though.
> 
>> And that's even though it's a pretty recent Clevo W230SD-based
>> machine (which I considered decently widespread)
>> with unlocked UEFI (so I see almost all options), but of course
>> nothing related to ACPI wakeup. 
>> But I guess widespread alone does not help ;-). 
> 
> Yeah, too bad. Want to ask the manufacturer for help? ;-)
I believe my Chinese is not good enough to contact the original manufacturer - 
and the W230SD is already not manufactured
anymore, I think (even though it still was current a year ago or so). 
I also doubt the German company which relabelled the Clevo barebone (Schenker) 
will care. 
The other laptop is >4 years old now, and an Alienware machine with dedicated 
GPU (only), so they probably did not care too much about any power saving / 
ACPI wakeup feature at all. 

But anyways, WoW-LAN for me would just have been a nice feature, but is not 
essential for survival. 

With cheap can-be-always-on-devices like a Raspberry Pi, I guess WoW-LAN in 
consumer-grade laptops is becoming less and less interesting. 
Also, I personally do not have a must-have usecase for it. 

Thanks anyways! :-)
Oliver


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-06 Thread Oliver Freyermuth
Am 06.03.2017 um 09:11 schrieb Johannes Berg:
> On Sun, 2017-03-05 at 16:12 +0100, Oliver Freyermuth wrote:
> 
> [snip]
> 
>> With tcp-mode, and using the small testing code I found from you
>> somewhere on the web:
>> https://bugs.chromium.org/p/chromium/issues/detail?id=361435#c21
>> indeed I get:
>> "new client!"
>> after the machine has suspended. 
>> It even seems to receive the "WAKEUPNOW" when I close the server,
>> since it does not make further reconnection attempts after. 
> 
> Heh. I think you're quite possibly the first person (other than me) to
> ever use this :)
> 
It seems the script itself is really working as it should, see below ;-). 

> [snip]
> 
>> So nothing which looks bad as far as I can see. 
> 
> Agree, nothing looks bad. Try running "iw event" while you suspend - if
> the NIC thought it woke up the system there will be an event indicating
> so.
> 
Indeed, I get:
1488836432.153465: wlan0 (phy #0): WoWLAN wakeup
* packet (might be truncated): 
ac:fd:ce:de:e1:58:b8:27:eb:f4:3b:4c:08:00:45:00:00:31:78:d1:40:00:3f:06:3d:55:c0:a8:02:23:c0:a8:02:2d:30:39:30:39:f2:04:6f:88:8b:74:4c:c2:50:18:72:10:00:00:00:00:57:41:4b:45:55:50:4e:4f:57
* TCP connection wakeup received

Note the trailing "57:41:4b:45:55:50:4e:4f:57" which is your "WAKEUPNOW". 

Also magic packet "works" this way, i.e. shows up via "iw event". 

>> Maybe this UEFI firmware is broken in a different, albeit "more
>> stupid" way: 
>> Discarding ACPI wakeup from PCI devices, even though it leaves them
>> powered? 
> 
> I guess it's possible. I guess there's also a chance that we're missing
> some setup in the driver though. I vaguely remember a patch in ChromeOS
> that somehow we never merged ... ah yes, must've been this one:
> https://chromium-review.googlesource.com/311101
> though that means it's not relevant in your system.
> 
> So basically I don't really see anything missing in the driver, hmm.
I realized I also have a Win10 installation on that machine - and may as well 
try WoWLAN with it. 
Enabling (in the dreaded device manager) wake via the WiFi device, magic packet 
mode, I also cannot wake the machine. 
So if it was a driver bug, it would have to be present both in Windows and 
Linux drivers - but I guess it's just another case
of broken system firmware *sigh*. 

And that's even though it's a pretty recent Clevo W230SD-based machine (which I 
considered decently widespread)
with unlocked UEFI (so I see almost all options), but of course nothing related 
to ACPI wakeup. 
But I guess widespread alone does not help ;-). 

> 
> johannes
> 

Thanks for all!
Oliver


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-06 Thread Johannes Berg
> > Agree, nothing looks bad. Try running "iw event" while you suspend
> > - if
> > the NIC thought it woke up the system there will be an event
> > indicating
> > so.
> > 
> 
> Indeed, I get:
> 1488836432.153465: wlan0 (phy #0): WoWLAN wakeup
> * packet (might be truncated):
> ac:fd:ce:de:e1:58:b8:27:eb:f4:3b:4c:08:00:45:00:00:31:78:d1:40:00:3f:
> 06:3d:55:c0:a8:02:23:c0:a8:02:2d:30:39:30:39:f2:04:6f:88:8b:74:4c:c2:
> 50:18:72:10:00:00:00:00:57:41:4b:45:55:50:4e:4f:57
> * TCP connection wakeup received
> 
> Note the trailing "57:41:4b:45:55:50:4e:4f:57" which is your
> "WAKEUPNOW". 
> 
> Also magic packet "works" this way, i.e. shows up via "iw event". 

Right. So that means the device did in fact stay powered all the way
through, otherwise we wouldn't have been able to retrieve this event
data.

> I realized I also have a Win10 installation on that machine - and may
> as well try WoWLAN with it. 
> Enabling (in the dreaded device manager) wake via the WiFi device,
> magic packet mode, I also cannot wake the machine. 

Ok. I didn't even know it was easy to actually get this configured on
Windows :)

> So if it was a driver bug, it would have to be present both in
> Windows and Linux drivers - but I guess it's just another case
> of broken system firmware *sigh*. 

Agree, that seems rather unlikely. Unless there's some kind of "magic"
setup that the UEFI wants, and the driver knows nothing about ... also
seems unlikely though.

> And that's even though it's a pretty recent Clevo W230SD-based
> machine (which I considered decently widespread)
> with unlocked UEFI (so I see almost all options), but of course
> nothing related to ACPI wakeup. 
> But I guess widespread alone does not help ;-). 

Yeah, too bad. Want to ask the manufacturer for help? ;-)

johannes


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-06 Thread Johannes Berg
On Sun, 2017-03-05 at 16:12 +0100, Oliver Freyermuth wrote:

[snip]

> With tcp-mode, and using the small testing code I found from you
> somewhere on the web:
> https://bugs.chromium.org/p/chromium/issues/detail?id=361435#c21
> indeed I get:
> "new client!"
> after the machine has suspended. 
> It even seems to receive the "WAKEUPNOW" when I close the server,
> since it does not make further reconnection attempts after. 

Heh. I think you're quite possibly the first person (other than me) to
ever use this :)

[snip]

> So nothing which looks bad as far as I can see. 

Agree, nothing looks bad. Try running "iw event" while you suspend - if
the NIC thought it woke up the system there will be an event indicating
so.

> Maybe this UEFI firmware is broken in a different, albeit "more
> stupid" way: 
> Discarding ACPI wakeup from PCI devices, even though it leaves them
> powered? 

I guess it's possible. I guess there's also a chance that we're missing
some setup in the driver though. I vaguely remember a patch in ChromeOS
that somehow we never merged ... ah yes, must've been this one:
https://chromium-review.googlesource.com/311101
though that means it's not relevant in your system.

So basically I don't really see anything missing in the driver, hmm.

johannes


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-05 Thread Oliver Freyermuth
Am 02.03.2017 um 09:55 schrieb Johannes Berg:
> Would you mind filing a bug on bugzilla.kernel.org (and adding linuxwif
> i...@intel.com as the assignee or at least in Cc)? I think we really ought
> to sort out the issues with the RTPM stuff.
Done: 
https://bugzilla.kernel.org/show_bug.cgi?id=194791

Am 02.03.2017 um 19:38 schrieb Johannes Berg:
>> I have another laptop with the same iwlwifi card (but newer HW
>> revision), a comparable Gentoo 
>> installation but with an unlocked UEFI. 
>> I'll play with it on the weekend and report back in case I find
>> anything different there. 
> 
> Ok. I *have* gotten this to work on some (old) laptops, but not
> generally.
> 
Well, at least with that other laptop I get *some* different result. 
Again, things only work with the RTPM stuff disabled (as expected). 
However, I do not get the dreaded:
"Device was reset during suspend"
on that machine!
Also, the machine stays connected to the AP if WoWLAN is activated and I enter 
suspend. 

However, it does not wake... To get any feedback, I tried something more 
complex. 

With tcp-mode, and using the small testing code I found from you somewhere on 
the web:
https://bugs.chromium.org/p/chromium/issues/detail?id=361435#c21
indeed I get:
"new client!"
after the machine has suspended. 
It even seems to receive the "WAKEUPNOW" when I close the server,
since it does not make further reconnection attempts after. 

So in general, it seems the Intel card stays powered and does what it should. 
The only issue is that the machine does not wake at all... 

My kernel log says:
[ 2751.003805] iwlwifi :03:00.0: L1 Enabled - LTR Enabled
[ 2751.656632] ACPI : EC: event blocked
[ 2753.817464] PM: suspend of devices complete after 2822.876 msecs
[ 2753.829438] PM: late suspend of devices complete after 11.970 msecs
[ 2753.829818] ACPI : EC: interrupt blocked
[ 2753.830343] ehci-pci :00:1d.0: System wakeup enabled by ACPI
[ 2753.830345] iwlwifi :03:00.0: System wakeup enabled by ACPI
[ 2753.830348] pcieport :00:1c.3: System wakeup enabled by ACPI
[ 2753.830484] ehci-pci :00:1a.0: System wakeup enabled by ACPI
[ 2753.830502] xhci_hcd :00:14.0: System wakeup enabled by ACPI
[ 2753.842577] PM: noirq suspend of devices complete after 13.136 msecs
[ 2753.842853] ACPI: Preparing to enter system sleep state S3
[ 2753.843922] ACPI : EC: EC stopped
[ 2753.843923] PM: Saving platform NVS memory
[ 2753.843928] Disabling non-boot CPUs ...

[snip]

[ 2753.982917] ACPI: Waking up from system sleep state S3
[ 2753.983883] acpi LNXPOWER:01: Turning OFF
[ 2753.984044] ACPI : EC: interrupt unblocked
[ 2753.985895] ehci-pci :00:1a.0: System wakeup disabled by ACPI
[ 2753.985912] ehci-pci :00:1d.0: System wakeup disabled by ACPI
[ 2753.985917] xhci_hcd :00:14.0: System wakeup disabled by ACPI
[ 2753.996565] PM: noirq resume of devices complete after 12.652 msecs
[ 2753.997093] PM: early resume of devices complete after 0.507 msecs
[ 2753.997205] ACPI : EC: event unblocked
[ 2753.997355] iwlwifi :03:00.0: System wakeup disabled by ACPI
[ 2753.997369] ACPI : button: The lid device is not compliant to SW_LID.
[ 2753.997733] pcieport :00:1c.3: System wakeup disabled by ACPI
[ 2753.997753] sd 0:0:0:0: [sda] Starting disk
[ 2753.997754] sd 5:0:0:0: [sdb] Starting disk
[ 2753.997886] rtc_cmos 00:02: System wakeup disabled by ACPI
[ 2754.007327] iwlwifi :03:00.0: L1 Enabled - LTR Enabled

So nothing which looks bad as far as I can see. 

Maybe this UEFI firmware is broken in a different, albeit "more stupid" way: 
Discarding ACPI wakeup from PCI devices, even though it leaves them powered? 

Cheers, 
Oliver


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-02 Thread Johannes Berg

> > Yes. Does it print something to that effect at resume time? I think
> > it should.
> 
> Oh yes - I totally missed that since it came quite late in the resume
> cycle:
> 
> [12386.085899] iwlwifi :0a:00.0: System wakeup disabled by ACPI
> [12386.088449] iwlwifi :0a:00.0: Device was reset during suspend
> 
> I guess the "Device was reset during suspend" means my firmware did
> something uncool like cutting the power to it (it's a laptop, but I
> suspended with power supply staying connected). 

Yes.

> UEFI options are very limited, so I guess I'm just out of luck with
> this hardware. 

Yeah, most likely.

> I have another laptop with the same iwlwifi card (but newer HW
> revision), a comparable Gentoo 
> installation but with an unlocked UEFI. 
> I'll play with it on the weekend and report back in case I find
> anything different there. 

Ok. I *have* gotten this to work on some (old) laptops, but not
generally.

johannes


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-02 Thread Oliver Freyermuth
Am 02.03.2017 um 09:55 schrieb Johannes Berg:
>> The problem is that it seems I cannot actually wake the machine
>> anymore afterwards... 
>> While in the suspend procedure, I see:
>> [12385.893568] iwlwifi :0a:00.0: System wakeup enabled by ACPI
>> as expected, I could neither get it to make a tcp connection in tcp-
>> connection mode,
>> nor could I wake the machine via magic packet in magic-packet mode. 
>>
>> Could that be some hardware / system firmware limitation, e.g. if my
>> UEFI does not support actually powering
>> the WiFi hardware if I am in S3?
> 
> Yes. Does it print something to that effect at resume time? I think it
> should.
Oh yes - I totally missed that since it came quite late in the resume cycle:

[12386.085899] iwlwifi :0a:00.0: System wakeup disabled by ACPI
[12386.088449] iwlwifi :0a:00.0: Device was reset during suspend

I guess the "Device was reset during suspend" means my firmware did something 
uncool
like cutting the power to it (it's a laptop, but I suspended with power supply 
staying connected). 
UEFI options are very limited, so I guess I'm just out of luck with this 
hardware. 

I have another laptop with the same iwlwifi card (but newer HW revision), a 
comparable Gentoo 
installation but with an unlocked UEFI. 
I'll play with it on the weekend and report back in case I find anything 
different there. 

>> At least, the suspend problem seems to be clearly related to some
>> path only used if CONFIG_IWLWIFI_PCIE_RTPM is on. 
> 
> Would you mind filing a bug on bugzilla.kernel.org (and adding linuxwif
> i...@intel.com as the assignee or at least in Cc)? I think we really ought
> to sort out the issues with the RTPM stuff.
Good idea, I'll do that over the weekend. 

Thanks a lot for the support! 
Oliver

> 
> johannes
> 


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-03-02 Thread Johannes Berg

> > Oh. Can you see if you have CONFIG_IWLWIFI_PCIE_RTPM enabled in
> > your configuration? If you do, please turn it off and see if that
> > fixes it.
> 
> Indeed, you got it! 
> I had it on, and turning that off lets me suspend just fine after
> activating WoWLAN!

[snip]

> The problem is that it seems I cannot actually wake the machine
> anymore afterwards... 
> While in the suspend procedure, I see:
> [12385.893568] iwlwifi :0a:00.0: System wakeup enabled by ACPI
> as expected, I could neither get it to make a tcp connection in tcp-
> connection mode,
> nor could I wake the machine via magic packet in magic-packet mode. 
> 
> Could that be some hardware / system firmware limitation, e.g. if my
> UEFI does not support actually powering
> the WiFi hardware if I am in S3?

Yes. Does it print something to that effect at resume time? I think it
should.

> At least, the suspend problem seems to be clearly related to some
> path only used if CONFIG_IWLWIFI_PCIE_RTPM is on. 

Would you mind filing a bug on bugzilla.kernel.org (and adding linuxwif
i...@intel.com as the assignee or at least in Cc)? I think we really ought
to sort out the issues with the RTPM stuff.

johannes


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-02-24 Thread Oliver Freyermuth
Am 24.02.2017 um 20:37 schrieb Johannes Berg:
> So let's see. The error *isn't* generated by mac80211 or iwlwifi, but
> it's still returned through wiphy_suspend(). That function just calls
> mac80211 though, and never generates any error conditions by itself. As
> a consequence, this must be generated in some callee of wiphy_suspend()
> that *isn't* in mac80211/iwlwifi...
> 
> __ieee80211_suspend() also doesn't generate any error codes by itself,
> let's take a look at iwlmvm's suspend (called through drv_suspend()),
> that's iwl_mvm_suspend().
> 
> Oh. Can you see if you have CONFIG_IWLWIFI_PCIE_RTPM enabled in your
> configuration? If you do, please turn it off and see if that fixes it.
Indeed, you got it! 
I had it on, and turning that off lets me suspend just fine after activating 
WoWLAN!

See here, the syslog is now clean (I removed the EBUSY-WARNONs for now):
[12383.757181] PM: Syncing filesystems ... done.
[12383.924701] PM: Preparing system for sleep (mem)
[12384.249363] ACPI Warning: \_SB.PCI0.PEG0.DGPU._DSM: Argument #4 type 
mismatch - Found [Buffer], ACPI requires [Package] (20160930/nsarguments-95)
[12385.323377] Freezing user space processes ... (elapsed 0.001 seconds) done.
[12385.325193] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) 
done.
[12385.326602] PM: Suspending system (mem)
[12385.326619] Suspending console(s) (use no_console_suspend to debug)
[12385.326989] sd 5:0:0:0: [sdb] Synchronizing SCSI cache
[12385.327076] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[12385.327199] sd 0:0:0:0: [sda] Stopping disk
[12385.329952] sd 5:0:0:0: [sdb] Stopping disk
[12385.335474] iwlwifi :0a:00.0: L1 Enabled - LTR Enabled
[12385.335737] iwlwifi :0a:00.0: L1 Enabled - LTR Enabled
[12385.426964] ACPI : EC: event blocked
[12385.637708] ACPI Warning: \_SB.PCI0.PEG0.DGPU._DSM: Argument #4 type 
mismatch - Found [Buffer], ACPI requires [Package] (20160930/nsarguments-95)
[12385.678281] nvidia-modeset: WARNING: GPU:0: Failed to determine which 
devices were hotplugged: 0x11

[12385.892099] PM: suspend of devices complete after 565.370 msecs
[12385.892586] PM: late suspend of devices complete after 0.484 msecs
[12385.892942] ACPI : EC: interrupt blocked
[12385.893495] ehci-pci :00:1d.0: System wakeup enabled by ACPI
[12385.893568] iwlwifi :0a:00.0: System wakeup enabled by ACPI
[12385.893685] ehci-pci :00:1a.0: System wakeup enabled by ACPI
[12385.893754] xhci_hcd :00:14.0: System wakeup enabled by ACPI
[12385.905567] PM: noirq suspend of devices complete after 12.970 msecs
[12385.905967] ACPI: Preparing to enter system sleep state S3
[12385.906505] ACPI : EC: EC stopped
[12385.906505] PM: Saving platform NVS memory
[12385.906511] Disabling non-boot CPUs ...
[12385.908459] smpboot: CPU 1 is now offline
[12385.919596] smpboot: CPU 2 is now offline
[12385.928100] smpboot: CPU 3 is now offline
[12385.939661] smpboot: CPU 4 is now offline
[12385.952240] smpboot: CPU 5 is now offline
[12385.965252] smpboot: CPU 6 is now offline
[12385.975465] smpboot: CPU 7 is now offline


The problem is that it seems I cannot actually wake the machine anymore 
afterwards... 
While in the suspend procedure, I see:
[12385.893568] iwlwifi :0a:00.0: System wakeup enabled by ACPI
as expected, I could neither get it to make a tcp connection in tcp-connection 
mode,
nor could I wake the machine via magic packet in magic-packet mode. 

Could that be some hardware / system firmware limitation, e.g. if my UEFI does 
not support actually powering
the WiFi hardware if I am in S3? I have yet to (re)check the UEFI config, but 
since the options are
extremely limited on this Alienware laptop, I guess I will not find anything 
related to that. 

At least, the suspend problem seems to be clearly related to some path only 
used if CONFIG_IWLWIFI_PCIE_RTPM is on. 

> 
> This still looks fishy in the code though, but let's see if that's the
> problem first.
> 
> johannes
> 


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-02-24 Thread Johannes Berg
On Fri, 2017-02-24 at 19:51 +0100, Oliver Freyermuth wrote:
> 
> Thanks for your reply and the suggestion! I have put the two lines
> directly after the last #include
> in both files, i.e. both drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
> and net/mac80211/ieee80211_i.h . 
> Sadly, none of them triggers when trying to enter suspend. 
> 
> I still get:
> [   85.308756] dpm_run_callback(): wiphy_suspend+0x0/0x97 [cfg80211]
> returns -16
> [   85.308757] PM: Device phy0 failed to suspend async: error -16
> [   85.310518] sd 5:0:0:0: [sdb] Stopping disk
> [   85.857976] PM: Some devices failed to suspend, or early wake
> event detected
> with nothing in between. 

I'd have expected the message to show up *before* the first one
(dpm_run_callback) you quoted, because this one already has the -16
return value printed, and it must've been generated before that.

I just tried on one of my systems, but it's not exactly the same kernel
version (would be difficult to install right now), and it works just
fine for me. Perhaps there's something going on with your system.

> Just to make sure, I can confirm the change is effective, since I get
> many of:
> [   57.819114] WARNING: CPU: 4 PID: 4092 at
> drivers/net/wireless/intel/iwlwifi/mvm/tx.c:1503
> iwl_mvm_rx_tx_cmd+0x51e/0x579 [iwlmvm]
> (with the tracebacks) for example when connecting to a different
> network. But none of these when trying to suspend...

Oops. I didn't see this instance of EBUSY in the success path - it's
used for a comparison that probably never triggered. Anyway, no harm
done apart from logging lots of useless stack traces :)

> Any other ideas on where I could look, or how I could trace the
> origin of this -16? 

(see below)

> You are right about the bug report - I provided the wrong link,
> sorry. 
> The report I meant is here:
> https://bugzilla.redhat.com/show_bug.cgi?id=1362311
> for a 7260 similar to mine. 

Yes, that one looks like the same as yours.

> I believe that 
>  https://bugzilla.kernel.org/show_bug.cgi?id=109591#c25
> i.e. comment 25 was made by the same person who just hijacked that
> kernel
> bug report even though it was indeed for a very different hardware. 

Ok, that's possible.

So let's see. The error *isn't* generated by mac80211 or iwlwifi, but
it's still returned through wiphy_suspend(). That function just calls
mac80211 though, and never generates any error conditions by itself. As
a consequence, this must be generated in some callee of wiphy_suspend()
that *isn't* in mac80211/iwlwifi...

__ieee80211_suspend() also doesn't generate any error codes by itself,
let's take a look at iwlmvm's suspend (called through drv_suspend()),
that's iwl_mvm_suspend().

Oh. Can you see if you have CONFIG_IWLWIFI_PCIE_RTPM enabled in your
configuration? If you do, please turn it off and see if that fixes it.

This still looks fishy in the code though, but let's see if that's the
problem first.

johannes


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-02-24 Thread Oliver Freyermuth
Am 24.02.2017 um 13:11 schrieb Johannes Berg:
>> However, when trying to suspend to RAM ( echo mem > /sys/power/state
>> ), I get:
>> [46656.403767] dpm_run_callback(): wiphy_suspend+0x0/0x97 [cfg80211]
>> returns -16
>> [46656.403769] PM: Device phy0 failed to suspend async: error -16
>>
> 
> However, I don't see EBUSY anywhere there in the driver.
> 
> Can you recompile the kernel and run a quick experiment?
> 
> Open drivers/net/wireless/intel/iwlwifi/mvm/mvm.h and put something
> like this after the includes:
> 
> #undef EBUSY
> #define EBUSY ({ WARN_ON(1); 16; })
> 
> that should trigger a warning at the place where the EBUSY came from,
> assuming it did in fact come from the driver. You could repeat it for
> net/mac80211/ieee80211_i.h if that doesn't trigger.

Thanks for your reply and the suggestion! I have put the two lines directly 
after the last #include
in both files, i.e. both drivers/net/wireless/intel/iwlwifi/mvm/mvm.h and 
net/mac80211/ieee80211_i.h . 
Sadly, none of them triggers when trying to enter suspend. 

I still get:
[   85.308756] dpm_run_callback(): wiphy_suspend+0x0/0x97 [cfg80211] returns -16
[   85.308757] PM: Device phy0 failed to suspend async: error -16
[   85.310518] sd 5:0:0:0: [sdb] Stopping disk
[   85.857976] PM: Some devices failed to suspend, or early wake event detected
with nothing in between. 

Just to make sure, I can confirm the change is effective, since I get many of:
[   57.819114] WARNING: CPU: 4 PID: 4092 at 
drivers/net/wireless/intel/iwlwifi/mvm/tx.c:1503 iwl_mvm_rx_tx_cmd+0x51e/0x579 
[iwlmvm]
(with the tracebacks) for example when connecting to a different network. But 
none of these when trying to suspend...

Any other ideas on where I could look, or how I could trace the origin of this 
-16? 

> 
>> https://bugzilla.kernel.org/show_bug.cgi?id=109591#c25
> 
> That device is like mine, afaict, so this seems to be a different bug.
You are right about the bug report - I provided the wrong link, sorry. 
The report I meant is here:
https://bugzilla.redhat.com/show_bug.cgi?id=1362311
for a 7260 similar to mine. 

I believe that 
 https://bugzilla.kernel.org/show_bug.cgi?id=109591#c25
i.e. comment 25 was made by the same person who just hijacked that kernel
bug report even though it was indeed for a very different hardware. 

I'm open for any other suggestions, let me know if anything comes to mind. 

Cheers and thanks for your reply, 
Oliver


Re: Usage of WoWLAN with iwlwifi driver (Device phy0 failed to suspend async: error -16)

2017-02-24 Thread Johannes Berg

> I have been trying to get basic WoWLAN to work with the following
> configuration:
> - Intel Corporation Wireless 7260 (rev 73) with in-tree iwlwifi
> driver

So I just tried on 4.9 with a 6205 NIC and it works there. The
difference must be somewhere in mvm/d3.c then, I guess. I got a lot of
warnings at resume time though, not sure why.

> However, when trying to suspend to RAM ( echo mem > /sys/power/state
> ), I get:
> [46656.403767] dpm_run_callback(): wiphy_suspend+0x0/0x97 [cfg80211]
> returns -16
> [46656.403769] PM: Device phy0 failed to suspend async: error -16
> 

However, I don't see EBUSY anywhere there in the driver.

Can you recompile the kernel and run a quick experiment?

Open drivers/net/wireless/intel/iwlwifi/mvm/mvm.h and put something
like this after the includes:

#undef EBUSY
#define EBUSY ({ WARN_ON(1); 16; })

that should trigger a warning at the place where the EBUSY came from,
assuming it did in fact come from the driver. You could repeat it for
net/mac80211/ieee80211_i.h if that doesn't trigger.

> https://bugzilla.kernel.org/show_bug.cgi?id=109591#c25

That device is like mine, afaict, so this seems to be a different bug.

johannes