rt2x00: Clean up all driver's kick_tx_queue callback functions.
[deliverable/linux.git] / drivers / net / wireless / rt2x00 / rt2800pci.c
index 308842a2e8ba1ac99eb5158904c18906e83ed85d..6d564607bbbd10931508c5dc34dc5cdab7d4c70a 100644 (file)
@@ -704,6 +704,14 @@ static void rt2800pci_write_beacon(struct queue_entry *entry)
                                      beacon_base + skbdesc->desc_len,
                                      entry->skb->data, entry->skb->len);
 
+       /*
+        * Enable beaconing again.
+        */
+       rt2x00_set_field32(&reg, BCN_TIME_CFG_TSF_TICKING, 1);
+       rt2x00_set_field32(&reg, BCN_TIME_CFG_TBTT_ENABLE, 1);
+       rt2x00_set_field32(&reg, BCN_TIME_CFG_BEACON_GEN, 1);
+       rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg);
+
        /*
         * Clean up beacon skb.
         */
@@ -716,18 +724,6 @@ static void rt2800pci_kick_tx_queue(struct rt2x00_dev *rt2x00dev,
 {
        struct data_queue *queue;
        unsigned int idx, qidx = 0;
-       u32 reg;
-
-       if (queue_idx == QID_BEACON) {
-               rt2800_register_read(rt2x00dev, BCN_TIME_CFG, &reg);
-               if (!rt2x00_get_field32(reg, BCN_TIME_CFG_BEACON_GEN)) {
-                       rt2x00_set_field32(&reg, BCN_TIME_CFG_TSF_TICKING, 1);
-                       rt2x00_set_field32(&reg, BCN_TIME_CFG_TBTT_ENABLE, 1);
-                       rt2x00_set_field32(&reg, BCN_TIME_CFG_BEACON_GEN, 1);
-                       rt2800_register_write(rt2x00dev, BCN_TIME_CFG, reg);
-               }
-               return;
-       }
 
        if (queue_idx > QID_HCCA && queue_idx != QID_MGMT)
                return;
This page took 0.065627 seconds and 5 git commands to generate.