Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src-draft/trunk]: src/sys/dev/pci Attempt at addressing non 2ghz channels.



details:   https://anonhg.NetBSD.org/src-all/rev/47af9a957262
branches:  trunk
changeset: 377151:47af9a957262
user:      Nathanial Sloss <nat%netbsd.org@localhost>
date:      Fri Apr 28 02:24:03 2023 +1000

description:
Attempt at addressing non 2ghz channels.

The previous commit 1034533:a495b2c0bcef broke firmare scanning.

iwn now scans successfully, but it does not connect as yet.

diffstat:

 sys/dev/pci/if_iwn.c |  17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diffs (39 lines):

diff -r ec920f0a8de1 -r 47af9a957262 sys/dev/pci/if_iwn.c
--- a/sys/dev/pci/if_iwn.c      Fri Apr 28 01:16:05 2023 +1000
+++ b/sys/dev/pci/if_iwn.c      Fri Apr 28 02:24:03 2023 +1000
@@ -462,6 +462,7 @@ static void
 iwn_get_radiocaps(struct ieee80211com *ic,
     int maxchans, int *nchans, struct ieee80211_channel chans[])
 {
+       struct iwn_softc *sc = ic->ic_softc;
         uint8_t bands[IEEE80211_MODE_BYTES];
 
         /*
@@ -470,20 +471,18 @@ iwn_get_radiocaps(struct ieee80211com *i
          */
 
         memset(bands, 0, sizeof(bands));
-        setbit(bands, IEEE80211_MODE_11A);
+       if (sc->sc_flags & IWN_FLAG_HAS_5GHZ)
+               setbit(bands, IEEE80211_MODE_11A);
         setbit(bands, IEEE80211_MODE_11B);
         setbit(bands, IEEE80211_MODE_11G);
 #ifndef IEEE80211_NO_HT
        setbit(bands, IEEE80211_MODE_11NG);
-       setbit(bands, IEEE80211_MODE_11NA);
+       if (sc->sc_flags & IWN_FLAG_HAS_5GHZ)
+               setbit(bands, IEEE80211_MODE_11NA);
 #endif
-#if 0 /* what about non-2ghz channels? but ieee80211_init_channels does not
-        respect an allocation limit "maxchans" */
-       /* XXX get regdomain from FW and pass instead of NULL */
-       ieee80211_init_channels(ic, NULL, bands);
-       *nchans = max(maxchans, ic->ic_nchans);
-#endif
-       ieee80211_add_channels_default_2ghz(chans, maxchans, nchans, bands, 0);
+       /* XXX is it still safe to use NULL here as ic channels are populated
+          when firmware is read */
+        ieee80211_init_channels(ic, NULL, bands);
 }
 
 static void



Home | Main Index | Thread Index | Old Index