Re: [PATCH v8 1/3] ARM: EXYNOS: Add support for EXYNOS5410 SoC

2014-04-25 Thread Kevin Hilman
Tarek Dakhran t.dakh...@samsung.com writes:

 EXYNOS5410 is SoC in Samsung's Exynos5 SoC series.
 Add initial support for this SoC.

 Signed-off-by: Tarek Dakhran t.dakh...@samsung.com
 Signed-off-by: Vyacheslav Tyrtov v.tyr...@samsung.com
 Reviewed-by: Tomasz Figa t.f...@samsung.com

[...]

 diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c
 index 5eead53..83ae5fb 100644
 --- a/arch/arm/mach-exynos/hotplug.c
 +++ b/arch/arm/mach-exynos/hotplug.c
 @@ -95,8 +95,8 @@ static inline void platform_do_lowpower(unsigned int cpu, 
 int *spurious)
   for (;;) {
  
   /* make cpu1 to be turned off at next WFI command */
 - if (cpu == 1)
 - __raw_writel(0, S5P_ARM_CORE1_CONFIGURATION);
 + if (cpu  0)
 + __raw_writel(0, S5P_ARM_CORE_CONFIGURATION(cpu));

This looks like a fix that's probably not specific to the 5410 and maybe
deserves it's own patch?

[...]

 @@ -107,14 +111,14 @@ static int exynos_boot_secondary(unsigned int cpu, 
 struct task_struct *idle)
*/
   write_pen_release(phys_cpu);
  
 - if (!(__raw_readl(S5P_ARM_CORE1_STATUS)  S5P_CORE_LOCAL_PWR_EN)) {
 + if (!(__raw_readl(S5P_ARM_CORE_STATUS(cpu))  S5P_CORE_LOCAL_PWR_EN)) {
   __raw_writel(S5P_CORE_LOCAL_PWR_EN,
 -  S5P_ARM_CORE1_CONFIGURATION);
 +  S5P_ARM_CORE_CONFIGURATION(cpu));
  
   timeout = 10;
  
   /* wait max 10 ms until cpu1 is on */
 - while ((__raw_readl(S5P_ARM_CORE1_STATUS)
 + while ((__raw_readl(S5P_ARM_CORE_STATUS(cpu))
S5P_CORE_LOCAL_PWR_EN) != S5P_CORE_LOCAL_PWR_EN) {
   if (timeout-- == 0)
   break;

...and this hunk too?

Kevin
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 1/3] ARM: EXYNOS: Add support for EXYNOS5410 SoC

2014-04-25 Thread Tomasz Figa

Hi Kevin,

On 26.04.2014 00:52, Kevin Hilman wrote:

Tarek Dakhran t.dakh...@samsung.com writes:


EXYNOS5410 is SoC in Samsung's Exynos5 SoC series.
Add initial support for this SoC.

Signed-off-by: Tarek Dakhran t.dakh...@samsung.com
Signed-off-by: Vyacheslav Tyrtov v.tyr...@samsung.com
Reviewed-by: Tomasz Figa t.f...@samsung.com


[...]


diff --git a/arch/arm/mach-exynos/hotplug.c b/arch/arm/mach-exynos/hotplug.c
index 5eead53..83ae5fb 100644
--- a/arch/arm/mach-exynos/hotplug.c
+++ b/arch/arm/mach-exynos/hotplug.c
@@ -95,8 +95,8 @@ static inline void platform_do_lowpower(unsigned int cpu, int 
*spurious)
for (;;) {

/* make cpu1 to be turned off at next WFI command */
-   if (cpu == 1)
-   __raw_writel(0, S5P_ARM_CORE1_CONFIGURATION);
+   if (cpu  0)
+   __raw_writel(0, S5P_ARM_CORE_CONFIGURATION(cpu));


This looks like a fix that's probably not specific to the 5410 and maybe
deserves it's own patch?

[...]


@@ -107,14 +111,14 @@ static int exynos_boot_secondary(unsigned int cpu, struct 
task_struct *idle)
 */
write_pen_release(phys_cpu);

-   if (!(__raw_readl(S5P_ARM_CORE1_STATUS)  S5P_CORE_LOCAL_PWR_EN)) {
+   if (!(__raw_readl(S5P_ARM_CORE_STATUS(cpu))  S5P_CORE_LOCAL_PWR_EN)) {
__raw_writel(S5P_CORE_LOCAL_PWR_EN,
-S5P_ARM_CORE1_CONFIGURATION);
+S5P_ARM_CORE_CONFIGURATION(cpu));

timeout = 10;

/* wait max 10 ms until cpu1 is on */
-   while ((__raw_readl(S5P_ARM_CORE1_STATUS)
+   while ((__raw_readl(S5P_ARM_CORE_STATUS(cpu))
 S5P_CORE_LOCAL_PWR_EN) != S5P_CORE_LOCAL_PWR_EN) {
if (timeout-- == 0)
break;


...and this hunk too?


Yes, they do, but we are currently refactoring this code anyway.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 1/3] ARM: EXYNOS: Add support for EXYNOS5410 SoC

2014-04-24 Thread Tomasz Figa

Hi Tarek,

On 14.04.2014 13:59, Tarek Dakhran wrote:

On 04/14/2014 03:03 PM, Arnd Bergmann wrote:

On Monday 14 April 2014 11:17:38 Tarek Dakhran wrote:

--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -159,6 +159,15 @@ static struct map_desc exynos5250_iodesc[]
__initdata = {
 },
  };
+static struct map_desc exynos5410_iodesc[] __initdata = {
+   {
+   .virtual= (unsigned long)S5P_VA_SYSRAM_NS,
+   .pfn=
__phys_to_pfn(EXYNOS5410_PA_SYSRAM_NS),
+   .length = SZ_4K,
+   .type   = MT_DEVICE,
+   },
+};
+
  static struct map_desc exynos5_iodesc[] __initdata = {

NAK

Why does this keep coming up?

Arnd


We need this memory region because boot address for exynos5410 located
here, same as for 5250.



Is there really no way to map this region dynamically in the entity 
(driver, source file, whatever) that actually uses it? The goal is to 
get rid of all the static mappings entirely, so adding new one makes us 
further from it.


Best regards,
Tomasz
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 1/3] ARM: EXYNOS: Add support for EXYNOS5410 SoC

2014-04-14 Thread Arnd Bergmann
On Monday 14 April 2014 11:17:38 Tarek Dakhran wrote:
 --- a/arch/arm/mach-exynos/exynos.c
 +++ b/arch/arm/mach-exynos/exynos.c
 @@ -159,6 +159,15 @@ static struct map_desc exynos5250_iodesc[] __initdata = {
 },
  };
  
 +static struct map_desc exynos5410_iodesc[] __initdata = {
 +   {
 +   .virtual= (unsigned long)S5P_VA_SYSRAM_NS,
 +   .pfn= __phys_to_pfn(EXYNOS5410_PA_SYSRAM_NS),
 +   .length = SZ_4K,
 +   .type   = MT_DEVICE,
 +   },
 +};
 +
  static struct map_desc exynos5_iodesc[] __initdata = {

NAK

Why does this keep coming up?

Arnd
--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH v8 1/3] ARM: EXYNOS: Add support for EXYNOS5410 SoC

2014-04-14 Thread Tarek Dakhran

On 04/14/2014 03:03 PM, Arnd Bergmann wrote:

On Monday 14 April 2014 11:17:38 Tarek Dakhran wrote:

--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -159,6 +159,15 @@ static struct map_desc exynos5250_iodesc[] __initdata = {
 },
  };
  
+static struct map_desc exynos5410_iodesc[] __initdata = {

+   {
+   .virtual= (unsigned long)S5P_VA_SYSRAM_NS,
+   .pfn= __phys_to_pfn(EXYNOS5410_PA_SYSRAM_NS),
+   .length = SZ_4K,
+   .type   = MT_DEVICE,
+   },
+};
+
  static struct map_desc exynos5_iodesc[] __initdata = {

NAK

Why does this keep coming up?

Arnd

We need this memory region because boot address for exynos5410 located 
here, same as for 5250.


--
Best regards,
Tarek Dakhran

--
To unsubscribe from this list: send the line unsubscribe linux-samsung-soc in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html