|
@@ -426,9 +426,15 @@ static int ve_spc_populate_opps(uint32_t cluster)
|
|
|
|
|
|
static int ve_init_opp_table(struct device *cpu_dev)
|
|
|
{
|
|
|
- int cluster = topology_physical_package_id(cpu_dev->id);
|
|
|
- int idx, ret = 0, max_opp = info->num_opps[cluster];
|
|
|
- struct ve_spc_opp *opps = info->opps[cluster];
|
|
|
+ int cluster;
|
|
|
+ int idx, ret = 0, max_opp;
|
|
|
+ struct ve_spc_opp *opps;
|
|
|
+
|
|
|
+ cluster = topology_physical_package_id(cpu_dev->id);
|
|
|
+ cluster = cluster < 0 ? 0 : cluster;
|
|
|
+
|
|
|
+ max_opp = info->num_opps[cluster];
|
|
|
+ opps = info->opps[cluster];
|
|
|
|
|
|
for (idx = 0; idx < max_opp; idx++, opps++) {
|
|
|
ret = dev_pm_opp_add(cpu_dev, opps->freq * 1000, opps->u_volt);
|
|
@@ -537,6 +543,8 @@ static struct clk *ve_spc_clk_register(struct device *cpu_dev)
|
|
|
spc->hw.init = &init;
|
|
|
spc->cluster = topology_physical_package_id(cpu_dev->id);
|
|
|
|
|
|
+ spc->cluster = spc->cluster < 0 ? 0 : spc->cluster;
|
|
|
+
|
|
|
init.name = dev_name(cpu_dev);
|
|
|
init.ops = &clk_spc_ops;
|
|
|
init.flags = CLK_IS_ROOT | CLK_GET_RATE_NOCACHE;
|