svn commit: r314687 - head/sys/dev/iwn
Adrian Chadd
adrian.chadd at gmail.com
Mon Mar 6 00:26:50 UTC 2017
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 at freebsd.org> wrote:
> Sun, 05 Mar 2017 02:37:09 +0200 було написано Adrian Chadd
> <adrian.chadd at 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 at 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
>>>
>>> ==============================================================================
>>> --- head/sys/dev/iwn/if_iwn.c Sat Mar 4 22:58:34 2017 (r314686)
>>> +++ head/sys/dev/iwn/if_iwn.c Sat Mar 4 23:07:54 2017 (r314687)
>>> @@ -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_node
>>> *);
>>> 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 = &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) >= 3) {
>>> /* Record temperature of last calibration. */
>>> sc->temp = 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 = &sc->rx_on[IWN_RXON_BSS_CTX];
>>> /* Retrieve current channel from last RXON. */
>>> chan = sc->rxon->chan;
>>> + is_chan_5ghz = (sc->rxon->flags & htole32(IWN_RXON_24GHZ)) == 0;
>>> DPRINTF(sc, IWN_DEBUG_RESET, "setting TX power for channel %d\n",
>>> chan);
>>>
>>> memset(&cmd, 0, sizeof cmd);
>>> - cmd.band = IEEE80211_IS_CHAN_5GHZ(ch) ? 0 : 1;
>>> + cmd.band = is_chan_5ghz ? 0 : 1;
>>> cmd.chan = chan;
>>>
>>> - if (IEEE80211_IS_CHAN_5GHZ(ch)) {
>>> + if (is_chan_5ghz) {
>>> maxpwr = sc->maxpwr5GHz;
>>> rf_gain = iwn4965_rf_gain_5ghz;
>>> dsp_gain = 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 = ops->set_txpower(sc, ic->ic_curchan, 0)) != 0) {
>>> + if ((error = ops->set_txpower(sc, 0)) != 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 = ops->set_txpower(sc, ni->ni_chan, 1)) != 0) {
>>> + if ((error = ops->set_txpower(sc, 1)) != 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 = ops->set_txpower(sc, ni->ni_chan, 1)) != 0) {
>>> + if ((error = ops->set_txpower(sc, 1)) != 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
>>>
>>> ==============================================================================
>>> --- 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 *,
More information about the svn-src-head
mailing list