From owner-svn-src-all@freebsd.org Fri Apr 29 22:43:13 2016 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 7B562B21BEA; Fri, 29 Apr 2016 22:43:13 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 093071747; Fri, 29 Apr 2016 22:43:12 +0000 (UTC) (envelope-from avos@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id u3TMhCVW055597; Fri, 29 Apr 2016 22:43:12 GMT (envelope-from avos@FreeBSD.org) Received: (from avos@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id u3TMhC8o055596; Fri, 29 Apr 2016 22:43:12 GMT (envelope-from avos@FreeBSD.org) Message-Id: <201604292243.u3TMhC8o055596@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: avos set sender to avos@FreeBSD.org using -f From: Andriy Voskoboinyk Date: Fri, 29 Apr 2016 22:43:12 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r298822 - head/sys/dev/wpi X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 Apr 2016 22:43:13 -0000 Author: avos Date: Fri Apr 29 22:43:11 2016 New Revision: 298822 URL: https://svnweb.freebsd.org/changeset/base/298822 Log: wpi: convert to ieee80211_add_channel() (mostly noop). Tested with Intel 3945BG, STA / HOSTAP modes. Modified: head/sys/dev/wpi/if_wpi.c Modified: head/sys/dev/wpi/if_wpi.c ============================================================================== --- head/sys/dev/wpi/if_wpi.c Fri Apr 29 22:42:59 2016 (r298821) +++ head/sys/dev/wpi/if_wpi.c Fri Apr 29 22:43:11 2016 (r298822) @@ -1412,9 +1412,18 @@ wpi_read_eeprom_band(struct wpi_softc *s { struct wpi_eeprom_chan *channels = sc->eeprom_channels[n]; const struct wpi_chan_band *band = &wpi_bands[n]; - struct ieee80211_channel *c; uint32_t nflags; + uint8_t bands[IEEE80211_MODE_BYTES]; uint8_t chan, i; + int error; + + memset(bands, 0, sizeof(bands)); + + if (n == 0) { + setbit(bands, IEEE80211_MODE_11B); + setbit(bands, IEEE80211_MODE_11G); + } else + setbit(bands, IEEE80211_MODE_11A); for (i = 0; i < band->nchan; i++) { if (!(channels[i].flags & WPI_EEPROM_CHAN_VALID)) { @@ -1424,45 +1433,19 @@ wpi_read_eeprom_band(struct wpi_softc *s continue; } - if (*nchans >= maxchans) - break; - chan = band->chan[i]; nflags = wpi_eeprom_channel_flags(&channels[i]); - - c = &chans[(*nchans)++]; - c->ic_ieee = chan; - c->ic_maxregpower = channels[i].maxpwr; - c->ic_maxpower = 2*c->ic_maxregpower; - - if (n == 0) { /* 2GHz band */ - c->ic_freq = ieee80211_ieee2mhz(chan, - IEEE80211_CHAN_G); - - /* G =>'s B is supported */ - c->ic_flags = IEEE80211_CHAN_B | nflags; - - if (*nchans >= maxchans) - break; - - c = &chans[(*nchans)++]; - c[0] = c[-1]; - c->ic_flags = IEEE80211_CHAN_G | nflags; - } else { /* 5GHz band */ - c->ic_freq = ieee80211_ieee2mhz(chan, - IEEE80211_CHAN_A); - - c->ic_flags = IEEE80211_CHAN_A | nflags; - } + error = ieee80211_add_channel(chans, maxchans, nchans, + chan, 0, channels[i].maxpwr, nflags, bands); + if (error != 0) + break; /* Save maximum allowed TX power for this channel. */ sc->maxpwr[chan] = channels[i].maxpwr; DPRINTF(sc, WPI_DEBUG_EEPROM, - "adding chan %d (%dMHz) flags=0x%x maxpwr=%d passive=%d," - " offset %d\n", chan, c->ic_freq, - channels[i].flags, sc->maxpwr[chan], - IEEE80211_IS_CHAN_PASSIVE(c), *nchans); + "adding chan %d flags=0x%x maxpwr=%d, offset %d\n", + chan, channels[i].flags, sc->maxpwr[chan], *nchans); } }