[PATCH 0/4] cpufreq: use generic cpufreq drivers for Exynos5250 platform

2015-04-13 Thread Bartlomiej Zolnierkiewicz
Hi,

This patch series removes the use of Exynos5250 specific support
from exynos-cpufreq driver and enables the use of cpufreq-dt driver
for this platform.  The exynos-cpufreq driver itself is also removed
as it is no longer used/needed after Exynos5250 support removal.

This patch series has been tested on Exynos5250 based Arndale board.

Depends on:
- next-20150330 branch of linux-next kernel tree
- [PATCH 0/6] cpufreq: use generic cpufreq drivers for Exynos4210
  platform [1]
- [PATCH 0/6] cpufreq: use generic cpufreq drivers for Exynos4x12
  platform [2]
- [PATCH] cpufreq: exynos: remove dead -need_apll_change method [3]

[1] http://www.kernelhub.org/?msg=721136p=2
[2] http://marc.info/?l=linux-pmm=142868881101873w=2
[3] https://lkml.org/lkml/2015/3/27/574

Best regards,
--
Bartlomiej Zolnierkiewicz
Samsung RD Institute Poland
Samsung Electronics

Bartlomiej Zolnierkiewicz (1):
  cpufreq: exynos: remove Exynos5250 specific cpufreq driver support

Thomas Abraham (3):
  clk: samsung: exynos5250: add cpu clock configuration data and
instantiate cpu clock
  ARM: dts: Exynos5250: add CPU OPP and regulator supply property
  ARM: Exynos: switch to using generic cpufreq driver for Exynos5250

 arch/arm/boot/dts/exynos5250-arndale.dts  |4 +
 arch/arm/boot/dts/exynos5250-smdk5250.dts |4 +
 arch/arm/boot/dts/exynos5250-snow.dts |4 +
 arch/arm/boot/dts/exynos5250-spring.dts   |4 +
 arch/arm/boot/dts/exynos5250.dtsi |   22 +++
 arch/arm/mach-exynos/exynos.c |1 +
 drivers/clk/samsung/clk-exynos5250.c  |   31 +
 drivers/cpufreq/Kconfig.arm   |   22 ---
 drivers/cpufreq/Makefile  |3 -
 drivers/cpufreq/exynos-cpufreq.c  |  203 
 drivers/cpufreq/exynos-cpufreq.h  |   67 -
 drivers/cpufreq/exynos5250-cpufreq.c  |  210 -
 include/dt-bindings/clock/exynos5250.h|1 +
 13 files changed, 71 insertions(+), 505 deletions(-)
 delete mode 100644 drivers/cpufreq/exynos-cpufreq.c
 delete mode 100644 drivers/cpufreq/exynos-cpufreq.h
 delete mode 100644 drivers/cpufreq/exynos5250-cpufreq.c

-- 
1.7.9.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 1/4] clk: samsung: exynos5250: add cpu clock configuration data and instantiate cpu clock

2015-04-13 Thread Bartlomiej Zolnierkiewicz
From: Thomas Abraham thomas...@samsung.com

With the addition of the new Samsung specific cpu-clock type, the
arm clock can be represented as a cpu-clock type. Add the CPU clock
configuration data and instantiate the CPU clock type for Exynos5250.

Changes by Bartlomiej:
- split Exynos5250 support from the original patch
- moved E5250_CPU_DIV[0,1]() macros to clk-exynos5250.c

Cc: Tomasz Figa tomasz.f...@gmail.com
Cc: Mike Turquette mturque...@linaro.org
Cc: Javier Martinez Canillas javier.marti...@collabora.co.uk
Signed-off-by: Thomas Abraham thomas...@samsung.com
Signed-off-by: Bartlomiej Zolnierkiewicz b.zolnier...@samsung.com
---
 drivers/clk/samsung/clk-exynos5250.c   |   31 +++
 include/dt-bindings/clock/exynos5250.h |1 +
 2 files changed, 32 insertions(+)

diff --git a/drivers/clk/samsung/clk-exynos5250.c 
b/drivers/clk/samsung/clk-exynos5250.c
index 70ec3d2..d87f34d 100644
--- a/drivers/clk/samsung/clk-exynos5250.c
+++ b/drivers/clk/samsung/clk-exynos5250.c
@@ -19,6 +19,7 @@
 #include linux/syscore_ops.h
 
 #include clk.h
+#include clk-cpu.h
 
 #define APLL_LOCK  0x0
 #define APLL_CON0  0x100
@@ -748,6 +749,32 @@ static struct samsung_pll_clock exynos5250_plls[nr_plls] 
__initdata = {
VPLL_LOCK, VPLL_CON0, NULL),
 };
 
+#define E5250_CPU_DIV0(apll, pclk_dbg, atb, periph, acp, cpud) \
+   apll)  24) | ((pclk_dbg)  20) | ((atb)  16) | \
+((periph)  12) | ((acp)  8) | ((cpud)  4)))
+#define E5250_CPU_DIV1(hpm, copy)  \
+   (((hpm)  4) | (copy))
+
+static const struct exynos_cpuclk_cfg_data exynos5250_armclk_d[] __initconst = 
{
+   { 170, E5250_CPU_DIV0(5, 3, 7, 7, 7, 3), E5250_CPU_DIV1(2, 0), },
+   { 160, E5250_CPU_DIV0(4, 1, 7, 7, 7, 3), E5250_CPU_DIV1(2, 0), },
+   { 150, E5250_CPU_DIV0(4, 1, 7, 7, 7, 2), E5250_CPU_DIV1(2, 0), },
+   { 140, E5250_CPU_DIV0(4, 1, 6, 7, 7, 2), E5250_CPU_DIV1(2, 0), },
+   { 130, E5250_CPU_DIV0(3, 1, 6, 7, 7, 2), E5250_CPU_DIV1(2, 0), },
+   { 120, E5250_CPU_DIV0(3, 1, 5, 7, 7, 2), E5250_CPU_DIV1(2, 0), },
+   { 110, E5250_CPU_DIV0(3, 1, 5, 7, 7, 3), E5250_CPU_DIV1(2, 0), },
+   { 100, E5250_CPU_DIV0(2, 1, 4, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  90, E5250_CPU_DIV0(2, 1, 4, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  80, E5250_CPU_DIV0(2, 1, 4, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  70, E5250_CPU_DIV0(1, 1, 3, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  60, E5250_CPU_DIV0(1, 1, 3, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  50, E5250_CPU_DIV0(1, 1, 2, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  40, E5250_CPU_DIV0(1, 1, 2, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  30, E5250_CPU_DIV0(1, 1, 1, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  20, E5250_CPU_DIV0(1, 1, 1, 7, 7, 1), E5250_CPU_DIV1(2, 0), },
+   {  0 },
+};
+
 static const struct of_device_id ext_clk_match[] __initconst = {
{ .compatible = samsung,clock-xxti, .data = (void *)0, },
{ },
@@ -797,6 +824,10 @@ static void __init exynos5250_clk_init(struct device_node 
*np)
ARRAY_SIZE(exynos5250_div_clks));
samsung_clk_register_gate(ctx, exynos5250_gate_clks,
ARRAY_SIZE(exynos5250_gate_clks));
+   exynos_register_cpu_clock(ctx, CLK_ARM_CLK, armclk,
+   mout_cpu_p[0], mout_cpu_p[1], 0x200,
+   exynos5250_armclk_d, ARRAY_SIZE(exynos5250_armclk_d),
+   CLK_CPU_HAS_DIV1);
 
/*
 * Enable arm clock down (in idle) and set arm divider
diff --git a/include/dt-bindings/clock/exynos5250.h 
b/include/dt-bindings/clock/exynos5250.h
index 4273891d..8183d1c 100644
--- a/include/dt-bindings/clock/exynos5250.h
+++ b/include/dt-bindings/clock/exynos5250.h
@@ -21,6 +21,7 @@
 #define CLK_FOUT_CPLL  6
 #define CLK_FOUT_EPLL  7
 #define CLK_FOUT_VPLL  8
+#define CLK_ARM_CLK9
 
 /* gate for special clocks (sclk) */
 #define CLK_SCLK_CAM_BAYER 128
-- 
1.7.9.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 2/4] ARM: dts: Exynos5250: add CPU OPP and regulator supply property

2015-04-13 Thread Bartlomiej Zolnierkiewicz
From: Thomas Abraham thomas...@samsung.com

For Exynos5250 platforms, add CPU operating points and CPU
regulator supply properties for migrating from Exynos specific
cpufreq driver to using generic cpufreq driver.

Changes by Bartlomiej:
- split Exynos5250 support from the original patch
- added CPU regulator supply property for Google Spring board

Cc: Kukjin Kim kgene@samsung.com
Cc: Doug Anderson diand...@chromium.org
Cc: Javier Martinez Canillas javier.marti...@collabora.co.uk
Cc: Andreas Faerber afaer...@suse.de
Cc: Sachin Kamat sachin.ka...@linaro.org
Cc: Andreas Farber afaer...@suse.de
Signed-off-by: Thomas Abraham thomas...@samsung.com
Signed-off-by: Bartlomiej Zolnierkiewicz b.zolnier...@samsung.com
---
 arch/arm/boot/dts/exynos5250-arndale.dts  |4 
 arch/arm/boot/dts/exynos5250-smdk5250.dts |4 
 arch/arm/boot/dts/exynos5250-snow.dts |4 
 arch/arm/boot/dts/exynos5250-spring.dts   |4 
 arch/arm/boot/dts/exynos5250.dtsi |   22 ++
 5 files changed, 38 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts 
b/arch/arm/boot/dts/exynos5250-arndale.dts
index 7e728a1..c64cec3 100644
--- a/arch/arm/boot/dts/exynos5250-arndale.dts
+++ b/arch/arm/boot/dts/exynos5250-arndale.dts
@@ -560,3 +560,7 @@
status = okay;
samsung,exynos-sataphy-i2c-phandle = sata_phy_i2c;
 };
+
+cpu0 {
+   cpu0-supply = buck2_reg;
+};
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts 
b/arch/arm/boot/dts/exynos5250-smdk5250.dts
index bc27cc2..d91db82 100644
--- a/arch/arm/boot/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts
@@ -410,3 +410,7 @@
};
};
 };
+
+cpu0 {
+   cpu0-supply = buck2_reg;
+};
diff --git a/arch/arm/boot/dts/exynos5250-snow.dts 
b/arch/arm/boot/dts/exynos5250-snow.dts
index 2657e84..700bbc8 100644
--- a/arch/arm/boot/dts/exynos5250-snow.dts
+++ b/arch/arm/boot/dts/exynos5250-snow.dts
@@ -301,6 +301,10 @@
vdd_pll-supply = ldo8_reg;
 };
 
+cpu0 {
+   cpu0-supply = buck2_reg;
+};
+
 i2c_0 {
status = okay;
samsung,i2c-sda-delay = 100;
diff --git a/arch/arm/boot/dts/exynos5250-spring.dts 
b/arch/arm/boot/dts/exynos5250-spring.dts
index d03f9b8..38b54d9 100644
--- a/arch/arm/boot/dts/exynos5250-spring.dts
+++ b/arch/arm/boot/dts/exynos5250-spring.dts
@@ -99,6 +99,10 @@
vdd_pll-supply = ldo8_reg;
 };
 
+cpu0 {
+   cpu0-supply = buck2_reg;
+};
+
 i2c_0 {
status = okay;
samsung,i2c-sda-delay = 100;
diff --git a/arch/arm/boot/dts/exynos5250.dtsi 
b/arch/arm/boot/dts/exynos5250.dtsi
index 257e2f1..c1f7811 100644
--- a/arch/arm/boot/dts/exynos5250.dtsi
+++ b/arch/arm/boot/dts/exynos5250.dtsi
@@ -63,6 +63,28 @@
compatible = arm,cortex-a15;
reg = 0;
clock-frequency = 17;
+   clocks = clock CLK_ARM_CLK;
+   clock-names = cpu;
+   clock-latency = 14;
+
+   operating-points = 
+   170 130
+   160 125
+   150 1225000
+   140 120
+   130 115
+   120 1125000
+   110 110
+   100 1075000
+90 105
+80 1025000
+70 1012500
+60 100
+50  975000
+40  95
+30  937500
+20  925000
+   ;
cooling-min-level = 15;
cooling-max-level = 9;
#cooling-cells = 2; /* min followed by max */
-- 
1.7.9.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 3/4] ARM: Exynos: switch to using generic cpufreq driver for Exynos5250

2015-04-13 Thread Bartlomiej Zolnierkiewicz
From: Thomas Abraham thomas...@samsung.com

The new CPU clock type allows the use of generic CPUfreq driver.
Switch Exynos5250 to using generic cpufreq driver.

Changes by Bartlomiej:
- split Exynos5250 support from the original patch

Cc: Tomasz Figa tomasz.f...@gmail.com
Cc: Kukjin Kim kgene@samsung.com
Cc: Javier Martinez Canillas javier.marti...@collabora.co.uk
Signed-off-by: Thomas Abraham thomas...@samsung.com
Signed-off-by: Bartlomiej Zolnierkiewicz b.zolnier...@samsung.com
---
 arch/arm/mach-exynos/exynos.c |1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-exynos/exynos.c b/arch/arm/mach-exynos/exynos.c
index 637d862..4b03a32 100644
--- a/arch/arm/mach-exynos/exynos.c
+++ b/arch/arm/mach-exynos/exynos.c
@@ -206,6 +206,7 @@ struct cpufreq_dt_platform_data cpufreq_dt_pd = {
 
 static const struct of_device_id exynos_cpufreq_matches[] = {
{ .compatible = samsung,exynos4210, .data = cpufreq-dt },
+   { .compatible = samsung,exynos5250, .data = cpufreq-dt },
{ /* sentinel */ }
 };
 
-- 
1.7.9.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 1/1] mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc()

2015-04-13 Thread Alexandre Courbot

On 04/13/2015 11:07 PM, Javier Martinez Canillas wrote:

If the struct mmc_pwrseq_match .alloc function used to allocate a
struct mmc_pwrseq fails, the error is propagated to mmc_of_parse().

But instead of returning the error code in pwrseq, host-pwrseq is
returned which will always be 0. So mmc_of_parse() succeeds even if
the pwrseq .alloc function failed and host-pwrseq is NULL.

This makes the SDIO device to not be powered if the power sequencing
.alloc functions wants to be deferred due a missing resource because
the mmc controller driver probe did wrongly succeed.

Fixes: 0f12a0ce4ce4a (mmc: pwrseq: simplify alloc/free hooks)
Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk


I obviously overlooked that one. Thanks for fixing it.

Reviewed-by: Alexandre Courbot acour...@nvidia.com
--
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] drm/exynos: remove unnecessary calls to disable_plane()

2015-04-13 Thread Gustavo Padovan
2015-04-13 Joonyoung Shim jy0922.s...@samsung.com:

 Hi,
 
 On 04/11/2015 03:57 AM, Gustavo Padovan wrote:
  From: Gustavo Padovan gustavo.pado...@collabora.co.uk
  
  The planes are already disabled by the drm_atomic_helper_commit() code
  so we don't need to disable the in these two places.
  
  Signed-off-by: Gustavo Padovan gustavo.pado...@collabora.co.uk
  ---
   drivers/gpu/drm/exynos/exynos_drm_crtc.c| 11 ---
   drivers/gpu/drm/exynos/exynos_drm_encoder.c |  8 
   2 files changed, 19 deletions(-)
  
  diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c 
  b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
  index 519c569..9bf25ff 100644
  --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
  +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
  @@ -47,8 +47,6 @@ static void exynos_drm_crtc_enable(struct drm_crtc *crtc)
   static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
   {
  struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
  -   struct drm_plane *plane;
  -   int ret;
   
  if (!exynos_crtc-enabled)
  return;
  @@ -64,15 +62,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc 
  *crtc)
  exynos_crtc-ops-dpms(exynos_crtc, DRM_MODE_DPMS_OFF);
   
  exynos_crtc-enabled = false;
  -
  -   drm_for_each_legacy_plane(plane, crtc-dev-mode_config.plane_list) {
  -   if (plane-crtc != crtc)
  -   continue;
  -
  -   ret = plane-funcs-disable_plane(plane);
  -   if (ret)
  -   DRM_ERROR(Failed to disable plane %d\n, ret);
  -   }
 
 If remove here disable codes, when crtc is disabled, enabled overlay
 planes may not be disabled.
 
 E.g, user can remove fb of crtc via DRM_IOCTL_MODE_RMFB ioctl, then crtc
 is disabled but overlay planes no.

That not true anymore with atomic modesetting, the overlay planes are also
disabled, so we should let the atomic core solve this and remove these pieces
of code from here.

Gustavo
--
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] drm/exynos: fimd: fix buffer size calculation

2015-04-13 Thread Marek Szyprowski
Commit adacb228d72b9529f8de0769cc33414c3012054d (drm: Exynos: Respect
framebuffer pitch for FIMD/Mixer) changed the way of buffer size
calcularion: it replaced fb_width by fb_pitch entry. fb_pitch however
already contains '(win_data-bpp  3)' factor, so it should be removed
from final buffer size calculation formula. This patch fixes this issue,
solving possible IOMMU page fault caused by FIMD module accessing memory
outside of the given display buffer.

Signed-off by: Marek Szyprowski m.szyprow...@samsung.com
CC: sta...@vger.kernel.org  # v4.0+
---
 drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c 
b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
index 0e93ed792224..f29a13e0524c 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
@@ -689,7 +689,7 @@ static void fimd_win_commit(struct exynos_drm_crtc *crtc, 
unsigned int win)
writel(val, ctx-regs + VIDWx_BUF_START(win, 0));
 
/* buffer end address */
-   size = plane-pitch * plane-crtc_height * (plane-bpp  3);
+   size = plane-pitch * plane-crtc_height;
val = (unsigned long)(dma_addr + size);
writel(val, ctx-regs + VIDWx_BUF_END(win, 0));
 
-- 
1.9.2

--
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] drm/exynos: fimd: fix buffer size calculation

2015-04-13 Thread Inki Dae
On 2015년 04월 13일 16:28, Marek Szyprowski wrote:
 Commit adacb228d72b9529f8de0769cc33414c3012054d (drm: Exynos: Respect
 framebuffer pitch for FIMD/Mixer) changed the way of buffer size
 calcularion: it replaced fb_width by fb_pitch entry. fb_pitch however
 already contains '(win_data-bpp  3)' factor, so it should be removed
 from final buffer size calculation formula. This patch fixes this issue,
 solving possible IOMMU page fault caused by FIMD module accessing memory
 outside of the given display buffer.

This fixup had already been posted by Daniel Stone,
https://git.kernel.org/cgit/linux/kernel/git/daeinki/drm-exynos.git/commit/?h=exynos-drm-next

Thanks,
Inki Dae

 
 Signed-off by: Marek Szyprowski m.szyprow...@samsung.com
 CC: sta...@vger.kernel.org  # v4.0+
 ---
  drivers/gpu/drm/exynos/exynos_drm_fimd.c | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c 
 b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
 index 0e93ed792224..f29a13e0524c 100644
 --- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
 +++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
 @@ -689,7 +689,7 @@ static void fimd_win_commit(struct exynos_drm_crtc *crtc, 
 unsigned int win)
   writel(val, ctx-regs + VIDWx_BUF_START(win, 0));
  
   /* buffer end address */
 - size = plane-pitch * plane-crtc_height * (plane-bpp  3);
 + size = plane-pitch * plane-crtc_height;
   val = (unsigned long)(dma_addr + size);
   writel(val, ctx-regs + VIDWx_BUF_END(win, 0));
  
 

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


[RESEND] [PATCH 1/1] ARM: dts: Add LEDs on odroid XU3 board

2015-04-13 Thread Markus Reichl
This patch adds the RGB-LED on XU3 as 3 gpio-leds.
It is derived from hardkernel's 3.10 tree.

Tested-by: Anand Moon linux.am...@gmail.com
Signed-off-by: Markus Reichl m.rei...@fivetechno.de
---
 arch/arm/boot/dts/exynos5422-odroidxu3.dts | 24 
 1 file changed, 24 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5422-odroidxu3.dts 
b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
index a519c86..0a32302 100644
--- a/arch/arm/boot/dts/exynos5422-odroidxu3.dts
+++ b/arch/arm/boot/dts/exynos5422-odroidxu3.dts
@@ -278,6 +278,30 @@
rtc@101E {
status = okay;
};
+
+   leds {
+   compatible = gpio-leds;
+   heartbeat {
+   label = blue:heartbeart;
+   gpios = gpb2 2 0;
+   default-state = off;
+   linux,default-trigger = heartbeat;
+   };
+
+   eMMC {
+   label = green:eMMC;
+   gpios = gpb2 1 0;
+   default-state = off;
+   linux,default-trigger = mmc0;
+   };
+
+   microSD {
+   label = red:microSD;
+   gpios = gpx2 3 0;
+   default-state = off;
+   linux,default-trigger = mmc1;
+   };
+   };
 };
 
 hdmi {
-- 
1.9.1

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


--
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] drm/exynos: remove unnecessary calls to disable_plane()

2015-04-13 Thread Joonyoung Shim
Hi,

On 04/11/2015 03:57 AM, Gustavo Padovan wrote:
 From: Gustavo Padovan gustavo.pado...@collabora.co.uk
 
 The planes are already disabled by the drm_atomic_helper_commit() code
 so we don't need to disable the in these two places.
 
 Signed-off-by: Gustavo Padovan gustavo.pado...@collabora.co.uk
 ---
  drivers/gpu/drm/exynos/exynos_drm_crtc.c| 11 ---
  drivers/gpu/drm/exynos/exynos_drm_encoder.c |  8 
  2 files changed, 19 deletions(-)
 
 diff --git a/drivers/gpu/drm/exynos/exynos_drm_crtc.c 
 b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
 index 519c569..9bf25ff 100644
 --- a/drivers/gpu/drm/exynos/exynos_drm_crtc.c
 +++ b/drivers/gpu/drm/exynos/exynos_drm_crtc.c
 @@ -47,8 +47,6 @@ static void exynos_drm_crtc_enable(struct drm_crtc *crtc)
  static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
  {
   struct exynos_drm_crtc *exynos_crtc = to_exynos_crtc(crtc);
 - struct drm_plane *plane;
 - int ret;
  
   if (!exynos_crtc-enabled)
   return;
 @@ -64,15 +62,6 @@ static void exynos_drm_crtc_disable(struct drm_crtc *crtc)
   exynos_crtc-ops-dpms(exynos_crtc, DRM_MODE_DPMS_OFF);
  
   exynos_crtc-enabled = false;
 -
 - drm_for_each_legacy_plane(plane, crtc-dev-mode_config.plane_list) {
 - if (plane-crtc != crtc)
 - continue;
 -
 - ret = plane-funcs-disable_plane(plane);
 - if (ret)
 - DRM_ERROR(Failed to disable plane %d\n, ret);
 - }

If remove here disable codes, when crtc is disabled, enabled overlay
planes may not be disabled.

E.g, user can remove fb of crtc via DRM_IOCTL_MODE_RMFB ioctl, then crtc
is disabled but overlay planes no.

Thanks.

  }
  
  static bool
 diff --git a/drivers/gpu/drm/exynos/exynos_drm_encoder.c 
 b/drivers/gpu/drm/exynos/exynos_drm_encoder.c
 index 0648ba4..7b89fd5 100644
 --- a/drivers/gpu/drm/exynos/exynos_drm_encoder.c
 +++ b/drivers/gpu/drm/exynos/exynos_drm_encoder.c
 @@ -81,17 +81,9 @@ static void exynos_drm_encoder_disable(struct drm_encoder 
 *encoder)
  {
   struct exynos_drm_encoder *exynos_encoder = to_exynos_encoder(encoder);
   struct exynos_drm_display *display = exynos_encoder-display;
 - struct drm_plane *plane;
 - struct drm_device *dev = encoder-dev;
  
   if (display-ops-dpms)
   display-ops-dpms(display, DRM_MODE_DPMS_OFF);
 -
 - /* all planes connected to this encoder should be also disabled. */
 - drm_for_each_legacy_plane(plane, dev-mode_config.plane_list) {
 - if (plane-crtc  (plane-crtc == encoder-crtc))
 - plane-funcs-disable_plane(plane);
 - }
  }
  
  static struct drm_encoder_helper_funcs exynos_encoder_helper_funcs = {
 

--
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 1/1] ARM: dts: Make DP a consumer of DISP1 power domain on Exynos5420

2015-04-13 Thread Krzysztof Kozlowski
2015-04-13 5:30 GMT+09:00 Javier Martinez Canillas
javier.marti...@collabora.co.uk:
 Commit ea08de16eb1b (ARM: dts: Add DISP1 power domain for exynos5420)
 added a device node for the Exynos5420 DISP1 power domain but dit not
 make the DP controller a consumer of that power domain.

 This causes an Unhandled fault: imprecise external abort error if the
 exynos-dp driver tries to access the DP controller registers and the PD
 was turned off. This lead to a kernel panic and a complete system hang.

 Make the DP controller device node a consumer of the DISP1 power domain
 to ensure that the PD is turned on when the exynos-dp driver is probed.

 Fixes: ea08de16eb1b (ARM: dts: Add DISP1 power domain for exynos5420)
 Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
 ---

 Hello,

 This latent bug was not exposed before since drivers for other devices
 marked as DISP1 power domain consumers were probed before exynos-dp so
 the PD was already on which made possible to access the DP registers.

 But regulator: Defer lookup of supply to regulator_get [0] that is in
 linux-next from a couple of days now, changed the order on which the
 drivers' probes succeed so the PD was disabled during exynos-dp probe.

 Exynos5420 machines with a display such as the Exynos5420 Peach Pit and
 Exynos5800 Peach Pi were failing to boot due this issue, i.e: [1].

 Olof,

 Could you please confirm $subject fixes the issue catched by your farm?

 Krzysztof,

 This patch conflicts with your Exynos5 phandle notation cleanup [2] but
 I preferred to send it on top of linux-next instead of making your series
 a dependency since it fixes a very important bug that had caused -next to
 be broken on these matchines for days now.

Sure, I don't mind. My patchset is just a cleanup so it can wait and
should not block important stuff.

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 v7 1/9] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-04-13 Thread Chanwoo Choi
Hi Mark,

On 04/13/2015 07:56 PM, Mark Rutland wrote:
 Hi Chanwoo,
 
 Could you please reply to the below?
 
 Without an answer I'm going to have to ask for the patch to be unqueued
 for the moment, and I'd prefer that we came to a solution instead.

I'm sorry about late reply.

 
 Thanks,
 Mark.
 
 On Tue, Apr 07, 2015 at 11:25:27AM +0100, Mark Rutland wrote:
 I'm very worried about adding a DT that's known broken, especially when
 we have no idea as to if/when the FW will be fixed judging from prior
 replies.

 As I replied, I can not fix the FW because I don't have any code of FW.

 Surely you are able to contact those who do?

 I don't have any solution to fix it on Linux kernel level.

 So, If you agree, I can add the comment of CPU0 hotplug issue on DT file.

 I disagree. I do not want to add a DT that is known to be broken;
 especially when we have no idea how to fix it. It creates long-term
 maintenance pain for everyone, and marginal gain for few. A comment does
 nothing to aid the end-user.

 So NAK to the PSCI node and PSCI enable method in this dts until we
 either have a working firmware, or a reasonable mechanism to handle the
 deficiency.

 There is only CPU0 hotplug issue. Excpet CPU{1-7} are well working.

 I understand that, but the issue with CPU0 is still a blocker from my
 PoV.

 To fix this issue, we must need the help of firmware developer.
 But, We never get the any help.

 Previously you said that you did not have access to the source code
 rather than not having help from the relevant firmware engineers. I take
 it you have informed them of the issue with CPU0?

I didn't ask any help to firmware engineer because I didn't know who firmware 
engineer
and also didn't access the source code. If I knew the engineer and can access 
them,
I would have asked some help to them or inquired the reason about CPU0 not 
hotplugged.


 Also, as I mentioned on previous mail, all Exynos SoCs can not turn
 off the CPU0. I've never seen Exynos SoC that CP0 hotplug is possible.

 While that may be the case, PSCI is a more generic standard, and it is
 used on systems where CPU0 can be hot unplugged. So Exynos-specific
 details cannot dictate how the kernel PSCI driver should behave.

 Is there a particular reason that CPU0 cannot be hotplugged?

Unfortunately, I don't know correctly why Exynos SoC cannot hotplug the CPU0.
But, IMHO, SoC had to maintain at least online core for operation.
Just Exynos SoC has remained the CPU0 as at least online core.


 In PSCI 0.2 and later it's possible to determine whether a trusted OS
 prohibits a core from being hotplugged, but this mechanism doesn't exist
 in earlier versions. I am not averse to adding a property to PSCI 0.1
 to mark a CPU as not being hotpluggable if there is a fundamental reason
 (i.e. not simply a bug) for this being the case.

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 0/7] ARM: dts: Refactor Exynos5 boards for phandle notation

2015-04-13 Thread Krzysztof Kozłowski
2015-04-13 5:07 GMT+09:00 Arnd Bergmann a...@arndb.de:
 On Sunday 12 April 2015 21:24:47 Krzysztof Kozlowski wrote:

 The phandle notation reduces possible mistakes when overriding nodes
 by child board files and reduces duplication of addresses.

 The patchset refactors Exynos5 boards to use the phandle way.

 Tested by comparison of decompiled DTB for each commit.

 The patches look fine, but the description is wrong as you are not
 using 'phandles' here, you are using 'labels'.

Heh, I suspected this but some docs I found referred to label { ...
} also as a phandle. Thanks for pointing this out. I'll respin.

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 v7 1/9] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-04-13 Thread Mark Rutland
Hi Chanwoo,

Could you please reply to the below?

Without an answer I'm going to have to ask for the patch to be unqueued
for the moment, and I'd prefer that we came to a solution instead.

Thanks,
Mark.

On Tue, Apr 07, 2015 at 11:25:27AM +0100, Mark Rutland wrote:
   I'm very worried about adding a DT that's known broken, especially when
   we have no idea as to if/when the FW will be fixed judging from prior
   replies.
  
   As I replied, I can not fix the FW because I don't have any code of FW.
   
   Surely you are able to contact those who do?
   
   I don't have any solution to fix it on Linux kernel level.
  
   So, If you agree, I can add the comment of CPU0 hotplug issue on DT file.
   
   I disagree. I do not want to add a DT that is known to be broken;
   especially when we have no idea how to fix it. It creates long-term
   maintenance pain for everyone, and marginal gain for few. A comment does
   nothing to aid the end-user.
   
   So NAK to the PSCI node and PSCI enable method in this dts until we
   either have a working firmware, or a reasonable mechanism to handle the
   deficiency.
  
  There is only CPU0 hotplug issue. Excpet CPU{1-7} are well working.
 
 I understand that, but the issue with CPU0 is still a blocker from my
 PoV.
 
  To fix this issue, we must need the help of firmware developer.
  But, We never get the any help.
 
 Previously you said that you did not have access to the source code
 rather than not having help from the relevant firmware engineers. I take
 it you have informed them of the issue with CPU0?
 
  Also, as I mentioned on previous mail, all Exynos SoCs can not turn
  off the CPU0. I've never seen Exynos SoC that CP0 hotplug is possible.
 
 While that may be the case, PSCI is a more generic standard, and it is
 used on systems where CPU0 can be hot unplugged. So Exynos-specific
 details cannot dictate how the kernel PSCI driver should behave.
 
 Is there a particular reason that CPU0 cannot be hotplugged?
 
 In PSCI 0.2 and later it's possible to determine whether a trusted OS
 prohibits a core from being hotplugged, but this mechanism doesn't exist
 in earlier versions. I am not averse to adding a property to PSCI 0.1
 to mark a CPU as not being hotpluggable if there is a fundamental reason
 (i.e. not simply a bug) for this being the case.
 
 Thanks,
 Mark.
 --
 To unsubscribe from this list: send the line unsubscribe devicetree in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html
 
--
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] mmc: pwrseq: Fix error code propagation in mmc_pwrseq_simple_alloc()

2015-04-13 Thread Javier Martinez Canillas
If the struct mmc_pwrseq_match .alloc function used to allocate a
struct mmc_pwrseq fails, the error is propagated to mmc_of_parse().

But instead of returning the error code in pwrseq, host-pwrseq is
returned which will always be 0. So mmc_of_parse() succeeds even if
the pwrseq .alloc function failed and host-pwrseq is NULL.

This makes the SDIO device to not be powered if the power sequencing
.alloc functions wants to be deferred due a missing resource because
the mmc controller driver probe did wrongly succeed.

Fixes: 0f12a0ce4ce4a (mmc: pwrseq: simplify alloc/free hooks)
Signed-off-by: Javier Martinez Canillas javier.marti...@collabora.co.uk
---
 drivers/mmc/core/pwrseq.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mmc/core/pwrseq.c b/drivers/mmc/core/pwrseq.c
index ab2129781161..4c1d1757dbf9 100644
--- a/drivers/mmc/core/pwrseq.c
+++ b/drivers/mmc/core/pwrseq.c
@@ -73,7 +73,7 @@ int mmc_pwrseq_alloc(struct mmc_host *host)
 
pwrseq = match-alloc(host, pdev-dev);
if (IS_ERR(pwrseq)) {
-   ret = PTR_ERR(host-pwrseq);
+   ret = PTR_ERR(pwrseq);
goto err;
}
 
-- 
2.1.4

--
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 RESEND] ARM: dts: exynos4412: Enable AX88760 USB hub on Origen board

2015-04-13 Thread Matthew Leach
Enable the Origen's usb phy and ohci devices in the device tree.  Also
add the samsung,vbus-gpio property to enable the GPX3(5) gpio pin so
the AX88760 hub is powered.

Signed-off-by: Matthew Leach matt...@mattleach.net
---
 arch/arm/boot/dts/exynos4412-origen.dts | 15 +++
 1 file changed, 15 insertions(+)

diff --git a/arch/arm/boot/dts/exynos4412-origen.dts 
b/arch/arm/boot/dts/exynos4412-origen.dts
index bd8b730..c810ca3 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -531,4 +531,19 @@
clock-frequency = 2400;
};
};
+
+   exynos-usbphy@125B {
+   status = okay;
+   };
+
+   ehci@1258 {
+   samsung,vbus-gpio = gpx3 5 1;
+   status = okay;
+   port@1{
+   status = okay;
+   };
+   port@2 {
+   status = okay;
+   };
+   };
 };
-- 
2.3.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 v7 1/9] arm64: dts: exynos: Add dts files for 64-bit Exynos5433 SoC

2015-04-13 Thread Mark Rutland
  So NAK to the PSCI node and PSCI enable method in this dts until we
  either have a working firmware, or a reasonable mechanism to handle the
  deficiency.
 
  There is only CPU0 hotplug issue. Excpet CPU{1-7} are well working.
 
  I understand that, but the issue with CPU0 is still a blocker from my
  PoV.
 
  To fix this issue, we must need the help of firmware developer.
  But, We never get the any help.
 
  Previously you said that you did not have access to the source code
  rather than not having help from the relevant firmware engineers. I take
  it you have informed them of the issue with CPU0?
 
 I didn't ask any help to firmware engineer because I didn't know who firmware 
 engineer
 and also didn't access the source code. If I knew the engineer and can access 
 them,
 I would have asked some help to them or inquired the reason about CPU0 not 
 hotplugged.

You must have acquired the firmware (or board(s) with the firmware
preloaded) from somewhere. Surely you can work backwards from there to
file a bug report and/or inquire as to who you need to speak to...

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