--- linux-2.6.18.noarch/include/linux/wireless.h.orig 2008-01-03 13:04:14.000000000 -0500 +++ linux-2.6.18.noarch/include/linux/wireless.h 2008-01-03 13:04:19.000000000 -0500 @@ -521,6 +521,16 @@ /* Maximum size of returned data */ #define IW_SCAN_MAX_DATA 4096 /* In bytes */ +/* Scan capability flags - in (struct iw_range *)->scan_capa */ +#define IW_SCAN_CAPA_NONE 0x00 +#define IW_SCAN_CAPA_ESSID 0x01 +#define IW_SCAN_CAPA_BSSID 0x02 +#define IW_SCAN_CAPA_CHANNEL 0x04 +#define IW_SCAN_CAPA_MODE 0x08 +#define IW_SCAN_CAPA_RATE 0x10 +#define IW_SCAN_CAPA_TYPE 0x20 +#define IW_SCAN_CAPA_TIME 0x40 + /* Max number of char in custom event - use multiple of them if needed */ #define IW_CUSTOM_MAX 256 /* In bytes */ @@ -941,6 +951,11 @@ struct iw_range __u16 old_num_channels; __u8 old_num_frequency; +#ifndef __GENKSYMS__ + /* Scan capabilities */ + __u8 scan_capa; /* IW_SCAN_CAPA_* bit field */ +#endif + /* Wireless event capability bitmasks */ __u32 event_capa[6]; --- linux-2.6.18.noarch/drivers/net/wireless/hostap/hostap_ioctl.c.orig 2008-01-03 13:04:14.000000000 -0500 +++ linux-2.6.18.noarch/drivers/net/wireless/hostap/hostap_ioctl.c 2008-01-03 13:04:19.000000000 -0500 @@ -1094,6 +1094,9 @@ static int prism2_ioctl_giwrange(struct range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 | IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP; + if (local->sta_fw_ver >= PRISM2_FW_VER(1,3,1)) + range->scan_capa = IW_SCAN_CAPA_ESSID; + return 0; } --- linux-2.6.18.noarch/drivers/net/wireless/ipw2200.c.orig 2008-01-03 13:04:14.000000000 -0500 +++ linux-2.6.18.noarch/drivers/net/wireless/ipw2200.c 2008-01-03 13:04:19.000000000 -0500 @@ -8836,6 +8836,8 @@ static int ipw_wx_get_range(struct net_d range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 | IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP; + range->scan_capa = IW_SCAN_CAPA_ESSID | IW_SCAN_CAPA_TYPE; + IPW_DEBUG_WX("GET Range\n"); return 0; } --- linux-2.6.18.noarch/net/mac80211/ieee80211_ioctl.c.orig 2008-01-03 13:04:14.000000000 -0500 +++ linux-2.6.18.noarch/net/mac80211/ieee80211_ioctl.c 2008-01-03 13:04:19.000000000 -0500 @@ -218,6 +218,8 @@ static int ieee80211_ioctl_giwrange(stru IW_EVENT_CAPA_SET(range->event_capa, SIOCGIWAP); IW_EVENT_CAPA_SET(range->event_capa, SIOCGIWSCAN); + range->scan_capa |= IW_SCAN_CAPA_ESSID; + return 0; }