rt2x00: rt2800lib: pass beacon index to rt2800_clear_beacon_register

Instead of precomputing the beacon base in
each caller, pass the beacon index to the
'rt2800_clear_beacon_register' function
and compute the beacon base in there.

This allows to simplify the caller functions
a bit.

Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Gabor Juhos
2013-08-17 00:15:50 +02:00
committed by John W. Linville
parent 91a3fa39dd
commit 77f7c0f3b8

View File

@@ -1011,10 +1011,13 @@ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc)
EXPORT_SYMBOL_GPL(rt2800_write_beacon); EXPORT_SYMBOL_GPL(rt2800_write_beacon);
static inline void rt2800_clear_beacon_register(struct rt2x00_dev *rt2x00dev, static inline void rt2800_clear_beacon_register(struct rt2x00_dev *rt2x00dev,
unsigned int beacon_base) unsigned int index)
{ {
int i; int i;
const int txwi_desc_size = rt2x00dev->bcn->winfo_size; const int txwi_desc_size = rt2x00dev->bcn->winfo_size;
unsigned int beacon_base;
beacon_base = HW_BEACON_BASE(index);
/* /*
* For the Beacon base registers we only need to clear * For the Beacon base registers we only need to clear
@@ -1041,8 +1044,7 @@ void rt2800_clear_beacon(struct queue_entry *entry)
/* /*
* Clear beacon. * Clear beacon.
*/ */
rt2800_clear_beacon_register(rt2x00dev, rt2800_clear_beacon_register(rt2x00dev, entry->entry_idx);
HW_BEACON_BASE(entry->entry_idx));
/* /*
* Enabled beaconing again. * Enabled beaconing again.
@@ -4803,14 +4805,8 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
/* /*
* Clear all beacons * Clear all beacons
*/ */
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE0); for (i = 0; i < 8; i++)
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE1); rt2800_clear_beacon_register(rt2x00dev, i);
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE2);
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE3);
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE4);
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE5);
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE6);
rt2800_clear_beacon_register(rt2x00dev, HW_BEACON_BASE7);
if (rt2x00_is_usb(rt2x00dev)) { if (rt2x00_is_usb(rt2x00dev)) {
rt2800_register_read(rt2x00dev, US_CYC_CNT, &reg); rt2800_register_read(rt2x00dev, US_CYC_CNT, &reg);