Commit 1e3428e9 authored by Dan Williams's avatar Dan Williams Committed by David S. Miller

orinoco: more reliable scan handling

Bring scan result handling more in line with drivers like ipw.  Scan
results are aggregated and a BSS dropped after 15 seconds if no beacon
is received.  This allows the driver to interact better with userspace
where more than one process may request scans or results at any time.
Signed-off-by: default avatarDan Williams <dcbw@redhat.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 40faacc4
This diff is collapsed.
...@@ -36,6 +36,12 @@ typedef enum { ...@@ -36,6 +36,12 @@ typedef enum {
FIRMWARE_TYPE_SYMBOL FIRMWARE_TYPE_SYMBOL
} fwtype_t; } fwtype_t;
typedef struct {
union hermes_scan_info bss;
unsigned long last_scanned;
struct list_head list;
} bss_element;
struct orinoco_private { struct orinoco_private {
void *card; /* Pointer to card dependent structure */ void *card; /* Pointer to card dependent structure */
int (*hard_reset)(struct orinoco_private *); int (*hard_reset)(struct orinoco_private *);
...@@ -105,10 +111,12 @@ struct orinoco_private { ...@@ -105,10 +111,12 @@ struct orinoco_private {
int promiscuous, mc_count; int promiscuous, mc_count;
/* Scanning support */ /* Scanning support */
struct list_head bss_list;
struct list_head bss_free_list;
bss_element *bss_data;
int scan_inprogress; /* Scan pending... */ int scan_inprogress; /* Scan pending... */
u32 scan_mode; /* Type of scan done */ u32 scan_mode; /* Type of scan done */
char * scan_result; /* Result of previous scan */
int scan_len; /* Lenght of result */
}; };
#ifdef ORINOCO_DEBUG #ifdef ORINOCO_DEBUG
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment