linux/drivers/net
Jonas Dreßler 5943a864fe mwifiex: Deactive host sleep using HSCFG after it was activated manually
When powersaving (so either wifi powersaving or deep sleep, depending on
which state the firmware is in) is disabled, the way the firmware goes
into host sleep is different: Usually the firmware implicitely enters
host sleep on the next SLEEP event we get when we configured host sleep
via HSCFG before. When powersaving is disabled though, there are no
SLEEP events, the way we enter host sleep in that case is different: The
firmware will send us a HS_ACT_REQ event and after that we "manually"
make the firmware enter host sleep by sending it another HSCFG command
with the action HS_ACTIVATE.

Now waking up from host sleep appears to be different depending on
whether powersaving is enabled again: When powersaving is enabled, the
firmware implicitely leaves host sleep as soon as it wakes up and sends
us an AWAKE event. When powersaving is disabled though, it apparently
doesn't implicitely leave host sleep, but instead we need to send it a
HSCFG command with the HS_CONFIGURE action and the HS_CFG_CANCEL
condition. We didn't do that so far, which is why waking up from host
sleep was broken when powersaving is disabled.

So add some additional state to mwifiex_adapter where we keep track of
whether host sleep was activated manually via HS_ACTIVATE, and if that
was the case, deactivate it manually again via HS_CFG_CANCEL.

Signed-off-by: Jonas Dreßler <verdre@v0yd.nl>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20211016153244.24353-6-verdre@v0yd.nl
2021-10-20 11:51:22 +03:00
..
appletalk
arcnet
bonding net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
caif
can can: c_can: fix null-ptr-deref on ioctl() 2021-09-07 08:46:58 +02:00
dsa net: dsa: rtl8366rb: remove unneeded semicolon 2021-10-08 15:08:49 +01:00
ethernet octeontx2-pf: Simplify the receive buffer size calculation 2021-10-10 11:46:54 +01:00
fddi fddi: use eth_hw_addr_set() 2021-10-02 14:18:26 +01:00
fjes
hamradio net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
hippi
hyperv hv_netvsc: use netif_is_bond_master() instead of open code 2021-10-10 11:18:48 +01:00
ieee802154
ipa net: ipa: initialize all filter table slots 2021-09-08 12:10:33 +01:00
ipvlan net: use eth_hw_addr_set() instead of ether_addr_copy() 2021-10-02 14:18:25 +01:00
mctp
mdio net: mdio-ipq4019: Fix the error for an optional regs resource 2021-09-28 17:28:54 -07:00
netdevsim netdevsim: Move devlink registration to be last devlink command 2021-09-27 16:31:59 +01:00
pcs net: pcs: xpcs: fix incorrect steps on disable EEE 2021-10-06 11:18:27 +01:00
phy net: phy: at803x: better describe debug regs 2021-10-10 11:27:42 +01:00
plip
ppp ppp: use the correct function to check if a netdev name is in use 2021-10-08 17:02:35 +01:00
slip
team net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
usb ethernet: use platform_get_ethdev_address() 2021-10-08 14:54:34 +01:00
vmxnet3 net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
wan net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
wireguard
wireless mwifiex: Deactive host sleep using HSCFG after it was activated manually 2021-10-20 11:51:22 +03:00
wwan net: wwan: iosm: correct devlink extra params 2021-10-02 16:05:20 +01:00
xen-netback xen-netback: correct success/error reporting for the SKB-with-fraglist case 2021-09-19 12:10:26 +01:00
bareudp.c
dummy.c
eql.c
geneve.c
gtp.c gtp: use skb_dst_update_pmtu_no_confirm() instead of direct call 2021-10-06 15:19:37 +01:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macsec.c net: use eth_hw_addr_set() instead of ether_addr_copy() 2021-10-02 14:18:25 +01:00
macvlan.c net: use eth_hw_addr_set() instead of ether_addr_copy() 2021-10-02 14:18:25 +01:00
macvtap.c
Makefile
mdio.c
mhi_net.c drivers: net: mhi: fix error path in mhi_net_newlink 2021-09-24 14:25:05 +01:00
mii.c
net_failover.c net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
netconsole.c
nlmon.c
ntb_netdev.c net: use dev_addr_set() 2021-10-09 11:55:01 +01:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tap.c
thunderbolt.c
tun.c
veth.c
virtio_net.c virtio_net: skip RCU read lock by checking xdp_enabled of vi 2021-10-10 11:31:09 +01:00
vrf.c
vsockmon.c
vxlan.c nexthop: Fix memory leaks in nexthop notification chain listeners 2021-09-23 12:33:22 +01:00
xen-netfront.c