mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 08:46:46 +00:00
wifi: rt2x00: set SoC wmac clock register
Instead of using the default value 33 (pci), set US_CYC_CNT init based on Programming guide: If available, set chipset bus clock with fallback to cpu clock/3. Reported-by: Serge Vasilugin <vasilugin@yandex.ru> Signed-off-by: Daniel Golle <daniel@makrotopia.org> Acked-by: Stanislaw Gruszka <stf_xl@wp.pl> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://lore.kernel.org/r/3e275d259f476f597dab91a9c395015ef3fe3284.1663445157.git.daniel@makrotopia.org
This commit is contained in:
parent
0e09768c08
commit
cbde6ed406
1 changed files with 21 additions and 0 deletions
|
@ -6229,6 +6229,27 @@ static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
|
|||
reg = rt2800_register_read(rt2x00dev, US_CYC_CNT);
|
||||
rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, 125);
|
||||
rt2800_register_write(rt2x00dev, US_CYC_CNT, reg);
|
||||
} else if (rt2x00_is_soc(rt2x00dev)) {
|
||||
struct clk *clk = clk_get_sys("bus", NULL);
|
||||
int rate;
|
||||
|
||||
if (IS_ERR(clk)) {
|
||||
clk = clk_get_sys("cpu", NULL);
|
||||
|
||||
if (IS_ERR(clk)) {
|
||||
rate = 125;
|
||||
} else {
|
||||
rate = clk_get_rate(clk) / 3000000;
|
||||
clk_put(clk);
|
||||
}
|
||||
} else {
|
||||
rate = clk_get_rate(clk) / 1000000;
|
||||
clk_put(clk);
|
||||
}
|
||||
|
||||
reg = rt2800_register_read(rt2x00dev, US_CYC_CNT);
|
||||
rt2x00_set_field32(®, US_CYC_CNT_CLOCK_CYCLE, rate);
|
||||
rt2800_register_write(rt2x00dev, US_CYC_CNT, reg);
|
||||
}
|
||||
|
||||
reg = rt2800_register_read(rt2x00dev, HT_FBK_CFG0);
|
||||
|
|
Loading…
Reference in a new issue