diff options
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2400pci.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500pci.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2500usb.c | 12 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800pci.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2800usb.c | 12 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt61pci.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.c | 12 |
7 files changed, 50 insertions, 10 deletions
diff --git a/drivers/net/wireless/rt2x00/rt2400pci.c b/drivers/net/wireless/rt2x00/rt2400pci.c index 9ec6691adf0..62786608951 100644 --- a/drivers/net/wireless/rt2x00/rt2400pci.c +++ b/drivers/net/wireless/rt2x00/rt2400pci.c | |||
@@ -1140,7 +1140,11 @@ static void rt2400pci_kill_tx_queue(struct data_queue *queue) | |||
1140 | u32 reg; | 1140 | u32 reg; |
1141 | 1141 | ||
1142 | if (queue->qid == QID_BEACON) { | 1142 | if (queue->qid == QID_BEACON) { |
1143 | rt2x00pci_register_write(rt2x00dev, CSR14, 0); | 1143 | rt2x00pci_register_read(rt2x00dev, CSR14, ®); |
1144 | rt2x00_set_field32(®, CSR14_TSF_COUNT, 0); | ||
1145 | rt2x00_set_field32(®, CSR14_TBCN, 0); | ||
1146 | rt2x00_set_field32(®, CSR14_BEACON_GEN, 0); | ||
1147 | rt2x00pci_register_write(rt2x00dev, CSR14, reg); | ||
1144 | } else { | 1148 | } else { |
1145 | rt2x00pci_register_read(rt2x00dev, TXCSR0, ®); | 1149 | rt2x00pci_register_read(rt2x00dev, TXCSR0, ®); |
1146 | rt2x00_set_field32(®, TXCSR0_ABORT, 1); | 1150 | rt2x00_set_field32(®, TXCSR0_ABORT, 1); |
diff --git a/drivers/net/wireless/rt2x00/rt2500pci.c b/drivers/net/wireless/rt2x00/rt2500pci.c index 3e7f2034624..ce9212f2820 100644 --- a/drivers/net/wireless/rt2x00/rt2500pci.c +++ b/drivers/net/wireless/rt2x00/rt2500pci.c | |||
@@ -1294,7 +1294,11 @@ static void rt2500pci_kill_tx_queue(struct data_queue *queue) | |||
1294 | u32 reg; | 1294 | u32 reg; |
1295 | 1295 | ||
1296 | if (queue->qid == QID_BEACON) { | 1296 | if (queue->qid == QID_BEACON) { |
1297 | rt2x00pci_register_write(rt2x00dev, CSR14, 0); | 1297 | rt2x00pci_register_read(rt2x00dev, CSR14, ®); |
1298 | rt2x00_set_field32(®, CSR14_TSF_COUNT, 0); | ||
1299 | rt2x00_set_field32(®, CSR14_TBCN, 0); | ||
1300 | rt2x00_set_field32(®, CSR14_BEACON_GEN, 0); | ||
1301 | rt2x00pci_register_write(rt2x00dev, CSR14, reg); | ||
1298 | } else { | 1302 | } else { |
1299 | rt2x00pci_register_read(rt2x00dev, TXCSR0, ®); | 1303 | rt2x00pci_register_read(rt2x00dev, TXCSR0, ®); |
1300 | rt2x00_set_field32(®, TXCSR0_ABORT, 1); | 1304 | rt2x00_set_field32(®, TXCSR0_ABORT, 1); |
diff --git a/drivers/net/wireless/rt2x00/rt2500usb.c b/drivers/net/wireless/rt2x00/rt2500usb.c index 8152fec3175..bbfa671f115 100644 --- a/drivers/net/wireless/rt2x00/rt2500usb.c +++ b/drivers/net/wireless/rt2x00/rt2500usb.c | |||
@@ -1205,8 +1205,16 @@ static int rt2500usb_get_tx_data_len(struct queue_entry *entry) | |||
1205 | 1205 | ||
1206 | static void rt2500usb_kill_tx_queue(struct data_queue *queue) | 1206 | static void rt2500usb_kill_tx_queue(struct data_queue *queue) |
1207 | { | 1207 | { |
1208 | if (queue->qid == QID_BEACON) | 1208 | struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; |
1209 | rt2500usb_register_write(queue->rt2x00dev, TXRX_CSR19, 0); | 1209 | u16 reg; |
1210 | |||
1211 | if (queue->qid == QID_BEACON) { | ||
1212 | rt2500usb_register_read(rt2x00dev, TXRX_CSR19, ®); | ||
1213 | rt2x00_set_field16(®, TXRX_CSR19_TSF_COUNT, 0); | ||
1214 | rt2x00_set_field16(®, TXRX_CSR19_TBCN, 0); | ||
1215 | rt2x00_set_field16(®, TXRX_CSR19_BEACON_GEN, 0); | ||
1216 | rt2500usb_register_write(rt2x00dev, TXRX_CSR19, reg); | ||
1217 | } | ||
1210 | 1218 | ||
1211 | rt2x00usb_kill_tx_queue(queue); | 1219 | rt2x00usb_kill_tx_queue(queue); |
1212 | } | 1220 | } |
diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c index f5abcc6e86b..533a8fc1f7c 100644 --- a/drivers/net/wireless/rt2x00/rt2800pci.c +++ b/drivers/net/wireless/rt2x00/rt2800pci.c | |||
@@ -588,7 +588,11 @@ static void rt2800pci_kill_tx_queue(struct data_queue *queue) | |||
588 | u32 reg; | 588 | u32 reg; |
589 | 589 | ||
590 | if (queue->qid == QID_BEACON) { | 590 | if (queue->qid == QID_BEACON) { |
591 | rt2800_register_write(rt2x00dev, BCN_TIME_CFG, 0); | 591 | rt2800_register_read(rt2x00dev, BCN_TIME_CFG, ®); |
592 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 0); | ||
593 | rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE, 0); | ||
594 | rt2x00_set_field32(®, BCN_TIME_CFG_BEACON_GEN, 0); | ||
595 | rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg); | ||
592 | return; | 596 | return; |
593 | } | 597 | } |
594 | 598 | ||
diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c index 042e47d92b6..a150fccffba 100644 --- a/drivers/net/wireless/rt2x00/rt2800usb.c +++ b/drivers/net/wireless/rt2x00/rt2800usb.c | |||
@@ -391,8 +391,16 @@ static void rt2800usb_work_txdone(struct work_struct *work) | |||
391 | 391 | ||
392 | static void rt2800usb_kill_tx_queue(struct data_queue *queue) | 392 | static void rt2800usb_kill_tx_queue(struct data_queue *queue) |
393 | { | 393 | { |
394 | if (queue->qid == QID_BEACON) | 394 | struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; |
395 | rt2x00usb_register_write(queue->rt2x00dev, BCN_TIME_CFG, 0); | 395 | u32 reg; |
396 | |||
397 | if (queue->qid == QID_BEACON) { | ||
398 | rt2800_register_read(rt2x00dev, BCN_TIME_CFG, ®); | ||
399 | rt2x00_set_field32(®, BCN_TIME_CFG_TSF_TICKING, 0); | ||
400 | rt2x00_set_field32(®, BCN_TIME_CFG_TBTT_ENABLE, 0); | ||
401 | rt2x00_set_field32(®, BCN_TIME_CFG_BEACON_GEN, 0); | ||
402 | rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg); | ||
403 | } | ||
396 | 404 | ||
397 | rt2x00usb_kill_tx_queue(queue); | 405 | rt2x00usb_kill_tx_queue(queue); |
398 | } | 406 | } |
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c index 6b09b01f634..6ad0c1c9ce4 100644 --- a/drivers/net/wireless/rt2x00/rt61pci.c +++ b/drivers/net/wireless/rt2x00/rt61pci.c | |||
@@ -1944,7 +1944,11 @@ static void rt61pci_kill_tx_queue(struct data_queue *queue) | |||
1944 | u32 reg; | 1944 | u32 reg; |
1945 | 1945 | ||
1946 | if (queue->qid == QID_BEACON) { | 1946 | if (queue->qid == QID_BEACON) { |
1947 | rt2x00pci_register_write(rt2x00dev, TXRX_CSR9, 0); | 1947 | rt2x00pci_register_read(rt2x00dev, TXRX_CSR9, ®); |
1948 | rt2x00_set_field32(®, TXRX_CSR9_TSF_TICKING, 0); | ||
1949 | rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 0); | ||
1950 | rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0); | ||
1951 | rt2x00pci_register_write(rt2x00dev, TXRX_CSR9, reg); | ||
1948 | return; | 1952 | return; |
1949 | } | 1953 | } |
1950 | 1954 | ||
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index 6f04552f581..3934dad709c 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c | |||
@@ -1581,8 +1581,16 @@ static int rt73usb_get_tx_data_len(struct queue_entry *entry) | |||
1581 | 1581 | ||
1582 | static void rt73usb_kill_tx_queue(struct data_queue *queue) | 1582 | static void rt73usb_kill_tx_queue(struct data_queue *queue) |
1583 | { | 1583 | { |
1584 | if (queue->qid == QID_BEACON) | 1584 | struct rt2x00_dev *rt2x00dev = queue->rt2x00dev; |
1585 | rt2x00usb_register_write(queue->rt2x00dev, TXRX_CSR9, 0); | 1585 | u32 reg; |
1586 | |||
1587 | if (queue->qid == QID_BEACON) { | ||
1588 | rt2x00usb_register_read(rt2x00dev, TXRX_CSR9, ®); | ||
1589 | rt2x00_set_field32(®, TXRX_CSR9_TSF_TICKING, 0); | ||
1590 | rt2x00_set_field32(®, TXRX_CSR9_TBTT_ENABLE, 0); | ||
1591 | rt2x00_set_field32(®, TXRX_CSR9_BEACON_GEN, 0); | ||
1592 | rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg); | ||
1593 | } | ||
1586 | 1594 | ||
1587 | rt2x00usb_kill_tx_queue(queue); | 1595 | rt2x00usb_kill_tx_queue(queue); |
1588 | } | 1596 | } |