Re: [PATCH v4 5/8] ARM: dts: Add properties to use pwm-fan device as a cooling device in Odroid U3

2015-02-24 Thread Eduardo Valentin
On Wed, Feb 18, 2015 at 11:07:33AM +0100, Lukasz Majewski wrote:
 With those bindings it is possible to use pwm-fan device available in
 Odroid U3 as a cooling device.
 
 Signed-off-by: Lukasz Majewski l.majew...@samsung.com
 ---
 Changes for v2:
 - Rename cooling-pwm-values property to cooling-levels
 Changes for v3:
 - Change patch's topic to ARM dts
 - Reduce maximal cooling-level to 230 from 255
 Changes for v4:
 - None
 ---
  arch/arm/boot/dts/exynos4412-odroidu3.dts | 33 
 ++-
  1 file changed, 32 insertions(+), 1 deletion(-)
 
 diff --git a/arch/arm/boot/dts/exynos4412-odroidu3.dts 
 b/arch/arm/boot/dts/exynos4412-odroidu3.dts
 index 60bd1e4..3e5df3e 100644
 --- a/arch/arm/boot/dts/exynos4412-odroidu3.dts
 +++ b/arch/arm/boot/dts/exynos4412-odroidu3.dts
 @@ -32,11 +32,42 @@
   };
   };
  
 - pwm-fan {
 + fan0: pwm-fan {
   compatible = pwm-fan;
   pwms = pwm 0 1 0;
 + cooling-min-state = 0;
 + cooling-max-state = 3;
 + #cooling-cells = 2;
 + cooling-levels = 0 102 170 230;
   status = okay;
   };
 +
 + thermal-zones {
 + cpu_thermal: cpu-thermal {


This thermal zone misses the mandatory properties as per 
 Documentation/devicetree/bindings/thermal/thermal.txt

 + cooling-maps {
 + map0 {
 +  trip = cpu_alert1;
 +  cooling-device = cpu0 7 7;
 + };
 + map1 {
 +  trip = cpu_alert2;
 +  cooling-device = cpu0 13 13;
 + };
 + map2 {
 +  trip = cpu_alert0;
 +  cooling-device = fan0 0 1;
 + };
 + map3 {
 +  trip = cpu_alert1;
 +  cooling-device = fan0 1 2;
 + };
 + map4 {
 +  trip = cpu_alert2;
 +  cooling-device = fan0 2 3;
 + };
 + };
 + };
 + };
  };
  
  pwm {
 -- 
 2.0.0.rc2
 


signature.asc
Description: Digital signature


Re: [RESEND PATCH] ARM: EXYNOS: Fix failed second suspend on Exynos4

2015-02-24 Thread Chanwoo Choi
On 02/24/2015 04:59 PM, Krzysztof Kozlowski wrote:
 On wto, 2015-02-24 at 11:38 +0900, Chanwoo Choi wrote:
 Hi Krzysztof,

 I tested this patch for suspend-to-ram on Exynos4412-based trats2 board.
 When I tested suspend-to-ram repetitively, I faced on hang issue of
 suspend-to-ram for Exynos4 as before.

 Could you send .config file for test?
 
 I am testing on exynos_defconfig with some stuff enabled (nothing
 special: regulators, chargers, PM_ADVANCED_DEBUG, extcon etc.). However
 sometimes I also see hangs related to MMC. But I believe this issue is
 present for some time and is not related to my DELAYED_RESET_ASSERTION
 changes.

I understand. I think we have to resolve the remaining hang issue for Exynos4 
suspend-to-ram.

Thanks,
Chanwoo Choi
--
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


[PATCH] clk: samsung: Add CLKOUT driver support for Exynos3250 SoC.

2015-02-24 Thread Inha Song
This patch add CLKOUT driver support for Exynos3250 SoC.

Signed-off-by: Inha Song ideal.s...@samsung.com
---
 drivers/clk/samsung/clk-exynos-clkout.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/clk/samsung/clk-exynos-clkout.c 
b/drivers/clk/samsung/clk-exynos-clkout.c
index 3a7cb25..1c02e73 100644
--- a/drivers/clk/samsung/clk-exynos-clkout.c
+++ b/drivers/clk/samsung/clk-exynos-clkout.c
@@ -142,6 +142,8 @@ CLK_OF_DECLARE(exynos4212_clkout, samsung,exynos4212-pmu,
exynos4_clkout_init);
 CLK_OF_DECLARE(exynos4412_clkout, samsung,exynos4412-pmu,
exynos4_clkout_init);
+CLK_OF_DECLARE(exynos3250_clkout, samsung,exynos3250-pmu,
+   exynos4_clkout_init);
 
 static void __init exynos5_clkout_init(struct device_node *node)
 {
-- 
2.0.0.390.gcb682f8

--
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: [rtc-linux] [PATCH v3] rtc: s5m: Add the support for S2MPS13 RTC

2015-02-24 Thread Krzysztof Kozlowski
2015-02-24 7:09 GMT+01:00 Chanwoo Choi cw00.c...@samsung.com:
 This patch adds only the compatible string for S2MPS13 clock which is 
 identical
 with S2MPS14 clock driver.

If everything is identical then maybe use the same ID?
{ s5m-rtc,S5M8767X },
+   { s2mps13-rtc,S2MPS14X },
{ s2mps14-rtc,S2MPS14X },

Or in mfd/sec-core:
 static const struct mfd_cell s2mps13_devs[] = {
-{ .name = s2mps13-rtc, },
+   { .name = s2mps14-rtc, },

The duplication of all S2MPS14 labels seems not necessary in such case.

Best regards,
Krzysztof
--
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 v4 1/8] arm64: exynos5433: Enable ARMv8 based Exynos5433 (SoC) support

2015-02-24 Thread Arnd Bergmann
On Tuesday 24 February 2015 14:16:44 Chanwoo Choi wrote:
 diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
 index 1b8e973..d83cea0 100644
 --- a/arch/arm64/Kconfig
 +++ b/arch/arm64/Kconfig
 @@ -154,6 +154,17 @@ config ARCH_EXYNOS
 help
   This enables support for Samsung Exynos SoC family
  
 +config ARCH_EXYNOS5433
 +   bool ARMv8 based Samsung Exynos5433
 +   select ARCH_EXYNOS
 +   select COMMON_CLK_SAMSUNG
 +   select HAVE_S3C_RTC if RTC_CLASS
 +   select PINCTRL
 +   select PINCTRL_EXYNOS
 +
 +   help
 + This enables support for Samsung Exynos5433 SoC family
 +
  config ARCH_EXYNOS7
 bool ARMv8 based Samsung Exynos7
 select ARCH_EXYNOS
 -- 
 

Can we collapse all these entries into one for EXYNOS? I don't
want to end up with endless lists like we have on arm32 when
there is no platform specific code that is actually controlled
by this anway.

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] ARM: dts: Add the source clock for CLKOUT register as xusbxti

2015-02-24 Thread Chanwoo Choi
Hi Inha,

On 02/24/2015 06:31 PM, Inha Song wrote:
 This patch add the CLKOUT register source clock as xusbxti in
 PMU (Power Management Unit) dt node on Exynos3250.
 
 Cc: Kukjin Kim kg...@kernel.org
 Signed-off-by: Inha Song ideal.s...@samsung.com
 ---
  arch/arm/boot/dts/exynos3250.dtsi | 3 +++
  1 file changed, 3 insertions(+)
 
 diff --git a/arch/arm/boot/dts/exynos3250.dtsi 
 b/arch/arm/boot/dts/exynos3250.dtsi
 index 277b48b..aa1eb8c 100644
 --- a/arch/arm/boot/dts/exynos3250.dtsi
 +++ b/arch/arm/boot/dts/exynos3250.dtsi
 @@ -130,6 +130,9 @@
   pmu_system_controller: system-controller@1002 {
   compatible = samsung,exynos3250-pmu, syscon;
   reg = 0x1002 0x4000;
 + #clock-cells = 1;
 + clock-names = clkout9;
 + clocks = xusbxti;
   };
  
   mipi_phy: video-phy@10020710 {
 

Looks good to me.

Reviewed-by: Chanwoo Choi cw00.c...@samsung.com

Thanks,
Chanwoo Choi
--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Arnd Bergmann
On Tuesday 24 February 2015 17:52:01 Chanwoo Choi wrote:
 
 But, I have a question.
 If we put the aliases into the board dts file instaed of SoC dtsi,
 each board dts file may use the different alias name about same phandle.

Yes, that is the idea. In particular with the uarts, the intention is
that the numbering of the device nodes in /dev is the same that is
printed on the board (if any), which may be different from the numbering
internal to the SoC.

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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Arnd Bergmann
On Tuesday 24 February 2015 14:16:45 Chanwoo Choi wrote:
 This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based on
 Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 supports
 PSCI (Power State Coordination Interface) v0.1.
 
 This patch includes following dt node to support Exynos5433 SoC:
 1. Octa core for big.LITTLE architecture
 - Cortex-A53 LITTLE Quad-core
 - Cortex-A57 big Quad-core
 - Support PSCI v0.1

Should we try to come up with a way to better share parts of this with the
exynos5 dtsi files you already have in arm32? I suspect that there is a
significant overlap.

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: [rtc-linux] [PATCH v3] rtc: s5m: Add the support for S2MPS13 RTC

2015-02-24 Thread Chanwoo Choi
On 02/24/2015 05:21 PM, Krzysztof Kozlowski wrote:
 2015-02-24 7:09 GMT+01:00 Chanwoo Choi cw00.c...@samsung.com:
 This patch adds only the compatible string for S2MPS13 clock which is 
 identical
 with S2MPS14 clock driver.
 
 If everything is identical then maybe use the same ID?
 { s5m-rtc,S5M8767X },
 +   { s2mps13-rtc,S2MPS14X },
 { s2mps14-rtc,S2MPS14X },
 
 Or in mfd/sec-core:
  static const struct mfd_cell s2mps13_devs[] = {
 -{ .name = s2mps13-rtc, },
 +   { .name = s2mps14-rtc, },
 
 The duplication of all S2MPS14 labels seems not necessary in such case.

OK, I agree, I'll send patch according to your comment.

Thanks,
Chanwoo Choi

--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Chanwoo Choi
On 02/24/2015 05:35 PM, Arnd Bergmann wrote:
 On Tuesday 24 February 2015 14:16:45 Chanwoo Choi wrote:
 +   aliases {
 +   pinctrl0 = pinctrl_alive;
 +   pinctrl1 = pinctrl_aud;
 +   pinctrl2 = pinctrl_cpif;
 +   pinctrl3 = pinctrl_ese;
 +   pinctrl4 = pinctrl_finger;
 +   pinctrl5 = pinctrl_fsys;
 +   pinctrl6 = pinctrl_imem;
 +   pinctrl7 = pinctrl_nfc;
 +   pinctrl8 = pinctrl_peric;
 +   pinctrl9 = pinctrl_touch;
 +   serial0 = serial_0;
 +   serial1 = serial_1;
 +   serial2 = serial_2;
 +   i2c0 = hsi2c_0;
 +   i2c1 = hsi2c_1;
 +   i2c2 = hsi2c_2;
 +   i2c3 = hsi2c_3;
 +   i2c4 = hsi2c_4;
 +   i2c5 = hsi2c_5;
 +   i2c6 = hsi2c_6;
 +   i2c7 = hsi2c_7;
 +   i2c8 = hsi2c_8;
 +   i2c9 = hsi2c_9;
 +   i2c10 = hsi2c_10;
 +   i2c11 = hsi2c_11;
 +   };
 +

 
 Can you put the aliases into the per-board files? There might be boards that
 do not support all the uarts and all the i2c controllers but only want to
 provide aliases for a subset of them, without holes in the numbering.

OK, I'm not opposite with you opinion.

But, I have a question.
If we put the aliases into the board dts file instaed of SoC dtsi,
each board dts file may use the different alias name about same phandle.

Thanks,
Chanwoo Choi

--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Chanwoo Choi
On 02/24/2015 05:33 PM, Arnd Bergmann wrote:
 On Tuesday 24 February 2015 14:16:45 Chanwoo Choi wrote:
 This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based on
 Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 
 supports
 PSCI (Power State Coordination Interface) v0.1.

 This patch includes following dt node to support Exynos5433 SoC:
 1. Octa core for big.LITTLE architecture
 - Cortex-A53 LITTLE Quad-core
 - Cortex-A57 big Quad-core
 - Support PSCI v0.1
 
 Should we try to come up with a way to better share parts of this with the
 exynos5 dtsi files you already have in arm32? I suspect that there is a
 significant overlap.

Currently, 32-bit Exynos5 SoC (which is included in arch/arm/boot/dts)
didn't support the Cortex-A53/A57 and PSCI.

The 32-bit Exynos5 SoC support the Coretex-A7 or A15 and big.LITTLE Exynos5 SoC
use the MCPM (Multi-Cluster PM) driver for secondary cpu on/off instead of PSCI.

Thanks,
Chanwoo Choi

--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Arnd Bergmann
On Tuesday 24 February 2015 18:01:27 Chanwoo Choi wrote:
 On 02/24/2015 05:33 PM, Arnd Bergmann wrote:
  On Tuesday 24 February 2015 14:16:45 Chanwoo Choi wrote:
  This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based 
  on
  Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 
  supports
  PSCI (Power State Coordination Interface) v0.1.
 
  This patch includes following dt node to support Exynos5433 SoC:
  1. Octa core for big.LITTLE architecture
  - Cortex-A53 LITTLE Quad-core
  - Cortex-A57 big Quad-core
  - Support PSCI v0.1
  
  Should we try to come up with a way to better share parts of this with the
  exynos5 dtsi files you already have in arm32? I suspect that there is a
  significant overlap.
 
 Currently, 32-bit Exynos5 SoC (which is included in arch/arm/boot/dts)
 didn't support the Cortex-A53/A57 and PSCI.
 
 The 32-bit Exynos5 SoC support the Coretex-A7 or A15 and big.LITTLE Exynos5 
 SoC
 use the MCPM (Multi-Cluster PM) driver for secondary cpu on/off instead of 
 PSCI.
 

Yes, I understand that. What I meant is sharing the nodes that are identical
between e.g. all exynos54xx by using a common .dtsi file that can be included
by 5420, 5433 and 5440.

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: [RESEND PATCH] ARM: EXYNOS: Fix failed second suspend on Exynos4

2015-02-24 Thread Krzysztof Kozlowski
On wto, 2015-02-24 at 11:38 +0900, Chanwoo Choi wrote:
 Hi Krzysztof,
 
 I tested this patch for suspend-to-ram on Exynos4412-based trats2 board.
 When I tested suspend-to-ram repetitively, I faced on hang issue of
 suspend-to-ram for Exynos4 as before.
 
 Could you send .config file for test?

I am testing on exynos_defconfig with some stuff enabled (nothing
special: regulators, chargers, PM_ADVANCED_DEBUG, extcon etc.). However
sometimes I also see hangs related to MMC. But I believe this issue is
present for some time and is not related to my DELAYED_RESET_ASSERTION
changes.

Maybe you could try to boot with no_console_suspend loglevel=7 and see
when the suspend fails?

Best regards,
Krzysztof


--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Arnd Bergmann
On Tuesday 24 February 2015 14:16:45 Chanwoo Choi wrote:
 +   aliases {
 +   pinctrl0 = pinctrl_alive;
 +   pinctrl1 = pinctrl_aud;
 +   pinctrl2 = pinctrl_cpif;
 +   pinctrl3 = pinctrl_ese;
 +   pinctrl4 = pinctrl_finger;
 +   pinctrl5 = pinctrl_fsys;
 +   pinctrl6 = pinctrl_imem;
 +   pinctrl7 = pinctrl_nfc;
 +   pinctrl8 = pinctrl_peric;
 +   pinctrl9 = pinctrl_touch;
 +   serial0 = serial_0;
 +   serial1 = serial_1;
 +   serial2 = serial_2;
 +   i2c0 = hsi2c_0;
 +   i2c1 = hsi2c_1;
 +   i2c2 = hsi2c_2;
 +   i2c3 = hsi2c_3;
 +   i2c4 = hsi2c_4;
 +   i2c5 = hsi2c_5;
 +   i2c6 = hsi2c_6;
 +   i2c7 = hsi2c_7;
 +   i2c8 = hsi2c_8;
 +   i2c9 = hsi2c_9;
 +   i2c10 = hsi2c_10;
 +   i2c11 = hsi2c_11;
 +   };
 +
 

Can you put the aliases into the per-board files? There might be boards that
do not support all the uarts and all the i2c controllers but only want to
provide aliases for a subset of them, without holes in the numbering.

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: [RESEND PATCH] ARM: EXYNOS: Fix failed second suspend on Exynos4

2015-02-24 Thread Chanwoo Choi
On 02/18/2015 07:45 PM, Krzysztof Kozlowski wrote:
 On Exynos4412 boards (Trats2, Odroid U3) after enabling L2 cache in
 56b60b8bce4a (ARM: 8265/1: dts: exynos4: Add nodes for L2 cache
 controller) the second suspend to RAM failed. First suspend worked fine
 but the next one hang just after powering down of secondary CPUs (system
 consumed energy as it would be running but was not responsive).
 
 The issue was caused by enabling delayed reset assertion for CPU0 just
 after issuing power down of cores. This was introduced for Exynos4 in
 13cfa6c4f7fa (ARM: EXYNOS: Fix CPU idle clock down after CPU off).
 
 The whole behavior is not well documented but after checking with vendor
 code this should be done like this (on Exynos4):
 1. Enable delayed reset assertion when system is running (for all CPUs).
 2. Disable delayed reset assertion before suspending the system.
This can be done after powering off secondary CPUs.
 3. Re-enable the delayed reset assertion when system is resumed.
 
 Signed-off-by: Krzysztof Kozlowski k.kozlow...@samsung.com
 Fixes: 13cfa6c4f7fa (ARM: EXYNOS: Fix CPU idle clock down after CPU off)
 Cc: sta...@vger.kernel.org
 ---
  arch/arm/mach-exynos/common.h  |  2 ++
  arch/arm/mach-exynos/exynos.c  | 27 +++
  arch/arm/mach-exynos/platsmp.c | 39 ++-
  arch/arm/mach-exynos/suspend.c |  3 +++
  4 files changed, 34 insertions(+), 37 deletions(-)

Tested-by: Chanwoo Choi cw00.c...@samsung.com

I tested this patch on Exynos4412-baed TRATS2 board.

Thanks,
Chanwoo Choi

--
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


[PATCH] ARM: dts: Add the source clock for CLKOUT register as xusbxti

2015-02-24 Thread Inha Song
This patch add the CLKOUT register source clock as xusbxti in
PMU (Power Management Unit) dt node on Exynos3250.

Cc: Kukjin Kim kg...@kernel.org
Signed-off-by: Inha Song ideal.s...@samsung.com
---
 arch/arm/boot/dts/exynos3250.dtsi | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/boot/dts/exynos3250.dtsi 
b/arch/arm/boot/dts/exynos3250.dtsi
index 277b48b..aa1eb8c 100644
--- a/arch/arm/boot/dts/exynos3250.dtsi
+++ b/arch/arm/boot/dts/exynos3250.dtsi
@@ -130,6 +130,9 @@
pmu_system_controller: system-controller@1002 {
compatible = samsung,exynos3250-pmu, syscon;
reg = 0x1002 0x4000;
+   #clock-cells = 1;
+   clock-names = clkout9;
+   clocks = xusbxti;
};
 
mipi_phy: video-phy@10020710 {
-- 
2.0.0.390.gcb682f8

--
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 v5 0/2] irqchip: Move Exynos PM to use stacked domains

2015-02-24 Thread Pankaj Dubey

Hi Mark,

On Monday 23 February 2015 11:15 PM, Marc Zyngier wrote:

This series is extracted from [4], which is trying to remove all
traces of gic_arch_extn from the tree. As some maintainers are more
responsive than others (understatement of the year...), I've decided
to split it per sub-arch, and get it moving, at least partially.

This series addresses Exynos by converting its PM support to a stacked
domain on top of the standard GIC.

Based on 4.0-rc1.

* From v4: [4]
- Extracted from the full series
- Rebased on 4.0-rc1

* From v3 [3]:
- Rebased on top of the patch working around hardcoded IRQ on OMAP4/5 [4]
- Fixed more iMX6 DTs (Stephan)
- Fixed Exynos4/5 DTs

* From v2 [2]:
- Addressed numerous comments from Thierry
- Merged bug fixes from Nishanth
- Merged bug fix from Stefan

* From v1 [1]:
- Rebased on 3.19-rc3
- Fixed a number of additional platforms
- Added crossbar conversion to stacked domains
- Merged bug fixes from Nishanth

[4]: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/317531.html
[3]: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/315385.html
[2]: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/314041.html
[1]: 
http://lists.infradead.org/pipermail/linux-arm-kernel/2014-November/307338.html

Marc Zyngier (2):
   ARM: exynos4/5: convert pmu wakeup to stacked domains
   DT: exynos: update PMU binding

  .../devicetree/bindings/arm/samsung/pmu.txt|  17 +++
  arch/arm/boot/dts/exynos4.dtsi |   4 +
  arch/arm/boot/dts/exynos5250.dtsi  |   4 +
  arch/arm/boot/dts/exynos5420.dtsi  |   4 +
  arch/arm/mach-exynos/exynos.c  |  14 +--
  arch/arm/mach-exynos/suspend.c | 122 +++--
  6 files changed, 146 insertions(+), 19 deletions(-)



I tested and verified S2R functionality on Exynos5250 based SMDK5250 
board, and suspend-resume working fine. For testing on SMDK5250 you can 
add my tested-by.


Tested-by: Pankaj Dubey pankaj.du...@samsung.com


Thanks,
Pankaj Dubey
--
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: Re: [PATCHv3 0/8] devfreq: Add generic exynos memory-bus frequency driver

2015-02-24 Thread Tobias Jakobi

Hello MyungJoo!

On 2015-02-24 02:22, MyungJoo Ham wrote:

Unless you are willing to wait for 2 minutes after the kernal hangs,
you may want to adjust DEFAULT_HUNG_TASK_TIMEOUT to shorter value
(120 -- 5 for 5 seconds). It seems that you've cut it off in the 
middle

of that 120 sec wait.

Thanks for the hint! Yes, I should probably adjust this value when
doing more tests.



If it's in D state (in kernel), gdb won't work as you are experiencing.
Sorry for not testing with HDMI; my Exynos devices do not have HDMI. :)

Well, like I said above, the HDMI doesn't seen to be affected by the low
MIF/INT clocks. I have tested this with 1280x720 here on my Odroid X2,
but I also have another user (with a U3 if I remember correctly) who
also confirms that HDMI is working in combination with devfreq and
simple_ondemand.

I guess it's just the G2D engine that doesn't like the low clocks. Maybe
it also affects the IPP subsystem, but I have no means to test this.


With best wishes,
Tobias

--
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 v5 0/2] irqchip: Move Exynos PM to use stacked domains

2015-02-24 Thread Marc Zyngier
Hi Pakaj,

On 24/02/15 10:09, Pankaj Dubey wrote:
 Hi Mark,
 
 On Monday 23 February 2015 11:15 PM, Marc Zyngier wrote:
 This series is extracted from [4], which is trying to remove all
 traces of gic_arch_extn from the tree. As some maintainers are more
 responsive than others (understatement of the year...), I've decided
 to split it per sub-arch, and get it moving, at least partially.

 This series addresses Exynos by converting its PM support to a stacked
 domain on top of the standard GIC.

 Based on 4.0-rc1.

 * From v4: [4]
 - Extracted from the full series
 - Rebased on 4.0-rc1

 * From v3 [3]:
 - Rebased on top of the patch working around hardcoded IRQ on OMAP4/5 [4]
 - Fixed more iMX6 DTs (Stephan)
 - Fixed Exynos4/5 DTs

 * From v2 [2]:
 - Addressed numerous comments from Thierry
 - Merged bug fixes from Nishanth
 - Merged bug fix from Stefan

 * From v1 [1]:
 - Rebased on 3.19-rc3
 - Fixed a number of additional platforms
 - Added crossbar conversion to stacked domains
 - Merged bug fixes from Nishanth

 [4]: 
 http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/317531.html
 [3]: 
 http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/315385.html
 [2]: 
 http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/314041.html
 [1]: 
 http://lists.infradead.org/pipermail/linux-arm-kernel/2014-November/307338.html

 Marc Zyngier (2):
ARM: exynos4/5: convert pmu wakeup to stacked domains
DT: exynos: update PMU binding

   .../devicetree/bindings/arm/samsung/pmu.txt|  17 +++
   arch/arm/boot/dts/exynos4.dtsi |   4 +
   arch/arm/boot/dts/exynos5250.dtsi  |   4 +
   arch/arm/boot/dts/exynos5420.dtsi  |   4 +
   arch/arm/mach-exynos/exynos.c  |  14 +--
   arch/arm/mach-exynos/suspend.c | 122 
 +++--
   6 files changed, 146 insertions(+), 19 deletions(-)

 
 I tested and verified S2R functionality on Exynos5250 based SMDK5250 
 board, and suspend-resume working fine. For testing on SMDK5250 you can 
 add my tested-by.
 
 Tested-by: Pankaj Dubey pankaj.du...@samsung.com

Thanks. Will you or Kukjin get that merged directly?

M.
-- 
Jazz is not dead. It just smells funny...
--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Chanwoo Choi
On 02/24/2015 06:50 PM, Arnd Bergmann wrote:
 On Tuesday 24 February 2015 18:01:27 Chanwoo Choi wrote:
 On 02/24/2015 05:33 PM, Arnd Bergmann wrote:
 On Tuesday 24 February 2015 14:16:45 Chanwoo Choi wrote:
 This patch adds new Exynos5433 dtsi to support 64-bit Exynos5433 SoC based 
 on
 Octal core CPUs (quad Cortex-A57 and quad Cortex-A53). And Exynos5433 
 supports
 PSCI (Power State Coordination Interface) v0.1.

 This patch includes following dt node to support Exynos5433 SoC:
 1. Octa core for big.LITTLE architecture
 - Cortex-A53 LITTLE Quad-core
 - Cortex-A57 big Quad-core
 - Support PSCI v0.1

 Should we try to come up with a way to better share parts of this with the
 exynos5 dtsi files you already have in arm32? I suspect that there is a
 significant overlap.

 Currently, 32-bit Exynos5 SoC (which is included in arch/arm/boot/dts)
 didn't support the Cortex-A53/A57 and PSCI.

 The 32-bit Exynos5 SoC support the Coretex-A7 or A15 and big.LITTLE Exynos5 
 SoC
 use the MCPM (Multi-Cluster PM) driver for secondary cpu on/off instead of 
 PSCI.

 
 Yes, I understand that. What I meant is sharing the nodes that are identical
 between e.g. all exynos54xx by using a common .dtsi file that can be included
 by 5420, 5433 and 5440.

Exynos5433 use the quite different base address of each IP from 
Exynos5250/5420/5800.
Exynos5433 SoC cannot use the devicetree node in Exynos5 dtsi 
(arch/arm/boot/dts/exynos5.dtsi).

Thanks,
Chanwoo Choi
--
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 v4 2/8] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-02-24 Thread Chanwoo Choi
On 02/24/2015 06:48 PM, Arnd Bergmann wrote:
 On Tuesday 24 February 2015 17:52:01 Chanwoo Choi wrote:

 But, I have a question.
 If we put the aliases into the board dts file instaed of SoC dtsi,
 each board dts file may use the different alias name about same phandle.
 
 Yes, that is the idea. In particular with the uarts, the intention is
 that the numbering of the device nodes in /dev is the same that is
 printed on the board (if any), which may be different from the numbering
 internal to the SoC.

I check the uart device with Exynos5433 SoC based on Linux 4.0-rc1
If some board use the serial_0 and serial_3 as following in board dtsi,

serial_0 { -- UART 0 device
status = okay;
};

serial_3 { -- UART 3 device
status = okay;
};

The serial core driver create the follwoing /dev/ttySACx device node
by using the number of alias. It maintain the same device number of internel to 
the SoC.

root@localhost:~# ls /dev/ttySAC
ttySAC1  ttySAC3  

Thanks,
Chanwoo Choi


--
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


[PATCH v3 16/17] exynos: fimg2d: introduce G2D_OP_INTERPOLATE

2015-02-24 Thread Tobias Jakobi
This sets up the blending equation in the following way:
out = src * src_alpha + dst * (1 - src_alpha)

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 4 
 exynos/exynos_fimg2d.h | 1 +
 2 files changed, 5 insertions(+)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 974ee64..669fd5c 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -87,6 +87,10 @@ static unsigned int g2d_get_blend_op(enum e_g2d_op op)
SET_BF(val, G2D_COEFF_MODE_ONE, 0, 0, 0,
G2D_COEFF_MODE_SRC_ALPHA, 1, 0, 0);
break;
+   case G2D_OP_INTERPOLATE:
+   SET_BF(val, G2D_COEFF_MODE_SRC_ALPHA, 0, 0, 0,
+   G2D_COEFF_MODE_SRC_ALPHA, 1, 0, 0);
+   break;
default:
fprintf(stderr, Not support operation(%d).\n, op);
SET_BF(val, G2D_COEFF_MODE_ONE, 0, 0, 0, G2D_COEFF_MODE_ZERO,
diff --git a/exynos/exynos_fimg2d.h b/exynos/exynos_fimg2d.h
index 418757f..f76f2a9 100644
--- a/exynos/exynos_fimg2d.h
+++ b/exynos/exynos_fimg2d.h
@@ -142,6 +142,7 @@ enum e_g2d_op {
G2D_OP_SRC  = 0x01,
G2D_OP_DST  = 0x02,
G2D_OP_OVER = 0x03,
+   G2D_OP_INTERPOLATE  = 0x04,
G2D_OP_DISJOINT_CLEAR   = 0x10,
G2D_OP_DISJOINT_SRC = 0x11,
G2D_OP_DISJOINT_DST = 0x12,
-- 
2.0.5

--
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] ARM: EXYNOS: Handle of_find_device_by_node and kstrdup failures

2015-02-24 Thread Krzysztof Kozlowski
On wto, 2015-02-03 at 18:28 +0100, Krzysztof Kozlowski wrote:
 Prevent possible NULL pointer dereference of pointer returned by
 of_find_device_by_node(). Handle this by skipping such power domain.
 
 Additionally fail the init on kstrdup() failure. Such case is actually
 not fatal because the name for power domain allocated by kstrdup() is
 used only in printk. Still as a precaution handle this as an error
 condition.
 
 Signed-off-by: Krzysztof Kozlowski k.kozlow...@samsung.com

Hi Kukjin,

What is the status of this patch and the ARM: EXYNOS: Handle of
of_iomap() failure. The latter should be in your tree but I cannot find
it.

Best regards,
Krzysztof

 ---
  arch/arm/mach-exynos/pm_domains.c | 12 
  1 file changed, 12 insertions(+)
 
 diff --git a/arch/arm/mach-exynos/pm_domains.c 
 b/arch/arm/mach-exynos/pm_domains.c
 index fd7640a6b503..4c6c29ba58ef 100644
 --- a/arch/arm/mach-exynos/pm_domains.c
 +++ b/arch/arm/mach-exynos/pm_domains.c
 @@ -116,6 +116,12 @@ static __init int exynos4_pm_init_power_domain(void)
   struct device *dev;
  
   pdev = of_find_device_by_node(np);
 + if (!pdev) {
 + pr_err(%s: failed to find device for node %s\n,
 + __func__, np-name);
 + of_node_put(np);
 + continue;
 + }
   dev = pdev-dev;
  
   pd = kzalloc(sizeof(*pd), GFP_KERNEL);
 @@ -126,6 +132,12 @@ static __init int exynos4_pm_init_power_domain(void)
   }
  
   pd-pd.name = kstrdup(np-name, GFP_KERNEL);
 + if (!pd-pd.name) {
 + kfree(pd);
 + of_node_put(np);
 + return -ENOMEM;
 + }
 +
   pd-name = pd-pd.name;
   pd-base = of_iomap(np, 0);
   if (!pd-base) {

--
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


[PATCH 1/1] drivers/rtc/rtc-s3c.c: Add .needs_src_clk to s3c6410 RTC data

2015-02-24 Thread Javier Martinez Canillas
Commit df9e26d093d3 (rtc: s3c: add support for RTC of Exynos3250 SoC)
added an rtc_src DT property to specify the clock used as a source to
the S3C real-time clock.

Not all SoCs needs this so commit eaf3a659086e (drivers/rtc/rtc-s3c.c:
fix initialization failure without rtc source clock) changed to check
the struct s3c_rtc_data .needs_src_clk to conditionally grab the clock.

But that commit didn't update the data for each IP version so the RTC
broke on the boards that needs a source clock. This is the case of at
least Exynos5250 and Exynos5440 which uses the s3c6410 RTC IP block.

This commit fixes the S3C rtc on the Exynos5250 Snow and Exynos5420
Peach Pit and Pi Chromebooks.

Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
---

Hello,

I see that Exynos4 uses the same s3c6410 RTC IP version but at least
the Exynos4412 Odroid boards don't define a source clock for the RTC.

According to the Exynos4 documentation I've, the RTC uses XRTCXTI as
its source clock so I think those boards are relying on the HW not
being completely defined in DT and the clock setup by the bootloader.

Best regards,
Javier

 drivers/rtc/rtc-s3c.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/rtc/rtc-s3c.c b/drivers/rtc/rtc-s3c.c
index 4241eeab3386..f4cf6851fae9 100644
--- a/drivers/rtc/rtc-s3c.c
+++ b/drivers/rtc/rtc-s3c.c
@@ -849,6 +849,7 @@ static struct s3c_rtc_data const s3c2443_rtc_data = {
 
 static struct s3c_rtc_data const s3c6410_rtc_data = {
.max_user_freq  = 32768,
+   .needs_src_clk  = true,
.irq_handler= s3c6410_rtc_irq,
.set_freq   = s3c6410_rtc_setfreq,
.enable_tick= s3c6410_rtc_enable_tick,
-- 
2.1.3

--
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


[PATCH v3 15/17] exynos: fimg2d: unify register style

2015-02-24 Thread Tobias Jakobi
Register defines all use uppercase hex codes.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/fimg2d_reg.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/exynos/fimg2d_reg.h b/exynos/fimg2d_reg.h
index 5782488..07dd634 100644
--- a/exynos/fimg2d_reg.h
+++ b/exynos/fimg2d_reg.h
@@ -15,7 +15,7 @@
 
 #define SOFT_RESET_REG (0x)
 #define INTEN_REG  (0x0004)
-#define INTC_PEND_REG  (0x000c)
+#define INTC_PEND_REG  (0x000C)
 #define FIFO_STAT_REG  (0x0010)
 #define AXI_MODE_REG   (0x001C)
 #define DMA_SFR_BASE_ADDR_REG  (0x0080)
-- 
2.0.5

--
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


[PATCH v3 17/17] exynos: fimg2d: whitespace fix in g2d_flush

2015-02-24 Thread Tobias Jakobi
Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 669fd5c..bde5df2 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -190,7 +190,7 @@ static int g2d_flush(struct g2d_context *ctx)
int ret;
struct drm_exynos_g2d_set_cmdlist cmdlist = {0};
 
-   if (ctx-cmd_nr  == 0  ctx-cmd_buf_nr == 0)
+   if (ctx-cmd_nr == 0  ctx-cmd_buf_nr == 0)
return -1;
 
if (ctx-cmdlist_nr = G2D_MAX_CMD_LIST_NR) {
-- 
2.0.5

--
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


[PATCH v3 09/17] exynos: use structure initialization instead of memset

2015-02-24 Thread Tobias Jakobi
Keeps the code cleaner, since the structs have to be initialized
once anyway.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c|  4 +---
 tests/exynos/exynos_fimg2d_test.c | 15 ---
 2 files changed, 5 insertions(+), 14 deletions(-)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 17d7342..746502a 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -184,7 +184,7 @@ static void g2d_reset(struct g2d_context *ctx)
 static int g2d_flush(struct g2d_context *ctx)
 {
int ret;
-   struct drm_exynos_g2d_set_cmdlist cmdlist;
+   struct drm_exynos_g2d_set_cmdlist cmdlist = {0};
 
if (ctx-cmd_nr  == 0  ctx-cmd_buf_nr == 0)
return FALSE;
@@ -194,8 +194,6 @@ static int g2d_flush(struct g2d_context *ctx)
return -EINVAL;
}
 
-   memset(cmdlist, 0, sizeof(struct drm_exynos_g2d_set_cmdlist));
-
cmdlist.cmd = (uint64_t)(uintptr_t)ctx-cmd[0];
cmdlist.cmd_buf = (uint64_t)(uintptr_t)ctx-cmd_buf[0];
cmdlist.cmd_nr = ctx-cmd_nr;
diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index 5a2a351..5e54d78 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -253,7 +253,7 @@ static void exynos_destroy_buffer(struct exynos_bo *bo)
 static int g2d_solid_fill_test(struct exynos_device *dev, struct exynos_bo 
*dst)
 {
struct g2d_context *ctx;
-   struct g2d_image img;
+   struct g2d_image img = {0};
unsigned int count, img_w, img_h;
int ret = 0;
 
@@ -261,7 +261,6 @@ static int g2d_solid_fill_test(struct exynos_device *dev, 
struct exynos_bo *dst)
if (!ctx)
return -EFAULT;
 
-   memset(img, 0, sizeof(struct g2d_image));
img.bo[0] = dst-handle;
 
printf(solid fill test.\n);
@@ -304,7 +303,7 @@ static int g2d_copy_test(struct exynos_device *dev, struct 
exynos_bo *src,
enum e_g2d_buf_type type)
 {
struct g2d_context *ctx;
-   struct g2d_image src_img, dst_img;
+   struct g2d_image src_img = {0}, dst_img = {0};
unsigned int count;
unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h;
unsigned long userptr, size;
@@ -314,8 +313,6 @@ static int g2d_copy_test(struct exynos_device *dev, struct 
exynos_bo *src,
if (!ctx)
return -EFAULT;
 
-   memset(src_img, 0, sizeof(struct g2d_image));
-   memset(dst_img, 0, sizeof(struct g2d_image));
dst_img.bo[0] = dst-handle;
 
src_x = 0;
@@ -388,7 +385,7 @@ static int g2d_copy_with_scale_test(struct exynos_device 
*dev,
enum e_g2d_buf_type type)
 {
struct g2d_context *ctx;
-   struct g2d_image src_img, dst_img;
+   struct g2d_image src_img = {0}, dst_img = {0};
unsigned int count;
unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h;
unsigned long userptr, size;
@@ -398,8 +395,6 @@ static int g2d_copy_with_scale_test(struct exynos_device 
*dev,
if (!ctx)
return -EFAULT;
 
-   memset(src_img, 0, sizeof(struct g2d_image));
-   memset(dst_img, 0, sizeof(struct g2d_image));
dst_img.bo[0] = dst-handle;
 
src_x = 0;
@@ -477,7 +472,7 @@ static int g2d_blend_test(struct exynos_device *dev,
enum e_g2d_buf_type type)
 {
struct g2d_context *ctx;
-   struct g2d_image src_img, dst_img;
+   struct g2d_image src_img = {0}, dst_img = {0};
unsigned int count;
unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h;
unsigned long userptr, size;
@@ -487,8 +482,6 @@ static int g2d_blend_test(struct exynos_device *dev,
if (!ctx)
return -EFAULT;
 
-   memset(src_img, 0, sizeof(struct g2d_image));
-   memset(dst_img, 0, sizeof(struct g2d_image));
dst_img.bo[0] = dst-handle;
 
src_x = 0;
-- 
2.0.5

--
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


[PATCH v3 10/17] tests/exynos: improve error handling

2015-02-24 Thread Tobias Jakobi
Check for a useable connector and also if the resolution is sane
(width and height are both non-zero).

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 tests/exynos/exynos_fimg2d_test.c | 14 +-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index 5e54d78..a780d8d 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -721,10 +721,22 @@ int main(int argc, char **argv)
connector_find_mode(dev-fd, con, resources);
drmModeFreeResources(resources);
 
+   if (!con.mode) {
+   fprintf(stderr, failed to find usable connector\n);
+   ret = -EFAULT;
+   goto err_drm_close;
+   }
+
screen_width = con.mode-hdisplay;
screen_height = con.mode-vdisplay;
 
-   printf(screen width  = %d, screen height = %d\n, screen_width,
+   if (screen_width == 0 || screen_height == 0) {
+   fprintf(stderr, failed to find sane resolution on 
connector\n);
+   ret = -EFAULT;
+   goto err_drm_close;
+   }
+
+   printf(screen width = %d, screen height = %d\n, screen_width,
screen_height);
 
bo = exynos_create_buffer(dev, screen_width * screen_height * 4, 0);
-- 
2.0.5

--
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


[PATCH v3 12/17] exynos: fimg2d: remove TRUE/FALSE from header

2015-02-24 Thread Tobias Jakobi
The fimg2d header was defining TRUE and FALSE, but actually
these defines are just used once. Remove them, since they
don't make the code better readable/understandable.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 4 ++--
 exynos/exynos_fimg2d.h | 7 ---
 2 files changed, 2 insertions(+), 9 deletions(-)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index c37670c..974ee64 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -135,7 +135,7 @@ static int g2d_add_cmd(struct g2d_context *ctx, unsigned 
long cmd,
break;
}
 
-   return TRUE;
+   return 0;
 }
 
 /*
@@ -187,7 +187,7 @@ static int g2d_flush(struct g2d_context *ctx)
struct drm_exynos_g2d_set_cmdlist cmdlist = {0};
 
if (ctx-cmd_nr  == 0  ctx-cmd_buf_nr == 0)
-   return FALSE;
+   return -1;
 
if (ctx-cmdlist_nr = G2D_MAX_CMD_LIST_NR) {
fprintf(stderr, Overflow cmdlist.\n);
diff --git a/exynos/exynos_fimg2d.h b/exynos/exynos_fimg2d.h
index bd116cf..dbcb764 100644
--- a/exynos/exynos_fimg2d.h
+++ b/exynos/exynos_fimg2d.h
@@ -13,13 +13,6 @@
 #ifndef _FIMG2D_H_
 #define _FIMG2D_H_
 
-#ifndef TRUE
-#define TRUE 0
-#endif
-#ifndef FALSE
-#define FALSE -1
-#endif
-
 #define G2D_MAX_CMD_NR 64
 #define G2D_MAX_GEM_CMD_NR 64
 #define G2D_MAX_CMD_LIST_NR64
-- 
2.0.5

--
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: exynos4412: misc issues on Hardkernel Odroid boards

2015-02-24 Thread Tobias Jakobi

Hello Marek,

sorry for the late response!


On 2015-02-10 12:38, Marek Szyprowski wrote:

Hello,

On 2015-02-09 21:28, Tobias Jakobi wrote:

Hello!

Marek Szyprowski wrote:
I didn't observe any issues with 'ondemand' governor. I've just 
tested it
on next-20150204 with [PATCH v2 0/3] Add support for hardware reset 
of

eMMC
card on reboot patches added
(http://www.spinics.net/lists/linux-mmc/msg30621.html) and reboot 
works

fine.

Since I'm not using an eMMC card, I don't think the pwrseq stuff is
going to make a difference here.
Have you checked this with the PS_HOLD patch applied, or without?
Anyway, guess I'm going to recheck this, maybe with some other 
governors

too.


PS_HOLD patch is related to shutdown behavior. Reboot doesn't use it. 
Could you
point which exactly version did you use and provide the .config which 
causes
problems with normal reboot when system runs from SD card? For eMMC you 
would

need patches from last linux-next.


I'm currently using this tree:
https://github.com/tobiasjakobi/linux-odroid

In this is the config:
https://raw.githubusercontent.com/tobiasjakobi/odroid-environment/master/sourcecode/system/vanilla-3.19-debug.conf

Upon issuing reboot I get this here on the UART:
chidori ~ # reboot

Broadcast message from root@chidori (ttySAC1) (Mon Feb 23 17:04:44 
2015):


The system is going down for reboot NOW!
INIT: Switching to runlevel: 6
INIT: Sending processes the TERM signal
chidori ~ #  * Stopping local
 [ ok ]
 * Stopping vixie-cron ...   
 [ ok ]
 * Saving random seed ...
 [ ok ]
 * Deactivating additional swap space ...
 [ ok ]
 * Stopping sshd ... 
 [ ok ]
 * Unmounting network filesystems ...
 [ ok ]
 * Stopping chronyd ...  
 [ ok ]
 * Stopping BlueTooth NAP ...
 [ ok ]
 * Stopping dnsmasq ...  
 [ ok ]
 * Stopping syslog-ng ...
 [ ok ]
 * Shutting down bluetooth ...   
 [ ok ]
 * Stopping D-BUS system messagebus ...  
 [ ok ]

 * Unmounting loop devices
 * Unmounting filesystems
 *   Unmounting /usr/local/emu ...   
 [ ok ]
 *   Unmounting /home ...
 [ ok ]
 *   Unmounting /var ... 
 [ ok ]
 * Deactivating swap devices ... 
 [ ok ]
 * Stopping udev ... 
 [ ok ]
 * Saving the shutdown time ...  
 [ ok ]
 * Terminating remaining processes ...   
 [ ok ]
 * Killing remaining processes ...   
 [ ok ]
 * Saving dependency cache ...   
 [ ok ]

 * Remounting remaining filesystems read-only ...
 *   Remounting / read only ...
[  113.526626] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) 
 [ ok ]

[  115.609592] sd 0:0:0:0: [sda] Synchronizing SCSI cache
[


Notice the open bracket in the last line. Seems like there is still 
output in the kernel buffer, but the UART is maybe switched off before 
one can see that. At least there is nothing after that, and I have to 
manually restart the board then.


With best wishes,
Tobias

--
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


[PATCH v3 06/17] tests/exynos: introduce wait_for_user_input

2015-02-24 Thread Tobias Jakobi
Currently getchar() is used to pause execution after each test.
The user isn't informed if one is supposed to do anything for
the tests to continue, so print a simple message to make this
more clear.

v3: Compactify printf calls as pointed out by
Emil Velikov emil.l.velikov at gmail.com.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 tests/exynos/exynos_fimg2d_test.c | 16 
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index 0f7cf24..5a2a351 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -237,6 +237,14 @@ void *create_checkerboard_pattern(unsigned int num_tiles_x,
return buf;
 }
 
+static void wait_for_user_input(int last)
+{
+   printf(press ENTER to %s\n, last ? exit test application :
+   skip to next test);
+
+   getchar();
+}
+
 static void exynos_destroy_buffer(struct exynos_bo *bo)
 {
exynos_bo_destroy(bo);
@@ -756,7 +764,7 @@ int main(int argc, char **argv)
goto err_rm_fb;
}
 
-   getchar();
+   wait_for_user_input(0);
 
src = exynos_create_buffer(dev, screen_width * screen_height * 4, 0);
if (!src) {
@@ -770,7 +778,7 @@ int main(int argc, char **argv)
goto err_free_src;
}
 
-   getchar();
+   wait_for_user_input(0);
 
ret = test_case.copy_with_scale(dev, src, bo, G2D_IMGBUF_GEM);
if (ret  0) {
@@ -778,7 +786,7 @@ int main(int argc, char **argv)
goto err_free_src;
}
 
-   getchar();
+   wait_for_user_input(0);
 
ret = test_case.checkerboard(dev, src, bo, G2D_IMGBUF_GEM);
if (ret  0) {
@@ -786,7 +794,7 @@ int main(int argc, char **argv)
goto err_free_src;
}
 
-   getchar();
+   wait_for_user_input(1);
 
/*
 * The blend test uses the userptr functionality of exynos-drm, which
-- 
2.0.5

--
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


[PATCH v3 08/17] exynos: introduce g2d_add_base_addr helper function

2015-02-24 Thread Tobias Jakobi
In almost all functions the base address register is written, so it
makes sense to have a helper function for this.

v3: Wrap line as pointed out by Emil Velikov
emil.l.velikov at gmail.com.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 88 +++---
 1 file changed, 34 insertions(+), 54 deletions(-)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 5314c36..17d7342 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -41,6 +41,11 @@
 
 #define MIN(a, b)  ((a)  (b) ? (a) : (b))
 
+enum g2d_base_addr_reg {
+   g2d_dst = 0,
+   g2d_src
+};
+
 static unsigned int g2d_get_scaling(unsigned int src, unsigned int dst)
 {
/*
@@ -134,6 +139,26 @@ static int g2d_add_cmd(struct g2d_context *ctx, unsigned 
long cmd,
 }
 
 /*
+ * g2d_add_base_addr - helper function to set dst/src base address register.
+ *
+ * @ctx: a pointer to g2d_context structure.
+ * @img: a pointer to the dst/src g2d_image structure.
+ * @reg: the register that should be set.
+ */
+static void g2d_add_base_addr(struct g2d_context *ctx, struct g2d_image *img,
+   enum g2d_base_addr_reg reg)
+{
+   const unsigned long cmd = (reg == g2d_dst) ?
+   DST_BASE_ADDR_REG : SRC_BASE_ADDR_REG;
+
+   if (img-buf_type == G2D_IMGBUF_USERPTR)
+   g2d_add_cmd(ctx, cmd | G2D_BUF_USERPTR,
+   (unsigned long)img-user_ptr[0]);
+   else
+   g2d_add_cmd(ctx, cmd, img-bo[0]);
+}
+
+/*
  * g2d_reset - reset fimg2d hardware.
  *
  * @ctx: a pointer to g2d_context structure.
@@ -278,13 +303,7 @@ g2d_solid_fill(struct g2d_context *ctx, struct g2d_image 
*img,
 
g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_NORMAL);
g2d_add_cmd(ctx, DST_COLOR_MODE_REG, img-color_mode);
-
-   if (img-buf_type == G2D_IMGBUF_USERPTR)
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR,
-   (unsigned long)img-user_ptr[0]);
-   else
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG, img-bo[0]);
-
+   g2d_add_base_addr(ctx, img, g2d_dst);
g2d_add_cmd(ctx, DST_STRIDE_REG, img-stride);
 
if (x + w  img-width)
@@ -341,22 +360,12 @@ g2d_copy(struct g2d_context *ctx, struct g2d_image *src,
 
g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR);
g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst-color_mode);
-   if (dst-buf_type == G2D_IMGBUF_USERPTR)
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR,
-   (unsigned long)dst-user_ptr[0]);
-   else
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG, dst-bo[0]);
-
+   g2d_add_base_addr(ctx, dst, g2d_dst);
g2d_add_cmd(ctx, DST_STRIDE_REG, dst-stride);
 
g2d_add_cmd(ctx, SRC_SELECT_REG, G2D_SELECT_MODE_NORMAL);
g2d_add_cmd(ctx, SRC_COLOR_MODE_REG, src-color_mode);
-   if (src-buf_type == G2D_IMGBUF_USERPTR)
-   g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR,
-   (unsigned long)src-user_ptr[0]);
-   else
-   g2d_add_cmd(ctx, SRC_BASE_ADDR_REG, src-bo[0]);
-
+   g2d_add_base_addr(ctx, src, g2d_src);
g2d_add_cmd(ctx, SRC_STRIDE_REG, src-stride);
 
src_w = w;
@@ -444,12 +453,7 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
 
g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR);
g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst-color_mode);
-   if (dst-buf_type == G2D_IMGBUF_USERPTR)
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR,
-   (unsigned long)dst-user_ptr[0]);
-   else
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG, dst-bo[0]);
-
+   g2d_add_base_addr(ctx, dst, g2d_dst);
g2d_add_cmd(ctx, DST_STRIDE_REG, dst-stride);
 
g2d_add_cmd(ctx, SRC_SELECT_REG, G2D_SELECT_MODE_NORMAL);
@@ -459,11 +463,7 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
if (src-repeat_mode == G2D_REPEAT_MODE_PAD)
g2d_add_cmd(ctx, SRC_PAD_VALUE_REG, dst-color);
 
-   if (src-buf_type == G2D_IMGBUF_USERPTR)
-   g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR,
-   (unsigned long)src-user_ptr[0]);
-   else
-   g2d_add_cmd(ctx, SRC_BASE_ADDR_REG, src-bo[0]);
+   g2d_add_base_addr(ctx, src, g2d_src);
 
g2d_add_cmd(ctx, SRC_STRIDE_REG, src-stride);
 
@@ -567,12 +567,7 @@ g2d_blend(struct g2d_context *ctx, struct g2d_image *src,
g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_NORMAL);
 
g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst-color_mode);
-   if (dst-buf_type == G2D_IMGBUF_USERPTR)
-   g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR,
-   (unsigned long)dst-user_ptr[0]);
-   

[PATCH v3 05/17] exynos: add g2d_scale_and_blend

2015-02-24 Thread Tobias Jakobi
This is a combination of g2d_copy_with_scale and g2d_scale.
It is a pretty common operation to scale one buffer and then
blend it on top of another, so provide a direct way to that
operation.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 129 +
 exynos/fimg2d.h|   5 ++
 2 files changed, 134 insertions(+)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index df18a08..88e0ee6 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -645,3 +645,132 @@ g2d_blend(struct g2d_context *ctx, struct g2d_image *src,
return 0;
 }
 
+/**
+ * g2d_scale_and_blend - apply scaling to source buffer and then blend to 
destination buffer
+ *
+ * @ctx: a pointer to g2d_context structure.
+ * @src: a pointer to g2d_image structure including image and buffer
+ * information to source.
+ * @dst: a pointer to g2d_image structure including image and buffer
+ * information to destination.
+ * @src_x: x start position to source buffer.
+ * @src_y: y start position to source buffer.
+ * @src_w: width value to source buffer.
+ * @src_h: height value to source buffer.
+ * @dst_x: x start position to destination buffer.
+ * @dst_y: y start position to destination buffer.
+ * @dst_w: width value to destination buffer.
+ * @dst_h: height value to destination buffer.
+ * @op: blend operation type.
+ */
+drm_public int
+g2d_scale_and_blend(struct g2d_context *ctx, struct g2d_image *src,
+   struct g2d_image *dst, unsigned int src_x, unsigned int src_y,
+   unsigned int src_w, unsigned int src_h, unsigned int dst_x,
+   unsigned int dst_y, unsigned int dst_w, unsigned int dst_h,
+   enum e_g2d_op op)
+{
+   union g2d_point_val pt;
+   union g2d_bitblt_cmd_val bitblt;
+   union g2d_blend_func_val blend;
+   unsigned int scale;
+   unsigned int scale_x, scale_y;
+
+   bitblt.val = 0;
+   blend.val = 0;
+
+   if (op == G2D_OP_SRC || op == G2D_OP_CLEAR)
+   g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR);
+   else
+   g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_NORMAL);
+
+   g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst-color_mode);
+   if (dst-buf_type == G2D_IMGBUF_USERPTR)
+   g2d_add_cmd(ctx, DST_BASE_ADDR_REG | G2D_BUF_USERPTR,
+   (unsigned long)dst-user_ptr[0]);
+   else
+   g2d_add_cmd(ctx, DST_BASE_ADDR_REG, dst-bo[0]);
+
+   g2d_add_cmd(ctx, DST_STRIDE_REG, dst-stride);
+
+   g2d_add_cmd(ctx, SRC_SELECT_REG, src-select_mode);
+   g2d_add_cmd(ctx, SRC_COLOR_MODE_REG, src-color_mode);
+
+   switch (src-select_mode) {
+   case G2D_SELECT_MODE_NORMAL:
+   if (src-buf_type == G2D_IMGBUF_USERPTR)
+   g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR,
+   (unsigned long)src-user_ptr[0]);
+   else
+   g2d_add_cmd(ctx, SRC_BASE_ADDR_REG, src-bo[0]);
+
+   g2d_add_cmd(ctx, SRC_STRIDE_REG, src-stride);
+   break;
+   case G2D_SELECT_MODE_FGCOLOR:
+   g2d_add_cmd(ctx, FG_COLOR_REG, src-color);
+   break;
+   case G2D_SELECT_MODE_BGCOLOR:
+   g2d_add_cmd(ctx, BG_COLOR_REG, src-color);
+   break;
+   default:
+   fprintf(stderr , failed to set src.\n);
+   return -EINVAL;
+   }
+
+   if (src_w == dst_w  src_h == dst_h)
+   scale = 0;
+   else {
+   scale = 1;
+   scale_x = g2d_get_scaling(src_w, dst_w);
+   scale_y = g2d_get_scaling(src_h, dst_h);
+   }
+
+   if (src_x + src_w  src-width)
+   src_w = src-width - src_x;
+   if (src_y + src_h  src-height)
+   src_h = src-height - src_y;
+
+   if (dst_x + dst_w  dst-width)
+   dst_w = dst-width - dst_x;
+   if (dst_y + dst_h  dst-height)
+   dst_h = dst-height - dst_y;
+
+   if (src_w = 0 || src_h = 0 || dst_w = 0 || dst_h = 0) {
+   fprintf(stderr, invalid width or height.\n);
+   g2d_reset(ctx);
+   return -EINVAL;
+   }
+
+   if (scale) {
+   g2d_add_cmd(ctx, SRC_SCALE_CTRL_REG, G2D_SCALE_MODE_BILINEAR);
+   g2d_add_cmd(ctx, SRC_XSCALE_REG, scale_x);
+   g2d_add_cmd(ctx, SRC_YSCALE_REG, scale_y);
+   }
+
+   bitblt.data.alpha_blend_mode = G2D_ALPHA_BLEND_MODE_ENABLE;
+   blend.val = g2d_get_blend_op(op);
+   g2d_add_cmd(ctx, BITBLT_COMMAND_REG, bitblt.val);
+   g2d_add_cmd(ctx, BLEND_FUNCTION_REG, blend.val);
+
+   pt.val = 0;
+   pt.data.x = src_x;
+   pt.data.y = src_y;
+   g2d_add_cmd(ctx, SRC_LEFT_TOP_REG, pt.val);
+   pt.val = 0;
+   pt.data.x = src_x + src_w;
+   pt.data.y = src_y + src_h;
+ 

[PATCH v3 07/17] exynos: honor the repeat mode in g2d_copy_with_scale

2015-02-24 Thread Tobias Jakobi
This is useful when the default repeat mode, which is 'repeat'
produces artifacts at the borders of the copied image.
Choose the 'pad' mode to make use of the color of the destination
image.

In my usage case the destination is the framebuffer, which is
solid filled with a background color. Scaling with 'pad' mode
would then just do the right thing and also produces nice
borders on the output.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 5 +
 1 file changed, 5 insertions(+)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 88e0ee6..5314c36 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -454,6 +454,11 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
 
g2d_add_cmd(ctx, SRC_SELECT_REG, G2D_SELECT_MODE_NORMAL);
g2d_add_cmd(ctx, SRC_COLOR_MODE_REG, src-color_mode);
+
+   g2d_add_cmd(ctx, SRC_REPEAT_MODE_REG, src-repeat_mode);
+   if (src-repeat_mode == G2D_REPEAT_MODE_PAD)
+   g2d_add_cmd(ctx, SRC_PAD_VALUE_REG, dst-color);
+
if (src-buf_type == G2D_IMGBUF_USERPTR)
g2d_add_cmd(ctx, SRC_BASE_ADDR_REG | G2D_BUF_USERPTR,
(unsigned long)src-user_ptr[0]);
-- 
2.0.5

--
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


[PATCH v3 04/17] tests/exynos: disable the G2D userptr/blend test

2015-02-24 Thread Tobias Jakobi
v2: Move the commit description into the patch itself.
v3: Use common commenting style as pointed out by
Emil Velikov emil.l.velikov at gmail.com.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 tests/exynos/exynos_fimg2d_test.c | 10 ++
 1 file changed, 10 insertions(+)

diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index aa140e5..0f7cf24 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -788,11 +788,21 @@ int main(int argc, char **argv)
 
getchar();
 
+   /*
+* The blend test uses the userptr functionality of exynos-drm, which
+* is currently not safe to use. If the kernel hasn't been build with
+* exynos-iommu support, then the blend test is going to produce 
(kernel)
+* memory corruption, eventually leading to a system crash.
+*
+* Disable the test for now, until the kernel code has been sanitized.
+*/
+#if 0
ret  = test_case.blend(dev, src, bo, G2D_IMGBUF_USERPTR);
if (ret  0)
fprintf(stderr, failed to test blend operation.\n);
 
getchar();
+#endif
 
 err_free_src:
if (src)
-- 
2.0.5

--
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


[PATCH v3 02/17] exynos: replace G2D_DOUBLE_TO_FIXED macro with function

2015-02-24 Thread Tobias Jakobi
This also avoids the floating point conversion steps and just
uses pure integer arithmetic.
Since the G2D hardware scaling approach is a bit unintuitive,
document it in the function as well.

v2: Explicitly mention the normalization constant.
v3: Use common commenting style as pointed out by
Emil Velikov emil.l.velikov at gmail.com.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c | 22 +-
 exynos/fimg2d.h|  2 --
 2 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index ce1ba1e..9c66c3a 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -41,6 +41,18 @@
 
 #define MIN(a, b)  ((a)  (b) ? (a) : (b))
 
+static unsigned int g2d_get_scaling(unsigned int src, unsigned int dst)
+{
+   /*
+* The G2D hw scaling factor is a normalized inverse of the scaling 
factor.
+* For example: When source width is 100 and destination width is 200
+* (scaling of 2x), then the hw factor is NC * 100 / 200.
+* The normalization factor (NC) is 2^16 = 0x1.
+*/
+
+   return ((src  16) / dst);
+}
+
 static unsigned int g2d_get_blend_op(enum e_g2d_op op)
 {
union g2d_blend_func_val val;
@@ -428,7 +440,7 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
union g2d_rop4_val rop4;
union g2d_point_val pt;
unsigned int scale;
-   double scale_x = 0.0f, scale_y = 0.0f;
+   unsigned int scale_x, scale_y;
 
g2d_add_cmd(ctx, DST_SELECT_REG, G2D_SELECT_MODE_BGCOLOR);
g2d_add_cmd(ctx, DST_COLOR_MODE_REG, dst-color_mode);
@@ -454,8 +466,8 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
scale = 0;
else {
scale = 1;
-   scale_x = (double)src_w / (double)dst_w;
-   scale_y = (double)src_h / (double)dst_h;
+   scale_x = g2d_get_scaling(src_w, dst_w);
+   scale_y = g2d_get_scaling(src_h, dst_h);
}
 
if (src_x + src_w  src-width)
@@ -487,8 +499,8 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
 
if (scale) {
g2d_add_cmd(ctx, SRC_SCALE_CTRL_REG, G2D_SCALE_MODE_BILINEAR);
-   g2d_add_cmd(ctx, SRC_XSCALE_REG, G2D_DOUBLE_TO_FIXED(scale_x));
-   g2d_add_cmd(ctx, SRC_YSCALE_REG, G2D_DOUBLE_TO_FIXED(scale_y));
+   g2d_add_cmd(ctx, SRC_XSCALE_REG, scale_x);
+   g2d_add_cmd(ctx, SRC_YSCALE_REG, scale_y);
}
 
pt.val = 0;
diff --git a/exynos/fimg2d.h b/exynos/fimg2d.h
index 4785e2f..8e0321c 100644
--- a/exynos/fimg2d.h
+++ b/exynos/fimg2d.h
@@ -25,8 +25,6 @@
 #define G2D_MAX_CMD_LIST_NR64
 #define G2D_PLANE_MAX_NR   2
 
-#define G2D_DOUBLE_TO_FIXED(d) ((unsigned int)((d) * 65536.0))
-
 enum e_g2d_color_mode {
/* COLOR FORMAT */
G2D_COLOR_FMT_XRGB,
-- 
2.0.5

--
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


[v3] libdrm: improvements to userspace exynos component

2015-02-24 Thread Tobias Jakobi
Hello,

here are some miscellaneous improvements (small features, bugfixes, spelling 
fixes, etc.) for the exynos component of libdrm. The general idea is to let 
userspace use the G2D engine functionality more 
efficiently.

If someone is interested in an application that actually makes use of this, the 
RetroArch frontend has a custom video backend:
https://github.com/libretro/RetroArch/blob/master/gfx/drivers/exynos_gfx.c


Please review and let me know what I can improve.

v2:
- Mention value of G2D scaling normalization factor (02/15).
- Moved patch (04/15) description from commit message to source itself, like 
suggested by Joonyoung Shim.

v3:
I integrated the suggestions by Emil Velikov and added two additional patches 
to the series. One doing the header cleanup that Emil point out, another one 
just a trivial whitespace thing. I'm resending 
the whole series, since number of patches and order changed.


With best wishes,
Tobias

--
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


[PATCH v3 01/17] tests/exynos: fimg2d: add a checkerboard test

2015-02-24 Thread Tobias Jakobi
This makes it easier to spot memory corruptions which don't become
visible when using a plain buffer filled with a solid color (so
corruptions that are just a permutation of the bytes in the buffer).

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 tests/exynos/exynos_fimg2d_test.c | 117 ++
 1 file changed, 117 insertions(+)

diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index c6bd558..41fb869 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -55,6 +55,9 @@ struct fimg2d_test_case {
int (*blend)(struct exynos_device *dev,
struct exynos_bo *src, struct exynos_bo *dst,
enum e_g2d_buf_type);
+   int (*checkerboard)(struct exynos_device *dev,
+   struct exynos_bo *src, struct exynos_bo *dst,
+   enum e_g2d_buf_type);
 };
 
 struct connector {
@@ -207,6 +210,33 @@ static struct exynos_bo *exynos_create_buffer(struct 
exynos_device *dev,
return bo;
 }
 
+/* Allocate buffer and fill it with checkerboard pattern, where the tiles *
+ * have a random color. The caller has to free the buffer.*/
+void *create_checkerboard_pattern(unsigned int num_tiles_x,
+   unsigned int num_tiles_y, 
unsigned int tile_size)
+{
+   unsigned int *buf;
+   unsigned int x, y, i, j;
+   const unsigned int stride = num_tiles_x * tile_size;
+
+   if (posix_memalign((void*)buf, 64, num_tiles_y * tile_size * stride * 
4) != 0)
+   return NULL;
+
+   for (x = 0; x  num_tiles_x; ++x) {
+   for (y = 0; y  num_tiles_y; ++y) {
+   const unsigned int color = 0xff00 + (random()  
0xff);
+
+   for (i = 0; i  tile_size; ++i) {
+   for (j = 0; j  tile_size; ++j) {
+   buf[x * tile_size + y * stride * 
tile_size + i + j * stride] = color;
+   }
+   }
+   }
+   }
+
+   return buf;
+}
+
 static void exynos_destroy_buffer(struct exynos_bo *bo)
 {
exynos_bo_destroy(bo);
@@ -533,11 +563,90 @@ err_free_userptr:
return 0;
 }
 
+static int g2d_checkerboard_test(struct exynos_device *dev,
+   struct exynos_bo *src,
+   struct exynos_bo *dst,
+   enum e_g2d_buf_type type)
+{
+   struct g2d_context *ctx;
+   struct g2d_image src_img = {0}, dst_img = {0};
+   unsigned int src_x, src_y, dst_x, dst_y, img_w, img_h;
+   void *checkerboard = NULL;
+   int ret;
+
+   ctx = g2d_init(dev-fd);
+   if (!ctx)
+   return -EFAULT;
+
+   dst_img.bo[0] = dst-handle;
+
+   src_x = 0;
+   src_y = 0;
+   dst_x = 0;
+   dst_y = 0;
+
+   checkerboard = create_checkerboard_pattern(screen_width / 32, 
screen_height / 32, 32);
+   if (checkerboard == NULL) {
+   ret = -1;
+   goto fail;
+   }
+
+   img_w = screen_width - (screen_width % 32);
+   img_h = screen_height - (screen_height % 32);
+
+   switch (type) {
+   case G2D_IMGBUF_GEM:
+   memcpy(src-vaddr, checkerboard, img_w * img_h * 4);
+   src_img.bo[0] = src-handle;
+   break;
+   case G2D_IMGBUF_USERPTR:
+   src_img.user_ptr[0].userptr = (unsigned long)checkerboard;
+   src_img.user_ptr[0].size = img_w * img_h * 4;
+   break;
+   default:
+   ret = -EFAULT;
+   goto fail;
+   }
+
+   printf(checkerboard test with %s.\n,
+   type == G2D_IMGBUF_GEM ? gem : userptr);
+
+   src_img.width = img_w;
+   src_img.height = img_h;
+   src_img.stride = src_img.width * 4;
+   src_img.buf_type = type;
+   src_img.color_mode = G2D_COLOR_FMT_ARGB | G2D_ORDER_AXRGB;
+
+   dst_img.width = screen_width;
+   dst_img.height = screen_height;
+   dst_img.stride = dst_img.width * 4;
+   dst_img.buf_type = G2D_IMGBUF_GEM;
+   dst_img.color_mode = G2D_COLOR_FMT_ARGB | G2D_ORDER_AXRGB;
+   src_img.color = 0xff00;
+   ret = g2d_solid_fill(ctx, dst_img, src_x, src_y, screen_width, 
screen_height);
+   if (ret  0)
+   goto fail;
+
+   ret = g2d_copy(ctx, src_img, dst_img, src_x, src_y, dst_x, dst_y,
+   img_w, img_h);
+   if (ret  0)
+   goto fail;
+
+   g2d_exec(ctx);
+
+fail:
+   free(checkerboard);
+   g2d_fini(ctx);
+
+   return ret;
+}
+
 static struct fimg2d_test_case test_case = {
.solid_fill = g2d_solid_fill_test,
.copy = g2d_copy_test,
.copy_with_scale = g2d_copy_with_scale_test,

[PATCH v3 13/17] exynos: add fimg2d header to common includes

2015-02-24 Thread Tobias Jakobi
The reason for this change is to let userspace use the header.
Currently 'make install' does not install it.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/Makefile.am | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/exynos/Makefile.am b/exynos/Makefile.am
index 1715a85..35bc71f 100644
--- a/exynos/Makefile.am
+++ b/exynos/Makefile.am
@@ -14,11 +14,10 @@ libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
 libdrm_exynos_la_SOURCES = \
exynos_drm.c \
exynos_fimg2d.c \
-   exynos_fimg2d.h \
fimg2d_reg.h
 
 libdrm_exynoscommonincludedir = ${includedir}/exynos
-libdrm_exynoscommoninclude_HEADERS = exynos_drm.h
+libdrm_exynoscommoninclude_HEADERS = exynos_drm.h exynos_fimg2d.h
 
 libdrm_exynosincludedir = ${includedir}/libdrm
 libdrm_exynosinclude_HEADERS = exynos_drmif.h
-- 
2.0.5

--
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


[PATCH v3 03/17] tests/exynos: fix typos and change wording

2015-02-24 Thread Tobias Jakobi
No functional changes.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.c| 8 
 tests/exynos/exynos_fimg2d_test.c | 4 ++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 9c66c3a..df18a08 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -148,13 +148,13 @@ static void g2d_reset(struct g2d_context *ctx)
 }
 
 /*
- * g2d_flush - summit all commands and values in user side command buffer
+ * g2d_flush - submit all commands and values in user side command buffer
  * to command queue aware of fimg2d dma.
  *
  * @ctx: a pointer to g2d_context structure.
  *
  * This function should be called after all commands and values to user
- * side command buffer is set to summit that buffer to kernel side driver.
+ * side command buffer are set. It submits that buffer to the kernel side 
driver.
  */
 static int g2d_flush(struct g2d_context *ctx)
 {
@@ -195,7 +195,7 @@ static int g2d_flush(struct g2d_context *ctx)
 /**
  * g2d_init - create a new g2d context and get hardware version.
  *
- * fd: a file descriptor to drm device driver opened.
+ * fd: a file descriptor to an opened drm device.
  */
 drm_public struct g2d_context *g2d_init(int fd)
 {
@@ -527,7 +527,7 @@ g2d_copy_with_scale(struct g2d_context *ctx, struct 
g2d_image *src,
 }
 
 /**
- * g2d_blend - blend image data in source and destion buffers
+ * g2d_blend - blend image data in source and destination buffers.
  *
  * @ctx: a pointer to g2d_context structure.
  * @src: a pointer to g2d_image structure including image and buffer
diff --git a/tests/exynos/exynos_fimg2d_test.c 
b/tests/exynos/exynos_fimg2d_test.c
index 41fb869..aa140e5 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -39,7 +39,7 @@ static unsigned int screen_width, screen_height;
 /*
  * A structure to test fimg2d hw.
  *
- * @solid_fild: fill given color data to source buffer.
+ * @solid_fill: fill given color data to source buffer.
  * @copy: copy source to destination buffer.
  * @copy_with_scale: copy source to destination buffer scaling up or
  * down properly.
@@ -256,7 +256,7 @@ static int g2d_solid_fill_test(struct exynos_device *dev, 
struct exynos_bo *dst)
memset(img, 0, sizeof(struct g2d_image));
img.bo[0] = dst-handle;
 
-   printf(soild fill test.\n);
+   printf(solid fill test.\n);
 
srand(time(NULL));
img_w = screen_width;
-- 
2.0.5

--
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


[PATCH v3 14/17] exynos: fimg2d: fix comment for G2D_COEFF_MODE_GB_COLOR

2015-02-24 Thread Tobias Jakobi
The coefficient mode enables use of global color, not alpha.

Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/exynos_fimg2d.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/exynos/exynos_fimg2d.h b/exynos/exynos_fimg2d.h
index dbcb764..418757f 100644
--- a/exynos/exynos_fimg2d.h
+++ b/exynos/exynos_fimg2d.h
@@ -159,7 +159,7 @@ enum e_g2d_coeff_mode {
G2D_COEFF_MODE_DST_COLOR,
/* Global Alpha : Set by ALPHA_REG(0x618) */
G2D_COEFF_MODE_GB_ALPHA,
-   /* Global Alpha : Set by ALPHA_REG(0x618) */
+   /* Global Color : Set by ALPHA_REG(0x618) */
G2D_COEFF_MODE_GB_COLOR,
/* (1-SRC alpha)/DST Alpha */
G2D_COEFF_MODE_DISJOINT_S,
-- 
2.0.5

--
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


[PATCH v3 11/17] exynos: add exynos prefix to fimg2d header

2015-02-24 Thread Tobias Jakobi
Signed-off-by: Tobias Jakobi tjak...@math.uni-bielefeld.de
---
 exynos/Makefile.am|   2 +-
 exynos/exynos_fimg2d.c|   2 +-
 exynos/exynos_fimg2d.h| 328 ++
 exynos/fimg2d.h   | 328 --
 tests/exynos/exynos_fimg2d_test.c |   2 +-
 5 files changed, 331 insertions(+), 331 deletions(-)
 create mode 100644 exynos/exynos_fimg2d.h
 delete mode 100644 exynos/fimg2d.h

diff --git a/exynos/Makefile.am b/exynos/Makefile.am
index 06bee00..1715a85 100644
--- a/exynos/Makefile.am
+++ b/exynos/Makefile.am
@@ -14,7 +14,7 @@ libdrm_exynos_la_LIBADD = ../libdrm.la @PTHREADSTUBS_LIBS@
 libdrm_exynos_la_SOURCES = \
exynos_drm.c \
exynos_fimg2d.c \
-   fimg2d.h \
+   exynos_fimg2d.h \
fimg2d_reg.h
 
 libdrm_exynoscommonincludedir = ${includedir}/exynos
diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 746502a..c37670c 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -27,7 +27,7 @@
 #include libdrm.h
 #include exynos_drm.h
 #include fimg2d_reg.h
-#include fimg2d.h
+#include exynos_fimg2d.h
 
 #defineSET_BF(val, sc, si, scsa, scda, dc, di, dcsa, dcda) \
val.data.src_coeff = sc;\
diff --git a/exynos/exynos_fimg2d.h b/exynos/exynos_fimg2d.h
new file mode 100644
index 000..bd116cf
--- /dev/null
+++ b/exynos/exynos_fimg2d.h
@@ -0,0 +1,328 @@
+/*
+ * Copyright (C) 2013 Samsung Electronics Co.Ltd
+ * Authors:
+ * Inki Dae inki@samsung.com
+ *
+ * This program is free software; you can redistribute  it and/or modify it
+ * under  the terms of  the GNU General  Public License as published by the
+ * Free Software Foundation;  either version 2 of the  License, or (at your
+ * option) any later version.
+ *
+ */
+
+#ifndef _FIMG2D_H_
+#define _FIMG2D_H_
+
+#ifndef TRUE
+#define TRUE 0
+#endif
+#ifndef FALSE
+#define FALSE -1
+#endif
+
+#define G2D_MAX_CMD_NR 64
+#define G2D_MAX_GEM_CMD_NR 64
+#define G2D_MAX_CMD_LIST_NR64
+#define G2D_PLANE_MAX_NR   2
+
+enum e_g2d_color_mode {
+   /* COLOR FORMAT */
+   G2D_COLOR_FMT_XRGB,
+   G2D_COLOR_FMT_ARGB,
+   G2D_COLOR_FMT_RGB565,
+   G2D_COLOR_FMT_XRGB1555,
+   G2D_COLOR_FMT_ARGB1555,
+   G2D_COLOR_FMT_XRGB,
+   G2D_COLOR_FMT_ARGB,
+   G2D_COLOR_FMT_PRGB888,
+   G2D_COLOR_FMT_YCbCr444,
+   G2D_COLOR_FMT_YCbCr422,
+   G2D_COLOR_FMT_YCbCr420,
+   /* alpha 8bit */
+   G2D_COLOR_FMT_A8,
+   /* Luminance 8bit: gray color */
+   G2D_COLOR_FMT_L8,
+   /* alpha 1bit */
+   G2D_COLOR_FMT_A1,
+   /* alpha 4bit */
+   G2D_COLOR_FMT_A4,
+   G2D_COLOR_FMT_MASK, /* VER4.1 */
+
+   /* COLOR ORDER */
+   G2D_ORDER_AXRGB = (0  4), /* VER4.1 */
+   G2D_ORDER_RGBAX = (1  4), /* VER4.1 */
+   G2D_ORDER_AXBGR = (2  4), /* VER4.1 */
+   G2D_ORDER_BGRAX = (3  4), /* VER4.1 */
+   G2D_ORDER_MASK  = (3  4), /* VER4.1 */
+
+   /* Number of YCbCr plane */
+   G2D_YCbCr_1PLANE= (0  8), /* VER4.1 */
+   G2D_YCbCr_2PLANE= (1  8), /* VER4.1 */
+   G2D_YCbCr_PLANE_MASK= (3  8), /* VER4.1 */
+
+   /* Order in YCbCr */
+   G2D_YCbCr_ORDER_CrY1CbY0 = (0  12),   /* VER4.1 */
+   G2D_YCbCr_ORDER_CbY1CrY0 = (1  12),   /* VER4.1 */
+   G2D_YCbCr_ORDER_Y1CrY0Cb = (2  12),   /* VER4.1 */
+   G2D_YCbCr_ORDER_Y1CbY0Cr = (3  12),   /* VER4.1 */
+   G2D_YCbCr_ORDER_CrCb = G2D_YCbCr_ORDER_CrY1CbY0,/* VER4.1 */
+   G2D_YCbCr_ORDER_CbCr = G2D_YCbCr_ORDER_CbY1CrY0,/* VER4.1 */
+   G2D_YCbCr_ORDER_MASK = (3  12),/* VER4.1 */
+
+   /* CSC */
+   G2D_CSC_601 = (0  16),/* VER4.1 */
+   G2D_CSC_709 = (1  16),/* VER4.1 */
+   G2D_CSC_MASK = (1  16),   /* VER4.1 */
+
+   /* Valid value range of YCbCr */
+   G2D_YCbCr_RANGE_NARROW = (0  17), /* VER4.1 */
+   G2D_YCbCr_RANGE_WIDE = (1  17),   /* VER4.1 */
+   G2D_YCbCr_RANGE_MASK = (1  17),   /* VER4.1 */
+
+   G2D_COLOR_MODE_MASK = 0x,
+};
+
+enum e_g2d_select_mode {
+   G2D_SELECT_MODE_NORMAL  = (0  0),
+   G2D_SELECT_MODE_FGCOLOR = (1  0),
+   G2D_SELECT_MODE_BGCOLOR = (2  0),
+};
+
+enum e_g2d_repeat_mode {
+   G2D_REPEAT_MODE_REPEAT,
+   G2D_REPEAT_MODE_PAD,
+   G2D_REPEAT_MODE_REFLECT,
+   G2D_REPEAT_MODE_CLAMP,
+   G2D_REPEAT_MODE_NONE,
+};
+
+enum e_g2d_scale_mode {
+   G2D_SCALE_MODE_NONE = 0,
+   G2D_SCALE_MODE_NEAREST,
+   G2D_SCALE_MODE_BILINEAR,
+   G2D_SCALE_MODE_MAX,
+};
+
+enum e_g2d_buf_type {
+   

Re: [PATCH 1/2] thermal: exynos: Fix wrong control of power down detection mode for Exynos7

2015-02-24 Thread Eduardo Valentin
On Tue, Feb 24, 2015 at 01:56:54PM +0900, Chanwoo Choi wrote:
 This patch fixes the wrong control of PD_DET_EN (power down detection mode)
 for Exynos7 because exynos7_tmu_control() always enables the power down 
 detection
 mode regardless 'on' parameter.
 
 Cc: Zhang Rui rui.zh...@intel.com
 Cc: Eduardo Valentin edubez...@gmail.com
 Signed-off-by: Chanwoo Choi cw00.c...@samsung.com

Lukasz,

Any objections to this code?

BR,

Eduardo Valentin

 ---
  drivers/thermal/samsung/exynos_tmu.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/drivers/thermal/samsung/exynos_tmu.c 
 b/drivers/thermal/samsung/exynos_tmu.c
 index 933cd80..a60f527 100644
 --- a/drivers/thermal/samsung/exynos_tmu.c
 +++ b/drivers/thermal/samsung/exynos_tmu.c
 @@ -682,6 +682,7 @@ static void exynos7_tmu_control(struct platform_device 
 *pdev, bool on)
  
   if (on) {
   con |= (1  EXYNOS_TMU_CORE_EN_SHIFT);
 + con |= (1  EXYNOS7_PD_DET_EN_SHIFT);
   interrupt_en =
   (of_thermal_is_trip_valid(tz, 7)
EXYNOS7_TMU_INTEN_RISE7_SHIFT) |
 @@ -704,9 +705,9 @@ static void exynos7_tmu_control(struct platform_device 
 *pdev, bool on)
   interrupt_en  EXYNOS_TMU_INTEN_FALL0_SHIFT;
   } else {
   con = ~(1  EXYNOS_TMU_CORE_EN_SHIFT);
 + con = ~(1  EXYNOS7_PD_DET_EN_SHIFT);
   interrupt_en = 0; /* Disable all interrupts */
   }
 - con |= 1  EXYNOS7_PD_DET_EN_SHIFT;
  
   writel(interrupt_en, data-base + EXYNOS7_TMU_REG_INTEN);
   writel(con, data-base + EXYNOS_TMU_REG_CONTROL);
 -- 
 1.8.5.5
 


signature.asc
Description: Digital signature


Re: [PATCH v4 2/8] thermal: Provide stub for thermal_cdev_update() function

2015-02-24 Thread Eduardo Valentin
On Wed, Feb 18, 2015 at 11:07:30AM +0100, Lukasz Majewski wrote:
 Odroid U3 fan can work without being registered as OF cooling device
 (with CONFIG_THERMAL{_OF|} disabled).
 In this situation it can be controlled via PWM entry at
 /sys/class/hwmon/hwmon0/pwm1.
 
 Therefore, the thermal_cdev_update() function needs a stub
 to allow clean compilation.

I've just applied a patch on this same matter from Nishanth Menon [1].
Can you please check if his patch is enough for you?

[1] -
https://git.kernel.org/cgit/linux/kernel/git/evalenti/linux-soc-thermal.git/commit/?h=fixesid=12ca7188468ee29c4e717f73db4bf43c90954fc7

 
 Signed-off-by: Lukasz Majewski l.majew...@samsung.com
 ---
 Changes for v2:
 - New patch
 Changes for v3:
 - thermal_cdev_update() now depends on CONFIG_THERMAL flag
 Changes for v4:
 - None
 ---
  include/linux/thermal.h | 5 -
  1 file changed, 4 insertions(+), 1 deletion(-)
 
 diff --git a/include/linux/thermal.h b/include/linux/thermal.h
 index eacf2de..25382e6 100644
 --- a/include/linux/thermal.h
 +++ b/include/linux/thermal.h
 @@ -298,6 +298,7 @@ struct thermal_cooling_device *
  thermal_of_cooling_device_register(struct device_node *np,
  char *type, void *devdata,
  const struct thermal_cooling_device_ops *);
 +void thermal_cdev_update(struct thermal_cooling_device *);
  #else
  static inline struct thermal_cooling_device *
  thermal_of_cooling_device_register(struct device_node *np,
 @@ -306,6 +307,9 @@ thermal_of_cooling_device_register(struct device_node *np,
  {
   return NULL;
  }
 +static inline void thermal_cdev_update(struct thermal_cooling_device *cdev)
 +{
 +}
  #endif
  #ifdef CONFIG_THERMAL_OF
  struct thermal_zone_device *
 @@ -349,7 +353,6 @@ int thermal_zone_get_temp(struct thermal_zone_device *tz, 
 unsigned long *temp);
  int get_tz_trend(struct thermal_zone_device *, int);
  struct thermal_instance *get_thermal_instance(struct thermal_zone_device *,
   struct thermal_cooling_device *, int);
 -void thermal_cdev_update(struct thermal_cooling_device *);
  void thermal_notify_framework(struct thermal_zone_device *, int);
  
  #ifdef CONFIG_NET
 -- 
 2.0.0.rc2
 


signature.asc
Description: Digital signature


Re: [PATCH v4 1/8] thermal: Provide stub for thermal_of_cooling_device_register() function

2015-02-24 Thread Eduardo Valentin
On Wed, Feb 18, 2015 at 11:07:29AM +0100, Lukasz Majewski wrote:
 Odroid U3 fan can work without being registered as OF cooling device
 (with CONFIG_THERMAL_OF disabled).
 In this situation it can be controlled via PWM entry at
 /sys/class/hwmon/hwmon0/pwm1.
 
 Therefore, the thermal_of_cooling_device_register() function needs a stub
 to allow clean compilation.


I've just applied a patch on this same matter from Nishanth Menon [1].
Can you please check if his patch is enough for you?

[1] -
https://git.kernel.org/cgit/linux/kernel/git/evalenti/linux-soc-thermal.git/commit/?h=fixesid=12ca7188468ee29c4e717f73db4bf43c90954fc7


 
 Signed-off-by: Lukasz Majewski l.majew...@samsung.com
 ---
 Changes for v2:
 - None
 Changes for v3:
 - Provide stub declaration when CONFIG_THERMAL is not set
 Changes for v4:
 - None
 ---
  include/linux/thermal.h | 17 ++---
  1 file changed, 14 insertions(+), 3 deletions(-)
 
 diff --git a/include/linux/thermal.h b/include/linux/thermal.h
 index fc52e30..eacf2de 100644
 --- a/include/linux/thermal.h
 +++ b/include/linux/thermal.h
 @@ -293,6 +293,20 @@ struct thermal_trip {
  };
  
  /* Function declarations */
 +#ifdef CONFIG_THERMAL
 +struct thermal_cooling_device *
 +thermal_of_cooling_device_register(struct device_node *np,
 +char *type, void *devdata,
 +const struct thermal_cooling_device_ops *);
 +#else
 +static inline struct thermal_cooling_device *
 +thermal_of_cooling_device_register(struct device_node *np,
 +char *type, void *devdata,
 +const struct thermal_cooling_device_ops *ops)
 +{
 + return NULL;
 +}
 +#endif
  #ifdef CONFIG_THERMAL_OF
  struct thermal_zone_device *
  thermal_zone_of_sensor_register(struct device *dev, int id, void *data,
 @@ -328,9 +342,6 @@ void thermal_zone_device_update(struct 
 thermal_zone_device *);
  
  struct thermal_cooling_device *thermal_cooling_device_register(char *, void 
 *,
   const struct thermal_cooling_device_ops *);
 -struct thermal_cooling_device *
 -thermal_of_cooling_device_register(struct device_node *np, char *, void *,
 -const struct thermal_cooling_device_ops *);
  void thermal_cooling_device_unregister(struct thermal_cooling_device *);
  struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name);
  int thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned long 
 *temp);
 -- 
 2.0.0.rc2
 


signature.asc
Description: Digital signature


Re: [PATCH v4 3/8] Documentation: dts: Documentation entry to explain how to use PWM FAN as a cooling device

2015-02-24 Thread Eduardo Valentin
On Wed, Feb 18, 2015 at 11:07:31AM +0100, Lukasz Majewski wrote:
 Explanation of several properties, which allow PWM fan working as a cooling
 device, have been embraced in this commit.
 
 Signed-off-by: Lukasz Majewski l.majew...@samsung.com
 ---
 Changes for v2:
 - Rename cooling-pwm-values to cooling-levels
 - Remove default-pulse-width property and stick to default hwmon policy
 Changes for v3:
 - Changing commit title from hwmon: dts: Doc: to Documentation: dts
 - Remove unnecessary properties
 - Set maximal cooling level to 230 instead of 255
 Changes for v4:
 - None
 ---
  Documentation/devicetree/bindings/hwmon/pwm-fan.txt | 20 
  1 file changed, 20 insertions(+)
 
 diff --git a/Documentation/devicetree/bindings/hwmon/pwm-fan.txt 
 b/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
 index 610757c..d53fe0c 100644
 --- a/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
 +++ b/Documentation/devicetree/bindings/hwmon/pwm-fan.txt
 @@ -3,10 +3,30 @@ Bindings for a fan connected to the PWM lines
  Required properties:
  - compatible : pwm-fan
  - pwms   : the PWM that is used to control the PWM fan
 +- cooling-levels  : PWM duty cycle values in a range from 0 to 255
 + which correspond to thermal cooling states
 +
 +Thorough description of the following bindings:
 + cooling-min-state = 0;
 + cooling-max-state = 3;
 + #cooling-cells = 2;
 + thermal-zone {
 + cpu_thermal: cpu-thermal {
 + cooling-maps {
 + map0 {
 +  trip = cpu_alert1;
 +  cooling-device = fan0 0 1;
 + };
 + };
 + };

I am fine if you leave the reference to thermal.txt biding description,
but I would prefer if you move the above lines to a proper example section.

 +
 +for PWM FAN used as cooling device can be found at:
 +./Documentation/devicetree/bindings/thermal/thermal.txt
  
  Example:
   pwm-fan {
   compatible = pwm-fan;
   status = okay;
   pwms = pwm 0 1 0;
 + cooling-levels = 0 102 170 230;
   };
 -- 
 2.0.0.rc2
 


signature.asc
Description: Digital signature


Re: [PATCH V5 1/2] mmc: dw_mmc: exynos: Support eMMC's HS400 mode

2015-02-24 Thread Jaehoon Chung
Hi, Alim.

Tested-by: Jaehoon Chung jh80.ch...@samsung.com
Acked-by: Jaehoon Chung jh80.ch...@samsung.com

I will include this patch into my tree, and i will request pull to Ulf.

Thanks!

Best Regards,
Jaehoon Chung

On 01/29/2015 11:41 AM, Alim Akhtar wrote:
 From: Seungwon Jeon tgih@samsung.com
 
 Implements HS400 mode support for exynos host driver.
 This also include some updates as new mode is added.
 
 Signed-off-by: Seungwon Jeon tgih@samsung.com
 Signed-off-by: Alim Akhtar alim.akh...@samsung.com
 [Alim: addressed review comments]
 ---
  .../devicetree/bindings/mmc/exynos-dw-mshc.txt |7 +
  drivers/mmc/host/dw_mmc-exynos.c   |  185 
 
  drivers/mmc/host/dw_mmc-exynos.h   |   19 +-
  drivers/mmc/host/dw_mmc.c  |   16 +-
  drivers/mmc/host/dw_mmc.h  |2 +
  5 files changed, 195 insertions(+), 34 deletions(-)
 
 diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt 
 b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
 index ee4fc05..aad9844 100644
 --- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
 +++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
 @@ -36,6 +36,8 @@ Required Properties:
in transmit mode and CIU clock phase shift value in receive mode for double
data rate mode operation. Refer notes below for the order of the cells and 
 the
valid values.
 +* samsung,dw-mshc-hs400-timing: Specifies the value of CIU TX and RX clock 
 phase
 +  shift value for hs400 mode operation.
  
Notes for the sdr-timing and ddr-timing values:
  
 @@ -50,6 +52,9 @@ Required Properties:
- if CIU clock divider value is 0 (that is divide by 1), both tx and rx
  phase shift clocks should be 0.
  
 +* samsung,read-strobe-delay: RCLK (Data strobe) delay to control HS400 mode
 +  (Latency value for delay line in Read path)
 +
  Required properties for a slot (Deprecated - Recommend to use one slot per 
 host):
  
  * gpios: specifies a list of gpios used for command, clock and data bus. The
 @@ -82,5 +87,7 @@ Example:
   samsung,dw-mshc-ciu-div = 3;
   samsung,dw-mshc-sdr-timing = 2 3;
   samsung,dw-mshc-ddr-timing = 1 2;
 + samsung,dw-mshc-hs400-timing = 0 2;
 + samsung,read-strobe-delay = 90;
   bus-width = 8;
   };
 diff --git a/drivers/mmc/host/dw_mmc-exynos.c 
 b/drivers/mmc/host/dw_mmc-exynos.c
 index fe32948..0a56d76 100644
 --- a/drivers/mmc/host/dw_mmc-exynos.c
 +++ b/drivers/mmc/host/dw_mmc-exynos.c
 @@ -40,7 +40,12 @@ struct dw_mci_exynos_priv_data {
   u8  ciu_div;
   u32 sdr_timing;
   u32 ddr_timing;
 + u32 hs400_timing;
 + u32 tuned_sample;
   u32 cur_speed;
 + u32 dqs_delay;
 + u32 saved_dqs_en;
 + u32 saved_strobe_ctrl;
  };
  
  static struct dw_mci_exynos_compatible {
 @@ -71,6 +76,21 @@ static struct dw_mci_exynos_compatible {
   },
  };
  
 +static inline u8 dw_mci_exynos_get_ciu_div(struct dw_mci *host)
 +{
 + struct dw_mci_exynos_priv_data *priv = host-priv;
 +
 + if (priv-ctrl_type == DW_MCI_TYPE_EXYNOS4412)
 + return EXYNOS4412_FIXED_CIU_CLK_DIV;
 + else if (priv-ctrl_type == DW_MCI_TYPE_EXYNOS4210)
 + return EXYNOS4210_FIXED_CIU_CLK_DIV;
 + else if (priv-ctrl_type == DW_MCI_TYPE_EXYNOS7 ||
 + priv-ctrl_type == DW_MCI_TYPE_EXYNOS7_SMU)
 + return SDMMC_CLKSEL_GET_DIV(mci_readl(host, CLKSEL64)) + 1;
 + else
 + return SDMMC_CLKSEL_GET_DIV(mci_readl(host, CLKSEL)) + 1;
 +}
 +
  static int dw_mci_exynos_priv_init(struct dw_mci *host)
  {
   struct dw_mci_exynos_priv_data *priv = host-priv;
 @@ -85,6 +105,16 @@ static int dw_mci_exynos_priv_init(struct dw_mci *host)
  SDMMC_MPSCTRL_NON_SECURE_WRITE_BIT);
   }
  
 + if (priv-ctrl_type = DW_MCI_TYPE_EXYNOS5420) {
 + priv-saved_strobe_ctrl = mci_readl(host, HS400_DLINE_CTRL);
 + priv-saved_dqs_en = mci_readl(host, HS400_DQS_EN);
 + priv-saved_dqs_en |= AXI_NON_BLOCKING_WR;
 + mci_writel(host, HS400_DQS_EN, priv-saved_dqs_en);
 + if (!priv-dqs_delay)
 + priv-dqs_delay =
 + DQS_CTRL_GET_RD_DELAY(priv-saved_strobe_ctrl);
 + }
 +
   return 0;
  }
  
 @@ -97,6 +127,26 @@ static int dw_mci_exynos_setup_clock(struct dw_mci *host)
   return 0;
  }
  
 +static void dw_mci_exynos_set_clksel_timing(struct dw_mci *host, u32 timing)
 +{
 + struct dw_mci_exynos_priv_data *priv = host-priv;
 + u32 clksel;
 +
 + if (priv-ctrl_type == DW_MCI_TYPE_EXYNOS7 ||
 +

Re: [PATCH V5 2/2] ARM: dts: Add HS400 support for exynos5420 and exynos5800

2015-02-24 Thread Jaehoon Chung
Hi, Alim.

Acked-by: Jaehoon Chung jh80.ch...@samsung.com

Best Regards,
Jaehoon Chung

On 01/29/2015 11:41 AM, Alim Akhtar wrote:
 From: Seungwon Jeon tgih@samsung.com
 
 HS400 timing values are added for SMDK5420, exynos5420-peach-pit
 and exynos5800-peach-pi boards.
 This also adds RCLK GPIO line, this gpio should be in pull-down
 state.
 This also enables HS400 on peach-pi and this updates the clock frequency
 to 800MHz to be set as input clock to controller.
 
 Signed-off-by: Seungwon Jeon tgih@samsung.com
 Signed-off-by: Alim Akhtar alim.akh...@samsung.com
 [Alim: addressed review comments]
 ---
  arch/arm/boot/dts/exynos5420-peach-pit.dts |4 +++-
  arch/arm/boot/dts/exynos5420-pinctrl.dtsi  |7 +++
  arch/arm/boot/dts/exynos5420-smdk5420.dts  |4 +++-
  arch/arm/boot/dts/exynos5800-peach-pi.dts  |7 +--
  4 files changed, 18 insertions(+), 4 deletions(-)
 
 diff --git a/arch/arm/boot/dts/exynos5420-peach-pit.dts 
 b/arch/arm/boot/dts/exynos5420-peach-pit.dts
 index 9a050e1..f7a44a4 100644
 --- a/arch/arm/boot/dts/exynos5420-peach-pit.dts
 +++ b/arch/arm/boot/dts/exynos5420-peach-pit.dts
 @@ -569,8 +569,10 @@
   samsung,dw-mshc-ciu-div = 3;
   samsung,dw-mshc-sdr-timing = 0 4;
   samsung,dw-mshc-ddr-timing = 0 2;
 + samsung,dw-mshc-hs400-timing = 0 2;
 + samsung,read-strobe-delay = 90;
   pinctrl-names = default;
 - pinctrl-0 = sd0_clk sd0_cmd sd0_bus4 sd0_bus8;
 + pinctrl-0 = sd0_clk sd0_cmd sd0_bus4 sd0_bus8 sd0_rclk;
   bus-width = 8;
  };
  
 diff --git a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi 
 b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
 index ba686e4..8b15316 100644
 --- a/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
 +++ b/arch/arm/boot/dts/exynos5420-pinctrl.dtsi
 @@ -201,6 +201,13 @@
   samsung,pin-drv = 3;
   };
  
 + sd0_rclk: sd0-rclk {
 + samsung,pins = gpc0-7;
 + samsung,pin-function = 2;
 + samsung,pin-pud = 1;
 + samsung,pin-drv = 3;
 + };
 +
   sd1_cmd: sd1-cmd {
   samsung,pins = gpc1-1;
   samsung,pin-function = 2;
 diff --git a/arch/arm/boot/dts/exynos5420-smdk5420.dts 
 b/arch/arm/boot/dts/exynos5420-smdk5420.dts
 index 8be3d7b..2078a1f 100644
 --- a/arch/arm/boot/dts/exynos5420-smdk5420.dts
 +++ b/arch/arm/boot/dts/exynos5420-smdk5420.dts
 @@ -80,8 +80,10 @@
   samsung,dw-mshc-ciu-div = 3;
   samsung,dw-mshc-sdr-timing = 0 4;
   samsung,dw-mshc-ddr-timing = 0 2;
 + samsung,dw-mshc-hs400-timing = 0 2;
 + samsung,read-strobe-delay = 90;
   pinctrl-names = default;
 - pinctrl-0 = sd0_clk sd0_cmd sd0_bus4 sd0_bus8;
 + pinctrl-0 = sd0_clk sd0_cmd sd0_bus4 sd0_bus8 sd0_rclk;
   bus-width = 8;
   cap-mmc-highspeed;
   };
 diff --git a/arch/arm/boot/dts/exynos5800-peach-pi.dts 
 b/arch/arm/boot/dts/exynos5800-peach-pi.dts
 index e8fdda8..96f0d61 100644
 --- a/arch/arm/boot/dts/exynos5800-peach-pi.dts
 +++ b/arch/arm/boot/dts/exynos5800-peach-pi.dts
 @@ -550,15 +550,18 @@
   num-slots = 1;
   broken-cd;
   mmc-hs200-1_8v;
 + mmc-hs400-1_8v;
   cap-mmc-highspeed;
   non-removable;
   card-detect-delay = 200;
 - clock-frequency = 4;
 + clock-frequency = 8;
   samsung,dw-mshc-ciu-div = 3;
   samsung,dw-mshc-sdr-timing = 0 4;
   samsung,dw-mshc-ddr-timing = 0 2;
 + samsung,dw-mshc-hs400-timing = 0 2;
 + samsung,read-strobe-delay = 90;
   pinctrl-names = default;
 - pinctrl-0 = sd0_clk sd0_cmd sd0_bus4 sd0_bus8;
 + pinctrl-0 = sd0_clk sd0_cmd sd0_bus4 sd0_bus8 sd0_rclk;
   bus-width = 8;
  };
  
 

--
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] clk: samsung: Add CLKOUT driver support for Exynos3250 SoC.

2015-02-24 Thread Tomasz Figa
Hi Inha,

Thanks for the patch. Please see my comments inline.

2015-02-24 18:22 GMT+09:00 Inha Song ideal.s...@samsung.com:
 This patch add CLKOUT driver support for Exynos3250 SoC.

Could you please add a little more information? I know that it might
be pretty obvious to people familiar with this driver and/or hardware,
but it might be a good idea to explicitly say that the CLKOUT
controller is compatible with Exynos4, so only a new compatible string
is added.

On the other hand, do you really need to add a new compatible string
if an existing one can be reused? The reason why the DT property is
called compatible is to be able to use the same compatible strings
on different devices, because they are compatible, even though the
string might have its name after only one of them. If there is some
additional reason to add a new compatible string, please write this in
commit message.


 Signed-off-by: Inha Song ideal.s...@samsung.com
 ---
  drivers/clk/samsung/clk-exynos-clkout.c | 2 ++
  1 file changed, 2 insertions(+)

 diff --git a/drivers/clk/samsung/clk-exynos-clkout.c 
 b/drivers/clk/samsung/clk-exynos-clkout.c
 index 3a7cb25..1c02e73 100644
 --- a/drivers/clk/samsung/clk-exynos-clkout.c
 +++ b/drivers/clk/samsung/clk-exynos-clkout.c
 @@ -142,6 +142,8 @@ CLK_OF_DECLARE(exynos4212_clkout, 
 samsung,exynos4212-pmu,
 exynos4_clkout_init);
  CLK_OF_DECLARE(exynos4412_clkout, samsung,exynos4412-pmu,
 exynos4_clkout_init);
 +CLK_OF_DECLARE(exynos3250_clkout, samsung,exynos3250-pmu,
 +   exynos4_clkout_init);

Are you sure that the PMU DEBUG register on Exynos3250 is indeed
compatible with Exynos4 and not with newer SoCs? AFAIR, the only
difference was the number of bits (4 on Exynos4 and 5 on Exynos5?) of
the main mux.

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 v5 0/2] irqchip: Move Exynos PM to use stacked domains

2015-02-24 Thread Kukjin Kim
Marc Zyngier wrote:
 
 Hi Pakaj,
 
Hi Marc and Pankaj,

 On 24/02/15 10:09, Pankaj Dubey wrote:
  Hi Mark,
 
  On Monday 23 February 2015 11:15 PM, Marc Zyngier wrote:
  This series is extracted from [4], which is trying to remove all
  traces of gic_arch_extn from the tree. As some maintainers are more
  responsive than others (understatement of the year...), I've decided
  to split it per sub-arch, and get it moving, at least partially.
 
  This series addresses Exynos by converting its PM support to a stacked
  domain on top of the standard GIC.
 
  Based on 4.0-rc1.
 
  * From v4: [4]
  - Extracted from the full series
  - Rebased on 4.0-rc1
 
  * From v3 [3]:
  - Rebased on top of the patch working around hardcoded IRQ on OMAP4/5 [4]
  - Fixed more iMX6 DTs (Stephan)
  - Fixed Exynos4/5 DTs
 
  * From v2 [2]:
  - Addressed numerous comments from Thierry
  - Merged bug fixes from Nishanth
  - Merged bug fix from Stefan
 
  * From v1 [1]:
  - Rebased on 3.19-rc3
  - Fixed a number of additional platforms
  - Added crossbar conversion to stacked domains
  - Merged bug fixes from Nishanth
 
  [4]: 
  http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/317531.html
  [3]: 
  http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/315385.html
  [2]: 
  http://lists.infradead.org/pipermail/linux-arm-kernel/2015-January/314041.html
  [1]: 
  http://lists.infradead.org/pipermail/linux-arm-kernel/2014-November/307338.html
 
  Marc Zyngier (2):
 ARM: exynos4/5: convert pmu wakeup to stacked domains
 DT: exynos: update PMU binding
 
.../devicetree/bindings/arm/samsung/pmu.txt|  17 +++
arch/arm/boot/dts/exynos4.dtsi |   4 +
arch/arm/boot/dts/exynos5250.dtsi  |   4 +
arch/arm/boot/dts/exynos5420.dtsi  |   4 +
arch/arm/mach-exynos/exynos.c  |  14 +--
arch/arm/mach-exynos/suspend.c | 122 
  +++--
6 files changed, 146 insertions(+), 19 deletions(-)
 
 
  I tested and verified S2R functionality on Exynos5250 based SMDK5250
  board, and suspend-resume working fine. For testing on SMDK5250 you can
  add my tested-by.
 
  Tested-by: Pankaj Dubey pankaj.du...@samsung.com
 
 Thanks. Will you or Kukjin get that merged directly?
 
OK, I'll take this series in Samsung tree.

Thanks,
Kukjin

--
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