Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src-draft/trunk]: src/sys/dev/usb Initialise channels and media state.
details: https://anonhg.NetBSD.org/src-all/rev/071dbdbccee7
branches: trunk
changeset: 370761:071dbdbccee7
user: Nathanial Sloss <nat%NetBSD.org@localhost>
date: Fri May 01 00:16:58 2020 +1000
description:
Initialise channels and media state.
diffstat:
sys/dev/usb/if_urtwn.c | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diffs (52 lines):
diff -r 5bff5c11a26d -r 071dbdbccee7 sys/dev/usb/if_urtwn.c
--- a/sys/dev/usb/if_urtwn.c Mon Apr 27 07:37:01 2020 +0000
+++ b/sys/dev/usb/if_urtwn.c Fri May 01 00:16:58 2020 +1000
@@ -2356,7 +2356,6 @@
urtwn_set_chan(sc, ic->ic_curchan,
IEEE80211_HTINFO_2NDCHAN_NONE);
#endif
-
if (ic->ic_opmode == IEEE80211_M_IBSS ||
ic->ic_opmode == IEEE80211_M_HOSTAP) {
/* Stop BCN */
@@ -3485,6 +3484,7 @@
ifp = vap->iv_ifp;
if_initialize(ifp);
+ ifp->if_softc = vap;
ifp->if_init = urtwn_init;
ifp->if_ioctl = urtwn_ioctl;
ifp->if_start = urtwn_start;
@@ -3808,7 +3808,9 @@
break;
default:
+ splx(s);
error = ieee80211_ioctl(ifp, cmd, data);
+ s = splnet();
break;
}
if (error == ENETRESET) {
@@ -5507,6 +5509,7 @@
{
struct ieee80211vap *vap = ifp->if_softc;
struct ieee80211com *ic = vap->iv_ic;
+ struct ifmediareq imr;
struct urtwn_softc *sc = ic->ic_softc;
struct urtwn_rx_data *data;
uint32_t reg;
@@ -5764,6 +5767,14 @@
ieee80211_new_state(vap, IEEE80211_S_SCAN, -1);
urtwn_wait_async(sc);
+ urtwn_getradiocaps(ic, IEEE80211_CHAN_MAX, &ic->ic_nchans,
+ ic->ic_channels);
+ ieee80211_chan_init(ic);
+ ieee80211_media_status(ifp, &imr);
+ imr.ifm_active |= IFM_AUTO;
+ ifmedia_set(&vap->iv_media,
+ imr.ifm_active &~ (IFM_MMASK | IFM_IEEE80211_TURBO));
+
/* Init the rest of the 802.11 stuff */
ieee80211_init(ifp);
Home |
Main Index |
Thread Index |
Old Index