|
@@ -335,10 +335,11 @@ static void rt2400pci_config_erp(struct rt2x00_dev *rt2x00dev,
|
|
|
preamble_mask = erp->short_preamble << 3;
|
|
|
|
|
|
rt2x00pci_register_read(rt2x00dev, TXCSR1, ®);
|
|
|
- rt2x00_set_field32(®, TXCSR1_ACK_TIMEOUT,
|
|
|
- erp->ack_timeout);
|
|
|
+ rt2x00_set_field32(®, TXCSR1_ACK_TIMEOUT, erp->ack_timeout);
|
|
|
rt2x00_set_field32(®, TXCSR1_ACK_CONSUME_TIME,
|
|
|
erp->ack_consume_time);
|
|
|
+ rt2x00_set_field32(®, TXCSR1_TSF_OFFSET, IEEE80211_HEADER);
|
|
|
+ rt2x00_set_field32(®, TXCSR1_AUTORESPONDER, 1);
|
|
|
rt2x00pci_register_write(rt2x00dev, TXCSR1, reg);
|
|
|
|
|
|
rt2x00pci_register_read(rt2x00dev, ARCSR2, ®);
|
|
@@ -371,6 +372,11 @@ static void rt2400pci_config_erp(struct rt2x00_dev *rt2x00dev,
|
|
|
rt2x00_set_field32(®, CSR11_SLOT_TIME, erp->slot_time);
|
|
|
rt2x00pci_register_write(rt2x00dev, CSR11, reg);
|
|
|
|
|
|
+ rt2x00pci_register_read(rt2x00dev, CSR12, ®);
|
|
|
+ rt2x00_set_field32(®, CSR12_BEACON_INTERVAL, erp->beacon_int * 16);
|
|
|
+ rt2x00_set_field32(®, CSR12_CFP_MAX_DURATION, erp->beacon_int * 16);
|
|
|
+ rt2x00pci_register_write(rt2x00dev, CSR12, reg);
|
|
|
+
|
|
|
rt2x00pci_register_read(rt2x00dev, CSR18, ®);
|
|
|
rt2x00_set_field32(®, CSR18_SIFS, erp->sifs);
|
|
|
rt2x00_set_field32(®, CSR18_PIFS, erp->pifs);
|
|
@@ -503,24 +509,6 @@ static void rt2400pci_config_retry_limit(struct rt2x00_dev *rt2x00dev,
|
|
|
rt2x00pci_register_write(rt2x00dev, CSR11, reg);
|
|
|
}
|
|
|
|
|
|
-static void rt2400pci_config_duration(struct rt2x00_dev *rt2x00dev,
|
|
|
- struct rt2x00lib_conf *libconf)
|
|
|
-{
|
|
|
- u32 reg;
|
|
|
-
|
|
|
- rt2x00pci_register_read(rt2x00dev, TXCSR1, ®);
|
|
|
- rt2x00_set_field32(®, TXCSR1_TSF_OFFSET, IEEE80211_HEADER);
|
|
|
- rt2x00_set_field32(®, TXCSR1_AUTORESPONDER, 1);
|
|
|
- rt2x00pci_register_write(rt2x00dev, TXCSR1, reg);
|
|
|
-
|
|
|
- rt2x00pci_register_read(rt2x00dev, CSR12, ®);
|
|
|
- rt2x00_set_field32(®, CSR12_BEACON_INTERVAL,
|
|
|
- libconf->conf->beacon_int * 16);
|
|
|
- rt2x00_set_field32(®, CSR12_CFP_MAX_DURATION,
|
|
|
- libconf->conf->beacon_int * 16);
|
|
|
- rt2x00pci_register_write(rt2x00dev, CSR12, reg);
|
|
|
-}
|
|
|
-
|
|
|
static void rt2400pci_config_ps(struct rt2x00_dev *rt2x00dev,
|
|
|
struct rt2x00lib_conf *libconf)
|
|
|
{
|
|
@@ -558,8 +546,6 @@ static void rt2400pci_config(struct rt2x00_dev *rt2x00dev,
|
|
|
libconf->conf->power_level);
|
|
|
if (flags & IEEE80211_CONF_CHANGE_RETRY_LIMITS)
|
|
|
rt2400pci_config_retry_limit(rt2x00dev, libconf);
|
|
|
- if (flags & IEEE80211_CONF_CHANGE_BEACON_INTERVAL)
|
|
|
- rt2400pci_config_duration(rt2x00dev, libconf);
|
|
|
if (flags & IEEE80211_CONF_CHANGE_PS)
|
|
|
rt2400pci_config_ps(rt2x00dev, libconf);
|
|
|
}
|