summaryrefslogtreecommitdiff
path: root/drivers/peci
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/peci')
-rw-r--r--drivers/peci/controller/peci-aspeed.c12
-rw-r--r--drivers/peci/cpu.c4
2 files changed, 11 insertions, 5 deletions
diff --git a/drivers/peci/controller/peci-aspeed.c b/drivers/peci/controller/peci-aspeed.c
index ad3a7d71ed4c..a0c99ecf7f38 100644
--- a/drivers/peci/controller/peci-aspeed.c
+++ b/drivers/peci/controller/peci-aspeed.c
@@ -362,12 +362,14 @@ static int clk_aspeed_peci_set_rate(struct clk_hw *hw, unsigned long rate,
return 0;
}
-static long clk_aspeed_peci_round_rate(struct clk_hw *hw, unsigned long rate,
- unsigned long *prate)
+static int clk_aspeed_peci_determine_rate(struct clk_hw *hw,
+ struct clk_rate_request *req)
{
- int div = clk_aspeed_peci_get_div(rate, prate);
+ int div = clk_aspeed_peci_get_div(req->rate, &req->best_parent_rate);
- return DIV_ROUND_UP_ULL(*prate, div);
+ req->rate = DIV_ROUND_UP_ULL(req->best_parent_rate, div);
+
+ return 0;
}
static unsigned long clk_aspeed_peci_recalc_rate(struct clk_hw *hw, unsigned long prate)
@@ -394,7 +396,7 @@ static unsigned long clk_aspeed_peci_recalc_rate(struct clk_hw *hw, unsigned lon
static const struct clk_ops clk_aspeed_peci_ops = {
.set_rate = clk_aspeed_peci_set_rate,
- .round_rate = clk_aspeed_peci_round_rate,
+ .determine_rate = clk_aspeed_peci_determine_rate,
.recalc_rate = clk_aspeed_peci_recalc_rate,
};
diff --git a/drivers/peci/cpu.c b/drivers/peci/cpu.c
index 2dac8ba82787..fbccc1d1b637 100644
--- a/drivers/peci/cpu.c
+++ b/drivers/peci/cpu.c
@@ -321,6 +321,10 @@ static const struct peci_device_id peci_cpu_device_ids[] = {
.x86_vfm = INTEL_SAPPHIRERAPIDS_X,
.data = "spr",
},
+ { /* Emerald Rapids Xeon */
+ .x86_vfm = INTEL_EMERALDRAPIDS_X,
+ .data = "emr",
+ },
{ }
};
MODULE_DEVICE_TABLE(peci, peci_cpu_device_ids);