Page MenuHomeFreeBSD

D41762.1785025062.diff
No OneTemporary

Size
970 B
Referenced Files
None
Subscribers
None

D41762.1785025062.diff

diff --git a/sys/dev/cpufreq/cpufreq_dt.c b/sys/dev/cpufreq/cpufreq_dt.c
--- a/sys/dev/cpufreq/cpufreq_dt.c
+++ b/sys/dev/cpufreq/cpufreq_dt.c
@@ -108,17 +108,26 @@
cpufreq_dt_find_opp(device_t dev, uint64_t freq)
{
struct cpufreq_dt_softc *sc;
- ssize_t n;
+ uint64_t diff, best_diff;
+ ssize_t n, best_n;
sc = device_get_softc(dev);
+ diff = 0;
+ best_diff = ~0;
DPRINTF(dev, "Looking for freq %ju\n", freq);
- for (n = 0; n < sc->nopp; n++)
- if (CPUFREQ_CMP(sc->opp[n].freq, freq))
- return (&sc->opp[n]);
+ for (n = 0; n < sc->nopp; n++) {
+ diff = abs(sc->opp[n].freq - abs(freq));
+ DPRINTF(dev, "Testing %ju, diff is %ju\n", sc->opp[n].freq, diff);
+ if (diff < best_diff) {
+ best_diff = diff;
+ best_n = n;
+ DPRINTF(dev, "%ju is best for now\n", sc->opp[n].freq);
+ }
+ }
- DPRINTF(dev, "Couldn't find one\n");
- return (NULL);
+ DPRINTF(dev, "Will use %ju\n", sc->opp[best_n].freq);
+ return (&sc->opp[best_n]);
}
static void

File Metadata

Mime Type
text/plain
Expires
Sun, Jul 26, 12:17 AM (9 h, 22 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29262285
Default Alt Text
D41762.1785025062.diff (970 B)

Event Timeline