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;