Skip site navigation (1)Skip section navigation (2)
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>