diff options
Diffstat (limited to 'drivers/peci')
| -rw-r--r-- | drivers/peci/controller/peci-aspeed.c | 12 | ||||
| -rw-r--r-- | drivers/peci/cpu.c | 4 |
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); |
