Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1402103 > unrolled thread

[PATCH 03/11] MIPS: pic32mzda: fix getting timer clock rate.

Started byPurna Chandra Mandal <purna.mandal@microchip.com>
First post2016-05-17 07:10 +0200
Last post2016-05-25 18:10 +0200
Articles 3 — 3 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  [PATCH 03/11] MIPS: pic32mzda: fix getting timer clock rate. Purna Chandra Mandal <purna.mandal@microchip.com> - 2016-05-17 07:10 +0200
    Re: [PATCH 03/11] MIPS: pic32mzda: fix getting timer clock rate. Ralf Baechle <ralf@linux-mips.org> - 2016-05-17 14:40 +0200
    Re: [PATCH 03/11] MIPS: pic32mzda: fix getting timer clock rate. Harvey Hunt <harvey.hunt@imgtec.com> - 2016-05-25 18:10 +0200

#1402103 — [PATCH 03/11] MIPS: pic32mzda: fix getting timer clock rate.

FromPurna Chandra Mandal <purna.mandal@microchip.com>
Date2016-05-17 07:10 +0200
Subject[PATCH 03/11] MIPS: pic32mzda: fix getting timer clock rate.
Message-ID<rzFqy-fn-21@gated-at.bofh.it>
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@microchip.com>

---
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);
 
 	of_clk_init(NULL);
-	clk = clk_get_sys("cpu_clk", NULL);
-	if (IS_ERR(clk))
-		panic("unable to get CPU clock, err=%ld", PTR_ERR(clk));
 
-	clk_prepare_enable(clk);
-	pr_info("CPU Clock: %ldMHz\n", clk_get_rate(clk) / 1000000);
-	mips_hpt_frequency = clk_get_rate(clk) / 2;
+	pr_info("CPU Clock: %ldMHz\n", rate / 1000000);
+	mips_hpt_frequency = rate / 2;
 
 	clocksource_probe();
 }
-- 
1.8.3.1

[toc] | [next] | [standalone]


#1402322

FromRalf Baechle <ralf@linux-mips.org>
Date2016-05-17 14:40 +0200
Message-ID<rzMs2-4zK-19@gated-at.bofh.it>
In reply to#1402103
On Tue, May 17, 2016 at 10:35:52AM +0530, 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@microchip.com>
> 
> ---
> Note: Please pull this complete series through the MIPS tree.
> 
> ---
> 
>  arch/mips/pic32/pic32mzda/time.c | 13 ++++---------

For now I applied only this patch as it seems independent of the remainder
of the series which still will need to be reviewed and acked by the
respective maintainers.

  Ralf

[toc] | [prev] | [next] | [standalone]


#1407027

FromHarvey Hunt <harvey.hunt@imgtec.com>
Date2016-05-25 18:10 +0200
Message-ID<rCJxE-32M-25@gated-at.bofh.it>
In reply to#1402103
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@microchip.com>
>
> ---
> 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

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web