forked from Minki/linux
c56ef67250
Some drivers (such as iwlmvm) can handle multiple bands in a single HW scan request. Add a HW flag to indicate that the driver support this. To hold the required data, create a separate structure for HW scan request that holds cfg scan request and data about different parts of the scan IEs. As this changes the mac80211 API, update all drivers using it to use the correct new function type/argument. Signed-off-by: David Spinadel <david.spinadel@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
57 lines
1.7 KiB
C
57 lines
1.7 KiB
C
/*
|
|
* Scan interface for ST-Ericsson CW1200 mac80211 drivers
|
|
*
|
|
* Copyright (c) 2010, ST-Ericsson
|
|
* Author: Dmitry Tarnyagin <dmitry.tarnyagin@lockless.no>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* published by the Free Software Foundation.
|
|
*/
|
|
|
|
#ifndef SCAN_H_INCLUDED
|
|
#define SCAN_H_INCLUDED
|
|
|
|
#include <linux/semaphore.h>
|
|
#include "wsm.h"
|
|
|
|
/* external */ struct sk_buff;
|
|
/* external */ struct cfg80211_scan_request;
|
|
/* external */ struct ieee80211_channel;
|
|
/* external */ struct ieee80211_hw;
|
|
/* external */ struct work_struct;
|
|
|
|
struct cw1200_scan {
|
|
struct semaphore lock;
|
|
struct work_struct work;
|
|
struct delayed_work timeout;
|
|
struct cfg80211_scan_request *req;
|
|
struct ieee80211_channel **begin;
|
|
struct ieee80211_channel **curr;
|
|
struct ieee80211_channel **end;
|
|
struct wsm_ssid ssids[WSM_SCAN_MAX_NUM_OF_SSIDS];
|
|
int output_power;
|
|
int n_ssids;
|
|
int status;
|
|
atomic_t in_progress;
|
|
/* Direct probe requests workaround */
|
|
struct delayed_work probe_work;
|
|
int direct_probe;
|
|
};
|
|
|
|
int cw1200_hw_scan(struct ieee80211_hw *hw,
|
|
struct ieee80211_vif *vif,
|
|
struct ieee80211_scan_request *hw_req);
|
|
void cw1200_scan_work(struct work_struct *work);
|
|
void cw1200_scan_timeout(struct work_struct *work);
|
|
void cw1200_clear_recent_scan_work(struct work_struct *work);
|
|
void cw1200_scan_complete_cb(struct cw1200_common *priv,
|
|
struct wsm_scan_complete *arg);
|
|
void cw1200_scan_failed_cb(struct cw1200_common *priv);
|
|
|
|
/* ******************************************************************** */
|
|
/* Raw probe requests TX workaround */
|
|
void cw1200_probe_work(struct work_struct *work);
|
|
|
|
#endif
|