On 05/25/2016 09:32 PM, Harvey Hunt wrote: > Hi Purna, > > On 17/05/16 06:05, Purna Chandra Mandal wrote: >> PIC32 clock driver is now implemented as platform driver instead of >> as part of of_clk_init(). It meants all the clock modules are available >> quite late in the boot sequence. So request for CPU clock by clk_get_sys() >> and clk_get_rate() to find c0_timer rate fails. >> >> To fix this use PIC32 specific early clock functions implemented for early >> console support. >> >> Signed-off-by: Purna Chandra Mandal <purna.mandal@xxxxxxxxxxxxx> >> >> --- >> Note: Please pull this complete series through the MIPS tree. >> >> --- >> >> arch/mips/pic32/pic32mzda/time.c | 13 ++++--------- >> 1 file changed, 4 insertions(+), 9 deletions(-) >> >> diff --git a/arch/mips/pic32/pic32mzda/time.c b/arch/mips/pic32/pic32mzda/time.c >> index ca6a62b..62a0a78 100644 >> --- a/arch/mips/pic32/pic32mzda/time.c >> +++ b/arch/mips/pic32/pic32mzda/time.c >> @@ -11,13 +11,12 @@ >> * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License >> * for more details. >> */ >> -#include <linux/clk.h> >> #include <linux/clk-provider.h> >> #include <linux/clocksource.h> >> #include <linux/init.h> >> +#include <linux/irqdomain.h> >> #include <linux/of.h> >> #include <linux/of_irq.h> >> -#include <linux/irqdomain.h> >> >> #include <asm/time.h> >> >> @@ -58,16 +57,12 @@ unsigned int get_c0_compare_int(void) >> >> void __init plat_time_init(void) >> { >> - struct clk *clk; >> + unsigned long rate = pic32_get_pbclk(7); > > pic32_get_pbclk() is defined in arch/mips/pic32/pic32mzda/early_clk.c. When CONFIG_EARLY_PRINTK isn't set, early_clk.c isn't compiled and so a linker error occurs. > > Maybe it's best to always build the early_clk.c file, or perhaps there is a better place to put pic32_get_pbclk()? > Thanks Harvey. Will fix in separate patch. > Thanks, > > Harvey >