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

2014-05-24 Thread Tomasz Figa
Hi Tarek,

On 24.05.2014 11:33, Tarek Dakhran wrote:
> Hi Tomasz
> 
> I faced another problem, while changing this patch.
> See below.
> 
> On 05/24/2014 01:11 AM, Tomasz Figa wrote:
>> Hi Tarek,
>>
>> With v2 of the series I mentioned in review of previous version [1],
>> this patch can be skipped.
>>
>> [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html
>>
>> Best regards,
>> Tomasz
>>
>> On 23.05.2014 12:35, Tarek Dakhran wrote:
>>> EXYNOS5410 is SoC in Samsung's Exynos5 SoC series.
>>> Add initial support for this SoC.
>>>
>>> Signed-off-by: Tarek Dakhran 
>>> Signed-off-by: Vyacheslav Tyrtov 
>>> ---
>>>   arch/arm/mach-exynos/Kconfig|8 
>>>   arch/arm/mach-exynos/common.h   |   11 ++-
>>>   arch/arm/mach-exynos/firmware.c |2 +-
>>>   3 files changed, 19 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
>>> index 1602abc..79a3e85 100644
>>> --- a/arch/arm/mach-exynos/Kconfig
>>> +++ b/arch/arm/mach-exynos/Kconfig
>>> @@ -84,6 +84,14 @@ config SOC_EXYNOS5250
>>>   help
>>> Enable EXYNOS5250 SoC support
>>>   +config SOC_EXYNOS5410
>>> +bool "SAMSUNG EXYNOS5410"
>>> +default y
>>> +depends on ARCH_EXYNOS5
>>> +select PM_GENERIC_DOMAINS if PM_RUNTIME
>>> +help
>>> +  Enable EXYNOS5410 SoC support
>>> +
>>>   config SOC_EXYNOS5420
>>>   bool "SAMSUNG EXYNOS5420"
>>>   default y
>>> diff --git a/arch/arm/mach-exynos/common.h
>>> b/arch/arm/mach-exynos/common.h
>>> index e2d0954..d64c6de 100644
>>> --- a/arch/arm/mach-exynos/common.h
>>> +++ b/arch/arm/mach-exynos/common.h
>>> @@ -21,6 +21,7 @@
>>>   #define EXYNOS4_CPU_MASK0xFFFE
>>> #define EXYNOS5250_SOC_ID0x4352
>>> +#define EXYNOS5410_SOC_ID0xE541
>>>   #define EXYNOS5420_SOC_ID0xE542
>>>   #define EXYNOS5440_SOC_ID0xE544
>>>   #define EXYNOS5_SOC_MASK0xF000
>>> @@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID,
>>> EXYNOS4_CPU_MASK)
>>>   IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
>>>   IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
>>>   IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
>>> +IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
>>>   IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
>>>   IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
>>>   @@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID,
>>> EXYNOS5_SOC_MASK)
>>>   # define soc_is_exynos5250()0
>>>   #endif
>>>   +#if defined(CONFIG_SOC_EXYNOS5410)
>>> +# define soc_is_exynos5410()is_samsung_exynos5410()
>>> +#else
>>> +# define soc_is_exynos5410()0
>>> +#endif
>>> +
>>>   #if defined(CONFIG_SOC_EXYNOS5420)
>>>   # define soc_is_exynos5420()is_samsung_exynos5420()
>>>   #else
>>> @@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID,
>>> EXYNOS5_SOC_MASK)
>>> #define soc_is_exynos4() (soc_is_exynos4210() ||
>>> soc_is_exynos4212() || \
>>> soc_is_exynos4412())
>>> -#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
>>> +#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410()
>>> || \
>>> +  soc_is_exynos5420())
>>>   
> This is the place where we need it.
> Or this macro should be changed (maybe read compatible property from dt).
> 

The problem is in fact not here, but in code using this macro. Let's
see, what git grep[1] gives us:

> arch/arm/mach-exynos/exynos.c-static void __init exynos_map_io(void)
> arch/arm/mach-exynos/exynos.c-{
> arch/arm/mach-exynos/exynos.c-  if (soc_is_exynos4())
> arch/arm/mach-exynos/exynos.c-  iotable_init(exynos4_iodesc, 
> ARRAY_SIZE(exynos4_iodesc));
> arch/arm/mach-exynos/exynos.c-
> arch/arm/mach-exynos/exynos.c:  if (soc_is_exynos5())
> arch/arm/mach-exynos/exynos.c-  iotable_init(exynos5_iodesc, 
> ARRAY_SIZE(exynos5_iodesc));

OK, so we have an array of static mappings, which can't be handled using
DT yet. That would probably explain why it fails to boot.

> arch/arm/mach-exynos/exynos.c-}

> arch/arm/mach-exynos/exynos.c-static void __init exynos_dt_machine_init(void)
> arch/arm/mach-exynos/exynos.c-{
[snip]
> arch/arm/mach-exynos/exynos.c:  if (soc_is_exynos5()) {
> arch/arm/mach-exynos/exynos.c-  for_each_compatible_node(i2c_np, 
> NULL, i2c_compat) {
> arch/arm/mach-exynos/exynos.c-  if 
> (of_device_is_available(i2c_np)) {
> arch/arm/mach-exynos/exynos.c-  id = 
> of_alias_get_id(i2c_np, "i2c");
> arch/arm/mach-exynos/exynos.c-  if (id < 4) {
> arch/arm/mach-exynos/exynos.c-  tmp = 
> readl(EXYNOS5_SYS_I2C_CFG);
> arch/arm/mach-exynos/exynos.c-  writel(tmp & 
> ~(0x1 << id),
> arch/arm/mach-exynos/exynos.c-
>   EXYNOS5_SYS_I2C_CFG);
> 

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

2014-05-24 Thread Tarek Dakhran

Hi Tomasz

I faced another problem, while changing this patch.
See below.

On 05/24/2014 01:11 AM, Tomasz Figa wrote:

Hi Tarek,

With v2 of the series I mentioned in review of previous version [1],
this patch can be skipped.

[1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

Best regards,
Tomasz

On 23.05.2014 12:35, Tarek Dakhran wrote:

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

Signed-off-by: Tarek Dakhran 
Signed-off-by: Vyacheslav Tyrtov 
---
  arch/arm/mach-exynos/Kconfig|8 
  arch/arm/mach-exynos/common.h   |   11 ++-
  arch/arm/mach-exynos/firmware.c |2 +-
  3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 1602abc..79a3e85 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -84,6 +84,14 @@ config SOC_EXYNOS5250
help
  Enable EXYNOS5250 SoC support
  
+config SOC_EXYNOS5410

+   bool "SAMSUNG EXYNOS5410"
+   default y
+   depends on ARCH_EXYNOS5
+   select PM_GENERIC_DOMAINS if PM_RUNTIME
+   help
+ Enable EXYNOS5410 SoC support
+
  config SOC_EXYNOS5420
bool "SAMSUNG EXYNOS5420"
default y
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index e2d0954..d64c6de 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -21,6 +21,7 @@
  #define EXYNOS4_CPU_MASK  0xFFFE
  
  #define EXYNOS5250_SOC_ID	0x4352

+#define EXYNOS5410_SOC_ID  0xE541
  #define EXYNOS5420_SOC_ID 0xE542
  #define EXYNOS5440_SOC_ID 0xE544
  #define EXYNOS5_SOC_MASK  0xF000
@@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, 
EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
+IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
  IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
  IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
  
@@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)

  # define soc_is_exynos5250()  0
  #endif
  
+#if defined(CONFIG_SOC_EXYNOS5410)

+# define soc_is_exynos5410()   is_samsung_exynos5410()
+#else
+# define soc_is_exynos5410()   0
+#endif
+
  #if defined(CONFIG_SOC_EXYNOS5420)
  # define soc_is_exynos5420()  is_samsung_exynos5420()
  #else
@@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
EXYNOS5_SOC_MASK)
  
  #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \

  soc_is_exynos4412())
-#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
+#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
+ soc_is_exynos5420())
  

This is the place where we need it.
Or this macro should be changed (maybe read compatible property from dt).

--
Best regards,
Tarek Dakhran

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-24 Thread Tarek Dakhran

Hi Tomasz

I faced another problem, while changing this patch.
See below.

On 05/24/2014 01:11 AM, Tomasz Figa wrote:

Hi Tarek,

With v2 of the series I mentioned in review of previous version [1],
this patch can be skipped.

[1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

Best regards,
Tomasz

On 23.05.2014 12:35, Tarek Dakhran wrote:

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
---
  arch/arm/mach-exynos/Kconfig|8 
  arch/arm/mach-exynos/common.h   |   11 ++-
  arch/arm/mach-exynos/firmware.c |2 +-
  3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 1602abc..79a3e85 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -84,6 +84,14 @@ config SOC_EXYNOS5250
help
  Enable EXYNOS5250 SoC support
  
+config SOC_EXYNOS5410

+   bool SAMSUNG EXYNOS5410
+   default y
+   depends on ARCH_EXYNOS5
+   select PM_GENERIC_DOMAINS if PM_RUNTIME
+   help
+ Enable EXYNOS5410 SoC support
+
  config SOC_EXYNOS5420
bool SAMSUNG EXYNOS5420
default y
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index e2d0954..d64c6de 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -21,6 +21,7 @@
  #define EXYNOS4_CPU_MASK  0xFFFE
  
  #define EXYNOS5250_SOC_ID	0x4352

+#define EXYNOS5410_SOC_ID  0xE541
  #define EXYNOS5420_SOC_ID 0xE542
  #define EXYNOS5440_SOC_ID 0xE544
  #define EXYNOS5_SOC_MASK  0xF000
@@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, 
EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
+IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
  IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
  IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
  
@@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)

  # define soc_is_exynos5250()  0
  #endif
  
+#if defined(CONFIG_SOC_EXYNOS5410)

+# define soc_is_exynos5410()   is_samsung_exynos5410()
+#else
+# define soc_is_exynos5410()   0
+#endif
+
  #if defined(CONFIG_SOC_EXYNOS5420)
  # define soc_is_exynos5420()  is_samsung_exynos5420()
  #else
@@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
EXYNOS5_SOC_MASK)
  
  #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \

  soc_is_exynos4412())
-#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
+#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
+ soc_is_exynos5420())
  

This is the place where we need it.
Or this macro should be changed (maybe read compatible property from dt).

--
Best regards,
Tarek Dakhran

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-24 Thread Tomasz Figa
Hi Tarek,

On 24.05.2014 11:33, Tarek Dakhran wrote:
 Hi Tomasz
 
 I faced another problem, while changing this patch.
 See below.
 
 On 05/24/2014 01:11 AM, Tomasz Figa wrote:
 Hi Tarek,

 With v2 of the series I mentioned in review of previous version [1],
 this patch can be skipped.

 [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

 Best regards,
 Tomasz

 On 23.05.2014 12:35, Tarek Dakhran wrote:
 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
 ---
   arch/arm/mach-exynos/Kconfig|8 
   arch/arm/mach-exynos/common.h   |   11 ++-
   arch/arm/mach-exynos/firmware.c |2 +-
   3 files changed, 19 insertions(+), 2 deletions(-)

 diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
 index 1602abc..79a3e85 100644
 --- a/arch/arm/mach-exynos/Kconfig
 +++ b/arch/arm/mach-exynos/Kconfig
 @@ -84,6 +84,14 @@ config SOC_EXYNOS5250
   help
 Enable EXYNOS5250 SoC support
   +config SOC_EXYNOS5410
 +bool SAMSUNG EXYNOS5410
 +default y
 +depends on ARCH_EXYNOS5
 +select PM_GENERIC_DOMAINS if PM_RUNTIME
 +help
 +  Enable EXYNOS5410 SoC support
 +
   config SOC_EXYNOS5420
   bool SAMSUNG EXYNOS5420
   default y
 diff --git a/arch/arm/mach-exynos/common.h
 b/arch/arm/mach-exynos/common.h
 index e2d0954..d64c6de 100644
 --- a/arch/arm/mach-exynos/common.h
 +++ b/arch/arm/mach-exynos/common.h
 @@ -21,6 +21,7 @@
   #define EXYNOS4_CPU_MASK0xFFFE
 #define EXYNOS5250_SOC_ID0x4352
 +#define EXYNOS5410_SOC_ID0xE541
   #define EXYNOS5420_SOC_ID0xE542
   #define EXYNOS5440_SOC_ID0xE544
   #define EXYNOS5_SOC_MASK0xF000
 @@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID,
 EXYNOS4_CPU_MASK)
   IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
   IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
   IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
 +IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
   IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
   IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
   @@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID,
 EXYNOS5_SOC_MASK)
   # define soc_is_exynos5250()0
   #endif
   +#if defined(CONFIG_SOC_EXYNOS5410)
 +# define soc_is_exynos5410()is_samsung_exynos5410()
 +#else
 +# define soc_is_exynos5410()0
 +#endif
 +
   #if defined(CONFIG_SOC_EXYNOS5420)
   # define soc_is_exynos5420()is_samsung_exynos5420()
   #else
 @@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID,
 EXYNOS5_SOC_MASK)
 #define soc_is_exynos4() (soc_is_exynos4210() ||
 soc_is_exynos4212() || \
 soc_is_exynos4412())
 -#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
 +#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410()
 || \
 +  soc_is_exynos5420())
   
 This is the place where we need it.
 Or this macro should be changed (maybe read compatible property from dt).
 

The problem is in fact not here, but in code using this macro. Let's
see, what git grep[1] gives us:

 arch/arm/mach-exynos/exynos.c-static void __init exynos_map_io(void)
 arch/arm/mach-exynos/exynos.c-{
 arch/arm/mach-exynos/exynos.c-  if (soc_is_exynos4())
 arch/arm/mach-exynos/exynos.c-  iotable_init(exynos4_iodesc, 
 ARRAY_SIZE(exynos4_iodesc));
 arch/arm/mach-exynos/exynos.c-
 arch/arm/mach-exynos/exynos.c:  if (soc_is_exynos5())
 arch/arm/mach-exynos/exynos.c-  iotable_init(exynos5_iodesc, 
 ARRAY_SIZE(exynos5_iodesc));

OK, so we have an array of static mappings, which can't be handled using
DT yet. That would probably explain why it fails to boot.

 arch/arm/mach-exynos/exynos.c-}

 arch/arm/mach-exynos/exynos.c-static void __init exynos_dt_machine_init(void)
 arch/arm/mach-exynos/exynos.c-{
[snip]
 arch/arm/mach-exynos/exynos.c:  if (soc_is_exynos5()) {
 arch/arm/mach-exynos/exynos.c-  for_each_compatible_node(i2c_np, 
 NULL, i2c_compat) {
 arch/arm/mach-exynos/exynos.c-  if 
 (of_device_is_available(i2c_np)) {
 arch/arm/mach-exynos/exynos.c-  id = 
 of_alias_get_id(i2c_np, i2c);
 arch/arm/mach-exynos/exynos.c-  if (id  4) {
 arch/arm/mach-exynos/exynos.c-  tmp = 
 readl(EXYNOS5_SYS_I2C_CFG);
 arch/arm/mach-exynos/exynos.c-  writel(tmp  
 ~(0x1  id),
 arch/arm/mach-exynos/exynos.c-
   EXYNOS5_SYS_I2C_CFG);
 arch/arm/mach-exynos/exynos.c-  }
 arch/arm/mach-exynos/exynos.c-  }
 arch/arm/mach-exynos/exynos.c-  }

This one handles I2C interrupt signal mux and I'm not quite sure if
soc_is_exynos5() is the 

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

2014-05-23 Thread Tomasz Figa
On 24.05.2014 00:48, Tarek Dakhran wrote:
> Sorry, only now catch it!
> I agree, this patch is not needed anymore, except Kconfig option.
> config SOC_EXYNOS5410 is needed to build clock stuff.

Right, I missed this.

> What is your opinion, Tomasz?
> 

I'd suggest re-spinning this series once more, removing changes that are
not needed anymore, but keeping the Kconfig entry.

Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tarek Dakhran
Sorry, only now catch it!
I agree, this patch is not needed anymore, except Kconfig option.
config SOC_EXYNOS5410 is needed to build clock stuff.
What is your opinion, Tomasz?

On Sat, May 24, 2014 at 2:44 AM, Tarek Dakhran  wrote:
> Hi Tomazs,
>
> On Sat, May 24, 2014 at 1:11 AM, Tomasz Figa  wrote:
>> Hi Tarek,
>>
>> With v2 of the series I mentioned in review of previous version [1],
>> this patch can be skipped.
>>
>> [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html
>>
>> Best regards,
>> Tomasz
>>
>> On 23.05.2014 12:35, Tarek Dakhran wrote:
> [snip]
>>> diff --git a/arch/arm/mach-exynos/firmware.c 
>>> b/arch/arm/mach-exynos/firmware.c
>>> index 739bdc8..971baf0 100644
>>> --- a/arch/arm/mach-exynos/firmware.c
>>> +++ b/arch/arm/mach-exynos/firmware.c
>>> @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned 
>>> long boot_addr)
>>>
>>>   boot_reg = sysram_ns_base_addr + 0x1c;
>>>
>>> - if (!soc_is_exynos4212())
>>> + if (!soc_is_exynos4212() && !soc_is_exynos5410())
>>>   boot_reg += 4*cpu;
>>>
>>>   __raw_writel(boot_addr, boot_reg);
>>>
>
> I need to define SoC type to set correct bootreg in firmware,
> otherwise only one cpu can be booted.
> So, this stuff is needed.
>
> Best regards,
>  Tarek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tomasz Figa
On 24.05.2014 00:44, Tarek Dakhran wrote:
> Hi Tomazs,
> 
> On Sat, May 24, 2014 at 1:11 AM, Tomasz Figa  wrote:
>> Hi Tarek,
>>
>> With v2 of the series I mentioned in review of previous version [1],
>> this patch can be skipped.
>>
>> [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html
>>
>> Best regards,
>> Tomasz
>>
>> On 23.05.2014 12:35, Tarek Dakhran wrote:
> [snip]
>>> diff --git a/arch/arm/mach-exynos/firmware.c 
>>> b/arch/arm/mach-exynos/firmware.c
>>> index 739bdc8..971baf0 100644
>>> --- a/arch/arm/mach-exynos/firmware.c
>>> +++ b/arch/arm/mach-exynos/firmware.c
>>> @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned 
>>> long boot_addr)
>>>
>>>   boot_reg = sysram_ns_base_addr + 0x1c;
>>>
>>> - if (!soc_is_exynos4212())
>>> + if (!soc_is_exynos4212() && !soc_is_exynos5410())
>>>   boot_reg += 4*cpu;
>>>
>>>   __raw_writel(boot_addr, boot_reg);
>>>
> 
> I need to define SoC type to set correct bootreg in firmware,
> otherwise only one cpu can be booted.
> So, this stuff is needed.

The patch I referred to in my previous reply changes this condition from
!soc_is_exynos4212() to soc_is_exynos4412(), which makes the 4*cpu
offset being added only in case of Exynos4412 (and so not being added
for Exynos5410). What else is needed?

Best regards,
Tomasz
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tarek Dakhran
Hi Tomazs,

On Sat, May 24, 2014 at 1:11 AM, Tomasz Figa  wrote:
> Hi Tarek,
>
> With v2 of the series I mentioned in review of previous version [1],
> this patch can be skipped.
>
> [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html
>
> Best regards,
> Tomasz
>
> On 23.05.2014 12:35, Tarek Dakhran wrote:
[snip]
>> diff --git a/arch/arm/mach-exynos/firmware.c 
>> b/arch/arm/mach-exynos/firmware.c
>> index 739bdc8..971baf0 100644
>> --- a/arch/arm/mach-exynos/firmware.c
>> +++ b/arch/arm/mach-exynos/firmware.c
>> @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long 
>> boot_addr)
>>
>>   boot_reg = sysram_ns_base_addr + 0x1c;
>>
>> - if (!soc_is_exynos4212())
>> + if (!soc_is_exynos4212() && !soc_is_exynos5410())
>>   boot_reg += 4*cpu;
>>
>>   __raw_writel(boot_addr, boot_reg);
>>

I need to define SoC type to set correct bootreg in firmware,
otherwise only one cpu can be booted.
So, this stuff is needed.

Best regards,
 Tarek
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tomasz Figa
Hi Tarek,

With v2 of the series I mentioned in review of previous version [1],
this patch can be skipped.

[1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

Best regards,
Tomasz

On 23.05.2014 12:35, Tarek Dakhran wrote:
> EXYNOS5410 is SoC in Samsung's Exynos5 SoC series.
> Add initial support for this SoC.
> 
> Signed-off-by: Tarek Dakhran 
> Signed-off-by: Vyacheslav Tyrtov 
> ---
>  arch/arm/mach-exynos/Kconfig|8 
>  arch/arm/mach-exynos/common.h   |   11 ++-
>  arch/arm/mach-exynos/firmware.c |2 +-
>  3 files changed, 19 insertions(+), 2 deletions(-)
> 
> diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
> index 1602abc..79a3e85 100644
> --- a/arch/arm/mach-exynos/Kconfig
> +++ b/arch/arm/mach-exynos/Kconfig
> @@ -84,6 +84,14 @@ config SOC_EXYNOS5250
>   help
> Enable EXYNOS5250 SoC support
>  
> +config SOC_EXYNOS5410
> + bool "SAMSUNG EXYNOS5410"
> + default y
> + depends on ARCH_EXYNOS5
> + select PM_GENERIC_DOMAINS if PM_RUNTIME
> + help
> +   Enable EXYNOS5410 SoC support
> +
>  config SOC_EXYNOS5420
>   bool "SAMSUNG EXYNOS5420"
>   default y
> diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
> index e2d0954..d64c6de 100644
> --- a/arch/arm/mach-exynos/common.h
> +++ b/arch/arm/mach-exynos/common.h
> @@ -21,6 +21,7 @@
>  #define EXYNOS4_CPU_MASK 0xFFFE
>  
>  #define EXYNOS5250_SOC_ID0x4352
> +#define EXYNOS5410_SOC_ID0xE541
>  #define EXYNOS5420_SOC_ID0xE542
>  #define EXYNOS5440_SOC_ID0xE544
>  #define EXYNOS5_SOC_MASK 0xF000
> @@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, 
> EXYNOS4_CPU_MASK)
>  IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
>  IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
>  IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
> +IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
>  IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
>  IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
>  
> @@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
> EXYNOS5_SOC_MASK)
>  # define soc_is_exynos5250() 0
>  #endif
>  
> +#if defined(CONFIG_SOC_EXYNOS5410)
> +# define soc_is_exynos5410() is_samsung_exynos5410()
> +#else
> +# define soc_is_exynos5410() 0
> +#endif
> +
>  #if defined(CONFIG_SOC_EXYNOS5420)
>  # define soc_is_exynos5420() is_samsung_exynos5420()
>  #else
> @@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
> EXYNOS5_SOC_MASK)
>  
>  #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
> soc_is_exynos4412())
> -#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
> +#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
> +   soc_is_exynos5420())
>  
>  void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
>  
> diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
> index 739bdc8..971baf0 100644
> --- a/arch/arm/mach-exynos/firmware.c
> +++ b/arch/arm/mach-exynos/firmware.c
> @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long 
> boot_addr)
>  
>   boot_reg = sysram_ns_base_addr + 0x1c;
>  
> - if (!soc_is_exynos4212())
> + if (!soc_is_exynos4212() && !soc_is_exynos5410())
>   boot_reg += 4*cpu;
>  
>   __raw_writel(boot_addr, boot_reg);
> 
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tarek Dakhran
EXYNOS5410 is SoC in Samsung's Exynos5 SoC series.
Add initial support for this SoC.

Signed-off-by: Tarek Dakhran 
Signed-off-by: Vyacheslav Tyrtov 
---
 arch/arm/mach-exynos/Kconfig|8 
 arch/arm/mach-exynos/common.h   |   11 ++-
 arch/arm/mach-exynos/firmware.c |2 +-
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 1602abc..79a3e85 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -84,6 +84,14 @@ config SOC_EXYNOS5250
help
  Enable EXYNOS5250 SoC support
 
+config SOC_EXYNOS5410
+   bool "SAMSUNG EXYNOS5410"
+   default y
+   depends on ARCH_EXYNOS5
+   select PM_GENERIC_DOMAINS if PM_RUNTIME
+   help
+ Enable EXYNOS5410 SoC support
+
 config SOC_EXYNOS5420
bool "SAMSUNG EXYNOS5420"
default y
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index e2d0954..d64c6de 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -21,6 +21,7 @@
 #define EXYNOS4_CPU_MASK   0xFFFE
 
 #define EXYNOS5250_SOC_ID  0x4352
+#define EXYNOS5410_SOC_ID  0xE541
 #define EXYNOS5420_SOC_ID  0xE542
 #define EXYNOS5440_SOC_ID  0xE544
 #define EXYNOS5_SOC_MASK   0xF000
@@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, 
EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
+IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
 IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
 IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
 
@@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
EXYNOS5_SOC_MASK)
 # define soc_is_exynos5250()   0
 #endif
 
+#if defined(CONFIG_SOC_EXYNOS5410)
+# define soc_is_exynos5410()   is_samsung_exynos5410()
+#else
+# define soc_is_exynos5410()   0
+#endif
+
 #if defined(CONFIG_SOC_EXYNOS5420)
 # define soc_is_exynos5420()   is_samsung_exynos5420()
 #else
@@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
EXYNOS5_SOC_MASK)
 
 #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
  soc_is_exynos4412())
-#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
+#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
+ soc_is_exynos5420())
 
 void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
 
diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
index 739bdc8..971baf0 100644
--- a/arch/arm/mach-exynos/firmware.c
+++ b/arch/arm/mach-exynos/firmware.c
@@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long 
boot_addr)
 
boot_reg = sysram_ns_base_addr + 0x1c;
 
-   if (!soc_is_exynos4212())
+   if (!soc_is_exynos4212() && !soc_is_exynos5410())
boot_reg += 4*cpu;
 
__raw_writel(boot_addr, boot_reg);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tarek Dakhran
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
---
 arch/arm/mach-exynos/Kconfig|8 
 arch/arm/mach-exynos/common.h   |   11 ++-
 arch/arm/mach-exynos/firmware.c |2 +-
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
index 1602abc..79a3e85 100644
--- a/arch/arm/mach-exynos/Kconfig
+++ b/arch/arm/mach-exynos/Kconfig
@@ -84,6 +84,14 @@ config SOC_EXYNOS5250
help
  Enable EXYNOS5250 SoC support
 
+config SOC_EXYNOS5410
+   bool SAMSUNG EXYNOS5410
+   default y
+   depends on ARCH_EXYNOS5
+   select PM_GENERIC_DOMAINS if PM_RUNTIME
+   help
+ Enable EXYNOS5410 SoC support
+
 config SOC_EXYNOS5420
bool SAMSUNG EXYNOS5420
default y
diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
index e2d0954..d64c6de 100644
--- a/arch/arm/mach-exynos/common.h
+++ b/arch/arm/mach-exynos/common.h
@@ -21,6 +21,7 @@
 #define EXYNOS4_CPU_MASK   0xFFFE
 
 #define EXYNOS5250_SOC_ID  0x4352
+#define EXYNOS5410_SOC_ID  0xE541
 #define EXYNOS5420_SOC_ID  0xE542
 #define EXYNOS5440_SOC_ID  0xE544
 #define EXYNOS5_SOC_MASK   0xF000
@@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, 
EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
 IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
+IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
 IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
 IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
 
@@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
EXYNOS5_SOC_MASK)
 # define soc_is_exynos5250()   0
 #endif
 
+#if defined(CONFIG_SOC_EXYNOS5410)
+# define soc_is_exynos5410()   is_samsung_exynos5410()
+#else
+# define soc_is_exynos5410()   0
+#endif
+
 #if defined(CONFIG_SOC_EXYNOS5420)
 # define soc_is_exynos5420()   is_samsung_exynos5420()
 #else
@@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
EXYNOS5_SOC_MASK)
 
 #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
  soc_is_exynos4412())
-#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
+#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
+ soc_is_exynos5420())
 
 void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
 
diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
index 739bdc8..971baf0 100644
--- a/arch/arm/mach-exynos/firmware.c
+++ b/arch/arm/mach-exynos/firmware.c
@@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long 
boot_addr)
 
boot_reg = sysram_ns_base_addr + 0x1c;
 
-   if (!soc_is_exynos4212())
+   if (!soc_is_exynos4212()  !soc_is_exynos5410())
boot_reg += 4*cpu;
 
__raw_writel(boot_addr, boot_reg);
-- 
1.7.9.5

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tomasz Figa
Hi Tarek,

With v2 of the series I mentioned in review of previous version [1],
this patch can be skipped.

[1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

Best regards,
Tomasz

On 23.05.2014 12:35, Tarek Dakhran wrote:
 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
 ---
  arch/arm/mach-exynos/Kconfig|8 
  arch/arm/mach-exynos/common.h   |   11 ++-
  arch/arm/mach-exynos/firmware.c |2 +-
  3 files changed, 19 insertions(+), 2 deletions(-)
 
 diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
 index 1602abc..79a3e85 100644
 --- a/arch/arm/mach-exynos/Kconfig
 +++ b/arch/arm/mach-exynos/Kconfig
 @@ -84,6 +84,14 @@ config SOC_EXYNOS5250
   help
 Enable EXYNOS5250 SoC support
  
 +config SOC_EXYNOS5410
 + bool SAMSUNG EXYNOS5410
 + default y
 + depends on ARCH_EXYNOS5
 + select PM_GENERIC_DOMAINS if PM_RUNTIME
 + help
 +   Enable EXYNOS5410 SoC support
 +
  config SOC_EXYNOS5420
   bool SAMSUNG EXYNOS5420
   default y
 diff --git a/arch/arm/mach-exynos/common.h b/arch/arm/mach-exynos/common.h
 index e2d0954..d64c6de 100644
 --- a/arch/arm/mach-exynos/common.h
 +++ b/arch/arm/mach-exynos/common.h
 @@ -21,6 +21,7 @@
  #define EXYNOS4_CPU_MASK 0xFFFE
  
  #define EXYNOS5250_SOC_ID0x4352
 +#define EXYNOS5410_SOC_ID0xE541
  #define EXYNOS5420_SOC_ID0xE542
  #define EXYNOS5440_SOC_ID0xE544
  #define EXYNOS5_SOC_MASK 0xF000
 @@ -37,6 +38,7 @@ IS_SAMSUNG_CPU(exynos4210, EXYNOS4210_CPU_ID, 
 EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos4212, EXYNOS4212_CPU_ID, EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos4412, EXYNOS4412_CPU_ID, EXYNOS4_CPU_MASK)
  IS_SAMSUNG_CPU(exynos5250, EXYNOS5250_SOC_ID, EXYNOS5_SOC_MASK)
 +IS_SAMSUNG_CPU(exynos5410, EXYNOS5410_SOC_ID, EXYNOS5_SOC_MASK)
  IS_SAMSUNG_CPU(exynos5420, EXYNOS5420_SOC_ID, EXYNOS5_SOC_MASK)
  IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, EXYNOS5_SOC_MASK)
  
 @@ -68,6 +70,12 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
 EXYNOS5_SOC_MASK)
  # define soc_is_exynos5250() 0
  #endif
  
 +#if defined(CONFIG_SOC_EXYNOS5410)
 +# define soc_is_exynos5410() is_samsung_exynos5410()
 +#else
 +# define soc_is_exynos5410() 0
 +#endif
 +
  #if defined(CONFIG_SOC_EXYNOS5420)
  # define soc_is_exynos5420() is_samsung_exynos5420()
  #else
 @@ -82,7 +90,8 @@ IS_SAMSUNG_CPU(exynos5440, EXYNOS5440_SOC_ID, 
 EXYNOS5_SOC_MASK)
  
  #define soc_is_exynos4() (soc_is_exynos4210() || soc_is_exynos4212() || \
 soc_is_exynos4412())
 -#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5420())
 +#define soc_is_exynos5() (soc_is_exynos5250() || soc_is_exynos5410() || \
 +   soc_is_exynos5420())
  
  void mct_init(void __iomem *base, int irq_g0, int irq_l0, int irq_l1);
  
 diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
 index 739bdc8..971baf0 100644
 --- a/arch/arm/mach-exynos/firmware.c
 +++ b/arch/arm/mach-exynos/firmware.c
 @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long 
 boot_addr)
  
   boot_reg = sysram_ns_base_addr + 0x1c;
  
 - if (!soc_is_exynos4212())
 + if (!soc_is_exynos4212()  !soc_is_exynos5410())
   boot_reg += 4*cpu;
  
   __raw_writel(boot_addr, boot_reg);
 
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tarek Dakhran
Hi Tomazs,

On Sat, May 24, 2014 at 1:11 AM, Tomasz Figa tomasz.f...@gmail.com wrote:
 Hi Tarek,

 With v2 of the series I mentioned in review of previous version [1],
 this patch can be skipped.

 [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

 Best regards,
 Tomasz

 On 23.05.2014 12:35, Tarek Dakhran wrote:
[snip]
 diff --git a/arch/arm/mach-exynos/firmware.c 
 b/arch/arm/mach-exynos/firmware.c
 index 739bdc8..971baf0 100644
 --- a/arch/arm/mach-exynos/firmware.c
 +++ b/arch/arm/mach-exynos/firmware.c
 @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long 
 boot_addr)

   boot_reg = sysram_ns_base_addr + 0x1c;

 - if (!soc_is_exynos4212())
 + if (!soc_is_exynos4212()  !soc_is_exynos5410())
   boot_reg += 4*cpu;

   __raw_writel(boot_addr, boot_reg);


I need to define SoC type to set correct bootreg in firmware,
otherwise only one cpu can be booted.
So, this stuff is needed.

Best regards,
 Tarek
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tomasz Figa
On 24.05.2014 00:44, Tarek Dakhran wrote:
 Hi Tomazs,
 
 On Sat, May 24, 2014 at 1:11 AM, Tomasz Figa tomasz.f...@gmail.com wrote:
 Hi Tarek,

 With v2 of the series I mentioned in review of previous version [1],
 this patch can be skipped.

 [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

 Best regards,
 Tomasz

 On 23.05.2014 12:35, Tarek Dakhran wrote:
 [snip]
 diff --git a/arch/arm/mach-exynos/firmware.c 
 b/arch/arm/mach-exynos/firmware.c
 index 739bdc8..971baf0 100644
 --- a/arch/arm/mach-exynos/firmware.c
 +++ b/arch/arm/mach-exynos/firmware.c
 @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned 
 long boot_addr)

   boot_reg = sysram_ns_base_addr + 0x1c;

 - if (!soc_is_exynos4212())
 + if (!soc_is_exynos4212()  !soc_is_exynos5410())
   boot_reg += 4*cpu;

   __raw_writel(boot_addr, boot_reg);

 
 I need to define SoC type to set correct bootreg in firmware,
 otherwise only one cpu can be booted.
 So, this stuff is needed.

The patch I referred to in my previous reply changes this condition from
!soc_is_exynos4212() to soc_is_exynos4412(), which makes the 4*cpu
offset being added only in case of Exynos4412 (and so not being added
for Exynos5410). What else is needed?

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


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

2014-05-23 Thread Tarek Dakhran
Sorry, only now catch it!
I agree, this patch is not needed anymore, except Kconfig option.
config SOC_EXYNOS5410 is needed to build clock stuff.
What is your opinion, Tomasz?

On Sat, May 24, 2014 at 2:44 AM, Tarek Dakhran t.dakh...@gmail.com wrote:
 Hi Tomazs,

 On Sat, May 24, 2014 at 1:11 AM, Tomasz Figa tomasz.f...@gmail.com wrote:
 Hi Tarek,

 With v2 of the series I mentioned in review of previous version [1],
 this patch can be skipped.

 [1] http://www.spinics.net/lists/linux-samsung-soc/msg31258.html

 Best regards,
 Tomasz

 On 23.05.2014 12:35, Tarek Dakhran wrote:
 [snip]
 diff --git a/arch/arm/mach-exynos/firmware.c 
 b/arch/arm/mach-exynos/firmware.c
 index 739bdc8..971baf0 100644
 --- a/arch/arm/mach-exynos/firmware.c
 +++ b/arch/arm/mach-exynos/firmware.c
 @@ -50,7 +50,7 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned 
 long boot_addr)

   boot_reg = sysram_ns_base_addr + 0x1c;

 - if (!soc_is_exynos4212())
 + if (!soc_is_exynos4212()  !soc_is_exynos5410())
   boot_reg += 4*cpu;

   __raw_writel(boot_addr, boot_reg);


 I need to define SoC type to set correct bootreg in firmware,
 otherwise only one cpu can be booted.
 So, this stuff is needed.

 Best regards,
  Tarek
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-05-23 Thread Tomasz Figa
On 24.05.2014 00:48, Tarek Dakhran wrote:
 Sorry, only now catch it!
 I agree, this patch is not needed anymore, except Kconfig option.
 config SOC_EXYNOS5410 is needed to build clock stuff.

Right, I missed this.

 What is your opinion, Tomasz?
 

I'd suggest re-spinning this series once more, removing changes that are
not needed anymore, but keeping the Kconfig entry.

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