Use suspend/resume methods provided by net80211. This ensures that the
appropriate state handling takes place, not doing so results in the device doing nothing until manual intervention. Reviewed by: iwasaki Tested by: iwasaki (iwi) MFC after: 4 weeks
This commit is contained in:
parent
4b25863e5c
commit
ada977b103
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=233387
@ -835,9 +835,9 @@ static int
|
||||
ipw_suspend(device_t dev)
|
||||
{
|
||||
struct ipw_softc *sc = device_get_softc(dev);
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
ipw_stop(sc);
|
||||
|
||||
ieee80211_suspend_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -845,13 +845,11 @@ static int
|
||||
ipw_resume(device_t dev)
|
||||
{
|
||||
struct ipw_softc *sc = device_get_softc(dev);
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
pci_write_config(dev, 0x41, 0, 1);
|
||||
|
||||
if (ifp->if_flags & IFF_UP)
|
||||
ipw_init(sc);
|
||||
|
||||
ieee80211_resume_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -863,9 +863,9 @@ static int
|
||||
iwi_suspend(device_t dev)
|
||||
{
|
||||
struct iwi_softc *sc = device_get_softc(dev);
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
iwi_stop(sc);
|
||||
|
||||
ieee80211_suspend_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -873,13 +873,11 @@ static int
|
||||
iwi_resume(device_t dev)
|
||||
{
|
||||
struct iwi_softc *sc = device_get_softc(dev);
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
pci_write_config(dev, 0x41, 0, 1);
|
||||
|
||||
if (ifp->if_flags & IFF_UP)
|
||||
iwi_init(sc);
|
||||
|
||||
ieee80211_resume_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -945,13 +945,9 @@ static int
|
||||
iwn_suspend(device_t dev)
|
||||
{
|
||||
struct iwn_softc *sc = device_get_softc(dev);
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = ifp->if_l2com;
|
||||
struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
iwn_stop(sc);
|
||||
if (vap != NULL)
|
||||
ieee80211_stop(vap);
|
||||
ieee80211_suspend_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -959,20 +955,12 @@ static int
|
||||
iwn_resume(device_t dev)
|
||||
{
|
||||
struct iwn_softc *sc = device_get_softc(dev);
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = ifp->if_l2com;
|
||||
struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
/* Clear device-specific "PCI retry timeout" register (41h). */
|
||||
pci_write_config(dev, 0x41, 0, 1);
|
||||
|
||||
if (ifp->if_flags & IFF_UP) {
|
||||
iwn_init(sc);
|
||||
if (vap != NULL)
|
||||
ieee80211_init(vap);
|
||||
if (ifp->if_drv_flags & IFF_DRV_RUNNING)
|
||||
iwn_start(ifp);
|
||||
}
|
||||
ieee80211_resume_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1218,8 +1218,9 @@ static int
|
||||
wpi_suspend(device_t dev)
|
||||
{
|
||||
struct wpi_softc *sc = device_get_softc(dev);
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
wpi_stop(sc);
|
||||
ieee80211_suspend_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1227,15 +1228,11 @@ static int
|
||||
wpi_resume(device_t dev)
|
||||
{
|
||||
struct wpi_softc *sc = device_get_softc(dev);
|
||||
struct ifnet *ifp = sc->sc_ifp;
|
||||
struct ieee80211com *ic = sc->sc_ifp->if_l2com;
|
||||
|
||||
pci_write_config(dev, 0x41, 0, 1);
|
||||
|
||||
if (ifp->if_flags & IFF_UP) {
|
||||
wpi_init(ifp->if_softc);
|
||||
if (ifp->if_drv_flags & IFF_DRV_RUNNING)
|
||||
wpi_start(ifp);
|
||||
}
|
||||
ieee80211_resume_all(ic);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user