|
@@ -268,9 +268,9 @@ static void rt2500usb_config_bssid(struct rt2x00_dev *rt2x00dev,
|
|
(3 * sizeof(__le16)));
|
|
(3 * sizeof(__le16)));
|
|
}
|
|
}
|
|
|
|
|
|
-static void rt2500usb_config_type(struct rt2x00_dev *rt2x00dev, const int type)
|
|
|
|
|
|
+static void rt2500usb_config_type(struct rt2x00_dev *rt2x00dev, const int type,
|
|
|
|
+ const int tsf_sync)
|
|
{
|
|
{
|
|
- struct interface *intf = &rt2x00dev->interface;
|
|
|
|
u16 reg;
|
|
u16 reg;
|
|
|
|
|
|
rt2500usb_register_write(rt2x00dev, TXRX_CSR19, 0);
|
|
rt2500usb_register_write(rt2x00dev, TXRX_CSR19, 0);
|
|
@@ -281,7 +281,7 @@ static void rt2500usb_config_type(struct rt2x00_dev *rt2x00dev, const int type)
|
|
rt2500usb_register_read(rt2x00dev, TXRX_CSR20, ®);
|
|
rt2500usb_register_read(rt2x00dev, TXRX_CSR20, ®);
|
|
rt2x00_set_field16(®, TXRX_CSR20_OFFSET,
|
|
rt2x00_set_field16(®, TXRX_CSR20_OFFSET,
|
|
(PREAMBLE + get_duration(IEEE80211_HEADER, 2)) >> 6);
|
|
(PREAMBLE + get_duration(IEEE80211_HEADER, 2)) >> 6);
|
|
- if (is_interface_type(intf, IEEE80211_IF_TYPE_STA))
|
|
|
|
|
|
+ if (type == IEEE80211_IF_TYPE_STA)
|
|
rt2x00_set_field16(®, TXRX_CSR20_BCN_EXPECT_WINDOW, 0);
|
|
rt2x00_set_field16(®, TXRX_CSR20_BCN_EXPECT_WINDOW, 0);
|
|
else
|
|
else
|
|
rt2x00_set_field16(®, TXRX_CSR20_BCN_EXPECT_WINDOW, 2);
|
|
rt2x00_set_field16(®, TXRX_CSR20_BCN_EXPECT_WINDOW, 2);
|
|
@@ -298,13 +298,7 @@ static void rt2500usb_config_type(struct rt2x00_dev *rt2x00dev, const int type)
|
|
rt2x00_set_field16(®, TXRX_CSR19_TSF_COUNT, 1);
|
|
rt2x00_set_field16(®, TXRX_CSR19_TSF_COUNT, 1);
|
|
rt2x00_set_field16(®, TXRX_CSR19_TBCN, 1);
|
|
rt2x00_set_field16(®, TXRX_CSR19_TBCN, 1);
|
|
rt2x00_set_field16(®, TXRX_CSR19_BEACON_GEN, 0);
|
|
rt2x00_set_field16(®, TXRX_CSR19_BEACON_GEN, 0);
|
|
- if (is_interface_type(intf, IEEE80211_IF_TYPE_IBSS) ||
|
|
|
|
- is_interface_type(intf, IEEE80211_IF_TYPE_AP))
|
|
|
|
- rt2x00_set_field16(®, TXRX_CSR19_TSF_SYNC, 2);
|
|
|
|
- else if (is_interface_type(intf, IEEE80211_IF_TYPE_STA))
|
|
|
|
- rt2x00_set_field16(®, TXRX_CSR19_TSF_SYNC, 1);
|
|
|
|
- else
|
|
|
|
- rt2x00_set_field16(®, TXRX_CSR19_TSF_SYNC, 0);
|
|
|
|
|
|
+ rt2x00_set_field16(®, TXRX_CSR19_TSF_SYNC, tsf_sync);
|
|
rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg);
|
|
rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg);
|
|
}
|
|
}
|
|
|
|
|