Skip to content

Commit

Permalink
zd1211rw: Implement get_tsf()
Browse files Browse the repository at this point in the history
This patch implements get_tsf() of ieee80211_ops in the zd1211rw driver.

Signed-off-by: Alina Friedrichsen <x-alina@gmx.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Alina Friedrichsen authored and John W. Linville committed Mar 5, 2009
1 parent b3bd89c commit 5fe7319
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 0 deletions.
21 changes: 21 additions & 0 deletions drivers/net/wireless/zd1211rw/zd_chip.c
Original file line number Diff line number Diff line change
Expand Up @@ -1616,3 +1616,24 @@ int zd_chip_set_multicast_hash(struct zd_chip *chip,

return zd_iowrite32a(chip, ioreqs, ARRAY_SIZE(ioreqs));
}

u64 zd_chip_get_tsf(struct zd_chip *chip)
{
int r;
static const zd_addr_t aw_pt_bi_addr[] =
{ CR_TSF_LOW_PART, CR_TSF_HIGH_PART };
u32 values[2];
u64 tsf;

mutex_lock(&chip->mutex);
r = zd_ioread32v_locked(chip, values, (const zd_addr_t *)aw_pt_bi_addr,
ARRAY_SIZE(aw_pt_bi_addr));
mutex_unlock(&chip->mutex);
if (r)
return 0;

tsf = values[1];
tsf = (tsf << 32) | values[0];

return tsf;
}
2 changes: 2 additions & 0 deletions drivers/net/wireless/zd1211rw/zd_chip.h
Original file line number Diff line number Diff line change
Expand Up @@ -950,4 +950,6 @@ static inline void zd_mc_add_addr(struct zd_mc_hash *hash, u8 *addr)
int zd_chip_set_multicast_hash(struct zd_chip *chip,
struct zd_mc_hash *hash);

u64 zd_chip_get_tsf(struct zd_chip *chip);

#endif /* _ZD_CHIP_H */
7 changes: 7 additions & 0 deletions drivers/net/wireless/zd1211rw/zd_mac.c
Original file line number Diff line number Diff line change
Expand Up @@ -935,6 +935,12 @@ static void zd_op_bss_info_changed(struct ieee80211_hw *hw,
}
}

static u64 zd_op_get_tsf(struct ieee80211_hw *hw)
{
struct zd_mac *mac = zd_hw_mac(hw);
return zd_chip_get_tsf(&mac->chip);
}

static const struct ieee80211_ops zd_ops = {
.tx = zd_op_tx,
.start = zd_op_start,
Expand All @@ -945,6 +951,7 @@ static const struct ieee80211_ops zd_ops = {
.config_interface = zd_op_config_interface,
.configure_filter = zd_op_configure_filter,
.bss_info_changed = zd_op_bss_info_changed,
.get_tsf = zd_op_get_tsf,
};

struct ieee80211_hw *zd_mac_alloc_hw(struct usb_interface *intf)
Expand Down

0 comments on commit 5fe7319

Please sign in to comment.