Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
On Thu, 2016-02-11 at 12:21 +0300, Denis Kirjanov wrote: > On 2/11/16, Alessio Igor Bogani wrote: > > Signed-off-by: Alessio Igor Bogani > > --- > > v1 -> v2 > > Use appropriate [PATCH] prefix > > > > arch/powerpc/platforms/86xx/Makefile | 2 +- > > arch/powerpc/platforms/86xx/common.c | 42 > > ++ > > arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- > > arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- > > arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- > > arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ > > arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ > > arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- > > arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- > > 9 files changed, 52 insertions(+), 163 deletions(-) > > create mode 100644 arch/powerpc/platforms/86xx/common.c > > > > diff --git a/arch/powerpc/platforms/86xx/Makefile > > b/arch/powerpc/platforms/86xx/Makefile > > index ede815d..2d889ad 100644 > > --- a/arch/powerpc/platforms/86xx/Makefile > > +++ b/arch/powerpc/platforms/86xx/Makefile > > @@ -2,7 +2,7 @@ > > # Makefile for the PowerPC 86xx linux kernel. > > # > > > > -obj-y := pic.o > > +obj-y := pic.o common.o > > obj-$(CONFIG_SMP) += mpc86xx_smp.o > > obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o > > obj-$(CONFIG_SBC8641D) += sbc8641d.o > > diff --git a/arch/powerpc/platforms/86xx/common.c > > b/arch/powerpc/platforms/86xx/common.c > > new file mode 100644 > > index 000..bee3177 > > --- /dev/null > > +++ b/arch/powerpc/platforms/86xx/common.c > > @@ -0,0 +1,42 @@ > > +/* > > + * Routines common to most mpc86xx-based boards. > > + * > > + * This is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 as > > + * published by the Free Software Foundation. > > + */ > > + > > +#include > > + > > +#include "mpc86xx.h" > > + > > +static const struct of_device_id mpc86xx_common_ids[] __initconst = { > > + { .type = "soc", }, > > + { .compatible = "soc", }, > > + { .compatible = "simple-bus", }, > > + { .name = "localbus", }, > > + { .compatible = "gianfar", }, > > + { .compatible = "fsl,mpc8641-pcie", }, > > + {}, > > +}; > > + > > +int __init mpc86xx_common_publish_devices(void) > > +{ > > + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); > > +} > > + > > +long __init mpc86xx_time_init(void) > > +{ > > + unsigned int temp; > > + > > + /* Set the time base to zero */ > > + mtspr(SPRN_TBWL, 0); > > + mtspr(SPRN_TBWU, 0); > > + > > + temp = mfspr(SPRN_HID0); > > + temp |= HID0_TBEN; > > + mtspr(SPRN_HID0, temp); > > + asm volatile("isync"); > While we're here you could just use isync() > Could you please trim the part of the mail you're not replying to? It takes a while to scan to find where the reply actually is. -Scott
Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
Original Message From: Denis Kirjanov Sent: Thursday, February 11, 2016 4:22 AM To: Alessio Igor Bogani Cc: Scott Wood; linuxppc-...@lists.ozlabs.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code On 2/11/16, Alessio Igor Bogani wrote: > Signed-off-by: Alessio Igor Bogani > --- > v1 -> v2 > Use appropriate [PATCH] prefix > > arch/powerpc/platforms/86xx/Makefile | 2 +- > arch/powerpc/platforms/86xx/common.c | 42 > ++ > arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- > arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- > arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- > arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ > arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ > arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- > arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- > 9 files changed, 52 insertions(+), 163 deletions(-) > create mode 100644 arch/powerpc/platforms/86xx/common.c > > diff --git a/arch/powerpc/platforms/86xx/Makefile > b/arch/powerpc/platforms/86xx/Makefile > index ede815d..2d889ad 100644 > --- a/arch/powerpc/platforms/86xx/Makefile > +++ b/arch/powerpc/platforms/86xx/Makefile > @@ -2,7 +2,7 @@ > # Makefile for the PowerPC 86xx linux kernel. > # > > -obj-y:= pic.o > +obj-y:= pic.o common.o > obj-$(CONFIG_SMP)+= mpc86xx_smp.o > obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o > obj-$(CONFIG_SBC8641D) += sbc8641d.o > diff --git a/arch/powerpc/platforms/86xx/common.c > b/arch/powerpc/platforms/86xx/common.c > new file mode 100644 > index 000..bee3177 > --- /dev/null > +++ b/arch/powerpc/platforms/86xx/common.c > @@ -0,0 +1,42 @@ > +/* > + * Routines common to most mpc86xx-based boards. > + * > + * This is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include > + > +#include "mpc86xx.h" > + > +static const struct of_device_id mpc86xx_common_ids[] __initconst = { > + { .type = "soc", }, > + { .compatible = "soc", }, > + { .compatible = "simple-bus", }, > + { .name = "localbus", }, > + { .compatible = "gianfar", }, > + { .compatible = "fsl,mpc8641-pcie", }, > + {}, > +}; > + > +int __init mpc86xx_common_publish_devices(void) > +{ > + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); > +} > + > +long __init mpc86xx_time_init(void) > +{ > + unsigned int temp; > + > + /* Set the time base to zero */ > + mtspr(SPRN_TBWL, 0); > + mtspr(SPRN_TBWU, 0); > + > + temp = mfspr(SPRN_HID0); > + temp |= HID0_TBEN; > + mtspr(SPRN_HID0, temp); > + asm volatile("isync"); While we're here you could just use isync() > + > + return 0; > +} > diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c > b/arch/powerpc/platforms/86xx/gef_ppc9a.c > index bf17933..8e63b75 100644 > --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c > +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c > @@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) > return 0; > } > > -static long __init mpc86xx_time_init(void) > -{ > - unsigned int temp; > - > - /* Set the time base to zero */ > - mtspr(SPRN_TBWL, 0); > - mtspr(SPRN_TBWU, 0); > - > - temp = mfspr(SPRN_HID0); > - temp |= HID0_TBEN; > - mtspr(SPRN_HID0, temp); > - asm volatile("isync"); > - > - return 0; > -} > - > -static const struct of_device_id of_bus_ids[] __initconst = { > - { .compatible = "simple-bus", }, > - { .compatible = "gianfar", }, > - { .compatible = "fsl,mpc8641-pcie", }, > - {}, > -}; > - > -static int __init declare_of_platform_devices(void) > -{ > - printk(KERN_DEBUG "Probe platform devices\n"); > - of_platform_bus_probe(NULL, of_bus_ids, NULL); > - > - return 0; > -} > -machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); > +machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); > > define_machine(gef_ppc9a) { > .name = "GE PPC9A", > diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c > b/arch/powerpc/platforms/86xx/gef_sbc310.c > index 8facf58..0e0be94 100644 > --- a/arch/powe
Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
On 2/11/16, Alessio Igor Bogani wrote: > Signed-off-by: Alessio Igor Bogani > --- > v1 -> v2 > Use appropriate [PATCH] prefix > > arch/powerpc/platforms/86xx/Makefile | 2 +- > arch/powerpc/platforms/86xx/common.c | 42 > ++ > arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- > arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- > arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- > arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ > arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ > arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- > arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- > 9 files changed, 52 insertions(+), 163 deletions(-) > create mode 100644 arch/powerpc/platforms/86xx/common.c > > diff --git a/arch/powerpc/platforms/86xx/Makefile > b/arch/powerpc/platforms/86xx/Makefile > index ede815d..2d889ad 100644 > --- a/arch/powerpc/platforms/86xx/Makefile > +++ b/arch/powerpc/platforms/86xx/Makefile > @@ -2,7 +2,7 @@ > # Makefile for the PowerPC 86xx linux kernel. > # > > -obj-y:= pic.o > +obj-y:= pic.o common.o > obj-$(CONFIG_SMP)+= mpc86xx_smp.o > obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o > obj-$(CONFIG_SBC8641D) += sbc8641d.o > diff --git a/arch/powerpc/platforms/86xx/common.c > b/arch/powerpc/platforms/86xx/common.c > new file mode 100644 > index 000..bee3177 > --- /dev/null > +++ b/arch/powerpc/platforms/86xx/common.c > @@ -0,0 +1,42 @@ > +/* > + * Routines common to most mpc86xx-based boards. > + * > + * This is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include > + > +#include "mpc86xx.h" > + > +static const struct of_device_id mpc86xx_common_ids[] __initconst = { > + { .type = "soc", }, > + { .compatible = "soc", }, > + { .compatible = "simple-bus", }, > + { .name = "localbus", }, > + { .compatible = "gianfar", }, > + { .compatible = "fsl,mpc8641-pcie", }, > + {}, > +}; > + > +int __init mpc86xx_common_publish_devices(void) > +{ > + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); > +} > + > +long __init mpc86xx_time_init(void) > +{ > + unsigned int temp; > + > + /* Set the time base to zero */ > + mtspr(SPRN_TBWL, 0); > + mtspr(SPRN_TBWU, 0); > + > + temp = mfspr(SPRN_HID0); > + temp |= HID0_TBEN; > + mtspr(SPRN_HID0, temp); > + asm volatile("isync"); While we're here you could just use isync() > + > + return 0; > +} > diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c > b/arch/powerpc/platforms/86xx/gef_ppc9a.c > index bf17933..8e63b75 100644 > --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c > +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c > @@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) > return 0; > } > > -static long __init mpc86xx_time_init(void) > -{ > - unsigned int temp; > - > - /* Set the time base to zero */ > - mtspr(SPRN_TBWL, 0); > - mtspr(SPRN_TBWU, 0); > - > - temp = mfspr(SPRN_HID0); > - temp |= HID0_TBEN; > - mtspr(SPRN_HID0, temp); > - asm volatile("isync"); > - > - return 0; > -} > - > -static const struct of_device_id of_bus_ids[] __initconst = { > - { .compatible = "simple-bus", }, > - { .compatible = "gianfar", }, > - { .compatible = "fsl,mpc8641-pcie", }, > - {}, > -}; > - > -static int __init declare_of_platform_devices(void) > -{ > - printk(KERN_DEBUG "Probe platform devices\n"); > - of_platform_bus_probe(NULL, of_bus_ids, NULL); > - > - return 0; > -} > -machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); > +machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); > > define_machine(gef_ppc9a) { > .name = "GE PPC9A", > diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c > b/arch/powerpc/platforms/86xx/gef_sbc310.c > index 8facf58..0e0be94 100644 > --- a/arch/powerpc/platforms/86xx/gef_sbc310.c > +++ b/arch/powerpc/platforms/86xx/gef_sbc310.c > @@ -184,37 +184,7 @@ static int __init gef_sbc310_probe(void) > return 0; > } > > -static long __init mpc86xx_time_init(void) > -{ > - unsigned int temp; > - > - /* Set the time base to zero */ > - mtspr(SPRN_TBWL, 0); > - mtspr(SPRN_TBWU, 0); > - > - temp = mfspr(SPRN_HID0); > - temp |= HID0_TBEN; > - mtspr(SPRN_HID0, temp); > - asm volatile("isync"); > - > - return 0; > -} > - > -static const struct of_device_id of_bus_ids[] __initconst = { > - { .compatible = "simple-bus", }, > - { .compatible = "gianfar", }, > - { .compatible = "fsl,mpc8641-pcie", }, > - {}, > -}; > - > -static int __init declare_of_platform_devices(void) > -{ > -
[PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
Signed-off-by: Alessio Igor Bogani --- v1 -> v2 Use appropriate [PATCH] prefix arch/powerpc/platforms/86xx/Makefile | 2 +- arch/powerpc/platforms/86xx/common.c | 42 ++ arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- 9 files changed, 52 insertions(+), 163 deletions(-) create mode 100644 arch/powerpc/platforms/86xx/common.c diff --git a/arch/powerpc/platforms/86xx/Makefile b/arch/powerpc/platforms/86xx/Makefile index ede815d..2d889ad 100644 --- a/arch/powerpc/platforms/86xx/Makefile +++ b/arch/powerpc/platforms/86xx/Makefile @@ -2,7 +2,7 @@ # Makefile for the PowerPC 86xx linux kernel. # -obj-y := pic.o +obj-y := pic.o common.o obj-$(CONFIG_SMP) += mpc86xx_smp.o obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o obj-$(CONFIG_SBC8641D) += sbc8641d.o diff --git a/arch/powerpc/platforms/86xx/common.c b/arch/powerpc/platforms/86xx/common.c new file mode 100644 index 000..bee3177 --- /dev/null +++ b/arch/powerpc/platforms/86xx/common.c @@ -0,0 +1,42 @@ +/* + * Routines common to most mpc86xx-based boards. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include + +#include "mpc86xx.h" + +static const struct of_device_id mpc86xx_common_ids[] __initconst = { + { .type = "soc", }, + { .compatible = "soc", }, + { .compatible = "simple-bus", }, + { .name = "localbus", }, + { .compatible = "gianfar", }, + { .compatible = "fsl,mpc8641-pcie", }, + {}, +}; + +int __init mpc86xx_common_publish_devices(void) +{ + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); +} + +long __init mpc86xx_time_init(void) +{ + unsigned int temp; + + /* Set the time base to zero */ + mtspr(SPRN_TBWL, 0); + mtspr(SPRN_TBWU, 0); + + temp = mfspr(SPRN_HID0); + temp |= HID0_TBEN; + mtspr(SPRN_HID0, temp); + asm volatile("isync"); + + return 0; +} diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c b/arch/powerpc/platforms/86xx/gef_ppc9a.c index bf17933..8e63b75 100644 --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c @@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) return 0; } -static long __init mpc86xx_time_init(void) -{ - unsigned int temp; - - /* Set the time base to zero */ - mtspr(SPRN_TBWL, 0); - mtspr(SPRN_TBWU, 0); - - temp = mfspr(SPRN_HID0); - temp |= HID0_TBEN; - mtspr(SPRN_HID0, temp); - asm volatile("isync"); - - return 0; -} - -static const struct of_device_id of_bus_ids[] __initconst = { - { .compatible = "simple-bus", }, - { .compatible = "gianfar", }, - { .compatible = "fsl,mpc8641-pcie", }, - {}, -}; - -static int __init declare_of_platform_devices(void) -{ - printk(KERN_DEBUG "Probe platform devices\n"); - of_platform_bus_probe(NULL, of_bus_ids, NULL); - - return 0; -} -machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); +machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); define_machine(gef_ppc9a) { .name = "GE PPC9A", diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c b/arch/powerpc/platforms/86xx/gef_sbc310.c index 8facf58..0e0be94 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc310.c +++ b/arch/powerpc/platforms/86xx/gef_sbc310.c @@ -184,37 +184,7 @@ static int __init gef_sbc310_probe(void) return 0; } -static long __init mpc86xx_time_init(void) -{ - unsigned int temp; - - /* Set the time base to zero */ - mtspr(SPRN_TBWL, 0); - mtspr(SPRN_TBWU, 0); - - temp = mfspr(SPRN_HID0); - temp |= HID0_TBEN; - mtspr(SPRN_HID0, temp); - asm volatile("isync"); - - return 0; -} - -static const struct of_device_id of_bus_ids[] __initconst = { - { .compatible = "simple-bus", }, - { .compatible = "gianfar", }, - { .compatible = "fsl,mpc8641-pcie", }, - {}, -}; - -static int __init declare_of_platform_devices(void) -{ - printk(KERN_DEBUG "Probe platform devices\n"); - of_platform_bus_probe(NULL, of_bus_ids, NULL); - - return 0; -} -machine_arch_initcall(gef_sbc310, declare_of_platform_devices); +machine_arch_initcall(gef_sbc310, mpc86xx_common_publish_devices); define_machine(gef_sbc310) { .name
[PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
Signed-off-by: Alessio Igor Bogani--- v1 -> v2 Use appropriate [PATCH] prefix arch/powerpc/platforms/86xx/Makefile | 2 +- arch/powerpc/platforms/86xx/common.c | 42 ++ arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- 9 files changed, 52 insertions(+), 163 deletions(-) create mode 100644 arch/powerpc/platforms/86xx/common.c diff --git a/arch/powerpc/platforms/86xx/Makefile b/arch/powerpc/platforms/86xx/Makefile index ede815d..2d889ad 100644 --- a/arch/powerpc/platforms/86xx/Makefile +++ b/arch/powerpc/platforms/86xx/Makefile @@ -2,7 +2,7 @@ # Makefile for the PowerPC 86xx linux kernel. # -obj-y := pic.o +obj-y := pic.o common.o obj-$(CONFIG_SMP) += mpc86xx_smp.o obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o obj-$(CONFIG_SBC8641D) += sbc8641d.o diff --git a/arch/powerpc/platforms/86xx/common.c b/arch/powerpc/platforms/86xx/common.c new file mode 100644 index 000..bee3177 --- /dev/null +++ b/arch/powerpc/platforms/86xx/common.c @@ -0,0 +1,42 @@ +/* + * Routines common to most mpc86xx-based boards. + * + * This is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + */ + +#include + +#include "mpc86xx.h" + +static const struct of_device_id mpc86xx_common_ids[] __initconst = { + { .type = "soc", }, + { .compatible = "soc", }, + { .compatible = "simple-bus", }, + { .name = "localbus", }, + { .compatible = "gianfar", }, + { .compatible = "fsl,mpc8641-pcie", }, + {}, +}; + +int __init mpc86xx_common_publish_devices(void) +{ + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); +} + +long __init mpc86xx_time_init(void) +{ + unsigned int temp; + + /* Set the time base to zero */ + mtspr(SPRN_TBWL, 0); + mtspr(SPRN_TBWU, 0); + + temp = mfspr(SPRN_HID0); + temp |= HID0_TBEN; + mtspr(SPRN_HID0, temp); + asm volatile("isync"); + + return 0; +} diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c b/arch/powerpc/platforms/86xx/gef_ppc9a.c index bf17933..8e63b75 100644 --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c @@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) return 0; } -static long __init mpc86xx_time_init(void) -{ - unsigned int temp; - - /* Set the time base to zero */ - mtspr(SPRN_TBWL, 0); - mtspr(SPRN_TBWU, 0); - - temp = mfspr(SPRN_HID0); - temp |= HID0_TBEN; - mtspr(SPRN_HID0, temp); - asm volatile("isync"); - - return 0; -} - -static const struct of_device_id of_bus_ids[] __initconst = { - { .compatible = "simple-bus", }, - { .compatible = "gianfar", }, - { .compatible = "fsl,mpc8641-pcie", }, - {}, -}; - -static int __init declare_of_platform_devices(void) -{ - printk(KERN_DEBUG "Probe platform devices\n"); - of_platform_bus_probe(NULL, of_bus_ids, NULL); - - return 0; -} -machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); +machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); define_machine(gef_ppc9a) { .name = "GE PPC9A", diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c b/arch/powerpc/platforms/86xx/gef_sbc310.c index 8facf58..0e0be94 100644 --- a/arch/powerpc/platforms/86xx/gef_sbc310.c +++ b/arch/powerpc/platforms/86xx/gef_sbc310.c @@ -184,37 +184,7 @@ static int __init gef_sbc310_probe(void) return 0; } -static long __init mpc86xx_time_init(void) -{ - unsigned int temp; - - /* Set the time base to zero */ - mtspr(SPRN_TBWL, 0); - mtspr(SPRN_TBWU, 0); - - temp = mfspr(SPRN_HID0); - temp |= HID0_TBEN; - mtspr(SPRN_HID0, temp); - asm volatile("isync"); - - return 0; -} - -static const struct of_device_id of_bus_ids[] __initconst = { - { .compatible = "simple-bus", }, - { .compatible = "gianfar", }, - { .compatible = "fsl,mpc8641-pcie", }, - {}, -}; - -static int __init declare_of_platform_devices(void) -{ - printk(KERN_DEBUG "Probe platform devices\n"); - of_platform_bus_probe(NULL, of_bus_ids, NULL); - - return 0; -} -machine_arch_initcall(gef_sbc310, declare_of_platform_devices); +machine_arch_initcall(gef_sbc310, mpc86xx_common_publish_devices);
Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
On 2/11/16, Alessio Igor Boganiwrote: > Signed-off-by: Alessio Igor Bogani > --- > v1 -> v2 > Use appropriate [PATCH] prefix > > arch/powerpc/platforms/86xx/Makefile | 2 +- > arch/powerpc/platforms/86xx/common.c | 42 > ++ > arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- > arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- > arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- > arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ > arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ > arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- > arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- > 9 files changed, 52 insertions(+), 163 deletions(-) > create mode 100644 arch/powerpc/platforms/86xx/common.c > > diff --git a/arch/powerpc/platforms/86xx/Makefile > b/arch/powerpc/platforms/86xx/Makefile > index ede815d..2d889ad 100644 > --- a/arch/powerpc/platforms/86xx/Makefile > +++ b/arch/powerpc/platforms/86xx/Makefile > @@ -2,7 +2,7 @@ > # Makefile for the PowerPC 86xx linux kernel. > # > > -obj-y:= pic.o > +obj-y:= pic.o common.o > obj-$(CONFIG_SMP)+= mpc86xx_smp.o > obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o > obj-$(CONFIG_SBC8641D) += sbc8641d.o > diff --git a/arch/powerpc/platforms/86xx/common.c > b/arch/powerpc/platforms/86xx/common.c > new file mode 100644 > index 000..bee3177 > --- /dev/null > +++ b/arch/powerpc/platforms/86xx/common.c > @@ -0,0 +1,42 @@ > +/* > + * Routines common to most mpc86xx-based boards. > + * > + * This is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include > + > +#include "mpc86xx.h" > + > +static const struct of_device_id mpc86xx_common_ids[] __initconst = { > + { .type = "soc", }, > + { .compatible = "soc", }, > + { .compatible = "simple-bus", }, > + { .name = "localbus", }, > + { .compatible = "gianfar", }, > + { .compatible = "fsl,mpc8641-pcie", }, > + {}, > +}; > + > +int __init mpc86xx_common_publish_devices(void) > +{ > + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); > +} > + > +long __init mpc86xx_time_init(void) > +{ > + unsigned int temp; > + > + /* Set the time base to zero */ > + mtspr(SPRN_TBWL, 0); > + mtspr(SPRN_TBWU, 0); > + > + temp = mfspr(SPRN_HID0); > + temp |= HID0_TBEN; > + mtspr(SPRN_HID0, temp); > + asm volatile("isync"); While we're here you could just use isync() > + > + return 0; > +} > diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c > b/arch/powerpc/platforms/86xx/gef_ppc9a.c > index bf17933..8e63b75 100644 > --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c > +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c > @@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) > return 0; > } > > -static long __init mpc86xx_time_init(void) > -{ > - unsigned int temp; > - > - /* Set the time base to zero */ > - mtspr(SPRN_TBWL, 0); > - mtspr(SPRN_TBWU, 0); > - > - temp = mfspr(SPRN_HID0); > - temp |= HID0_TBEN; > - mtspr(SPRN_HID0, temp); > - asm volatile("isync"); > - > - return 0; > -} > - > -static const struct of_device_id of_bus_ids[] __initconst = { > - { .compatible = "simple-bus", }, > - { .compatible = "gianfar", }, > - { .compatible = "fsl,mpc8641-pcie", }, > - {}, > -}; > - > -static int __init declare_of_platform_devices(void) > -{ > - printk(KERN_DEBUG "Probe platform devices\n"); > - of_platform_bus_probe(NULL, of_bus_ids, NULL); > - > - return 0; > -} > -machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); > +machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); > > define_machine(gef_ppc9a) { > .name = "GE PPC9A", > diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c > b/arch/powerpc/platforms/86xx/gef_sbc310.c > index 8facf58..0e0be94 100644 > --- a/arch/powerpc/platforms/86xx/gef_sbc310.c > +++ b/arch/powerpc/platforms/86xx/gef_sbc310.c > @@ -184,37 +184,7 @@ static int __init gef_sbc310_probe(void) > return 0; > } > > -static long __init mpc86xx_time_init(void) > -{ > - unsigned int temp; > - > - /* Set the time base to zero */ > - mtspr(SPRN_TBWL, 0); > - mtspr(SPRN_TBWU, 0); > - > - temp = mfspr(SPRN_HID0); > - temp |= HID0_TBEN; > - mtspr(SPRN_HID0, temp); > - asm volatile("isync"); > - > - return 0; > -} > - > -static const struct of_device_id of_bus_ids[] __initconst = { > - { .compatible = "simple-bus", }, > - { .compatible = "gianfar", }, > - { .compatible = "fsl,mpc8641-pcie", }, > - {}, > -}; > - > -static int
Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
Original Message From: Denis Kirjanov Sent: Thursday, February 11, 2016 4:22 AM To: Alessio Igor Bogani Cc: Scott Wood; linuxppc-...@lists.ozlabs.org; linux-kernel@vger.kernel.org Subject: Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code On 2/11/16, Alessio Igor Bogani <alessio.bog...@elettra.eu> wrote: > Signed-off-by: Alessio Igor Bogani <alessio.bog...@elettra.eu> > --- > v1 -> v2 > Use appropriate [PATCH] prefix > > arch/powerpc/platforms/86xx/Makefile | 2 +- > arch/powerpc/platforms/86xx/common.c | 42 > ++ > arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- > arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- > arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- > arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ > arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ > arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- > arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- > 9 files changed, 52 insertions(+), 163 deletions(-) > create mode 100644 arch/powerpc/platforms/86xx/common.c > > diff --git a/arch/powerpc/platforms/86xx/Makefile > b/arch/powerpc/platforms/86xx/Makefile > index ede815d..2d889ad 100644 > --- a/arch/powerpc/platforms/86xx/Makefile > +++ b/arch/powerpc/platforms/86xx/Makefile > @@ -2,7 +2,7 @@ > # Makefile for the PowerPC 86xx linux kernel. > # > > -obj-y:= pic.o > +obj-y:= pic.o common.o > obj-$(CONFIG_SMP)+= mpc86xx_smp.o > obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o > obj-$(CONFIG_SBC8641D) += sbc8641d.o > diff --git a/arch/powerpc/platforms/86xx/common.c > b/arch/powerpc/platforms/86xx/common.c > new file mode 100644 > index 000..bee3177 > --- /dev/null > +++ b/arch/powerpc/platforms/86xx/common.c > @@ -0,0 +1,42 @@ > +/* > + * Routines common to most mpc86xx-based boards. > + * > + * This is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include > + > +#include "mpc86xx.h" > + > +static const struct of_device_id mpc86xx_common_ids[] __initconst = { > + { .type = "soc", }, > + { .compatible = "soc", }, > + { .compatible = "simple-bus", }, > + { .name = "localbus", }, > + { .compatible = "gianfar", }, > + { .compatible = "fsl,mpc8641-pcie", }, > + {}, > +}; > + > +int __init mpc86xx_common_publish_devices(void) > +{ > + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); > +} > + > +long __init mpc86xx_time_init(void) > +{ > + unsigned int temp; > + > + /* Set the time base to zero */ > + mtspr(SPRN_TBWL, 0); > + mtspr(SPRN_TBWU, 0); > + > + temp = mfspr(SPRN_HID0); > + temp |= HID0_TBEN; > + mtspr(SPRN_HID0, temp); > + asm volatile("isync"); While we're here you could just use isync() > + > + return 0; > +} > diff --git a/arch/powerpc/platforms/86xx/gef_ppc9a.c > b/arch/powerpc/platforms/86xx/gef_ppc9a.c > index bf17933..8e63b75 100644 > --- a/arch/powerpc/platforms/86xx/gef_ppc9a.c > +++ b/arch/powerpc/platforms/86xx/gef_ppc9a.c > @@ -197,37 +197,7 @@ static int __init gef_ppc9a_probe(void) > return 0; > } > > -static long __init mpc86xx_time_init(void) > -{ > - unsigned int temp; > - > - /* Set the time base to zero */ > - mtspr(SPRN_TBWL, 0); > - mtspr(SPRN_TBWU, 0); > - > - temp = mfspr(SPRN_HID0); > - temp |= HID0_TBEN; > - mtspr(SPRN_HID0, temp); > - asm volatile("isync"); > - > - return 0; > -} > - > -static const struct of_device_id of_bus_ids[] __initconst = { > - { .compatible = "simple-bus", }, > - { .compatible = "gianfar", }, > - { .compatible = "fsl,mpc8641-pcie", }, > - {}, > -}; > - > -static int __init declare_of_platform_devices(void) > -{ > - printk(KERN_DEBUG "Probe platform devices\n"); > - of_platform_bus_probe(NULL, of_bus_ids, NULL); > - > - return 0; > -} > -machine_arch_initcall(gef_ppc9a, declare_of_platform_devices); > +machine_arch_initcall(gef_ppc9a, mpc86xx_common_publish_devices); > > define_machine(gef_ppc9a) { > .name = "GE PPC9A", > diff --git a/arch/powerpc/platforms/86xx/gef_sbc310.c > b/arch/powerpc/platforms/86xx
Re: [PATCH v2 1/1] powerpc/86xx: Consolidate common platform code
On Thu, 2016-02-11 at 12:21 +0300, Denis Kirjanov wrote: > On 2/11/16, Alessio Igor Boganiwrote: > > Signed-off-by: Alessio Igor Bogani > > --- > > v1 -> v2 > > Use appropriate [PATCH] prefix > > > > arch/powerpc/platforms/86xx/Makefile | 2 +- > > arch/powerpc/platforms/86xx/common.c | 42 > > ++ > > arch/powerpc/platforms/86xx/gef_ppc9a.c| 32 +-- > > arch/powerpc/platforms/86xx/gef_sbc310.c | 32 +-- > > arch/powerpc/platforms/86xx/gef_sbc610.c | 32 +-- > > arch/powerpc/platforms/86xx/mpc8610_hpcd.c | 20 ++ > > arch/powerpc/platforms/86xx/mpc86xx.h | 2 ++ > > arch/powerpc/platforms/86xx/mpc86xx_hpcn.c | 21 +-- > > arch/powerpc/platforms/86xx/sbc8641d.c | 32 +-- > > 9 files changed, 52 insertions(+), 163 deletions(-) > > create mode 100644 arch/powerpc/platforms/86xx/common.c > > > > diff --git a/arch/powerpc/platforms/86xx/Makefile > > b/arch/powerpc/platforms/86xx/Makefile > > index ede815d..2d889ad 100644 > > --- a/arch/powerpc/platforms/86xx/Makefile > > +++ b/arch/powerpc/platforms/86xx/Makefile > > @@ -2,7 +2,7 @@ > > # Makefile for the PowerPC 86xx linux kernel. > > # > > > > -obj-y := pic.o > > +obj-y := pic.o common.o > > obj-$(CONFIG_SMP) += mpc86xx_smp.o > > obj-$(CONFIG_MPC8641_HPCN) += mpc86xx_hpcn.o > > obj-$(CONFIG_SBC8641D) += sbc8641d.o > > diff --git a/arch/powerpc/platforms/86xx/common.c > > b/arch/powerpc/platforms/86xx/common.c > > new file mode 100644 > > index 000..bee3177 > > --- /dev/null > > +++ b/arch/powerpc/platforms/86xx/common.c > > @@ -0,0 +1,42 @@ > > +/* > > + * Routines common to most mpc86xx-based boards. > > + * > > + * This is free software; you can redistribute it and/or modify > > + * it under the terms of the GNU General Public License version 2 as > > + * published by the Free Software Foundation. > > + */ > > + > > +#include > > + > > +#include "mpc86xx.h" > > + > > +static const struct of_device_id mpc86xx_common_ids[] __initconst = { > > + { .type = "soc", }, > > + { .compatible = "soc", }, > > + { .compatible = "simple-bus", }, > > + { .name = "localbus", }, > > + { .compatible = "gianfar", }, > > + { .compatible = "fsl,mpc8641-pcie", }, > > + {}, > > +}; > > + > > +int __init mpc86xx_common_publish_devices(void) > > +{ > > + return of_platform_bus_probe(NULL, mpc86xx_common_ids, NULL); > > +} > > + > > +long __init mpc86xx_time_init(void) > > +{ > > + unsigned int temp; > > + > > + /* Set the time base to zero */ > > + mtspr(SPRN_TBWL, 0); > > + mtspr(SPRN_TBWU, 0); > > + > > + temp = mfspr(SPRN_HID0); > > + temp |= HID0_TBEN; > > + mtspr(SPRN_HID0, temp); > > + asm volatile("isync"); > While we're here you could just use isync() > Could you please trim the part of the mail you're not replying to? It takes a while to scan to find where the reply actually is. -Scott