[AVR32] Don't enable clocks with no users
Bring the code that sets the initial PM clock masks in line with the comment preceding it by only enabling clocks that have users != 0. Fix SM clock definition and avr32_hpt_init() so that the SM and TC0 clocks keep ticking. Signed-off-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
This commit is contained in:
parent
19b7ce8bad
commit
188ff65d49
|
@ -417,7 +417,15 @@ struct platform_device at32_sm_device = {
|
|||
.resource = sm_resource,
|
||||
.num_resources = ARRAY_SIZE(sm_resource),
|
||||
};
|
||||
DEV_CLK(pclk, at32_sm, pbb, 0);
|
||||
static struct clk at32_sm_pclk = {
|
||||
.name = "pclk",
|
||||
.dev = &at32_sm_device.dev,
|
||||
.parent = &pbb_clk,
|
||||
.mode = pbb_clk_mode,
|
||||
.get_rate = pbb_clk_get_rate,
|
||||
.users = 1,
|
||||
.index = 0,
|
||||
};
|
||||
|
||||
static struct resource intc0_resource[] = {
|
||||
PBMEM(0xfff00400),
|
||||
|
@ -443,6 +451,7 @@ static struct clk hramc_clk = {
|
|||
.mode = hsb_clk_mode,
|
||||
.get_rate = hsb_clk_get_rate,
|
||||
.users = 1,
|
||||
.index = 3,
|
||||
};
|
||||
|
||||
static struct resource smc0_resource[] = {
|
||||
|
@ -1080,6 +1089,9 @@ void __init at32_clock_init(void)
|
|||
for (i = 0; i < ARRAY_SIZE(at32_clock_list); i++) {
|
||||
struct clk *clk = at32_clock_list[i];
|
||||
|
||||
if (clk->users == 0)
|
||||
continue;
|
||||
|
||||
if (clk->mode == &cpu_clk_mode)
|
||||
cpu_mask |= 1 << clk->index;
|
||||
else if (clk->mode == &hsb_clk_mode)
|
||||
|
|
|
@ -135,6 +135,7 @@ int avr32_hpt_init(unsigned int count)
|
|||
pr_debug("timer: could not get clk: %ld\n", PTR_ERR(pclk));
|
||||
goto out_error;
|
||||
}
|
||||
clk_enable(pclk);
|
||||
|
||||
regs = platform_get_resource(&at32_systc0_device, IORESOURCE_MEM, 0);
|
||||
if (!regs) {
|
||||
|
|
Loading…
Reference in New Issue