Hi Guys,

        This is a quick patch I made for the Prism54 driver to display
bit-rates in the scan output. This patch was made for 2.6.15-rc4 and
seem to do the right thing.
        If one of you could push that to the various Prism54
repository, I would be glad.

        Have fun...

        Jean

-----------------------------------------------------------------

diff -u -p linux/drivers/net/wireless/prism54/isl_ioctl.r1.c 
linux/drivers/net/wireless/prism54/isl_ioctl.c
--- linux/drivers/net/wireless/prism54/isl_ioctl.r1.c   2005-12-02 
18:02:07.000000000 -0800
+++ linux/drivers/net/wireless/prism54/isl_ioctl.c      2005-12-02 
18:04:35.000000000 -0800
@@ -42,6 +42,10 @@ static size_t prism54_wpa_ie_get(islpci_
 static int prism54_set_wpa(struct net_device *, struct iw_request_info *,
                                __u32 *, char *);
 
+/* In 500 kbps */
+static const unsigned char scan_rate_list[] = { 2, 4, 11, 22,
+                                               12, 18, 24, 36,
+                                               48, 72, 96, 108 };
 
 /**
  * prism54_mib_mode_helper - MIB change mode helper function
@@ -649,6 +653,32 @@ prism54_translate_bss(struct net_device 
                        kfree(buf);
                }
        }
+       /* Do the bitrates */
+       {
+               char *  current_val = current_ev + IW_EV_LCP_LEN;
+               int i;
+               int mask;
+
+               iwe.cmd = SIOCGIWRATE;
+               /* Those two flags are ignored... */
+               iwe.u.bitrate.fixed = iwe.u.bitrate.disabled = 0;
+
+               /* Parse the bitmask */
+               mask = 0x1;
+               for(i = 0; i < sizeof(scan_rate_list); i++) {
+                       if(bss->rates & mask) {
+                               iwe.u.bitrate.value = (scan_rate_list[i] * 
500000);
+                               current_val = iwe_stream_add_value(current_ev, 
current_val,
+                                                                  end_buf, 
&iwe,
+                                                                  
IW_EV_PARAM_LEN);
+                       }
+                       mask <<= 1;
+               }
+               /* Check if we added any event */
+               if ((current_val - current_ev) > IW_EV_LCP_LEN)
+                       current_ev = current_val;
+       }
+
        return current_ev;
 }
 

-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to