Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

drivers: sh: clk: Remove obsolete and unused clk_round_parent()

clk_round_parent() was only ever used by AP4EVB, until commit
b24bd7e97b3784af ("ARM: shmobile: Remove AP4EVB board support").

The Common Clock Framework does not provide clk_round_parent(), hence
remove it.

Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>

authored by

Geert Uytterhoeven and committed by
Simon Horman
90069ad1 0ba58de2

-92
-88
drivers/sh/clk/core.c
··· 555 555 } 556 556 EXPORT_SYMBOL_GPL(clk_round_rate); 557 557 558 - long clk_round_parent(struct clk *clk, unsigned long target, 559 - unsigned long *best_freq, unsigned long *parent_freq, 560 - unsigned int div_min, unsigned int div_max) 561 - { 562 - struct cpufreq_frequency_table *freq, *best = NULL; 563 - unsigned long error = ULONG_MAX, freq_high, freq_low, div; 564 - struct clk *parent = clk_get_parent(clk); 565 - 566 - if (!parent) { 567 - *parent_freq = 0; 568 - *best_freq = clk_round_rate(clk, target); 569 - return abs(target - *best_freq); 570 - } 571 - 572 - cpufreq_for_each_valid_entry(freq, parent->freq_table) { 573 - if (unlikely(freq->frequency / target <= div_min - 1)) { 574 - unsigned long freq_max; 575 - 576 - freq_max = (freq->frequency + div_min / 2) / div_min; 577 - if (error > target - freq_max) { 578 - error = target - freq_max; 579 - best = freq; 580 - if (best_freq) 581 - *best_freq = freq_max; 582 - } 583 - 584 - pr_debug("too low freq %u, error %lu\n", freq->frequency, 585 - target - freq_max); 586 - 587 - if (!error) 588 - break; 589 - 590 - continue; 591 - } 592 - 593 - if (unlikely(freq->frequency / target >= div_max)) { 594 - unsigned long freq_min; 595 - 596 - freq_min = (freq->frequency + div_max / 2) / div_max; 597 - if (error > freq_min - target) { 598 - error = freq_min - target; 599 - best = freq; 600 - if (best_freq) 601 - *best_freq = freq_min; 602 - } 603 - 604 - pr_debug("too high freq %u, error %lu\n", freq->frequency, 605 - freq_min - target); 606 - 607 - if (!error) 608 - break; 609 - 610 - continue; 611 - } 612 - 613 - div = freq->frequency / target; 614 - freq_high = freq->frequency / div; 615 - freq_low = freq->frequency / (div + 1); 616 - 617 - if (freq_high - target < error) { 618 - error = freq_high - target; 619 - best = freq; 620 - if (best_freq) 621 - *best_freq = freq_high; 622 - } 623 - 624 - if (target - freq_low < error) { 625 - error = target - freq_low; 626 - best = freq; 627 - if (best_freq) 628 - *best_freq = freq_low; 629 - } 630 - 631 - pr_debug("%u / %lu = %lu, / %lu = %lu, best %lu, parent %u\n", 632 - freq->frequency, div, freq_high, div + 1, freq_low, 633 - *best_freq, best->frequency); 634 - 635 - if (!error) 636 - break; 637 - } 638 - 639 - if (parent_freq) 640 - *parent_freq = best->frequency; 641 - 642 - return error; 643 - } 644 - EXPORT_SYMBOL_GPL(clk_round_parent); 645 - 646 558 #ifdef CONFIG_PM 647 559 static void clks_core_resume(void) 648 560 {
-4
include/linux/sh_clk.h
··· 113 113 long clk_rate_mult_range_round(struct clk *clk, unsigned int mult_min, 114 114 unsigned int mult_max, unsigned long rate); 115 115 116 - long clk_round_parent(struct clk *clk, unsigned long target, 117 - unsigned long *best_freq, unsigned long *parent_freq, 118 - unsigned int div_min, unsigned int div_max); 119 - 120 116 #define SH_CLK_MSTP(_parent, _enable_reg, _enable_bit, _status_reg, _flags) \ 121 117 { \ 122 118 .parent = _parent, \