Date: Sun, 5 Mar 2017 16:26:45 -0800 From: Adrian Chadd <adrian.chadd@gmail.com> To: Andriy Voskoboinyk <avos@freebsd.org> Cc: "src-committers@freebsd.org" <src-committers@freebsd.org>, "svn-src-all@freebsd.org" <svn-src-all@freebsd.org>, "svn-src-head@freebsd.org" <svn-src-head@freebsd.org> Subject: Re: svn commit: r314687 - head/sys/dev/iwn Message-ID: <CAJ-Vmo=jLSDGP7kPyezPbH80Bu=%2BZcF_r5muWqEU_LEXGZGx9g@mail.gmail.com> In-Reply-To: <op.ywluq6064dikkl@thinkpad-x220> References: <201703042307.v24N7sSx021021@repo.freebsd.org> <CAJ-VmonNg5pjFq6AetmkkOW_vjEKzUTmgrziLNh0veSKrMY8Nw@mail.gmail.com> <op.ywluq6064dikkl@thinkpad-x220>
next in thread | previous in thread | raw e-mail | index | archive | help
Yeah. I mean, iwn and wpi are almost the same damned firmware API and hardware... kinda silly isn't it? :) I kinda wonder whether we should just unify them. -adrian On 4 March 2017 at 18:05, Andriy Voskoboinyk <avos@freebsd.org> wrote: > Sun, 05 Mar 2017 02:37:09 +0200 =D0=B1=D1=83=D0=BB=D0=BE =D0=BD=D0=B0=D0= =BF=D0=B8=D1=81=D0=B0=D0=BD=D0=BE Adrian Chadd > <adrian.chadd@gmail.com>: > > Hi! > > Actually, the intention is simpler - redo all the work for wpi(4) here > to bring in everything what it can - ad-hoc, hostap, aes-ccm etc > > >> hihi! >> >> So the eventualy-ish attention is that if someone wanted to finish >> p2p/tdls support they could use this function for either context. But >> it don't think the feature was ever finished, because we don't have >> p2p/tdls support yet. >> >> Well, yet. It's coming. :) >> >> >> >> -adrian >> >> >> On 4 March 2017 at 15:07, Andriy Voskoboinyk <avos@freebsd.org> wrote: >>> >>> Author: avos >>> Date: Sat Mar 4 23:07:54 2017 >>> New Revision: 314687 >>> URL: https://svnweb.freebsd.org/changeset/base/314687 >>> >>> Log: >>> iwn: drop 'channel' parameter from iwn*_set_txpower() >>> >>> For 4965 just extract 'is_chan_5ghz' flag from the RXON structure >>> (like it was done in r281287); for others it was never used. >>> >>> Tested with Intel 6205, STA mode. >>> >>> Modified: >>> head/sys/dev/iwn/if_iwn.c >>> head/sys/dev/iwn/if_iwnvar.h >>> >>> Modified: head/sys/dev/iwn/if_iwn.c >>> >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>> --- head/sys/dev/iwn/if_iwn.c Sat Mar 4 22:58:34 2017 (r31468= 6) >>> +++ head/sys/dev/iwn/if_iwn.c Sat Mar 4 23:07:54 2017 (r31468= 7) >>> @@ -254,10 +254,8 @@ static void iwn_set_led(struct iwn_softc >>> static int iwn_set_critical_temp(struct iwn_softc *); >>> static int iwn_set_timing(struct iwn_softc *, struct ieee80211_nod= e >>> *); >>> static void iwn4965_power_calibration(struct iwn_softc *, int); >>> -static int iwn4965_set_txpower(struct iwn_softc *, >>> - struct ieee80211_channel *, int); >>> -static int iwn5000_set_txpower(struct iwn_softc *, >>> - struct ieee80211_channel *, int); >>> +static int iwn4965_set_txpower(struct iwn_softc *, int); >>> +static int iwn5000_set_txpower(struct iwn_softc *, int); >>> static int iwn4965_get_rssi(struct iwn_softc *, struct iwn_rx_stat >>> *); >>> static int iwn5000_get_rssi(struct iwn_softc *, struct iwn_rx_stat >>> *); >>> static int iwn_get_noise(const struct iwn_rx_general_stats *); >>> @@ -5510,7 +5508,6 @@ iwn_set_timing(struct iwn_softc *sc, str >>> static void >>> iwn4965_power_calibration(struct iwn_softc *sc, int temp) >>> { >>> - struct ieee80211com *ic =3D &sc->sc_ic; >>> >>> DPRINTF(sc, IWN_DEBUG_TRACE, "->Doing %s\n", __func__); >>> >>> @@ -5520,7 +5517,7 @@ iwn4965_power_calibration(struct iwn_sof >>> if (abs(temp - sc->temp) >=3D 3) { >>> /* Record temperature of last calibration. */ >>> sc->temp =3D temp; >>> - (void)iwn4965_set_txpower(sc, ic->ic_bsschan, 1); >>> + (void)iwn4965_set_txpower(sc, 1); >>> } >>> } >>> >>> @@ -5530,8 +5527,7 @@ iwn4965_power_calibration(struct iwn_sof >>> * the current temperature and the current voltage. >>> */ >>> static int >>> -iwn4965_set_txpower(struct iwn_softc *sc, struct ieee80211_channel *ch= , >>> - int async) >>> +iwn4965_set_txpower(struct iwn_softc *sc, int async) >>> { >>> /* Fixed-point arithmetic division using a n-bit fractional part. */ >>> #define fdivround(a, b, n) \ >>> @@ -5546,20 +5542,21 @@ iwn4965_set_txpower(struct iwn_softc *sc >>> struct iwn4965_eeprom_chan_samples *chans; >>> const uint8_t *rf_gain, *dsp_gain; >>> int32_t vdiff, tdiff; >>> - int i, c, grp, maxpwr; >>> + int i, is_chan_5ghz, c, grp, maxpwr; >>> uint8_t chan; >>> >>> sc->rxon =3D &sc->rx_on[IWN_RXON_BSS_CTX]; >>> /* Retrieve current channel from last RXON. */ >>> chan =3D sc->rxon->chan; >>> + is_chan_5ghz =3D (sc->rxon->flags & htole32(IWN_RXON_24GHZ)) = =3D=3D 0; >>> DPRINTF(sc, IWN_DEBUG_RESET, "setting TX power for channel %d\n= ", >>> chan); >>> >>> memset(&cmd, 0, sizeof cmd); >>> - cmd.band =3D IEEE80211_IS_CHAN_5GHZ(ch) ? 0 : 1; >>> + cmd.band =3D is_chan_5ghz ? 0 : 1; >>> cmd.chan =3D chan; >>> >>> - if (IEEE80211_IS_CHAN_5GHZ(ch)) { >>> + if (is_chan_5ghz) { >>> maxpwr =3D sc->maxpwr5GHz; >>> rf_gain =3D iwn4965_rf_gain_5ghz; >>> dsp_gain =3D iwn4965_dsp_gain_5ghz; >>> @@ -5681,8 +5678,7 @@ iwn4965_set_txpower(struct iwn_softc *sc >>> } >>> >>> static int >>> -iwn5000_set_txpower(struct iwn_softc *sc, struct ieee80211_channel *ch= , >>> - int async) >>> +iwn5000_set_txpower(struct iwn_softc *sc, int async) >>> { >>> struct iwn5000_cmd_txpower cmd; >>> int cmdid; >>> @@ -6693,7 +6689,7 @@ iwn_config(struct iwn_softc *sc) >>> } >>> >>> /* Configuration has changed, set TX power accordingly. */ >>> - if ((error =3D ops->set_txpower(sc, ic->ic_curchan, 0)) !=3D 0)= { >>> + if ((error =3D ops->set_txpower(sc, 0)) !=3D 0) { >>> device_printf(sc->sc_dev, "%s: could not set TX power\n= ", >>> __func__); >>> return error; >>> @@ -7096,7 +7092,7 @@ iwn_auth(struct iwn_softc *sc, struct ie >>> } >>> >>> /* Configuration has changed, set TX power accordingly. */ >>> - if ((error =3D ops->set_txpower(sc, ni->ni_chan, 1)) !=3D 0) { >>> + if ((error =3D ops->set_txpower(sc, 1)) !=3D 0) { >>> device_printf(sc->sc_dev, >>> "%s: could not set TX power, error %d\n", __func__, >>> error); >>> return error; >>> @@ -7180,7 +7176,7 @@ iwn_run(struct iwn_softc *sc, struct iee >>> } >>> >>> /* Configuration has changed, set TX power accordingly. */ >>> - if ((error =3D ops->set_txpower(sc, ni->ni_chan, 1)) !=3D 0) { >>> + if ((error =3D ops->set_txpower(sc, 1)) !=3D 0) { >>> device_printf(sc->sc_dev, >>> "%s: could not set TX power, error %d\n", __func__, >>> error); >>> return error; >>> >>> Modified: head/sys/dev/iwn/if_iwnvar.h >>> >>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D >>> --- head/sys/dev/iwn/if_iwnvar.h Sat Mar 4 22:58:34 2017 >>> (r314686) >>> +++ head/sys/dev/iwn/if_iwnvar.h Sat Mar 4 23:07:54 2017 >>> (r314687) >>> @@ -206,8 +206,7 @@ struct iwn_ops { >>> uint16_t); >>> int (*get_temperature)(struct iwn_softc *); >>> int (*get_rssi)(struct iwn_softc *, struct >>> iwn_rx_stat *); >>> - int (*set_txpower)(struct iwn_softc *, >>> - struct ieee80211_channel *, int); >>> + int (*set_txpower)(struct iwn_softc *, int); >>> int (*init_gains)(struct iwn_softc *); >>> int (*set_gains)(struct iwn_softc *); >>> int (*add_node)(struct iwn_softc *, struct >>> iwn_node_info *,
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-Vmo=jLSDGP7kPyezPbH80Bu=%2BZcF_r5muWqEU_LEXGZGx9g>