Skip to content

Commit b5ef45e

Browse files
Lifeng Zhengrafaeljw
authored andcommitted
ACPI: CPPC: Extract cppc_get_reg_val_in_pcc()
Extract the operations if register is in pcc out from cppc_get_reg_val() as cppc_get_reg_val_in_pcc(). Reviewed-by: Pierre Gondois <[email protected]> Signed-off-by: Lifeng Zheng <[email protected]> Reviewed-by: Mario Limonciello <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Rafael J. Wysocki <[email protected]>
1 parent 714d103 commit b5ef45e

File tree

1 file changed

+27
-23
lines changed

1 file changed

+27
-23
lines changed

drivers/acpi/cppc_acpi.c

Lines changed: 27 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1179,6 +1179,31 @@ static int cpc_write(int cpu, struct cpc_register_resource *reg_res, u64 val)
11791179
return ret_val;
11801180
}
11811181

1182+
static int cppc_get_reg_val_in_pcc(int cpu, struct cpc_register_resource *reg, u64 *val)
1183+
{
1184+
int pcc_ss_id = per_cpu(cpu_pcc_subspace_idx, cpu);
1185+
struct cppc_pcc_data *pcc_ss_data = NULL;
1186+
int ret;
1187+
1188+
if (pcc_ss_id < 0) {
1189+
pr_debug("Invalid pcc_ss_id\n");
1190+
return -ENODEV;
1191+
}
1192+
1193+
pcc_ss_data = pcc_data[pcc_ss_id];
1194+
1195+
down_write(&pcc_ss_data->pcc_lock);
1196+
1197+
if (send_pcc_cmd(pcc_ss_id, CMD_READ) >= 0)
1198+
ret = cpc_read(cpu, reg, val);
1199+
else
1200+
ret = -EIO;
1201+
1202+
up_write(&pcc_ss_data->pcc_lock);
1203+
1204+
return ret;
1205+
}
1206+
11821207
static int cppc_get_reg_val(int cpu, enum cppc_regs reg_idx, u64 *val)
11831208
{
11841209
struct cpc_desc *cpc_desc = per_cpu(cpc_desc_ptr, cpu);
@@ -1201,29 +1226,8 @@ static int cppc_get_reg_val(int cpu, enum cppc_regs reg_idx, u64 *val)
12011226
return -EOPNOTSUPP;
12021227
}
12031228

1204-
if (CPC_IN_PCC(reg)) {
1205-
int pcc_ss_id = per_cpu(cpu_pcc_subspace_idx, cpu);
1206-
struct cppc_pcc_data *pcc_ss_data = NULL;
1207-
int ret;
1208-
1209-
if (pcc_ss_id < 0) {
1210-
pr_debug("Invalid pcc_ss_id\n");
1211-
return -ENODEV;
1212-
}
1213-
1214-
pcc_ss_data = pcc_data[pcc_ss_id];
1215-
1216-
down_write(&pcc_ss_data->pcc_lock);
1217-
1218-
if (send_pcc_cmd(pcc_ss_id, CMD_READ) >= 0)
1219-
ret = cpc_read(cpu, reg, val);
1220-
else
1221-
ret = -EIO;
1222-
1223-
up_write(&pcc_ss_data->pcc_lock);
1224-
1225-
return ret;
1226-
}
1229+
if (CPC_IN_PCC(reg))
1230+
return cppc_get_reg_val_in_pcc(cpu, reg, val);
12271231

12281232
return cpc_read(cpu, reg, val);
12291233
}

0 commit comments

Comments
 (0)