mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 08:14:15 +08:00
clk: scpi: fix return type of __scpi_dvfs_round_rate
The frequencies above the maximum value of signed integer(i.e. 2^31 -1)
will overflow with the current code.
This patch fixes the return type of __scpi_dvfs_round_rate from 'int'
to 'unsigned long'.
Fixes: cd52c2a4b5
("clk: add support for clocks provided by SCP(System Control Processor)")
Cc: Michael Turquette <mturquette@baylibre.com>
Cc: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
This commit is contained in:
parent
80b4ae7ace
commit
7374aec956
@ -71,15 +71,15 @@ static const struct clk_ops scpi_clk_ops = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* find closest match to given frequency in OPP table */
|
/* find closest match to given frequency in OPP table */
|
||||||
static int __scpi_dvfs_round_rate(struct scpi_clk *clk, unsigned long rate)
|
static long __scpi_dvfs_round_rate(struct scpi_clk *clk, unsigned long rate)
|
||||||
{
|
{
|
||||||
int idx;
|
int idx;
|
||||||
u32 fmin = 0, fmax = ~0, ftmp;
|
unsigned long fmin = 0, fmax = ~0, ftmp;
|
||||||
const struct scpi_opp *opp = clk->info->opps;
|
const struct scpi_opp *opp = clk->info->opps;
|
||||||
|
|
||||||
for (idx = 0; idx < clk->info->count; idx++, opp++) {
|
for (idx = 0; idx < clk->info->count; idx++, opp++) {
|
||||||
ftmp = opp->freq;
|
ftmp = opp->freq;
|
||||||
if (ftmp >= (u32)rate) {
|
if (ftmp >= rate) {
|
||||||
if (ftmp <= fmax)
|
if (ftmp <= fmax)
|
||||||
fmax = ftmp;
|
fmax = ftmp;
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user