Skip to content

Commit

Permalink
carl9170: fix timekeeping for HW_COUNTER firmwares
Browse files Browse the repository at this point in the history
AR9170_PWR_REG_PLL_ADDAC is used to set the main clock
divisor which affects the AHB/CPU speed. Because this
would interfere with the firmware internal timekeeping,
the function has to be moved into the firmware.

Signed-off-by: Christian Lamparter <chunkeey@googlemail.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Christian Lamparter authored and John W. Linville committed Aug 24, 2011
1 parent bfe2ed8 commit 7ccc83b
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 5 deletions.
1 change: 1 addition & 0 deletions drivers/net/wireless/ath/carl9170/carl9170.h
Original file line number Diff line number Diff line change
Expand Up @@ -282,6 +282,7 @@ struct ar9170 {
bool rx_stream;
bool tx_stream;
bool rx_filter;
bool hw_counters;
unsigned int mem_blocks;
unsigned int mem_block_size;
unsigned int rx_size;
Expand Down
3 changes: 3 additions & 0 deletions drivers/net/wireless/ath/carl9170/fw.c
Original file line number Diff line number Diff line change
Expand Up @@ -266,6 +266,9 @@ static int carl9170_fw(struct ar9170 *ar, const __u8 *data, size_t len)
FIF_PROMISC_IN_BSS;
}

if (SUPP(CARL9170FW_HW_COUNTERS))
ar->fw.hw_counters = true;

if (SUPP(CARL9170FW_WOL))
device_set_wakeup_enable(&ar->udev->dev, true);

Expand Down
9 changes: 4 additions & 5 deletions drivers/net/wireless/ath/carl9170/phy.c
Original file line number Diff line number Diff line change
Expand Up @@ -578,11 +578,10 @@ static int carl9170_init_phy(struct ar9170 *ar, enum ieee80211_band band)
if (err)
return err;

/* XXX: remove magic! */
if (is_2ghz)
err = carl9170_write_reg(ar, AR9170_PWR_REG_PLL_ADDAC, 0x5163);
else
err = carl9170_write_reg(ar, AR9170_PWR_REG_PLL_ADDAC, 0x5143);
if (!ar->fw.hw_counters) {
err = carl9170_write_reg(ar, AR9170_PWR_REG_PLL_ADDAC,
is_2ghz ? 0x5163 : 0x5143);
}

return err;
}
Expand Down

0 comments on commit 7ccc83b

Please sign in to comment.