aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/rt2x00/rt61pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt61pci.c')
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
index 24402984ee57..9048a9cbe52c 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.c
+++ b/drivers/net/wireless/rt2x00/rt61pci.c
@@ -2031,13 +2031,14 @@ static void rt61pci_write_beacon(struct queue_entry *entry,
2031static void rt61pci_clear_beacon(struct queue_entry *entry) 2031static void rt61pci_clear_beacon(struct queue_entry *entry)
2032{ 2032{
2033 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; 2033 struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
2034 u32 reg; 2034 u32 orig_reg, reg;
2035 2035
2036 /* 2036 /*
2037 * Disable beaconing while we are reloading the beacon data, 2037 * Disable beaconing while we are reloading the beacon data,
2038 * otherwise we might be sending out invalid data. 2038 * otherwise we might be sending out invalid data.
2039 */ 2039 */
2040 rt2x00mmio_register_read(rt2x00dev, TXRX_CSR9, &reg); 2040 rt2x00mmio_register_read(rt2x00dev, TXRX_CSR9, &orig_reg);
2041 reg = orig_reg;
2041 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 0); 2042 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 0);
2042 rt2x00mmio_register_write(rt2x00dev, TXRX_CSR9, reg); 2043 rt2x00mmio_register_write(rt2x00dev, TXRX_CSR9, reg);
2043 2044
@@ -2048,10 +2049,9 @@ static void rt61pci_clear_beacon(struct queue_entry *entry)
2048 HW_BEACON_OFFSET(entry->entry_idx), 0); 2049 HW_BEACON_OFFSET(entry->entry_idx), 0);
2049 2050
2050 /* 2051 /*
2051 * Enable beaconing again. 2052 * Restore global beaconing state.
2052 */ 2053 */
2053 rt2x00_set_field32(&reg, TXRX_CSR9_BEACON_GEN, 1); 2054 rt2x00mmio_register_write(rt2x00dev, TXRX_CSR9, orig_reg);
2054 rt2x00mmio_register_write(rt2x00dev, TXRX_CSR9, reg);
2055} 2055}
2056 2056
2057/* 2057/*