2 Replies Latest reply on Aug 12, 2019 2:39 AM by DaMa_4403631

    regulatory setting for linux wifi drivers

    byts_4383596

      Hi chi-hsienl_21,

          I checked the latest cypress-fmac-v4.14.77-2019_0503.

       

          I am using raspberry bi 3b+ with CYW43455, and encountered some wifi 5g channel problems.

          It seems that brcmf_construct_chaninfo() will clear all channel flags and disable all channels first, then enable by chanspecs from firmware data.

           cfg80211.c#6392

          if (band)

          for (i = 0; i < band->n_channels; i++)

              band->channels[i].flags = IEEE80211_CHAN_DISABLED;

       

       

          I have 2 questions:

          1.  40Mhz/80Mhz channel disabled flags will not be cleared, therefore linux command iw reg get will not show 40/80Mhz channels, though actually 40/80Mhz mode is ok to be used.

          cfg80211.c#6440

          if (ch.bw == BRCMU_CHAN_BW_80) {

              channel->flags &= ~IEEE80211_CHAN_NO_80MHZ;

          } else if (ch.bw == BRCMU_CHAN_BW_40) {

              brcmf_update_bw40_channel_flag(channel, &ch);

       

       

          2. the 2nd question is brcmf_construct_chaninfo()  use most regulatory information from firmware, and wireless-regdb data is ignored. this will cause a lot of channels to be disabled if there's no firmware update for regulatory change. for example, when setting country=TW, only channel 56~64, 149~165 is enabled.

       

         would you please help to check above problems. thanks.