On Mon, Jan 02, 2006 at 06:13:56PM -0600, Matteo Frigo wrote:
> The frequencies shown by ``iwlist eth1 channel'' are off by a factor
> of 100000.  Patch attached.

funny, 'cause it seems we both had the same itch as i just finished doing a
patch for the iwlist channel problem, and got iwgetid -c finally working.

i also noticed that the definition and type for channel was unconsistent,
which is also fixed on the attached patch.

regards,

Carlo
Index: bcm43xx_wx.c
===================================================================
--- bcm43xx_wx.c        (revision 1023)
+++ bcm43xx_wx.c        (working copy)
@@ -128,7 +128,7 @@
                freq = bcm43xx_channel_to_freq(bcm, channel);
        } else {
                channel = bcm43xx_freq_to_channel(bcm, data->freq.m);
-               freq = data->freq.m;
+               freq = data->freq.m * 100000;
        }
        if (!bcm43xx_is_valid_channel(bcm, channel))
                return -EINVAL;
@@ -156,7 +156,8 @@
        struct bcm43xx_private *bcm = bcm43xx_priv(net_dev);
        unsigned long flags;
        int err = -ENODEV;
-       u16 channel;
+       u8 channel;
+       int freq;
 
        wx_enter();
 
@@ -168,9 +169,10 @@
                if (channel == 0xFF)
                        goto out_unlock;
        }
-       assert(channel > 0 && channel <= 1000);
+       freq = bcm43xx_channel_to_freq(bcm, channel);
+       assert(freq > 1000);
        data->freq.e = 1;
-       data->freq.m = bcm43xx_channel_to_freq(bcm, channel) * 100000;
+       data->freq.m = freq * 100000;
        data->freq.flags = 1;
 
        err = 0;
Index: bcm43xx_radio.c
===================================================================
--- bcm43xx_radio.c     (revision 1023)
+++ bcm43xx_radio.c     (working copy)
@@ -147,7 +147,7 @@
 u8 bcm43xx_radio_aci_scan(struct bcm43xx_private *bcm)
 {
        u8 ret[13];
-       unsigned int channel = bcm->current_core->radio->channel;
+       u8 channel = bcm->current_core->radio->channel;
        unsigned int i, j, start, end;
        unsigned long phylock_flags;
 
Index: bcm43xx_main.c
===================================================================
--- bcm43xx_main.c      (revision 1023)
+++ bcm43xx_main.c      (working copy)
@@ -1251,7 +1251,7 @@
                                                        &max_power, &flags))
                                continue;
                        chan = &geo.a[i++];
-                       chan->freq = bcm43xx_channel_to_freq(bcm, channel);
+                       chan->freq = bcm43xx_channel_to_freq(bcm, channel) * 
100000;
                        chan->channel = channel;
                        chan->flags = flags;
                        chan->max_power = max_power;
@@ -1264,7 +1264,7 @@
                                                        &max_power, &flags))
                                continue;
                        chan = &geo.bg[i++];
-                       chan->freq = bcm43xx_channel_to_freq(bcm, channel);
+                       chan->freq = bcm43xx_channel_to_freq(bcm, channel) * 
100000;
                        chan->channel = channel;
                        chan->flags = flags;
                        chan->max_power = max_power;

Reply via email to