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


Groups > linux.kernel > #1521431

Re: [PATCH 01/16] ARM: scu: Provide support for parsing SCU device node to enable SCU

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

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar | Unroll thread


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