Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1521431
| From | "pankaj.dubey" <pankaj.dubey@samsung.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU |
| Date | 2016-11-14 10:00 +0100 |
| Message-ID | <sDlhn-4FD-9@gated-at.bofh.it> (permalink) |
| References | <sDhx7-26l-15@gated-at.bofh.it> <sDhx7-26l-21@gated-at.bofh.it> <sDiMx-3cC-5@gated-at.bofh.it> <sDlhn-4FD-11@gated-at.bofh.it> <sDjyW-3JZ-23@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Jisheng,
On Monday 14 November 2016 12:24 PM, Jisheng Zhang wrote:
>
> On Mon, 14 Nov 2016 14:12:51 +0800 Jisheng Zhang wrote:
>
>> Hi Pankaj,
>>
<snip>
>>> + * Helper API to get SCU base address
>>> + * In case platform DT do not have SCU node, or iomap fails
>>> + * this call will fallback and will try to map via call to
>>> + * scu_a9_get_base.
>>> + * This will return ownership of scu_base to the caller
>>> + */
>>> +void __iomem *of_scu_get_base(void)
>>> +{
>>> + unsigned long base = 0;
>>> + struct device_node *np;
>>> + void __iomem *scu_base;
>>> +
>>> + np = of_find_matching_node(NULL, scu_match);
>>
>> could we check np before calling of_iomap()?
>>
>>> + scu_base = of_iomap(np, 0);
>>> + of_node_put(np);
>>> + if (!scu_base) {
>>> + pr_err("%s failed to map scu_base via DT\n", __func__);
>>
>> For non-ca5, non-ca9 based SoCs, we'll see this error msg. We understand
>> what does it mean, but it may confuse normal users. In current version,
>> berlin doesn't complain like this for non-ca9 SoCs
>
> oops, I just realized that the non-ca9 berlin arm SoC version isn't upstreamed.
> Below is the draft version I planed. Basically speaking, the code tries to
> find "arm,cortex-a9-scu" node from DT, if can't, we think we don't need to
> worry about SCU. Is there any elegant solution for my situation?
>
To adopt new generic API I have submitted a patch for Berlin (along with
other various platforms) here:
https://patchwork.kernel.org/patch/9426457/
Please review and if possible test and let me know feedback.
Thanks,
Pankaj Dubey
> Thanks,
> Jisheng
>
>
> ------------8<-------------------
> --- a/arch/arm/mach-berlin/platsmp.c
> +++ b/arch/arm/mach-berlin/platsmp.c
> @@ -56,22 +56,25 @@ static void __init berlin_smp_prepare_cpus(unsigned int max_cpus)
> void __iomem *vectors_base;
>
> np = of_find_compatible_node(NULL, NULL, "arm,cortex-a9-scu");
> - scu_base = of_iomap(np, 0);
> - of_node_put(np);
> - if (!scu_base)
> - return;
> + if (np) {
> + scu_base = of_iomap(np, 0);
> + of_node_put(np);
> + if (!scu_base)
> + return;
> + scu_enable(scu_base);
> + iounmap(scu_base);
> + }
>
> np = of_find_compatible_node(NULL, NULL, "marvell,berlin-cpu-ctrl");
> cpu_ctrl = of_iomap(np, 0);
> of_node_put(np);
> if (!cpu_ctrl)
> - goto unmap_scu;
> + return;
>
> vectors_base = ioremap(CONFIG_VECTORS_BASE, SZ_32K);
> if (!vectors_base)
> - goto unmap_scu;
> + return;
>
> - scu_enable(scu_base);
> flush_cache_all();
>
> /*
> @@ -87,8 +90,6 @@ static void __init berlin_smp_prepare_cpus(unsigned int max_cpus)
> writel(virt_to_phys(secondary_startup), vectors_base + SW_RESET_ADDR);
>
> iounmap(vectors_base);
> -unmap_scu:
> - iounmap(scu_base);
> }
>
> static struct smp_operations berlin_smp_ops __initdata = {
>
>
>>
>>> + if (scu_a9_has_base()) {
>>> + base = scu_a9_get_base();
>>> + scu_base = ioremap(base, SZ_4K);
>>> + }
>>> + if (!scu_base) {
>>> + pr_err("%s failed to map scu_base\n", __func__);
>>
>> ditto
>>
>>> + return IOMEM_ERR_PTR(-ENOMEM);
>>> + }
>>> + }
>>> + return scu_base;
>>> +}
>>> +
>>> +/*
>>> + * Enable SCU via mapping scu_base DT
>>> + * If scu_base mapped successfully scu will be enabled and in case of
>>> + * failure if will return non-zero error code
>>> + */
>>> +int of_scu_enable(void)
>>> +{
>>> + void __iomem *scu_base;
>>> +
>>> + scu_base = of_scu_get_base();
>>> + if (!IS_ERR(scu_base)) {
>>> + scu_enable(scu_base);
>>> + iounmap(scu_base);
>>> + return 0;
>>> + }
>>> + return PTR_ERR(scu_base);
>>> +}
>>> +
>>> #endif
>>>
>>> /*
>>
>>
>> _______________________________________________
>> linux-arm-kernel mailing list
>> linux-arm-kernel@lists.infradead.org
>> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>
>
>
>
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/16] Provide support of generic function for SCU enable Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:00 +0100
[PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:00 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Jisheng Zhang <jszhang@marvell.com> - 2016-11-14 07:20 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Jisheng Zhang <jszhang@marvell.com> - 2016-11-14 08:10 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-14 10:00 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Jisheng Zhang <jszhang@marvell.com> - 2016-11-14 10:00 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-14 09:40 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Arnd Bergmann <arnd@arndb.de> - 2016-11-14 13:10 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-11-14 15:00 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Arnd Bergmann <arnd@arndb.de> - 2016-11-14 15:40 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-11-14 16:00 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-17 05:30 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Arnd Bergmann <arnd@arndb.de> - 2016-11-17 18:10 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-18 04:30 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Arnd Bergmann <arnd@arndb.de> - 2016-11-18 13:20 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-11-18 13:50 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Arnd Bergmann <arnd@arndb.de> - 2016-11-18 14:40 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU Russell King - ARM Linux <linux@armlinux.org.uk> - 2016-11-14 14:50 +0100
Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-17 03:20 +0100
[PATCH 09/16] ARM: BCM: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
Re: [PATCH 09/16] ARM: BCM: use generic API for enabling SCU Florian Fainelli <f.fainelli@gmail.com> - 2016-11-14 07:20 +0100
[PATCH 06/16] ARM: STi: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 15/16] ARM: mvebu: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 12/16] ARM: imx: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
Re: [PATCH 12/16] ARM: imx: use generic API for enabling SCU Shawn Guo <shawnguo@kernel.org> - 2016-11-14 15:30 +0100
Re: [PATCH 12/16] ARM: imx: use generic API for enabling SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-17 05:30 +0100
[PATCH 13/16] ARM: zynq: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 08/16] ARM: vexpress: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
Re: [PATCH 08/16] ARM: vexpress: use generic API for enabling SCU Sudeep Holla <sudeep.holla@arm.com> - 2016-11-16 15:40 +0100
Re: [PATCH 08/16] ARM: vexpress: use generic API for enabling SCU "pankaj.dubey" <pankaj.dubey@samsung.com> - 2016-11-17 03:20 +0100
[PATCH 05/16] ARM: socfpga: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 03/16] ARM: berlin: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
Re: [PATCH 03/16] ARM: berlin: use generic API for enabling SCU Jisheng Zhang <jszhang@marvell.com> - 2016-11-14 10:00 +0100
Re: [PATCH 03/16] ARM: berlin: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 17:30 +0100
[PATCH 10/16] ARM: tegra: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 16/16] ARM: zx: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 11/16] ARM: rockchip: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 14/16] ARM: hisi: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
[PATCH 07/16] ARM: ux500: use generic API for enabling SCU Pankaj Dubey <pankaj.dubey@samsung.com> - 2016-11-14 06:10 +0100
csiph-web