Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 352222
b: refs/heads/master
c: 0b70078
h: refs/heads/master
v: v3
  • Loading branch information
Eyal Shapira authored and Luciano Coelho committed Dec 11, 2012
1 parent 2438d9e commit 86efc50
Show file tree
Hide file tree
Showing 11 changed files with 40 additions and 21 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: c80daad625b382fcd72ad68a5c0a26933263aa85
refs/heads/master: 0b70078c38fd1c8d69cf52b93e8c3bdd719a2394
10 changes: 7 additions & 3 deletions trunk/drivers/net/wireless/ti/wl12xx/event.c
Original file line number Diff line number Diff line change
Expand Up @@ -64,9 +64,13 @@ int wl12xx_process_mailbox_events(struct wl1271 *wl)
wl12xx_scan_completed(wl, wl->scan_wlvif);
}

if (vector & PERIODIC_SCAN_REPORT_EVENT_ID)
wlcore_event_sched_scan_report(wl,
mbox->scheduled_scan_status);
if (vector & PERIODIC_SCAN_REPORT_EVENT_ID) {
wl1271_debug(DEBUG_EVENT,
"PERIODIC_SCAN_REPORT_EVENT (status 0x%0x)",
mbox->scheduled_scan_status);

wlcore_scan_sched_scan_results(wl);
}

if (vector & PERIODIC_SCAN_COMPLETE_EVENT_ID)
wlcore_event_sched_scan_completed(wl,
Expand Down
8 changes: 8 additions & 0 deletions trunk/drivers/net/wireless/ti/wl18xx/event.c
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,14 @@ int wl18xx_process_mailbox_events(struct wl1271 *wl)
wl18xx_scan_completed(wl, wl->scan_wlvif);
}

if (vector & PERIODIC_SCAN_REPORT_EVENT_ID) {
wl1271_debug(DEBUG_EVENT,
"PERIODIC_SCAN_REPORT_EVENT (results %d)",
mbox->number_of_sched_scan_results);

wlcore_scan_sched_scan_results(wl);
}

if (vector & PERIODIC_SCAN_COMPLETE_EVENT_ID)
wlcore_event_sched_scan_completed(wl, 1);

Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/ti/wl18xx/event.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ enum {
BA_SESSION_RX_CONSTRAINT_EVENT_ID = BIT(17),
REMAIN_ON_CHANNEL_COMPLETE_EVENT_ID = BIT(18),
DFS_CHANNELS_CONFIG_COMPLETE_EVENT = BIT(19),
PERIODIC_SCAN_REPORT_EVENT_ID = BIT(20),
};

struct wl18xx_event_mailbox {
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/ti/wl18xx/main.c
Original file line number Diff line number Diff line change
Expand Up @@ -890,6 +890,7 @@ static int wl18xx_boot(struct wl1271 *wl)
SCAN_COMPLETE_EVENT_ID |
RSSI_SNR_TRIGGER_0_EVENT_ID |
PERIODIC_SCAN_COMPLETE_EVENT_ID |
PERIODIC_SCAN_REPORT_EVENT_ID |
DUMMY_PACKET_EVENT_ID |
PEER_REMOVE_COMPLETE_EVENT_ID |
BA_SESSION_RX_CONSTRAINT_EVENT_ID |
Expand Down
4 changes: 4 additions & 0 deletions trunk/drivers/net/wireless/ti/wl18xx/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,10 @@ int wl18xx_scan_sched_scan_config(struct wl1271 *wl,

cmd->tag = WL1271_SCAN_DEFAULT_TAG;

/* create a PERIODIC_SCAN_REPORT_EVENT whenever we've got a match */
cmd->report_threshold = 1;
cmd->terminate_on_report = 0;

if (cmd->active[0]) {
u8 band = IEEE80211_BAND_2GHZ;
ret = wl12xx_cmd_build_probe_req(wl, wlvif,
Expand Down
18 changes: 15 additions & 3 deletions trunk/drivers/net/wireless/ti/wl18xx/scan.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,7 @@ struct wl18xx_cmd_scan_params {
__le16 long_cycles_sec;
u8 short_cycles_count;
u8 total_cycles; /* 0 - infinite */
u8 rate;
u8 padding[1];
u8 padding[2];

union {
struct {
Expand All @@ -93,7 +92,20 @@ struct wl18xx_cmd_scan_params {
u8 ssid[IEEE80211_MAX_SSID_LEN];
u8 ssid_len; /* For SCAN_SSID_FILTER_SPECIFIC */
u8 tag;
u8 padding1[2];
u8 rate;

/* send SCAN_REPORT_EVENT in periodic scans after each cycle
* if number of results >= report_threshold. Must be 0 for
* non periodic scans
*/
u8 report_threshold;

/* Should periodic scan stop after a report event was created.
* Must be 0 for non periodic scans.
*/
u8 terminate_on_report;

u8 padding1[3];
} __packed;

struct wl18xx_cmd_scan_stop {
Expand Down
10 changes: 0 additions & 10 deletions trunk/drivers/net/wireless/ti/wlcore/event.c
Original file line number Diff line number Diff line change
Expand Up @@ -94,16 +94,6 @@ void wlcore_event_soft_gemini_sense(struct wl1271 *wl, u8 enable)
}
EXPORT_SYMBOL_GPL(wlcore_event_soft_gemini_sense);

void wlcore_event_sched_scan_report(struct wl1271 *wl,
u8 status)
{
wl1271_debug(DEBUG_EVENT, "PERIODIC_SCAN_REPORT_EVENT (status 0x%0x)",
status);

wl1271_scan_sched_scan_results(wl);
}
EXPORT_SYMBOL_GPL(wlcore_event_sched_scan_report);

void wlcore_event_sched_scan_completed(struct wl1271 *wl,
u8 status)
{
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/net/wireless/ti/wlcore/event.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,6 @@ int wl1271_event_unmask(struct wl1271 *wl);
int wl1271_event_handle(struct wl1271 *wl, u8 mbox);

void wlcore_event_soft_gemini_sense(struct wl1271 *wl, u8 enable);
void wlcore_event_sched_scan_report(struct wl1271 *wl,
u8 status);
void wlcore_event_sched_scan_completed(struct wl1271 *wl,
u8 status);
void wlcore_event_ba_rx_constraint(struct wl1271 *wl,
Expand Down
3 changes: 2 additions & 1 deletion trunk/drivers/net/wireless/ti/wlcore/scan.c
Original file line number Diff line number Diff line change
Expand Up @@ -460,9 +460,10 @@ wlcore_scan_sched_scan_ssid_list(struct wl1271 *wl,
}
EXPORT_SYMBOL_GPL(wlcore_scan_sched_scan_ssid_list);

void wl1271_scan_sched_scan_results(struct wl1271 *wl)
void wlcore_scan_sched_scan_results(struct wl1271 *wl)
{
wl1271_debug(DEBUG_SCAN, "got periodic scan results");

ieee80211_sched_scan_results(wl->hw);
}
EXPORT_SYMBOL_GPL(wlcore_scan_sched_scan_results);
2 changes: 1 addition & 1 deletion trunk/drivers/net/wireless/ti/wlcore/scan.h
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ int wl1271_scan_sched_scan_config(struct wl1271 *wl,
struct cfg80211_sched_scan_request *req,
struct ieee80211_sched_scan_ies *ies);
int wl1271_scan_sched_scan_start(struct wl1271 *wl, struct wl12xx_vif *wlvif);
void wl1271_scan_sched_scan_results(struct wl1271 *wl);
void wlcore_scan_sched_scan_results(struct wl1271 *wl);

#define WL1271_SCAN_MAX_CHANNELS 24
#define WL1271_SCAN_DEFAULT_TAG 1
Expand Down

0 comments on commit 86efc50

Please sign in to comment.