-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
David Kilroy
authored and
John W. Linville
committed
Jul 10, 2009
1 parent
4a50825
commit 17dac7c
Showing
8 changed files
with
257 additions
and
90 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,2 @@ | ||
--- | ||
refs/heads/master: 98e5f404485d5d11b15e8351535a0e064a37647c | ||
refs/heads/master: ea60a6aaf55984a13a7150568cc103d006e86ab2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
/* cfg80211 support | ||
* | ||
* See copyright notice in main.c | ||
*/ | ||
#include <linux/ieee80211.h> | ||
#include <net/cfg80211.h> | ||
#include "hw.h" | ||
#include "main.h" | ||
#include "orinoco.h" | ||
|
||
#include "cfg.h" | ||
|
||
/* Supported bitrates. Must agree with hw.c */ | ||
static struct ieee80211_rate orinoco_rates[] = { | ||
{ .bitrate = 10 }, | ||
{ .bitrate = 20 }, | ||
{ .bitrate = 55 }, | ||
{ .bitrate = 110 }, | ||
}; | ||
|
||
static const void * const orinoco_wiphy_privid = &orinoco_wiphy_privid; | ||
|
||
/* Called after orinoco_private is allocated. */ | ||
void orinoco_wiphy_init(struct wiphy *wiphy) | ||
{ | ||
struct orinoco_private *priv = wiphy_priv(wiphy); | ||
|
||
wiphy->privid = orinoco_wiphy_privid; | ||
|
||
set_wiphy_dev(wiphy, priv->dev); | ||
} | ||
|
||
/* Called after firmware is initialised */ | ||
int orinoco_wiphy_register(struct wiphy *wiphy) | ||
{ | ||
struct orinoco_private *priv = wiphy_priv(wiphy); | ||
int i, channels = 0; | ||
|
||
if (priv->firmware_type == FIRMWARE_TYPE_AGERE) | ||
wiphy->max_scan_ssids = 1; | ||
else | ||
wiphy->max_scan_ssids = 0; | ||
|
||
wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION); | ||
|
||
/* TODO: should we set if we only have demo ad-hoc? | ||
* (priv->has_port3) | ||
*/ | ||
if (priv->has_ibss) | ||
wiphy->interface_modes |= BIT(NL80211_IFTYPE_ADHOC); | ||
|
||
if (!priv->broken_monitor || force_monitor) | ||
wiphy->interface_modes |= BIT(NL80211_IFTYPE_MONITOR); | ||
|
||
priv->band.bitrates = orinoco_rates; | ||
priv->band.n_bitrates = ARRAY_SIZE(orinoco_rates); | ||
|
||
/* Only support channels allowed by the card EEPROM */ | ||
for (i = 0; i < NUM_CHANNELS; i++) { | ||
if (priv->channel_mask & (1 << i)) { | ||
priv->channels[i].center_freq = | ||
ieee80211_dsss_chan_to_freq(i+1); | ||
channels++; | ||
} | ||
} | ||
priv->band.channels = priv->channels; | ||
priv->band.n_channels = channels; | ||
|
||
wiphy->bands[IEEE80211_BAND_2GHZ] = &priv->band; | ||
wiphy->signal_type = CFG80211_SIGNAL_TYPE_MBM; | ||
|
||
i = 0; | ||
if (priv->has_wep) { | ||
priv->cipher_suites[i] = WLAN_CIPHER_SUITE_WEP40; | ||
i++; | ||
|
||
if (priv->has_big_wep) { | ||
priv->cipher_suites[i] = WLAN_CIPHER_SUITE_WEP104; | ||
i++; | ||
} | ||
} | ||
if (priv->has_wpa) { | ||
priv->cipher_suites[i] = WLAN_CIPHER_SUITE_TKIP; | ||
i++; | ||
} | ||
wiphy->cipher_suites = priv->cipher_suites; | ||
wiphy->n_cipher_suites = i; | ||
|
||
wiphy->rts_threshold = priv->rts_thresh; | ||
if (!priv->has_mwo) | ||
wiphy->frag_threshold = priv->frag_thresh; | ||
|
||
return wiphy_register(wiphy); | ||
} | ||
|
||
const struct cfg80211_ops orinoco_cfg_ops = { | ||
|
||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
/* cfg80211 support. | ||
* | ||
* See copyright notice in main.c | ||
*/ | ||
#ifndef ORINOCO_CFG_H | ||
#define ORINOCO_CFG_H | ||
|
||
#include <net/cfg80211.h> | ||
|
||
extern const struct cfg80211_ops orinoco_cfg_ops; | ||
|
||
void orinoco_wiphy_init(struct wiphy *wiphy); | ||
int orinoco_wiphy_register(struct wiphy *wiphy); | ||
|
||
#endif /* ORINOCO_CFG_H */ |
Oops, something went wrong.