>  static int
>  qtnf_event_handle_sta_assoc(struct qtnf_wmac *mac, struct qtnf_vif *vif,
> @@ -358,41 +359,36 @@ qtnf_event_handle_freq_change(struct qtnf_wmac *mac,
>                             u16 len)
>  {
>       struct wiphy *wiphy = priv_to_wiphy(mac);
> -     struct cfg80211_chan_def chandef;
> -     struct ieee80211_channel *chan;
> +     struct cfg80211_chan_def chdef;
>       struct qtnf_vif *vif;
> -     int freq;
>       int i;

Original variable name 'chandef' was easier to spell on the phone :)

...

> +     qlink_chandef_q2cfg(wiphy, &data->chan, &chdef);
> +
> +     if (!cfg80211_chandef_valid(&chdef)) {
> +             pr_err("MAC%u: bad channel freq1=%u bw=%u\n", mac->macid,
> +                    chdef.center_freq1, chdef.width);
>               return -EINVAL;
>       }

Lets keep both freq1 and freq2 in error message.

...

> +void qlink_chandef_q2cfg(struct wiphy *wiphy,
> +                      const struct qlink_chandef *qch,
> +                      struct cfg80211_chan_def *chdef)
> +{
> +     chdef->center_freq1 = le16_to_cpu(qch->center_freq1);
> +     chdef->center_freq2 = le16_to_cpu(qch->center_freq2);
> +     chdef->width = qlink_chanwidth_to_nl(qch->width);
> +
> +     switch (chdef->width) {
> +     case NL80211_CHAN_WIDTH_20_NOHT:
> +     case NL80211_CHAN_WIDTH_20:
> +     case NL80211_CHAN_WIDTH_5:
> +     case NL80211_CHAN_WIDTH_10:
> +             chdef->chan = ieee80211_get_channel(wiphy, chdef->center_freq1);
> +             break;
> +     case NL80211_CHAN_WIDTH_40:
> +     case NL80211_CHAN_WIDTH_80:
> +     case NL80211_CHAN_WIDTH_80P80:
> +     case NL80211_CHAN_WIDTH_160:
> +             chdef->chan = ieee80211_get_channel(wiphy,
> +                                                 chdef->center_freq1 - 10);

Do we have the same formula for 40MHz and 80MHz center frequency ?
I thought we should be using the channel number for the left-most 20MHz band.

> +             break;
> +     default:
> +             chdef->chan = NULL;
> +             break;
> +     }
> +}

Regards,
Sergey

Reply via email to