Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 121569
b: refs/heads/master
c: 40333e4
h: refs/heads/master
i:
  121567: b949b03
v: v3
  • Loading branch information
Christian Lamparter authored and John W. Linville committed Oct 31, 2008
1 parent 17f59cc commit 4890067
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 8 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: 5d6924eaf07bec9ce7527cad9d2537e448574738
refs/heads/master: 40333e4fb476014cdd939d27e20eb54573172b32
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/p54/p54.h
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ struct p54_common {
unsigned int output_limit_len;
struct pda_pa_curve_data *curve_data;
unsigned int filter_flags;
bool use_short_slot;
u16 rxhw;
u8 version;
u8 rx_antenna;
Expand Down
23 changes: 16 additions & 7 deletions trunk/drivers/net/wireless/p54/p54common.c
Original file line number Diff line number Diff line change
Expand Up @@ -901,12 +901,10 @@ static int p54_set_filter(struct ieee80211_hw *dev, u16 filter_type,
memset(filter->bssid, ~0, ETH_ALEN);
else
memcpy(filter->bssid, bssid, ETH_ALEN);

filter->rx_antenna = priv->rx_antenna;

if (priv->fw_var < 0x500) {
data_len = P54_TX_CONTROL_FILTER_V1_LEN;
filter->v1.basic_rate_mask = cpu_to_le32(0x15F);
filter->v1.basic_rate_mask = cpu_to_le32(0x15f);
filter->v1.rx_addr = cpu_to_le32(priv->rx_end);
filter->v1.max_rx = cpu_to_le16(priv->rx_mtu);
filter->v1.rxhw = cpu_to_le16(priv->rxhw);
Expand All @@ -918,7 +916,6 @@ static int p54_set_filter(struct ieee80211_hw *dev, u16 filter_type,
filter->v2.rxhw = cpu_to_le16(priv->rxhw);
filter->v2.timer = cpu_to_le16(1000);
}

hdr->len = cpu_to_le16(data_len);
p54_assign_address(dev, NULL, hdr, sizeof(*hdr) + data_len);
priv->tx(dev, hdr, sizeof(*hdr) + data_len, 1);
Expand Down Expand Up @@ -1088,7 +1085,7 @@ static void p54_set_vdcf(struct ieee80211_hw *dev)

vdcf = (struct p54_tx_control_vdcf *) hdr->data;

if (dev->conf.flags & IEEE80211_CONF_SHORT_SLOT_TIME) {
if (priv->use_short_slot) {
vdcf->slottime = 9;
vdcf->magic1 = 0x10;
vdcf->magic2 = 0x00;
Expand Down Expand Up @@ -1135,7 +1132,6 @@ static int p54_start(struct ieee80211_hw *dev)
priv->mode = NL80211_IFTYPE_MONITOR;

p54_init_vdcf(dev);

mod_timer(&priv->stats_timer, jiffies + HZ);
return err;
}
Expand Down Expand Up @@ -1351,6 +1347,19 @@ static int p54_get_tx_stats(struct ieee80211_hw *dev,
return 0;
}

static void p54_bss_info_changed(struct ieee80211_hw *dev,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *info,
u32 changed)
{
struct p54_common *priv = dev->priv;

if (changed & BSS_CHANGED_ERP_SLOT) {
priv->use_short_slot = info->use_short_slot;
p54_set_vdcf(dev);
}
}

static const struct ieee80211_ops p54_ops = {
.tx = p54_tx,
.start = p54_start,
Expand All @@ -1359,6 +1368,7 @@ static const struct ieee80211_ops p54_ops = {
.remove_interface = p54_remove_interface,
.config = p54_config,
.config_interface = p54_config_interface,
.bss_info_changed = p54_bss_info_changed,
.configure_filter = p54_configure_filter,
.conf_tx = p54_conf_tx,
.get_stats = p54_get_stats,
Expand All @@ -1385,7 +1395,6 @@ struct ieee80211_hw *p54_init_common(size_t priv_data_len)
dev->wiphy->interface_modes = BIT(NL80211_IFTYPE_STATION);

dev->channel_change_time = 1000; /* TODO: find actual value */

priv->tx_stats[0].limit = 1;
priv->tx_stats[1].limit = 1;
priv->tx_stats[2].limit = 1;
Expand Down

0 comments on commit 4890067

Please sign in to comment.