Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1402103 > unrolled thread
| Started by | Purna Chandra Mandal <purna.mandal@microchip.com> |
|---|---|
| First post | 2016-05-17 07:10 +0200 |
| Last post | 2016-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.
[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
| From | Purna Chandra Mandal <purna.mandal@microchip.com> |
|---|---|
| Date | 2016-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]
| From | Ralf Baechle <ralf@linux-mips.org> |
|---|---|
| Date | 2016-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]
| From | Harvey Hunt <harvey.hunt@imgtec.com> |
|---|---|
| Date | 2016-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