Merge "soc: qcom: Fix identified corner cases."
This commit is contained in:
commit
09b1cf72e2
1 changed files with 5 additions and 2 deletions
|
@ -154,6 +154,7 @@ static void early_domain_work(struct work_struct *work)
|
||||||
msleep(delay);
|
msleep(delay);
|
||||||
delay = (delay > max_delay ? max_delay : delay + 20);
|
delay = (delay > max_delay ? max_delay : delay + 20);
|
||||||
}
|
}
|
||||||
|
early_domain_enabled = false;
|
||||||
free_reserved_lk_mem(core_data->lk_pool_paddr, core_data->lk_pool_size);
|
free_reserved_lk_mem(core_data->lk_pool_paddr, core_data->lk_pool_size);
|
||||||
free_reserved_lk_mem(core_data->early_domain_shm,
|
free_reserved_lk_mem(core_data->early_domain_shm,
|
||||||
core_data->early_domain_shm_size);
|
core_data->early_domain_shm_size);
|
||||||
|
@ -176,10 +177,11 @@ static int early_domain_cpu_notifier(struct notifier_block *self,
|
||||||
cpu = (long)hcpu;
|
cpu = (long)hcpu;
|
||||||
switch (action & ~CPU_TASKS_FROZEN) {
|
switch (action & ~CPU_TASKS_FROZEN) {
|
||||||
case CPU_UP_PREPARE:
|
case CPU_UP_PREPARE:
|
||||||
if (cpumask_test_cpu(cpu, &core_data->cpumask))
|
if (cpumask_test_cpu(cpu, &core_data->cpumask)) {
|
||||||
pr_err("Early domain services are running on cpu%d\n"
|
pr_err("Early domain services are running on cpu%d\n"
|
||||||
, cpu);
|
, cpu);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
notifier = NOTIFY_OK;
|
notifier = NOTIFY_OK;
|
||||||
break;
|
break;
|
||||||
|
@ -195,7 +197,7 @@ static int init_early_domain_data(struct early_domain_core *core_data)
|
||||||
|
|
||||||
cpumask_clear(&core_data->cpumask);
|
cpumask_clear(&core_data->cpumask);
|
||||||
cpumask = (unsigned long)core_data->pdata->cpumask;
|
cpumask = (unsigned long)core_data->pdata->cpumask;
|
||||||
for_each_set_bit(cpu, &cpumask, sizeof(cpumask_t))
|
for_each_set_bit(cpu, &cpumask, sizeof(cpumask))
|
||||||
cpumask_set_cpu(cpu, &core_data->cpumask);
|
cpumask_set_cpu(cpu, &core_data->cpumask);
|
||||||
|
|
||||||
memset(&core_data->ed_qos_request, 0,
|
memset(&core_data->ed_qos_request, 0,
|
||||||
|
@ -325,6 +327,7 @@ static int early_domain_remove(struct platform_device *pdev)
|
||||||
pm_qos_remove_request(&core_data->ed_qos_request);
|
pm_qos_remove_request(&core_data->ed_qos_request);
|
||||||
__pm_relax(&core_data->ed_wake_lock);
|
__pm_relax(&core_data->ed_wake_lock);
|
||||||
unregister_cpu_notifier(&core_data->ed_notifier);
|
unregister_cpu_notifier(&core_data->ed_notifier);
|
||||||
|
early_domain_enabled = false;
|
||||||
kfree(core_data);
|
kfree(core_data);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue