From: arnd@arndb.de (Arnd Bergmann)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v2 07/12] ARM: hisi: add hip04 SoC support
Date: Tue, 08 Apr 2014 13:10:41 +0200 [thread overview]
Message-ID: <4584675.BJyVXFoGau@wuerfel> (raw)
In-Reply-To: <1396944052-9887-8-git-send-email-haojian.zhuang@linaro.org>
On Tuesday 08 April 2014 16:00:47 Haojian Zhuang wrote:
> diff --git a/arch/arm/mach-hisi/hisilicon.c b/arch/arm/mach-hisi/hisilicon.c
> index 741faf3..10a605f 100644
> --- a/arch/arm/mach-hisi/hisilicon.c
> +++ b/arch/arm/mach-hisi/hisilicon.c
> @@ -14,6 +14,7 @@
> #include <linux/clk-provider.h>
> #include <linux/clocksource.h>
> #include <linux/irqchip.h>
> +#include <linux/memblock.h>
> #include <linux/of_address.h>
> #include <linux/of_platform.h>
>
> @@ -88,3 +89,21 @@ DT_MACHINE_START(HI3620, "Hisilicon Hi3620 (Flattened Device Tree)")
> .smp = smp_ops(hi3xxx_smp_ops),
> .restart = hi3xxx_restart,
> MACHINE_END
> +
> +static const char *hip04_compat[] __initconst = {
> + "hisilicon,hip04-d01",
> + NULL,
> +};
> +
> +static void __init hip04_reserve(void)
> +{
> + memblock_reserve(HIP04_BOOTWRAPPER_PHYS, HIP04_BOOTWRAPPER_SIZE);
> +}
Can you explain why you do this? Shouldn't that memory just be listed
in the DT?
> +DT_MACHINE_START(HIP04, "Hisilicon HiP04 (Flattened Device Tree)")
> + .dt_compat = hip04_compat,
> +#ifdef CONFIG_MCPM
> + .smp_init = smp_init_ops(hip04_smp_init_ops),
> +#endif
> + .reserve = hip04_reserve,
> +MACHINE_END
I think the #ifdef is not needed here, you already hide hip04_smp_init_ops
if CONFIG_SMP is disabled, and SMP implies MCPM based on your Kconfig.
> diff --git a/arch/arm/mach-hisi/platsmp.c b/arch/arm/mach-hisi/platsmp.c
> index 471f1ee..3a5833f 100644
> --- a/arch/arm/mach-hisi/platsmp.c
> +++ b/arch/arm/mach-hisi/platsmp.c
> };
> +
> +#ifdef CONFIG_MCPM
> +/* bits definition in SC_CPU_RESET_REQ[x]/SC_CPU_RESET_DREQ[x]
> + * 1 -- unreset; 0 -- reset
> + */
> ...
It would seem appropriate to put all of this into a separate
source file -- there is no shared code between the two SMP
implementations.
> +static int __init hip04_mcpm_init(void)
> +{
> + struct device_node *np;
> + int ret = -ENODEV;
> +
> + np = of_find_compatible_node(NULL, NULL, "hisilicon,hip04-mcpm");
> + if (!np) {
> + pr_err("failed to find hisilicon,hip04-mcpm node\n");
> + goto err;
> + }
This shouldn't be a fatal error: if you run the kernel on a platform
other than hip04, the code will still be executed here but it won't
find the node and should just ignore the device silently.
> + relocation = of_iomap(np, 0);
> + if (!relocation) {
> + pr_err("failed to get relocation space\n");
> + ret = -ENOMEM;
> + goto err;
> + }
> + sysctrl = of_iomap(np, 1);
> + if (!sysctrl) {
> + pr_err("failed to get sysctrl base\n");
> + ret = -ENOMEM;
> + goto err_sysctrl;
> + }
sysctrl sounds like a shared device that you probably don't want
to map here, but rather use a "syscon" node.
> +}
> +early_initcall(hip04_mcpm_init);
Actually, I guess it would be better to do this from one of the
various calls you already have for SMP initialization than
doing an initcall.
Arnd
next prev parent reply other threads:[~2014-04-08 11:10 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-08 8:00 [PATCH v2 00/12] Add Hisilicon HiP04 SoC Haojian Zhuang
2014-04-08 8:00 ` [PATCH v2 01/12] ARM: debug: add HiP04 debug uart Haojian Zhuang
2014-04-08 8:00 ` [PATCH v2 02/12] ARM: append ARCH_MULTI_V7_LPAE Haojian Zhuang
2014-04-08 10:59 ` Arnd Bergmann
2014-04-14 6:26 ` Haojian Zhuang
2014-04-08 8:00 ` [PATCH v2 03/12] ARM: hisi: add ARCH_HISI Haojian Zhuang
2014-04-08 11:02 ` Arnd Bergmann
2014-04-08 11:13 ` Arnd Bergmann
2014-04-14 7:57 ` Haojian Zhuang
2014-04-14 9:10 ` Arnd Bergmann
2014-04-08 8:00 ` [PATCH v2 04/12] irq: gic: use mask field in GICC_IAR Haojian Zhuang
2014-04-08 8:00 ` [PATCH v2 05/12] irq: gic: extends the cpu interface to 16 Haojian Zhuang
2014-04-10 8:12 ` Marc Zyngier
2014-04-08 8:00 ` [PATCH v2 06/12] ARM: mcpm: change max clusters to 4 Haojian Zhuang
2014-04-10 9:56 ` Dave Martin
2014-04-11 2:39 ` Nicolas Pitre
2014-04-11 14:57 ` Dave Martin
2014-04-15 6:45 ` Haojian Zhuang
2014-04-15 8:15 ` Dave Martin
2014-04-15 14:48 ` Nicolas Pitre
2014-04-08 8:00 ` [PATCH v2 07/12] ARM: hisi: add hip04 SoC support Haojian Zhuang
2014-04-08 11:10 ` Arnd Bergmann [this message]
2014-04-15 7:02 ` Haojian Zhuang
2014-04-15 7:50 ` Arnd Bergmann
2014-04-10 8:50 ` Mark Rutland
2014-04-15 7:35 ` Haojian Zhuang
2014-04-10 11:21 ` Dave Martin
2014-04-08 8:00 ` [PATCH v2 08/12] ARM: dts: add hip04-d01 dts file Haojian Zhuang
2014-04-10 9:09 ` Mark Rutland
2014-04-10 10:25 ` Dave Martin
2014-04-08 8:00 ` [PATCH v2 09/12] ARM: config: append hip04_defconfig Haojian Zhuang
2014-04-08 11:18 ` Arnd Bergmann
2014-04-08 8:00 ` [PATCH v2 10/12] ARM: config: select ARCH_HISI in hi3xxx_defconfig Haojian Zhuang
2014-04-08 8:00 ` [PATCH v2 11/12] ARM: hisi: enable erratum 798181 of A15 on HiP04 Haojian Zhuang
2014-04-08 8:00 ` [PATCH v2 12/12] ARM: dts: Add PMU support in HiP04 Haojian Zhuang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4584675.BJyVXFoGau@wuerfel \
--to=arnd@arndb.de \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox