On Thu, Aug 22, 2013 at 8:53 PM, Gabor Juhos <juhosg@xxxxxxxxxxx> wrote: > The HW_BEACON_BASE() macro returns the base address > of a given beacon, however the returned values are > not usable on all chipsets. On devices which have > selectable shared memory parts, some beacon may be > located in the high part of the shared memory. > > Instead of extending the already complicated macro, > add a new helper function and use that to get the > base address of a given beacon. > > The actual patch contains no functional changes, the > helper function will be extended in a further patch > to handle different chipsets' requirements. > > Signed-off-by: Gabor Juhos <juhosg@xxxxxxxxxxx> Looks good. Acked-by: Helmut Schaa <helmut.schaa@xxxxxxxxxxxxxx> > --- > Changes since v2: > - separated from the 'rt2x00: fix beaconing on RT3593' patch-set > - update commit log > > Changes since v1: --- > --- > drivers/net/wireless/rt2x00/rt2800lib.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/rt2x00/rt2800lib.c b/drivers/net/wireless/rt2x00/rt2800lib.c > index aa6b6b0..38606e2 100644 > --- a/drivers/net/wireless/rt2x00/rt2800lib.c > +++ b/drivers/net/wireless/rt2x00/rt2800lib.c > @@ -940,6 +940,12 @@ void rt2800_txdone_entry(struct queue_entry *entry, u32 status, __le32 *txwi) > } > EXPORT_SYMBOL_GPL(rt2800_txdone_entry); > > +static unsigned int rt2800_hw_beacon_base(struct rt2x00_dev *rt2x00dev, > + unsigned int index) > +{ > + return HW_BEACON_BASE(index); > +} > + > void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc) > { > struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev; > @@ -992,7 +998,8 @@ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc) > return; > } > > - beacon_base = HW_BEACON_BASE(entry->entry_idx); > + beacon_base = rt2800_hw_beacon_base(rt2x00dev, entry->entry_idx); > + > rt2800_register_multiwrite(rt2x00dev, beacon_base, entry->skb->data, > entry->skb->len + padding_len); > > @@ -1017,7 +1024,7 @@ static inline void rt2800_clear_beacon_register(struct rt2x00_dev *rt2x00dev, > const int txwi_desc_size = rt2x00dev->bcn->winfo_size; > unsigned int beacon_base; > > - beacon_base = HW_BEACON_BASE(index); > + beacon_base = rt2800_hw_beacon_base(rt2x00dev, index); > > /* > * For the Beacon base registers we only need to clear > -- > 1.7.10 > -- > To unsubscribe from this list: send the line "unsubscribe linux-wireless" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html