[GIT PULL] Samsung fixes-1 for 3.16

2014-06-22 Thread Kukjin Kim

The following changes since commit 7171511eaec5bf23fb06078f59784a3a0626b38f:

  Linux 3.16-rc1 (2014-06-15 17:45:28 -1000)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git 
tags/samsung-fixes-1


for you to fetch changes up to 7cbcb9d46f9194eb1f88c253a08c0292b2883acc:

  ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm 
(2014-06-21 19:30:53 +0900)



Samsung fixes for 3.16

- use WFI macro in platform_do_lowpower because exynos cpuhotplug
  includes a hardcoded WFI instruction and it causes compile error
  in Thumb-2 mode.
- fix GIC reg sizes for exynos4 SoCs
- remove reset timer counter value during boot and resume for mct
  to fix a big jump in printk timestamps
- fix pm code to check cortex-A9 for another exynos SoCs
- don't rely on firmware's secondary_cpu_start for mcpm


Abhilash Kesavan (1):
  ARM: EXYNOS: fix pm code to check for cortex A9 rather than the SoC

Chirantan Ekbote (1):
  clocksource: exynos_mct: Don't reset the counter during boot and 
resume


Doug Anderson (1):
  ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm

Leela Krishna Amudala (1):
  ARM: EXYNOS: Use wfi macro in platform_do_lowpower

Tomasz Figa (1):
  ARM: dts: fix reg sizes of GIC for exynos4

 arch/arm/boot/dts/exynos4.dtsi |  2 +-
 arch/arm/mach-exynos/hotplug.c |  8 +---
 arch/arm/mach-exynos/mcpm-exynos.c | 11 ++-
 arch/arm/mach-exynos/pm.c  | 15 +--
 drivers/clocksource/exynos_mct.c   |  9 +++--
 5 files changed, 20 insertions(+), 25 deletions(-)
--
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/3 v5] spi: s3c64xx: fix broken "cs_gpios" usage in the driver

2014-06-22 Thread Mark Brown
On Sat, Jun 21, 2014 at 10:53:14PM +0530, Naveen Krishna Ch wrote:

> The revisions were pretty quick

Yes, this is part of what I'm concerned about - it often means that
there are problems, either the review wasn't very detailed or the code
is being written too hastily.  In this case this is coupled with the
fact that it's an area of the code that has had problems in general is
setting off alarm bells.

> v4 to v5 : Added Acked-by and Revewied-by from Javier and Rob Herring

Don't resend for tags - you should include tags if you do resend but
they're not a good reason to do so.

> Kindly review and let us know your comments.

I will review it when I get to it, this isn't the only thing I've got
sitting for review.


signature.asc
Description: Digital signature


Re: [RESEND PATCH v2 1/2] ASoC: samsung: s3c24{xx,12}-i2s: port to use generic dmaengine API

2014-06-22 Thread Mark Brown
On Sun, Jun 01, 2014 at 08:15:57PM +0300, Vasily Khoruzhick wrote:
> Use dmaengine instead of legacy s3c24xx DMA API for s3c24xx and s3c2412

These fail to apply against current code, can you please check and
resend?


signature.asc
Description: Digital signature


Re: [PATCH 2/3] ARM: dts: Update the parent for Audss clocks in Exynos5420

2014-06-22 Thread Tushar Behera
On Mon, Jun 16, 2014 at 4:56 PM, Tushar Behera  wrote:
> On 06/11/2014 09:28 PM, Javier Martinez Canillas wrote:
>> On Wed, Jun 11, 2014 at 7:32 AM, Tushar Behera  wrote:
>>> Currently CLK_FOUT_EPLL was set as one of the parents of AUDSS mux.
>>> As per the user manual, it should be CLK_MAU_EPLL.
>>>
>>> The problem surfaced when the bootloader in Peach-pit board set
>>> the EPLL clock as the parent of AUDSS mux. While booting the kernel,
>>> we used to get a system hang during late boot if CLK_MAU_EPLL was
>>> disabled.
>>>
>>> Signed-off-by: Tushar Behera 
>>> Signed-off-by: Shaik Ameer Basha 
>>> Reported-by: Kevin Hilman 
>>> ---
>>>  arch/arm/boot/dts/exynos5420.dtsi |2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/arch/arm/boot/dts/exynos5420.dtsi 
>>> b/arch/arm/boot/dts/exynos5420.dtsi
>>> index e385322..79e9119 100644
>>> --- a/arch/arm/boot/dts/exynos5420.dtsi
>>> +++ b/arch/arm/boot/dts/exynos5420.dtsi
>>> @@ -167,7 +167,7 @@
>>> compatible = "samsung,exynos5420-audss-clock";
>>> reg = <0x0381 0x0C>;
>>> #clock-cells = <1>;
>>> -   clocks = <&clock CLK_FIN_PLL>, <&clock CLK_FOUT_EPLL>,
>>> +   clocks = <&clock CLK_FIN_PLL>, <&clock CLK_MAU_EPLL>,
>>>  <&clock CLK_SCLK_MAUDIO0>, <&clock 
>>> CLK_SCLK_MAUPCM0>;
>>> clock-names = "pll_ref", "pll_in", "sclk_audio", 
>>> "sclk_pcm_in";
>>> };
>>> --
>>> 1.7.9.5
>>>
>>> --
>>
>> Tested-by: Javier Martinez Canillas 
>>
>
> Kukjin,
>
> Would you please take this patch as a fix for 3.16?
>
> --
> Tushar Behera

Kukjin,

Please pick this patch for 3.16. This is an essential fix required for
Peach-pit/Peach-pi board.

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


Boot regression on Arndale Octa

2014-06-22 Thread Andreas Färber
Hello,

Both on kgene's for-next 053341b6993a3e838cfa35c9f594fb94ee3da9ce and on
Linus' 401c58fcbbf570e7e4a8ee0e21ffd829deb4de0b my Arndale Octa board
fails to boot with an "Unhandled fault: synchronous external abort
(0x210)". This is a regression from v3.15, 100% reproducible.

[6.251931] s3c-rtc 101e.rtc: setting system cloco to 2000-01-01
21:56:23 UTC (946763783)
[6.253401] Unable to find PPMU node
[6.253461] exynos5-bus-int: probe of exynos5-bus-int failed with
error -2
[6.268412] clk: Not disabling unused clocks
[6.310161] Unhandled fault: synchronous external abort (0x210)
X���17403d
6.316467] Internal error: : 210 [#1] PREEMPT SMP ARM
[6.321576] Modules linked in:
[6.324613] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
3.16.0-rc1-00330-g401c58f #2
[6.332151] task: ecc12000 ti: ecc84000 task.ti: ecc84000
[6.337529] PC is at n_tty_open+0x68/0x118
[6.341598] LR is at n_tty_open+0x64/0x118
[6.3�M��pc : [c023007c>]lr : []psr: a113
[6.345670] sp : ecc85d10  ip : 0003  fp : 
[6.357106] r10: 0002  r9 : c0MV"�  r8 : 051
[6.362305] r7 : 224c  r6 : eb1fd800  r5 :   r4 : f0174000
[6.368804] r3 : f0176294  r2 : c061305c  r1 : c04dd17c  r0 : f0176280
[6.375304] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
Segment kernel
[6.382582] Control: 30c5387d  Table: 20003000  DAC:
fff�C�+�r�Process swpper/0 (pid: 1, stack limit = 0xecc84240)
[6.394280] Stack: (0xecc85d10 to 0xecc86000)
[6.398615] 5d00: c0230014
eb1fd800 eb1fd9bc eb2f1e80
[6.406761] 5d20: c040ca0��33ef8 000 eb2f1e80 eb1fd800 c0234550
ece91800 eb1fd800
[6.414906] 5d40: 0003 c0��,V*��5e70 c006ba0 eb33e100 0001
ece91800 c022db48
[6.423051] 5d60: eb40482p c05c1428 c06134c0 c05d66b0 0001
0003 0001 c0613020
[6.431196] 5d80: eb404820 eb33e100 c040ca04  
 ecc85e70 c00d8880
[6.439343] 5da0: eb33e108  0003 eb33e100 eb404820
eb33e108 c00d87e4 c00d2e2c
[6.447488] 5dc0:  ecc85e6c ecc85f34 0002 
  c00d3108
[6.455633] 5de0: ecc85eb0 c00g056c ecc84000 c00de4a0 c0599ed0
ecc01d80 0001 ecc84030
[6.463779] 5e00: eb33e100 0026 eb402558  
 0f4756ea 0007
[6.471925] 5e20: eb311015 eb404820 eb33e100 eb33e100 ecc85eb0
ec,�2�4 ec85e70 ff9c
[6.480070] 5e40:   ecc84000 c00e0e70 ecc85e6c
c05c5e70 ecc85e88 ecc85f2e
[6.488215] 5e60: c05c5e94 8113   ecc1d3d0
eb402688  
[6.496361] 5e80:  ecc85f34 0001 eb311000 ff9c
c0553514 0085 c057b630
[6.504506] 5ea0: c057b628 c00e22c4 0041  ecc1d3d0
eb402688 0f4756ea 0007
[6.511578] usb 1-1.4: new high-spe�d USB device number 3 using
exynos-ehci
[6.519584] 5ec0: eb311015 c05ab500  eb402000 eb404820
0101 0004 0018
[6.527729] 5ee0:   ecc86008 c03e8db8 0002
c00edfe4 c05fd1d0 0002
[6.535875] 5f00: 0001 0002 eb311000 ff9c c05d6740
0002 eb311000 ff9c
[6.544020] 5f20:  c00d4088 0085 0p006fbc 
0002  00�j
[   6.552166] 5f40: 0100 0001 c05d6740 c0595360
0007 c05���5d6740 0553514
[6.560312] 5f60: 0085 c0553d20 0007 0007 c0553514
c03e8�3c ebb7a700 c004fb00
[6.568456] 5f80: 2b5e3000 c05d6740 g03dff8c  
00j
 [6.57602] 5fa0:  c03dff9c  c001c9b8
 0�j
 [6.54747] 5fc0:    
00j
[6.92893] 5fe0: 0p00  
 0013  ecc85ff4 
[6.601049] [] (n_tty_open) from []
(tty_ldisc_open.isra.4+0x3c/0x7c)
[6.609189] [] (tty_ldisc_open.isra.4) from []
(tty_ldisc_setup+0x18/0x58)
[6.617768] [] (tty_ldisc_setup) from []
(tty_init_dev+0xa0/0x198)
[6.625654] [] (tty_init_dev) from []
(tty_open+0x2c8/0x5bc)
[6.633019] [] (tty_open) from []
(chrdev_open+0x9c/0x178)
[6.640212] [] (chrdev_open) from []
(do_dentry_open.isra.15+0xdc/0x2e8)
[6.648617] [] (do_dentry_open.isra.15) from []
(finish_open+0x20/0x38)
[6.656939] [] (finish_open) from []
(do_last.isra.55+0x3e8/0xc38)
[6.664821] [] (do_las|.isra.55) from []
(path_openat+0xb4/0x5e0)
[6.672620] [] (path_openat) from []
(do_filp_open+0x2c/0x80)
[6.680072] [] (do_filp_open) from []
(do_sys_open+0x10�/0x1d0)
[6.687696] [] (do_sys_open) from []
(kernel_init_freeable+0x160/0x1d8)
[6.696017] [] (kernel_init_freeable) from []
(kernel_ini[6.704165] [] (kernel_init) from []
(ret_from_fork+0x14/0x3c)
[6.711698] Code: e34c104d e34c2061 ebf8d227 e5864224 (e5d4303d)
[6.717766] ---[ end trace 67957db0672cb23f ]---
[6.722430] Kernel panic - not sync

Re: Boot regression on Arndale Octa

2014-06-22 Thread Tomasz Figa
Hi Andreas,

On 22.06.2014 18:13, Andreas Färber wrote:
> Hello,
> 
> Both on kgene's for-next 053341b6993a3e838cfa35c9f594fb94ee3da9ce and on
> Linus' 401c58fcbbf570e7e4a8ee0e21ffd829deb4de0b my Arndale Octa board
> fails to boot with an "Unhandled fault: synchronous external abort
> (0x210)". This is a regression from v3.15, 100% reproducible.
> 

A couple of ideas to get more information:

 - What config do you use?
 - Does it boot with exynos devfreq disabled in kernel config?
 - Why the "> [6.268412] clk: Not disabling unused clocks" line is
there? What's your kernel command line?
 - The log seems to start quite late. Could you provide full boot log as
well?
 - Could you try bisecting the changes between 3.15 and Kukjin's for-next?

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: [GIT PULL] Samsung fixes-1 for 3.16

2014-06-22 Thread Arnd Bergmann
On Sunday 22 June 2014 17:22:16 Kukjin Kim wrote:
> The following changes since commit 7171511eaec5bf23fb06078f59784a3a0626b38f:
> 
>Linux 3.16-rc1 (2014-06-15 17:45:28 -1000)
> 
> are available in the git repository at:
> 
>git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung.git 
> tags/samsung-fixes-1
> 
> for you to fetch changes up to 7cbcb9d46f9194eb1f88c253a08c0292b2883acc:
> 
>ARM: EXYNOS: Don't rely on firmware's secondary_cpu_start for mcpm 
> (2014-06-21 19:30:53 +0900)
> 
> 
> Samsung fixes for 3.16
> 
> - use WFI macro in platform_do_lowpower because exynos cpuhotplug
>includes a hardcoded WFI instruction and it causes compile error
>in Thumb-2 mode.
> - fix GIC reg sizes for exynos4 SoCs
> - remove reset timer counter value during boot and resume for mct
>to fix a big jump in printk timestamps
> - fix pm code to check cortex-A9 for another exynos SoCs
> - don't rely on firmware's secondary_cpu_start for mcpm
> 

Pulled into fixes branch, thanks!

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


[PATCH] ARM: dts: exynos5410: Fill in CPU clock-frequency

2014-06-22 Thread Andreas Färber
It's 1.6 GHz for the Cortex-A15.

Avoids warnings like "/cpus/cpu@0 missing clock-frequency property".

Signed-off-by: Andreas Färber 
---
 arch/arm/boot/dts/exynos5410.dtsi | 4 
 1 file changed, 4 insertions(+)

diff --git a/arch/arm/boot/dts/exynos5410.dtsi 
b/arch/arm/boot/dts/exynos5410.dtsi
index 3839c26..9d0b8cc 100644
--- a/arch/arm/boot/dts/exynos5410.dtsi
+++ b/arch/arm/boot/dts/exynos5410.dtsi
@@ -28,24 +28,28 @@
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x0>;
+   clock-frequency = <16>;
};
 
CPU1: cpu@1 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x1>;
+   clock-frequency = <16>;
};
 
CPU2: cpu@2 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x2>;
+   clock-frequency = <16>;
};
 
CPU3: cpu@3 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0x3>;
+   clock-frequency = <16>;
};
};
 
-- 
1.9.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


Re: Boot regression on Arndale Octa

2014-06-22 Thread Andreas Färber
Am 22.06.2014 20:59, schrieb Andreas Färber:
> Hi Tomasz,
> 
> Am 22.06.2014 19:55, schrieb Tomasz Figa:
>> On 22.06.2014 18:13, Andreas Färber wrote:
>>> Both on kgene's for-next 053341b6993a3e838cfa35c9f594fb94ee3da9ce and on
>>> Linus' 401c58fcbbf570e7e4a8ee0e21ffd829deb4de0b my Arndale Octa board
>>> fails to boot with an "Unhandled fault: synchronous external abort
>>> (0x210)". This is a regression from v3.15, 100% reproducible.
>>>
>>
>> A couple of ideas to get more information:
>>
>>  - What config do you use?
> 
> Attached. It's basically a 3.15'ish exynos_defconfig, updated using
> `make oldconfig` plus some manually enabled systemd (CONFIG_FHANDLE=y,
> CONFIG_FANOTIFY=y, CONFIG_AUTOFS4=m) and Exynos options.
> 
> Compiler is gcc 4.8.2.
> 
>>  - Does it boot with exynos devfreq disabled in kernel config?
> 
> I do see CONFIG_ARM_EXYNOS5_BUS_DEVFREQ=y; not sure if I've already
> tested without, will try.

No improvement without DEVFREQ. Log attached.

> I already verified that 5250 based Spring
> boots with a similar config (patchset upcoming). Next I'm trying 5410
> based ODROID-XU for comparison.

ODROID-XU works, too (without DEVFREQ).

>>  - Why the "> [6.268412] clk: Not disabling unused clocks" line is
>> there? What's your kernel command line?
> 
> console=ttySAC3,115200n8 root=/dev/mmcblk1p2 rootfstype=ext4 rw rootwait
> clk_ignore_unused
> 
> I had tried the latter because the issue occurred directly after a list
> of clocks were disabled, but it did not help unfortunately.

I notice that this time the trouble starts before the clocks already.
Could this be related to the MMC issues reported for other chips?

Regards,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
U-Boot 2012.07-g8c348a3-divty (Apr r4 2014 - 03:02:27) for ARNDALE OCTA

CPU: Exynos5420 Rev2.0 [Samsung SOC on SMP Platform Base on ARM CortexA15]
APLL = 800MHz, KPLL = 600MHz
MPLL = 532MHz, BPLL = 800MHz

Board: ARNDAL� OCTA
DRAM:  2 GiB
WARNING: Caches not enabled

TrustZone Enabled BSP
BL1 version: 

Checking Boot Mode ... SDMMC
MMC:   S5P_MSHC2: 0, S5P_MSHC0: 1
MMC Device 0: 29.9 GiB
MMC Device 1: 3.6 GiB
MMC Device 2: MMC Device 2 not found
there are pending interrupts 0x0001
In:serial
Out:   serial
Err:   serial
Net:   No ethernet found.
Hit any key to stop autoboot:  0 
Loading file "boot.scr" from mmc device 0:1 (xxa1)
928 bytes read
## Executing script at r0008000
Loading file "zImage" from mmc device 0:1 (xxa1)
3073776 bytes read
Loading file "�tb/exynos5420-arndale-octa.dtb" fr�
  j���device 01 (xxa1)
32888 bytes read
## Flattened Device Tree blob at 2100
   Booting using the fdt blob at 0x2100
   Loading Device Tree to 2fff4000, end 2077 ... OK

Starting kernel ...

[0.00] Booting Linux on physical CPU 0x0
[0.00] Linux version 3.16.0-rc1-4-ge8d1bfc (X�ɕ�͑ɽ��� (gc version 4.8.2 20140404 [gcc-4_8-brcnch revision 209122] (SUSE Linux) ) #1 SMP PREEMPT Sun Jun 22 22:13:41 CEST 2014
[0.00] CPU: ARMv7 Processor [412fc0f3] revision 3 (ARMv79, cr=30c5387d
[0.00] CPU: PIPT / VIPT nonaliasing data cache, PIPT instruction cache
[0.00] Machine model: Insignal Arnda|e Octa evaluation board based on EXYNOS5420
[0.00] Forcing write-allocate cache policy for SMP
[0.00] Memory policy: Data cache writealloc
[0.00] Runnin���Ɂsecure fimware.
[0.00] PERCPU: Embedded 7 pages/cpu @ebb79000 s7808 r8192 d12672 u72768
[0.00] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 1696w83
[0.00] Kernel command line: console=ttySAC3,115200n8 root=/dev/mmcblk1p2 rootfstype=ext4 rw rootwait clk_ignore_unused
[ ��r������PID hashtable entries: 4096 (order: 2, 16384��ѕͥ
[   0.00] Dentry cache�+͡�tale entries: 131072 (order: 7, 524288 bytes)
[0.00] Inode-c�che hash table entries: 65536 (order: 6, 262144 bytes)
[   �r�������Memory: 672524K/6793212K available (4109K kernel code, 249K rwdata, 1292K rodata, 275K init, 283K bss, 60688K reserved, 6023164K highmem)
[0.00] Virtual kernel memory layout:
[0.00] vecto�  : 0x - 0x1000   (   4 kB)
[0.00]   �6�ᵅ� : 0xffc - 0xffe0   (2048 kB)
[0.00] vmalloc : 0xf000 - 0xff00   ( 240 MB)
[0.00] lowmem  : 0xc000 - 0xef80   ( 760 MB)
[0.00] pkmap   : 0xbfm0 - 0xc000   (   2 MB)
[0.00] modules : 0xbf00 - 0xbfe0   (  14 MB)
[�  ������   �r���с:0xc0008000  0xc054e7<8   (5402 kF)
[0.00]   .init : 0xc054f000 - 0xc0593e80   ( 276 kB)
[0.p0]   .data : 0xc0594000 - 0xc05d2580   ���Z �
[   0.00].bss : 0xc05d258c - 0xc06192c0   ( 284 kB)
[0.00] SLU

Re: Enabling 8 cores on 5420

2014-06-22 Thread Andreas Färber
Am 30.05.2014 11:25, schrieb Daniel Lezcano:
> 
> Hi all,
> 
> I am trying an upstream kernel + some patches to enable ethernet on
> arndale octa.
> 
> Unfortunately, only 4 cores boot up. The other ones fail to boot.
> 
> [12.179453] CPU6: failed to come online
> [13.189479] CPU7: failed to come online
> [14.199479] CPU4: failed to come online
> [15.209743] CPU5: failed to come online
> 
> What should I do to enable those 8 cores ? Is there a patchset somewhere
> to do so ?

Ping? Confirmed still present on Arndale Octa with kgene's for-next +
patch to get 2-4 up.

Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
--
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: Enabling 8 cores on 5420

2014-06-22 Thread Alim Akhtar
Hi
PTAL https://patchwork.kernel.org/patch/4315711/
I hope your tree already includes
http://www.gossamer-threads.com/lists/linux/kernel/1940123

Regards,
Alim

On Mon, Jun 23, 2014 at 2:32 AM, Andreas Färber  wrote:
> Am 30.05.2014 11:25, schrieb Daniel Lezcano:
>>
>> Hi all,
>>
>> I am trying an upstream kernel + some patches to enable ethernet on
>> arndale octa.
>>
>> Unfortunately, only 4 cores boot up. The other ones fail to boot.
>>
>> [12.179453] CPU6: failed to come online
>> [13.189479] CPU7: failed to come online
>> [14.199479] CPU4: failed to come online
>> [15.209743] CPU5: failed to come online
>>
>> What should I do to enable those 8 cores ? Is there a patchset somewhere
>> to do so ?
>
> Ping? Confirmed still present on Arndale Octa with kgene's for-next +
> patch to get 2-4 up.
>
> Andreas
>
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
> --
> 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



-- 
Regards,
Alim
--
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 v2] ARM: dts: exynos4: fix pwm-cells in pwm node

2014-06-22 Thread Kukjin Kim
Sachin Kamat wrote:
> 
> Hi Jaewon,
> 
> On Thu, Jun 19, 2014 at 7:33 AM, Jaewon Kim  wrote:
> > pwm-cells should be 3. Third cell is optional PWM flags. And This flag
> > supported by this binding is PWM_POLARITY_INVERTED.
> >
> > Signed-off-by: Jaewon Kim 
> > ---
> >
> > Changes in v2:
> >  - Remove unnecessary handle.
> >
> >  arch/arm/boot/dts/exynos4.dtsi |2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
> > index b8ece4b..e118356 100644
> > --- a/arch/arm/boot/dts/exynos4.dtsi
> > +++ b/arch/arm/boot/dts/exynos4.dtsi
> > @@ -554,7 +554,7 @@
> > interrupts = <0 37 0>, <0 38 0>, <0 39 0>, <0 40 0>, <0 41 
> > 0>;
> > clocks = <&clock CLK_PWM>;
> > clock-names = "timers";
> > -   #pwm-cells = <2>;
> > +   #pwm-cells = <3>;
> > status = "disabled";
> > };
> 
> I think I had already reviewed this patch. Anyway,
> Reviewed-by: Sachin Kamat 

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


[RFC 0/4] ARM: dts: exynos: Prepare Spring

2014-06-22 Thread Andreas Färber
From: Andreas Färber 

Hello,

Based on the preinstalled 3.8 based ChromeOS kernel and previous 3.15 
based attempts by Stephan and me that broke for 3.16, I've prepared a 
device tree for the HP Chromebook 11 aka Google Spring.

The first three patches should be good to go and contain documentation 
fixes found while comparing exynos5250-snow.dts vs. /proc/device-tree.

The main patch was tested using a chained non-verified U-Boot (simplefb) 
and a rootfs on USB-attached SD card.
The display goes dark unfortunately (drm bridge series not yet tested),
but I am able to log in via ssh over USB ethernet adapter okay.

Audio support is likely missing as my focus was getting USB booting.
Not included is touchpad support, as "atmel,atmel_mxt_tp" is not 
documented to be available upstream. And no /dev/mmcblk0 or Wifi yet.
Also when the screen stayed on, the embedded controller's keymap seems 
hardcoded to US English with system settings not taking effect; but 
surely we don't want per-keyboard device tree files to remedy that.

I'd appreciate if we can get a core .dts sorted out and consider 
incremental changes from there.

Regards,
Andreas

Andreas Färber (4):
  Documentation: devicetree: Fix s2mps11 and s5m8767 typos
  Documentation: devicetree: Fix s2mps11 example syntax
  Documentation: devicetree: Fix tps65090 typos
  ARM: dts: exynos5250: Add Spring device tree

 Documentation/devicetree/bindings/mfd/s2mps11.txt  |   4 +-
 .../bindings/regulator/s5m8767-regulator.txt   |   2 +-
 .../devicetree/bindings/regulator/tps65090.txt |   4 +-
 arch/arm/boot/dts/Makefile |   1 +
 arch/arm/boot/dts/exynos5250-spring.dts| 556 +
 5 files changed, 562 insertions(+), 5 deletions(-)
 create mode 100644 arch/arm/boot/dts/exynos5250-spring.dts

-- 
1.9.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 1/4] Documentation: devicetree: Fix s2mps11 and s5m8767 typos

2014-06-22 Thread Andreas Färber
It's LDO2, not LD02.

Signed-off-by: Andreas Färber 
---
 Documentation/devicetree/bindings/mfd/s2mps11.txt | 2 +-
 Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt 
b/Documentation/devicetree/bindings/mfd/s2mps11.txt
index d81ba30..55ab4f4 100644
--- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
+++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
@@ -81,7 +81,7 @@ as per the datasheet of s2mps11.
  - valid values for n are:
- S2MPS11: 1 to 38
- S2MPS14: 1 to 25
- - Example: LDO1, LD02, LDO28
+ - Example: LDO1, LDO2, LDO28
- BUCKn
  - valid values for n are:
- S2MPS11: 1 to 10
diff --git a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt 
b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
index d290988..2019131 100644
--- a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
+++ b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
@@ -86,7 +86,7 @@ as per the datasheet of s5m8767.
 
- LDOn
  - valid values for n are 1 to 28
- - Example: LDO1, LD02, LDO28
+ - Example: LDO1, LDO2, LDO28
- BUCKn
  - valid values for n are 1 to 9.
  - Example: BUCK1, BUCK2, BUCK9
-- 
1.9.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 3/4] Documentation: devicetree: Fix tps65090 typos

2014-06-22 Thread Andreas Färber
It's vsys-l{1,2}-supply, not vsys_l{1,2}-supply.

Signed-off-by: Andreas Färber 
---
 Documentation/devicetree/bindings/regulator/tps65090.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/regulator/tps65090.txt 
b/Documentation/devicetree/bindings/regulator/tps65090.txt
index 34098023..ca69f5e 100644
--- a/Documentation/devicetree/bindings/regulator/tps65090.txt
+++ b/Documentation/devicetree/bindings/regulator/tps65090.txt
@@ -45,8 +45,8 @@ Example:
infet5-supply = <&some_reg>;
infet6-supply = <&some_reg>;
infet7-supply = <&some_reg>;
-   vsys_l1-supply = <&some_reg>;
-   vsys_l2-supply = <&some_reg>;
+   vsys-l1-supply = <&some_reg>;
+   vsys-l2-supply = <&some_reg>;
 
regulators {
dcdc1 {
-- 
1.9.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 2/4] Documentation: devicetree: Fix s2mps11 example syntax

2014-06-22 Thread Andreas Färber
It's <1>, not 1.

Signed-off-by: Andreas Färber 
---
 Documentation/devicetree/bindings/mfd/s2mps11.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt 
b/Documentation/devicetree/bindings/mfd/s2mps11.txt
index 55ab4f4..99a0c52 100644
--- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
+++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
@@ -96,7 +96,7 @@ Example:
 
s2m_osc: clocks {
compatible = "samsung,s2mps11-clk";
-   #clock-cells = 1;
+   #clock-cells = <1>;
clock-output-names = "xx", "yy", "zz";
};
 
-- 
1.9.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


[RFC 4/4] ARM: dts: exynos5250: Add Spring device tree

2014-06-22 Thread Andreas Färber
Adds initial support for the HP Chromebook 11.

Cc: Vincent Palatin 
Cc: Doug Anderson 
Cc: Stephan van Schaik 
Signed-off-by: Andreas Färber 
---
 arch/arm/boot/dts/Makefile  |   1 +
 arch/arm/boot/dts/exynos5250-spring.dts | 556 
 2 files changed, 557 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos5250-spring.dts

diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
index 5986ff6..dc2c5aa 100644
--- a/arch/arm/boot/dts/Makefile
+++ b/arch/arm/boot/dts/Makefile
@@ -74,6 +74,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
exynos5250-arndale.dtb \
exynos5250-smdk5250.dtb \
exynos5250-snow.dtb \
+   exynos5250-spring.dtb \
exynos5260-xyref5260.dtb \
exynos5410-smdk5410.dtb \
exynos5420-arndale-octa.dtb \
diff --git a/arch/arm/boot/dts/exynos5250-spring.dts 
b/arch/arm/boot/dts/exynos5250-spring.dts
new file mode 100644
index 000..e857d44
--- /dev/null
+++ b/arch/arm/boot/dts/exynos5250-spring.dts
@@ -0,0 +1,556 @@
+/*
+ * Google Spring board device tree source
+ *
+ * Copyright (c) 2013 Google, Inc
+ * Copyright (c) 2014 SUSE LINUX Products GmbH
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+
+/dts-v1/;
+#include "exynos5250.dtsi"
+#include "exynos5250-cros-common.dtsi"
+
+/ {
+   model = "Google Spring";
+   compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5";
+
+   pinctrl@1140 {
+   s5m8767_dvs: s5m8767-dvs {
+   samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2";
+   samsung,pin-function = <0>;
+   samsung,pin-pud = <1>;
+   samsung,pin-drv = <0>;
+   };
+
+   s5m8767_ds: s5m8767-ds {
+   samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5";
+   samsung,pin-function = <0>;
+   samsung,pin-pud = <1>;
+   samsung,pin-drv = <0>;
+   };
+
+   tps65090_irq: tps65090-irq {
+   samsung,pins = "gpx2-6";
+   samsung,pin-function = <0>;
+   samsung,pin-pud = <0>;
+   samsung,pin-drv = <0>;
+   };
+
+   s5m8767_irq: s5m8767-irq {
+   samsung,pins = "gpx3-2";
+   samsung,pin-function = <0>;
+   samsung,pin-pud = <0>;
+   samsung,pin-drv = <0>;
+   };
+
+   hdmi_hpd_irq: hdmi-hpd-irq {
+   samsung,pins = "gpx3-7";
+   samsung,pin-function = <0>;
+   samsung,pin-pud = <1>;
+   samsung,pin-drv = <0>;
+   };
+   };
+
+   pinctrl@1340 {
+   hsic_reset: hsic-reset {
+   samsung,pins = "gpe1-0";
+   samsung,pin-function = <1>;
+   samsung,pin-pud = <0>;
+   samsung,pin-drv = <0>;
+   };
+   };
+
+   vbat: vbat-fixed-regulator {
+   compatible = "regulator-fixed";
+   regulator-name = "vbat-supply";
+   regulator-boot-on;
+   };
+
+   usb@1200 {
+   status = "okay";
+   };
+
+   usb3_vbus_reg: regulator-usb3 {
+   compatible = "regulator-fixed";
+   regulator-name = "P5.0V_USB3CON";
+   regulator-min-microvolt = <500>;
+   regulator-max-microvolt = <500>;
+   gpio = <&gpe1 0 1>;
+   pinctrl-names = "default";
+   pinctrl-0 = <&hsic_reset>;
+   enable-active-high;
+   };
+
+   phy@1210 {
+   vbus-supply = <&usb3_vbus_reg>;
+   };
+
+   usb@1211 {
+   samsung,vbus-gpio = <&gpx1 1 0>;
+   status = "okay";
+   };
+
+   usb@1212 {
+   status = "okay";
+   };
+
+   mmc@1222 {
+   /* MMC2 pins are used as GPIO for eDP bridge control. */
+   status = "disabled";
+   };
+
+   mmc@1223 {
+   status = "disabled";
+   };
+
+   i2c@12C6 {
+   max77686@09 {
+   #address-cells = <1>;
+   #size-cells = <0>;
+   status = "disabled";
+
+   rtc {
+   reg = <0x6>;
+   };
+   };
+
+   s5m8767_pmic@66 {
+   compatible = "samsung,s5m8767-pmic";
+   reg = <0x66>;
+   interrupt-parent = <&gpx3>;
+   interrupts = <2 0>;
+   pinctrl-nam

Re: [PATCH v6 1/6] clk: samsung: add infrastructure to register cpu clocks

2014-06-22 Thread amit daniel kachhap
On Tue, Jun 17, 2014 at 8:55 PM, Thomas Abraham  wrote:
> From: Thomas Abraham 
>
> The CPU clock provider supplies the clock to the CPU clock domain. The
> composition and organization of the CPU clock provider could vary among
> Exynos SoCs. A CPU clock provider can be composed of clock mux, dividers
> and gates. This patch defines a new clock type for CPU clock provider and
> adds infrastructure to register the CPU clock providers for Samsung
> platforms.
Thomas,

The overall code structuring looks very neat. Few minor and some
optimization points are suggested below,
After updating them you can add and sorry for late review.
Reviewed-by: Amit Daniel Kachhap 


>
> Cc: Tomasz Figa 
> Signed-off-by: Thomas Abraham 
> ---
>  drivers/clk/samsung/Makefile  |2 +-
>  drivers/clk/samsung/clk-cpu.c |  577 
> +
>  drivers/clk/samsung/clk.h |5 +
>  3 files changed, 583 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/clk/samsung/clk-cpu.c
>
> diff --git a/drivers/clk/samsung/Makefile b/drivers/clk/samsung/Makefile
> index 69e8177..f4edd31 100644
> --- a/drivers/clk/samsung/Makefile
> +++ b/drivers/clk/samsung/Makefile
> @@ -2,7 +2,7 @@
>  # Samsung Clock specific Makefile
>  #
>
> -obj-$(CONFIG_COMMON_CLK)   += clk.o clk-pll.o
> +obj-$(CONFIG_COMMON_CLK)   += clk.o clk-pll.o clk-cpu.o
>  obj-$(CONFIG_SOC_EXYNOS3250)   += clk-exynos3250.o
>  obj-$(CONFIG_ARCH_EXYNOS4) += clk-exynos4.o
>  obj-$(CONFIG_SOC_EXYNOS5250)   += clk-exynos5250.o
> diff --git a/drivers/clk/samsung/clk-cpu.c b/drivers/clk/samsung/clk-cpu.c
> new file mode 100644
> index 000..c40f7b5
> --- /dev/null
> +++ b/drivers/clk/samsung/clk-cpu.c
> @@ -0,0 +1,577 @@
> +/*
> + * Copyright (c) 2014 Samsung Electronics Co., Ltd.
> + * Author: Thomas Abraham 
> + *
> + * This program is free software; you can redistribute it and/or modify
> + * it under the terms of the GNU General Public License version 2 as
> + * published by the Free Software Foundation.
> + *
> + * This file contains the utility functions to register the CPU clocks
> + * for Samsung platforms.
> +*/
> +
> +#include 
> +#include "clk.h"
> +
> +#define E4210_SRC_CPU  0x0
> +#define E4210_STAT_CPU 0x200
> +#define E4210_DIV_CPU0 0x300
> +#define E4210_DIV_CPU1 0x304
> +#define E4210_DIV_STAT_CPU00x400
> +#define E4210_DIV_STAT_CPU10x404
> +
> +#define MAX_DIV8
> +#define DIV_MASK   7
> +#define DIV_MASK_ALL   0x
> +#define MUX_MASK   7
> +
> +#define E4210_DIV0_RATIO0_MASK 0x7
> +#define E4210_DIV1_HPM_MASK((0x7 << 4) | (0x7 << 0))
> +#define E4210_MUX_HPM_MASK (1 << 20)
> +#define E4210_DIV0_ATB_SHIFT   16
> +#define E4210_DIV0_ATB_MASK(DIV_MASK << E4210_DIV0_ATB_SHIFT)
> +
> +#define E4210_CPU_DIV0(apll, pclk_dbg, atb, periph, corem1, corem0)\
> +   (((apll) << 24) | ((pclk_dbg) << 20) | ((atb) << 16) |  \
> +   ((periph) << 12) | ((corem1) << 8) | ((corem0) <<  4))
> +#define E4210_CPU_DIV1(hpm, copy)  \
> +   (((hpm) << 4) | ((copy) << 0))
> +
> +#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))
> +
> +#define E5420_EGL_DIV0(apll, pclk_dbg, atb, cpud)  \
> +   (((apll << 24) | (pclk_dbg << 20) | (atb << 16) |   \
> +(cpud << 4)))
> +#define E5420_KFC_DIV(kpll, pclk, aclk)  
>   \
> +   (((kpll << 24) | (pclk << 20) | (aclk << 4)))
> +
> +enum cpuclk_type {
> +   EXYNOS4210,
> +   EXYNOS5250,
> +   EXYNOS5420,
> +};
> +
> +/**
> + * struct exynos4210_cpuclk_data: config data to setup cpu clocks.
> + * @prate: frequency of the primary parent clock (in KHz).
> + * @div0: value to be programmed in the div_cpu0 register.
> + * @div1: value to be programmed in the div_cpu1 register.
> + *
> + * This structure holds the divider configuration data for dividers in the 
> CPU
> + * clock domain. The parent frequency at which these divider values are 
> valid is
> + * specified in @prate. The @prate is the frequency of the primary parent 
> clock.
> + * For CPU clock domains that do not have a DIV1 register, the @div1 member
> + * is optional.
> + */
> +struct exynos4210_cpuclk_data {
> +   unsigned long   prate;
> +   unsigned intdiv0;
> +   unsigned intdiv1;
> +};
This structure is used for infact all exynos SOCs, if possible see if
this can be renamed to exynos_cpuclk_data.
> +
> +/**
> + * struct exynos_cpuclk: information about clock supplied to a CPU core.
> + * @hw:handle between CCF and CPU clock.
> + * @alt_p

Re: [PATCH v6 3/6] clk: exynos: use cpu-clock provider type to represent arm clock

2014-06-22 Thread amit daniel kachhap
On Tue, Jun 17, 2014 at 8:55 PM, Thomas Abraham  wrote:
> From: Thomas Abraham 
>
> With the addition of the new Samsung specific cpu-clock type, the
> arm clock can be represented as a cpu-clock type and the independent
> clock blocks that made up the arm clock can be removed.
>
> Cc: Tomasz Figa 
> Signed-off-by: Thomas Abraham 
> ---
>  drivers/clk/samsung/clk-exynos4.c  |   25 +
>  drivers/clk/samsung/clk-exynos5250.c   |   16 +++-
>  drivers/clk/samsung/clk-exynos5420.c   |   31 ++-
>  include/dt-bindings/clock/exynos5250.h |1 +
>  include/dt-bindings/clock/exynos5420.h |2 ++
>  5 files changed, 53 insertions(+), 22 deletions(-)
>
> diff --git a/drivers/clk/samsung/clk-exynos4.c 
> b/drivers/clk/samsung/clk-exynos4.c
> index 4f150c9..04cbcb6 100644
> --- a/drivers/clk/samsung/clk-exynos4.c
> +++ b/drivers/clk/samsung/clk-exynos4.c
> @@ -471,7 +471,8 @@ static struct samsung_mux_clock exynos4210_mux_clks[] 
> __initdata = {
> MUX(0, "mout_fimd1", group1_p4210, E4210_SRC_LCD1, 0, 4),
> MUX(0, "mout_mipi1", group1_p4210, E4210_SRC_LCD1, 12, 4),
> MUX(CLK_SCLK_MPLL, "sclk_mpll", mout_mpll_p, SRC_CPU, 8, 1),
> -   MUX(CLK_MOUT_CORE, "mout_core", mout_core_p4210, SRC_CPU, 16, 1),
> +   MUX_F(CLK_MOUT_CORE, "mout_core", mout_core_p4210, SRC_CPU, 16, 1, 0,
> +   CLK_MUX_READ_ONLY),
> MUX(CLK_SCLK_VPLL, "sclk_vpll", sclk_vpll_p4210, SRC_TOP0, 8, 1),
> MUX(CLK_MOUT_FIMC0, "mout_fimc0", group1_p4210, SRC_CAM, 0, 4),
> MUX(CLK_MOUT_FIMC1, "mout_fimc1", group1_p4210, SRC_CAM, 4, 4),
> @@ -530,7 +531,8 @@ static struct samsung_mux_clock exynos4x12_mux_clks[] 
> __initdata = {
> MUX(0, "mout_jpeg", mout_jpeg_p, E4X12_SRC_CAM1, 8, 1),
> MUX(CLK_SCLK_MPLL, "sclk_mpll", mout_mpll_p, SRC_DMC, 12, 1),
> MUX(CLK_SCLK_VPLL, "sclk_vpll", mout_vpll_p, SRC_TOP0, 8, 1),
> -   MUX(CLK_MOUT_CORE, "mout_core", mout_core_p4x12, SRC_CPU, 16, 1),
> +   MUX_F(CLK_MOUT_CORE, "mout_core", mout_core_p4x12, SRC_CPU, 16, 1, 0,
> +   CLK_MUX_READ_ONLY),
> MUX(CLK_MOUT_FIMC0, "mout_fimc0", group1_p4x12, SRC_CAM, 0, 4),
> MUX(CLK_MOUT_FIMC1, "mout_fimc1", group1_p4x12, SRC_CAM, 4, 4),
> MUX(CLK_MOUT_FIMC2, "mout_fimc2", group1_p4x12, SRC_CAM, 8, 4),
> @@ -572,8 +574,10 @@ static struct samsung_mux_clock exynos4x12_mux_clks[] 
> __initdata = {
>
>  /* list of divider clocks supported in all exynos4 soc's */
>  static struct samsung_div_clock exynos4_div_clks[] __initdata = {
> -   DIV(0, "div_core", "mout_core", DIV_CPU0, 0, 3),
> -   DIV(0, "div_core2", "div_core", DIV_CPU0, 28, 3),
> +   DIV_F(0, "div_core", "mout_core", DIV_CPU0, 0, 3,
> +   CLK_GET_RATE_NOCACHE, CLK_DIVIDER_READ_ONLY),
> +   DIV_F(0, "div_core2", "div_core", DIV_CPU0, 28, 3,
> +   CLK_GET_RATE_NOCACHE, CLK_DIVIDER_READ_ONLY),
> DIV(0, "div_fimc0", "mout_fimc0", DIV_CAM, 0, 4),
> DIV(0, "div_fimc1", "mout_fimc1", DIV_CAM, 4, 4),
> DIV(0, "div_fimc2", "mout_fimc2", DIV_CAM, 8, 4),
> @@ -619,8 +623,10 @@ static struct samsung_div_clock exynos4_div_clks[] 
> __initdata = {
> DIV(0, "div_spi_pre2", "div_spi2", DIV_PERIL2, 8, 8),
> DIV(0, "div_audio1", "mout_audio1", DIV_PERIL4, 0, 4),
> DIV(0, "div_audio2", "mout_audio2", DIV_PERIL4, 16, 4),
> -   DIV(CLK_ARM_CLK, "arm_clk", "div_core2", DIV_CPU0, 28, 3),
> -   DIV(CLK_SCLK_APLL, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3),
> +   DIV_F(CLK_ARM_CLK, "arm_clk", "div_core2", DIV_CPU0, 28, 3,
> +   CLK_GET_RATE_NOCACHE, CLK_DIVIDER_READ_ONLY),
> +   DIV_F(CLK_SCLK_APLL, "sclk_apll", "mout_apll", DIV_CPU0, 24, 3,
> +   CLK_GET_RATE_NOCACHE, CLK_DIVIDER_READ_ONLY),
> DIV_F(0, "div_mipi_pre0", "div_mipi0", DIV_LCD0, 20, 4,
> CLK_SET_RATE_PARENT, 0),
> DIV_F(0, "div_mmc_pre0", "div_mmc0", DIV_FSYS1, 8, 8,
> @@ -1005,7 +1011,6 @@ static struct samsung_gate_clock exynos4x12_gate_clks[] 
> __initdata = {
>
>  static struct samsung_clock_alias exynos4_aliases[] __initdata = {
> ALIAS(CLK_MOUT_CORE, NULL, "moutcore"),
> -   ALIAS(CLK_ARM_CLK, NULL, "armclk"),
> ALIAS(CLK_SCLK_APLL, NULL, "mout_apll"),
>  };
>
> @@ -1244,6 +1249,8 @@ static void __init exynos4_clk_init(struct device_node 
> *np,
> ARRAY_SIZE(exynos4210_gate_clks));
> samsung_clk_register_alias(ctx, exynos4210_aliases,
> ARRAY_SIZE(exynos4210_aliases));
> +   exynos_register_cpu_clock(ctx, 0, CLK_ARM_CLK, "armclk",
> +   mout_core_p4210[0], mout_core_p4210[1], np);
> } else {
> samsung_clk_register_mux(ctx, exynos4x12_mux_clks,
> ARRAY_SIZE(exynos4x12_mux_clks));
> @@ -1253,6 +1260,8 @@ static v

Re: [PATCH 1/4] Documentation: devicetree: Fix s2mps11 and s5m8767 typos

2014-06-22 Thread Sachin Kamat
On Mon, Jun 23, 2014 at 6:51 AM, Andreas Färber  wrote:
> It's LDO2, not LD02.
>
> Signed-off-by: Andreas Färber 
> ---
>  Documentation/devicetree/bindings/mfd/s2mps11.txt | 2 +-
>  Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt 
> b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> index d81ba30..55ab4f4 100644
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> @@ -81,7 +81,7 @@ as per the datasheet of s2mps11.
>   - valid values for n are:
> - S2MPS11: 1 to 38
> - S2MPS14: 1 to 25
> - - Example: LDO1, LD02, LDO28
> + - Example: LDO1, LDO2, LDO28
> - BUCKn
>   - valid values for n are:
> - S2MPS11: 1 to 10
> diff --git 
> a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt 
> b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> index d290988..2019131 100644
> --- a/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> +++ b/Documentation/devicetree/bindings/regulator/s5m8767-regulator.txt
> @@ -86,7 +86,7 @@ as per the datasheet of s5m8767.
>
> - LDOn
>   - valid values for n are 1 to 28
> - - Example: LDO1, LD02, LDO28
> + - Example: LDO1, LDO2, LDO28
> - BUCKn
>   - valid values for n are 1 to 9.
>   - Example: BUCK1, BUCK2, BUCK9
> --

Very keen observation :)

Reviewed-by: Sachin Kamat 
--
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 2/4] Documentation: devicetree: Fix s2mps11 example syntax

2014-06-22 Thread Sachin Kamat
On Mon, Jun 23, 2014 at 6:51 AM, Andreas Färber  wrote:
> It's <1>, not 1.
>
> Signed-off-by: Andreas Färber 
> ---
>  Documentation/devicetree/bindings/mfd/s2mps11.txt | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/devicetree/bindings/mfd/s2mps11.txt 
> b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> index 55ab4f4..99a0c52 100644
> --- a/Documentation/devicetree/bindings/mfd/s2mps11.txt
> +++ b/Documentation/devicetree/bindings/mfd/s2mps11.txt
> @@ -96,7 +96,7 @@ Example:
>
> s2m_osc: clocks {
> compatible = "samsung,s2mps11-clk";
> -   #clock-cells = 1;
> +   #clock-cells = <1>;
> clock-output-names = "xx", "yy", "zz";
> };
>
> --
> 1.9.3
>

Reviewed-by: Sachin Kamat 
--
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: mainline boot: 64 boots: 62 pass, 2 fail (v3.16-rc1-2-gebe0618)

2014-06-22 Thread Tushar Behera
Adding linux-samsung-soc and linux-arm-kernel ML for wider audience.

On 06/19/2014 04:12 PM, Tushar Behera wrote:
> On 06/19/2014 03:02 PM, Tushar Behera wrote:
>> On 06/18/2014 09:22 AM, Kevin Hilman wrote:
>>> On Tue, Jun 17, 2014 at 8:26 PM, Tushar Behera  wrote:
 On 06/17/2014 10:23 PM, Kevin Hilman wrote:
> Sachin,
>
> On Mon, Jun 16, 2014 at 11:16 PM, Kevin's boot bot  
> wrote:
>>
>> Tree/Branch: mainline
>> Git describe: v3.16-rc1-2-gebe0618
>> Failed boot tests (console logs at the end)
>> ===
>>  exynos5420-arndale-octa: FAIL:arm-exynos_defconfig
>> ste-snowball: FAIL:arm-u8500_defconfig
>
> FYI... these failures are getting more consistent on my octa board,
> but still not failing every time.
>
> Kevin
>

 Hi Kevin,

 Same here.

 Observation: If you soft-reset the board (through the jumpers) after
 getting this problem, the problem keeps repeating. But if you hard-reset
 the board (by removing the power cord), the problem doesn't occur during
 next iteration.
>>>
>>> I don't ever use the soft-reset, I only toggle the wall power.  I
>>> don't ever actually remove the power cord though, I'm using a
>>> USB-controlled relay to toggle the wall power.
>>>
>>> Kevin
>>>
>>
>> Laura,
>>
>> We are getting following kernel panic [1] (not always, but quite
>> regularly) while booting Arndale-Octa (based on Samsung's Exynos5420)
>> board with upstream kernel. I haven't observed this issue with other
>> boards yet.
>>
>> This issue is observed when I am booting with uImage + dtb (within
>> roughly ~10 iterations).
>>
> 
> Some more information:
> 
> The boot logs are provided in pastebin, okay[2] and failed[3].
> 
> In case of boot failures, I am getting a higher value for vm_total_pages
> (684424 in [3]). In case of successful boot on my board, it is always
> 521232 [2] on my board.
> 
> [2] http://pastebin.com/1iLaizuL
> [3] http://pastebin.com/5tdDt4GL
> 
>> There is no issue when I am booting appended zImage (zImage+dtb). I
>> tried running it over 200 cycles, but without any failure.
>>
>> 'git bisect' points to this commit.
>> commit 1c2f87c22566 "ARM: 8025/1: Get rid of meminfo"
>>
>> Reverting this commit on top of v3.16-rc1-17-ge99cfa2, I tested for
>> around 100 iterations of booting with uImage+dtb, without any failure.
>>
>> [1] Kernel log
>> Unhandled fault: external abort on non-linefetch (0x008) at 0xffc0
>> Internal error: : 8 [#1] PREEMPT SMP ARM
>> Modules linked in:
>> CPU: 0 PID: 1136 Comm: kworker/u16:0 Not tainted
>> 3.15.0-rc1-00027-g1c8c3cf-dirty #5
>> task: ed0f5800 ti: eda52000 task.ti: eda52000
>> PC is at __copy_to_user_std+0x4c/0x3a8
>> LR is at copy_page_to_iter+0xb0/0x26c
>> pc : []lr : []psr: 6113
>> sp : eda53de4  ip :   fp : ee103040
>> r10: ed9fb700  r9 : 0080  r8 : eda53eb8
>> r7 : ffc0  r6 :   r5 : 0080  r4 : eda53e78
>> r3 :   r2 :   r1 : ffc0  r0 : ed9fb700
>> Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
>> Control: 10c5387d  Table: 2000406a  DAC: 0015
>> Process kworker/u16:0 (pid: 1136, stack limit = 0xeda52240)
>>
> 
> 


-- 
Tushar Behera
--
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: Boot regression on Arndale Octa

2014-06-22 Thread Tushar Behera
On 06/22/2014 09:43 PM, Andreas Färber wrote:
> Hello,
> 
> Both on kgene's for-next 053341b6993a3e838cfa35c9f594fb94ee3da9ce and on
> Linus' 401c58fcbbf570e7e4a8ee0e21ffd829deb4de0b my Arndale Octa board
> fails to boot with an "Unhandled fault: synchronous external abort
> (0x210)". This is a regression from v3.15, 100% reproducible.
> 
> [6.251931] s3c-rtc 101e.rtc: setting system cloco to 2000-01-01
> 21:56:23 UTC (946763783)
> [6.253401] Unable to find PPMU node
> [6.253461] exynos5-bus-int: probe of exynos5-bus-int failed with
> error -2
> [6.268412] clk: Not disabling unused clocks
> [6.310161] Unhandled fault: synchronous external abort (0x210)
> X���17403d
> 6.316467] Internal error: : 210 [#1] PREEMPT SMP ARM
> [6.321576] Modules linked in:
> [6.324613] CPU: 0 PID: 1 Comm: swapper/0 Not tainted
> 3.16.0-rc1-00330-g401c58f #2
> [6.332151] task: ecc12000 ti: ecc84000 task.ti: ecc84000
> [6.337529] PC is at n_tty_open+0x68/0x118
> [6.341598] LR is at n_tty_open+0x64/0x118
> [6.3�M��pc : [c023007c>]lr : []psr: a113
> [6.345670] sp : ecc85d10  ip : 0003  fp : 
> [6.357106] r10: 0002  r9 : c0MV"�  r8 : 051
> [6.362305] r7 : 224c  r6 : eb1fd800  r5 :   r4 : f0174000
> [6.368804] r3 : f0176294  r2 : c061305c  r1 : c04dd17c  r0 : f0176280
> [6.375304] Flags: NzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM
> Segment kernel
> [6.382582] Control: 30c5387d  Table: 20003000  DAC:
> fff�C�+�r�Process swpper/0 (pid: 1, stack limit = 0xecc84240)
> [6.394280] Stack: (0xecc85d10 to 0xecc86000)
> [6.398615] 5d00: c0230014
> eb1fd800 eb1fd9bc eb2f1e80
> [6.406761] 5d20: c040ca0��33ef8 000 eb2f1e80 eb1fd800 c0234550
> ece91800 eb1fd800
> [6.414906] 5d40: 0003 c0��,V*��5e70 c006ba0 eb33e100 0001
> ece91800 c022db48
> [6.423051] 5d60: eb40482p c05c1428 c06134c0 c05d66b0 0001
> 0003 0001 c0613020
> [6.431196] 5d80: eb404820 eb33e100 c040ca04  
>  ecc85e70 c00d8880
> [6.439343] 5da0: eb33e108  0003 eb33e100 eb404820
> eb33e108 c00d87e4 c00d2e2c
> [6.447488] 5dc0:  ecc85e6c ecc85f34 0002 
>   c00d3108
> [6.455633] 5de0: ecc85eb0 c00g056c ecc84000 c00de4a0 c0599ed0
> ecc01d80 0001 ecc84030
> [6.463779] 5e00: eb33e100 0026 eb402558  
>  0f4756ea 0007
> [6.471925] 5e20: eb311015 eb404820 eb33e100 eb33e100 ecc85eb0
> ec,�2�4 ec85e70 ff9c
> [6.480070] 5e40:   ecc84000 c00e0e70 ecc85e6c
> c05c5e70 ecc85e88 ecc85f2e
> [6.488215] 5e60: c05c5e94 8113   ecc1d3d0
> eb402688  
> [6.496361] 5e80:  ecc85f34 0001 eb311000 ff9c
> c0553514 0085 c057b630
> [6.504506] 5ea0: c057b628 c00e22c4 0041  ecc1d3d0
> eb402688 0f4756ea 0007
> [6.511578] usb 1-1.4: new high-spe�d USB device number 3 using
> exynos-ehci
> [6.519584] 5ec0: eb311015 c05ab500  eb402000 eb404820
> 0101 0004 0018
> [6.527729] 5ee0:   ecc86008 c03e8db8 0002
> c00edfe4 c05fd1d0 0002
> [6.535875] 5f00: 0001 0002 eb311000 ff9c c05d6740
> 0002 eb311000 ff9c
> [6.544020] 5f20:  c00d4088 0085 0p006fbc 
> 0002  00�j
> [   6.552166] 5f40: 0100 0001 c05d6740 c0595360
> 0007 c05���5d6740 0553514
> [6.560312] 5f60: 0085 c0553d20 0007 0007 c0553514
> c03e8�3c ebb7a700 c004fb00
> [6.568456] 5f80: 2b5e3000 c05d6740 g03dff8c  
> 00j
>  [6.57602] 5fa0:  c03dff9c  c001c9b8
>  0�j
>  [6.54747] 5fc0:    
> 00j
> [6.92893] 5fe0: 0p00  
>  0013  ecc85ff4 
> [6.601049] [] (n_tty_open) from []
> (tty_ldisc_open.isra.4+0x3c/0x7c)
> [6.609189] [] (tty_ldisc_open.isra.4) from []
> (tty_ldisc_setup+0x18/0x58)
> [6.617768] [] (tty_ldisc_setup) from []
> (tty_init_dev+0xa0/0x198)
> [6.625654] [] (tty_init_dev) from []
> (tty_open+0x2c8/0x5bc)
> [6.633019] [] (tty_open) from []
> (chrdev_open+0x9c/0x178)
> [6.640212] [] (chrdev_open) from []
> (do_dentry_open.isra.15+0xdc/0x2e8)
> [6.648617] [] (do_dentry_open.isra.15) from []
> (finish_open+0x20/0x38)
> [6.656939] [] (finish_open) from []
> (do_last.isra.55+0x3e8/0xc38)
> [6.664821] [] (do_las|.isra.55) from []
> (path_openat+0xb4/0x5e0)
> [6.672620] [] (path_openat) from []
> (do_filp_open+0x2c/0x80)
> [6.680072] [] (do_filp_open) from []
> (do_sys_open+0x10�/0x1d0)
> [6.687696] [] (do_sys_open) from []
> (kernel_init_freeable+0x160/0x1d8)
> [6.696017] [] (kerne

Re: MMC error on Exynos4210 board

2014-06-22 Thread Sachin Kamat
Hi Tim,

On Sat, Jun 21, 2014 at 2:31 AM, Tim Kryger  wrote:
> On Thu, Jun 19, 2014 at 8:33 PM, Sachin Kamat  wrote:
>> On Thu, Jun 19, 2014 at 6:11 PM, Jaehoon Chung  
>> wrote:
>>> On 06/19/2014 07:40 PM, Sachin Kamat wrote:
 On Thu, Jun 19, 2014 at 2:40 PM, Tim Kryger  wrote:
> On Thu, Jun 19, 2014 at 1:49 AM, Sachin Kamat  wrote:
>> On Thu, Jun 19, 2014 at 2:12 PM, Tim Kryger  wrote:
>>> On Wed, Jun 18, 2014 at 8:54 PM, Sachin Kamat  
>>> wrote:
> On Wed, Jun 18, 2014 at 4:33 AM, Sachin Kamat  
> wrote:
>>>
>> I see the below error on Exynos4210 based Origen board with 
>> linux-next
>> (20140618).
>> Reverting the below commit works fine.
>>
>> Commit: 8d02e775a6 "mmc: sdhci: Use mmc core regulator infrastucture"
>>>
>>
>> -- [2.068992] sdhci: Secure Digital Host Controller Interface 
>> driver
>> [2.075059] sdhci: Copyright(c) Pierre Ossman
>> [2.079762] of_get_named_gpiod_flags: can't parse gpios property 
>> of
>> node '/sdhci@1251[0]'
>> [2.088021] s3c-sdhci 1251.sdhci: clock source 2: mmc_busclk.2
>> (5000 Hz)
>> [2.095322] of_get_named_gpiod_flags: can't parse gpios property 
>> of
>> node '/sdhci@1251[0]'
>> [2.103794] of_get_named_gpiod_flags: can't parse gpios property 
>> of
>> node '/sdhci@1251[0]'
>> [2.112478] s3c-sdhci 1251.sdhci: No vqmmc regulator found
>> [2.118117] mmc0: Hardware doesn't report any support voltages.
>> [2.124004] s3c-sdhci 1251.sdhci: sdhci_add_host() failed
>> [2.130080] of_get_named_gpiod_flags: can't parse gpios property 
>> of
>> node '/sdhci@1253[0]'
>> [2.138352] s3c-sdhci 1253.sdhci: clock source 2: mmc_busclk.2
>> (1667 Hz)
>> [2.145661] of_get_named_gpiod_flags: can't parse gpios property 
>> of
>> node '/sdhci@1253[0]'
>> [2.154139] of_get_named_gpiod_flags: can't parse gpios property 
>> of
>> node '/sdhci@1253[0]'
>> [2.162834] s3c-sdhci 1253.sdhci: No vqmmc regulator found
>> [2.168464] mmc0: Hardware doesn't report any support voltages.
>> [2.174349] s3c-sdhci 1253.sdhci: sdhci_add_host() failed
>>>
>> [2.336148] Waiting for root device /dev/mmcblk0p1...
>>>
 FYI, the board has a 2.8V fixed regulator supply connected to the MMC.
 You may refer to arch/arm/boot/dts/exynos4210-origen.dts for more 
 details.
>>>
>>> A 2.8v regulator results in mmc->ocr_avail being set to MMC_VDD_27_28
>>> | MMC_VDD_28_29.
>>>
>>> The SDHCI capabilities register only indicates support of three voltage 
>>> levels
>>>   - 1.8v: SDHCI_CAN_VDD_180 => MMC_VDD_165_195
>>>   - 3.0v: SDHCI_CAN_VDD_300 => MMC_VDD_29_30 | MMC_VDD_30_31
>>>   - 3.3v: SDHCI_CAN_VDD_330 => MMC_VDD_32_33 | MMC_VDD_33_34
>>>
>>> Right. sdhci capabilities only indicated them.
>>> But I think SoC can be support the specific VDD range.
>>>
>>>
>>> Even if all capability bits of the host controller were set, there
>>> still wouldn't be any overlap.  Thus you see a "Hardware doesn't
>>> report any support voltages" message.
>>>
>>> Previously, this issue was being swept under the rug by cec2e21 mmc:
>>> sdhci: Use regulator min/max voltage range according to spec.  That
>>> change hacked up the voltage range checks such that with your 2.8v
>>> fixed regulator, the driver would believe the host could support
>>> MMC_VDD_29_30 | MMC_VDD_30_31 | MMC_VDD_32_33 | MMC_VDD_33_34.  The
>>> driver would start down the path of commanding 3.3v-3.4v (the highest
>>> voltage range believed to be supported).  At the last second, the
>>> driver would see the regulator was fixed and blindly skip over the set
>>> voltage operation, saving it from failure.
>>>
>>> Since my patch eliminates the bogus voltage range checks, your board
>>> is now getting caught playing too loose with the SDHCI regulator
>>> voltages.
>>>
>>> Furthermore, the fixed regulator special-case logic that helped hide
>>> your issue should also be considered for removal given that fixed
>>> regulators now behave properly thanks to c00dc35 regulator: core:
>>> Allow regulator_set_voltage for fixed regulators.
>>
>> Thanks for the detailed explanation. What do you propose to get this 
>> fixed
>
> It would be nice if the driver could be extended
> to handle the peculiarities of your board in a deliberate manner but
> limiting the common sdhci driver to supporting only the three voltages
> from the spec also seems sensible.

 Until such time that the driver gets fixed to handle 2.8V fixed supply 

Re: [PATCH v2 Resend 1/2] ARM: EXYNOS: Update secondary boot addr for secure mode

2014-06-22 Thread Sachin Kamat
On Fri, May 30, 2014 at 11:49 PM, Andreas Färber  wrote:
> Am 28.05.2014 06:13, schrieb Sachin Kamat:
>> Almost all Exynos-series of SoCs that run in secure mode don't need
>> additional offset for every CPU, with Exynos4412 being the only
>> exception.
>>
>> Tested on Origen-Quad (Exynos4412) and Arndale-Octa (Exynos5420).
>>
>> While at it, fix the coding style (space around *).
>>
>> Signed-off-by: Sachin Kamat 
>> Signed-off-by: Tushar Behera 
>> ---
>>  arch/arm/mach-exynos/firmware.c |9 +++--
>>  1 file changed, 7 insertions(+), 2 deletions(-)
>
> Fixes ODROID-XU (Exynos5410) as well - thought it had been a prereq to
> applying the 5410 patches...
>
> Tested-by: Andreas Färber 
>

Kukjin, this patch is required to bring up 4 A15 cores on some 5410
and 5420 based
boards. Can you please queue this up for the upcoming rc as fixes?
--
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: Move display-timings node under fimd node

2014-06-22 Thread Tushar Behera
'display-timings' should be a subnode for fimd node. Moving this
node appropriately gets the display back on Origen/Origen-Quad boards.

Signed-off-by: Tushar Behera 
---
Based on next-20140620.

Tested on Exynos4210-Origen board. Looks like there are still some pending
bits on Exynos4412-Origen to get display working.

 arch/arm/boot/dts/exynos4210-origen.dts |   26 +-
 arch/arm/boot/dts/exynos4412-origen.dts |   26 +-
 2 files changed, 26 insertions(+), 26 deletions(-)

diff --git a/arch/arm/boot/dts/exynos4210-origen.dts 
b/arch/arm/boot/dts/exynos4210-origen.dts
index f767c42..a39323f 100644
--- a/arch/arm/boot/dts/exynos4210-origen.dts
+++ b/arch/arm/boot/dts/exynos4210-origen.dts
@@ -317,20 +317,20 @@
pinctrl-0 = <&lcd_en &lcd_clk &lcd_data24 &pwm0_out>;
pinctrl-names = "default";
status = "okay";
-   };
 
-   display-timings {
-   native-mode = <&timing0>;
-   timing0: timing {
-   clock-frequency = <4750>;
-   hactive = <1024>;
-   vactive = <600>;
-   hfront-porch = <64>;
-   hback-porch = <16>;
-   hsync-len = <48>;
-   vback-porch = <64>;
-   vfront-porch = <16>;
-   vsync-len = <3>;
+   display-timings {
+   native-mode = <&timing0>;
+   timing0: timing {
+   clock-frequency = <4750>;
+   hactive = <1024>;
+   vactive = <600>;
+   hfront-porch = <64>;
+   hback-porch = <16>;
+   hsync-len = <48>;
+   vback-porch = <64>;
+   vfront-porch = <16>;
+   vsync-len = <3>;
+   };
};
};
 };
diff --git a/arch/arm/boot/dts/exynos4412-origen.dts 
b/arch/arm/boot/dts/exynos4412-origen.dts
index e925c9f..0604220 100644
--- a/arch/arm/boot/dts/exynos4412-origen.dts
+++ b/arch/arm/boot/dts/exynos4412-origen.dts
@@ -160,20 +160,20 @@
pinctrl-0 = <&lcd_clk &lcd_data24 &pwm1_out>;
pinctrl-names = "default";
status = "okay";
-   };
 
-   display-timings {
-   native-mode = <&timing0>;
-   timing0: timing {
-   clock-frequency = <4750>;
-   hactive = <1024>;
-   vactive = <600>;
-   hfront-porch = <64>;
-   hback-porch = <16>;
-   hsync-len = <48>;
-   vback-porch = <64>;
-   vfront-porch = <16>;
-   vsync-len = <3>;
+   display-timings {
+   native-mode = <&timing0>;
+   timing0: timing {
+   clock-frequency = <4750>;
+   hactive = <1024>;
+   vactive = <600>;
+   hfront-porch = <64>;
+   hback-porch = <16>;
+   hsync-len = <48>;
+   vback-porch = <64>;
+   vfront-porch = <16>;
+   vsync-len = <3>;
+   };
};
};
 
-- 
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 4/5 v2] drm/exynos: soft reset mixer before reconfigure after power-on

2014-06-22 Thread Rahul Sharma
Mixer soft reset is a recommended step before reconfiguring
the mixer after power on. Mixer looses the previous state of
DMAs if soft reset. This is the recommendation from the
hardware team.

Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_mixer.c |2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index 6773b03..6f18581 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1085,6 +1085,8 @@ static void mixer_poweron(struct exynos_drm_manager *mgr)
ctx->powered = true;
mutex_unlock(&ctx->mixer_mutex);
 
+   mixer_reg_writemask(res, MXR_STATUS, ~0, MXR_STATUS_SOFT_RESET);
+
mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
mixer_win_reset(ctx);
 
-- 
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 5/5 v2] drm/exynos: enable vsync interrupt while waiting for vblank

2014-06-22 Thread Rahul Sharma
mixer_wait_for_vblank function expects that the upcoming
vsync interrupt handler routine will clear the
wait_vsync_event atomic variable.

For this to happen, interrupts should be enabled and
disabled properly.

Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_mixer.c |4 
 1 file changed, 4 insertions(+)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index 6f18581..7529946 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1019,6 +1019,8 @@ static void mixer_wait_for_vblank(struct 
exynos_drm_manager *mgr)
}
mutex_unlock(&mixer_ctx->mixer_mutex);
 
+   drm_vblank_get(mgr->crtc->dev, mixer_ctx->pipe);
+
atomic_set(&mixer_ctx->wait_vsync_event, 1);
 
/*
@@ -1029,6 +1031,8 @@ static void mixer_wait_for_vblank(struct 
exynos_drm_manager *mgr)
!atomic_read(&mixer_ctx->wait_vsync_event),
HZ/20))
DRM_DEBUG_KMS("vblank wait timed out.\n");
+
+   drm_vblank_put(mgr->crtc->dev, mixer_ctx->pipe);
 }
 
 static void mixer_window_suspend(struct exynos_drm_manager *mgr)
-- 
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/5 v2] drm/exynos: allow mulitple layer updates per vsync for mixer

2014-06-22 Thread Rahul Sharma
Allowing only one layer update per vsync can cause issues
while there are update available for both layers. There is
a good amount of possibility to loose updates if we allow
single update per vsync.

Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_mixer.c |7 +--
 1 file changed, 1 insertion(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index d359501..6773b03 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -511,13 +511,8 @@ static void vp_video_buffer(struct mixer_context *ctx, int 
win)
 static void mixer_layer_update(struct mixer_context *ctx)
 {
struct mixer_resources *res = &ctx->mixer_res;
-   u32 val;
-
-   val = mixer_reg_read(res, MXR_CFG);
 
-   /* allow one update per vsync only */
-   if (!(val & MXR_CFG_LAYER_UPDATE_COUNT_MASK))
-   mixer_reg_writemask(res, MXR_CFG, ~0, MXR_CFG_LAYER_UPDATE);
+   mixer_reg_writemask(res, MXR_CFG, ~0, MXR_CFG_LAYER_UPDATE);
 }
 
 static void mixer_graph_buffer(struct mixer_context *ctx, int win)
-- 
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/5 v2] drm/exynos: set power state variable after enabling clocks and power

2014-06-22 Thread Rahul Sharma
Power state variable holds the state of the mixer device.
Power on and power off functions are toggling these variable
at wrong place.

State variable should be changed to true only after Runtime
PM and clocks are enabled. Else it may result to a situation
where mixer registers are accessed with device power enabled.
Similar logic for poweroff sequence.

Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_mixer.c |   22 +-
 1 file changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index 4c5aed7..c00abbe 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1061,7 +1061,7 @@ static void mixer_poweron(struct exynos_drm_manager *mgr)
mutex_unlock(&ctx->mixer_mutex);
return;
}
-   ctx->powered = true;
+
mutex_unlock(&ctx->mixer_mutex);
 
pm_runtime_get_sync(ctx->dev);
@@ -1072,6 +1072,10 @@ static void mixer_poweron(struct exynos_drm_manager *mgr)
clk_prepare_enable(res->sclk_mixer);
}
 
+   mutex_lock(&ctx->mixer_mutex);
+   ctx->powered = true;
+   mutex_unlock(&ctx->mixer_mutex);
+
mixer_reg_write(res, MXR_INT_EN, ctx->int_en);
mixer_win_reset(ctx);
 
@@ -1084,14 +1088,20 @@ static void mixer_poweroff(struct exynos_drm_manager 
*mgr)
struct mixer_resources *res = &ctx->mixer_res;
 
mutex_lock(&ctx->mixer_mutex);
-   if (!ctx->powered)
-   goto out;
+   if (!ctx->powered) {
+   mutex_unlock(&ctx->mixer_mutex);
+   return;
+   }
mutex_unlock(&ctx->mixer_mutex);
 
mixer_window_suspend(mgr);
 
ctx->int_en = mixer_reg_read(res, MXR_INT_EN);
 
+   mutex_lock(&ctx->mixer_mutex);
+   ctx->powered = false;
+   mutex_unlock(&ctx->mixer_mutex);
+
clk_disable_unprepare(res->mixer);
if (ctx->vp_enabled) {
clk_disable_unprepare(res->vp);
@@ -1099,12 +1109,6 @@ static void mixer_poweroff(struct exynos_drm_manager 
*mgr)
}
 
pm_runtime_put_sync(ctx->dev);
-
-   mutex_lock(&ctx->mixer_mutex);
-   ctx->powered = false;
-
-out:
-   mutex_unlock(&ctx->mixer_mutex);
 }
 
 static void mixer_dpms(struct exynos_drm_manager *mgr, int mode)
-- 
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 0/5 v2] drm/exynos: fix for misc issues related to exynos mixer

2014-06-22 Thread Rahul Sharma
Fixes for various issues which are to Power On/Off sequence,
Layer update, waiting for vblank in exynos mixer driver.

v2: 1) Repalce mixer_enable_vblank with drm_vblank_get.

This series is based on exynos-drm-fixes branch in Inki dae's tree.

Rahul Sharma (5):
  drm/exynos: set power state variable after enabling clocks and power
  drm/exynos: stop mixer before gating clocks during poweroff
  drm/exynos: allow mulitple layer updates per vsync for mixer
  drm/exynos: soft reset mixer before reconfigure after power-on
  drm/exynos: enable vsync interrupt while waiting for vblank

 drivers/gpu/drm/exynos/exynos_mixer.c |   50 +++--
 drivers/gpu/drm/exynos/regs-mixer.h   |1 +
 2 files changed, 36 insertions(+), 15 deletions(-)

-- 
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/5 v2] drm/exynos: stop mixer before gating clocks during poweroff

2014-06-22 Thread Rahul Sharma
Mixer should be power gated only after it is gracefully stopped.
The recommended sequence is to Stop the mixer and wait till
it enters to IDLE state before gating the clocks and power to
the mixer.

Signed-off-by: Rahul Sharma 
---
 drivers/gpu/drm/exynos/exynos_mixer.c |   15 +++
 drivers/gpu/drm/exynos/regs-mixer.h   |1 +
 2 files changed, 16 insertions(+)

diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c 
b/drivers/gpu/drm/exynos/exynos_mixer.c
index c00abbe..d359501 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -377,6 +377,20 @@ static void mixer_run(struct mixer_context *ctx)
mixer_regs_dump(ctx);
 }
 
+static void mixer_stop(struct mixer_context *ctx)
+{
+   struct mixer_resources *res = &ctx->mixer_res;
+   int timeout = 20;
+
+   mixer_reg_writemask(res, MXR_STATUS, 0, MXR_STATUS_REG_RUN);
+
+   while (!(mixer_reg_read(res, MXR_STATUS) & MXR_STATUS_REG_IDLE) &&
+   --timeout)
+   usleep_range(1, 12000);
+
+   mixer_regs_dump(ctx);
+}
+
 static void vp_video_buffer(struct mixer_context *ctx, int win)
 {
struct mixer_resources *res = &ctx->mixer_res;
@@ -1094,6 +1108,7 @@ static void mixer_poweroff(struct exynos_drm_manager *mgr)
}
mutex_unlock(&ctx->mixer_mutex);
 
+   mixer_stop(ctx);
mixer_window_suspend(mgr);
 
ctx->int_en = mixer_reg_read(res, MXR_INT_EN);
diff --git a/drivers/gpu/drm/exynos/regs-mixer.h 
b/drivers/gpu/drm/exynos/regs-mixer.h
index 4537026..5f32e1a 100644
--- a/drivers/gpu/drm/exynos/regs-mixer.h
+++ b/drivers/gpu/drm/exynos/regs-mixer.h
@@ -78,6 +78,7 @@
 #define MXR_STATUS_BIG_ENDIAN  (1 << 3)
 #define MXR_STATUS_ENDIAN_MASK (1 << 3)
 #define MXR_STATUS_SYNC_ENABLE (1 << 2)
+#define MXR_STATUS_REG_IDLE(1 << 1)
 #define MXR_STATUS_REG_RUN (1 << 0)
 
 /* bits for MXR_CFG */
-- 
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 v2] drm/exynos: defer hdmi probe when fail to get regulators

2014-06-22 Thread Rahul Sharma
HDMI probe proceeds with dummy regulators when the regulators
are not provided in DT node or regulator provider has not get
probed or failed to register the regulators.

This patch modify hdmi driver to defer the probe in case the
regulators are not available.

Signed-off-by: Rahul Sharma 
---
v2: Return Error code from devm_regulator_get_optional (as it is).

Based on exynos-drm-fixes branch in Inki dae's tree.
 drivers/gpu/drm/exynos/exynos_hdmi.c |   69 --
 1 file changed, 50 insertions(+), 19 deletions(-)

diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c 
b/drivers/gpu/drm/exynos/exynos_hdmi.c
index c104d0c..d05da3b 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -83,7 +83,7 @@ struct hdmi_resources {
struct clk  *sclk_pixel;
struct clk  *sclk_hdmiphy;
struct clk  *mout_hdmi;
-   struct regulator_bulk_data  *regul_bulk;
+   struct regulator**regulators;
int regul_count;
 };
 
@@ -2022,6 +2022,36 @@ static void hdmi_commit(struct exynos_drm_display 
*display)
hdmi_conf_apply(hdata);
 }
 
+int hdmi_regulator_enable(struct hdmi_context *hdata)
+{
+   struct hdmi_resources *res = &hdata->res;
+   int i, ret;
+
+   for (i = 0; i < res->regul_count; ++i) {
+   ret = regulator_enable(res->regulators[i]);
+   if (ret < 0) {
+   DRM_ERROR("fail to enable regulators.\n");
+   return ret;
+   }
+   }
+   return 0;
+}
+
+int hdmi_regulator_disable(struct hdmi_context *hdata)
+{
+   struct hdmi_resources *res = &hdata->res;
+   int i, ret;
+
+   for (i = 0; i < res->regul_count; ++i) {
+   ret = regulator_disable(res->regulators[i]);
+   if (ret < 0) {
+   DRM_ERROR("fail to disable regulators.\n");
+   return ret;
+   }
+   }
+   return 0;
+}
+
 static void hdmi_poweron(struct exynos_drm_display *display)
 {
struct hdmi_context *hdata = display->ctx;
@@ -2039,8 +2069,8 @@ static void hdmi_poweron(struct exynos_drm_display 
*display)
 
pm_runtime_get_sync(hdata->dev);
 
-   if (regulator_bulk_enable(res->regul_count, res->regul_bulk))
-   DRM_DEBUG_KMS("failed to enable regulator bulk\n");
+   if (hdmi_regulator_enable(hdata))
+   DRM_DEBUG_KMS("failed to enable regulators\n");
 
/* set pmu hdmiphy control bit to enable hdmiphy */
regmap_update_bits(hdata->pmureg, PMU_HDMI_PHY_CONTROL,
@@ -2077,7 +2107,8 @@ static void hdmi_poweroff(struct exynos_drm_display 
*display)
regmap_update_bits(hdata->pmureg, PMU_HDMI_PHY_CONTROL,
PMU_HDMI_PHY_ENABLE_BIT, 0);
 
-   regulator_bulk_disable(res->regul_count, res->regul_bulk);
+   if (hdmi_regulator_disable(hdata))
+   DRM_DEBUG_KMS("failed to disable regulators\n");
 
pm_runtime_put_sync(hdata->dev);
 
@@ -2192,24 +2223,24 @@ static int hdmi_resources_init(struct hdmi_context 
*hdata)
 
clk_set_parent(res->mout_hdmi, res->sclk_pixel);
 
-   res->regul_bulk = devm_kzalloc(dev, ARRAY_SIZE(supply) *
-   sizeof(res->regul_bulk[0]), GFP_KERNEL);
-   if (!res->regul_bulk) {
-   ret = -ENOMEM;
-   goto fail;
-   }
+   res->regul_count = ARRAY_SIZE(supply);
+
+   res->regulators = devm_kzalloc(dev, res->regul_count *
+   sizeof(res->regulators[0]), GFP_KERNEL);
+   if (!res->regulators)
+   return -ENOMEM;
+
for (i = 0; i < ARRAY_SIZE(supply); ++i) {
-   res->regul_bulk[i].supply = supply[i];
-   res->regul_bulk[i].consumer = NULL;
-   }
-   ret = devm_regulator_bulk_get(dev, ARRAY_SIZE(supply), res->regul_bulk);
-   if (ret) {
-   DRM_ERROR("failed to get regulators\n");
-   return ret;
+   res->regulators[i] =
+   devm_regulator_get_optional(dev, supply[i]);
+   if (IS_ERR(res->regulators[i])) {
+   DRM_ERROR("fail to get regulator: %s.\n",
+   supply[i]);
+   return PTR_ERR(res->regulators[i]);
+   }
}
-   res->regul_count = ARRAY_SIZE(supply);
 
-   return ret;
+   return 0;
 fail:
DRM_ERROR("HDMI resource init - failed\n");
return ret;
-- 
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/2] ASoC: max98090: Add max98091 compatible string

2014-06-22 Thread Tushar Behera
On 06/21/2014 02:02 AM, Doug Anderson wrote:
> Tushar,
> 
> On Fri, Jun 20, 2014 at 1:03 AM, Tushar Behera  wrote:
>> From: Wonjoon Lee 
>>
>> The MAX98091 CODEC is the same as MAX98090 CODEC, but with an extra
>> microphone. Existing driver for MAX98090 CODEC already has support
>> for MAX98091 CODEC. Adding proper compatible string so that MAX98091
>> CODEC can be specified from device tree.
>>
>> Signed-off-by: Wonjoon Lee 
>> Signed-off-by: Doug Anderson 
>> Signed-off-by: Tushar Behera 
>> ---
>>
>> Picked from https://chromium-review.googlesource.com/#/c/184091/
>>
>>  .../devicetree/bindings/sound/max98090.txt |2 +-
>>  sound/soc/codecs/max98090.c|2 ++
>>  2 files changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/Documentation/devicetree/bindings/sound/max98090.txt 
>> b/Documentation/devicetree/bindings/sound/max98090.txt
>> index a5e63fa..c454e67 100644
>> --- a/Documentation/devicetree/bindings/sound/max98090.txt
>> +++ b/Documentation/devicetree/bindings/sound/max98090.txt
>> @@ -4,7 +4,7 @@ This device supports I2C only.
>>
>>  Required properties:
>>
>> -- compatible : "maxim,max98090".
>> +- compatible : "maxim,max98090" or "maxim,max98091".
>>
>>  - reg : The I2C address of the device.
>>
>> diff --git a/sound/soc/codecs/max98090.c b/sound/soc/codecs/max98090.c
>> index f5fccc7..4f5534d 100644
>> --- a/sound/soc/codecs/max98090.c
>> +++ b/sound/soc/codecs/max98090.c
>> @@ -2460,12 +2460,14 @@ static const struct dev_pm_ops max98090_pm = {
>>
>>  static const struct i2c_device_id max98090_i2c_id[] = {
>> { "max98090", MAX98090 },
>> +   { "max98091", MAX98091 },
> 
> optional: This would allow you to add some extra error checking in
> max98090_probe() to make sure that the device-tree specified device
> matched the device that was detected.  That could be in a future
> patch, though.
> 
> Reviewed-by: Doug Anderson 
> 

Okay. I will add that in a follow-up patch.

Thanks for reviewing.
-- 
Tushar Behera
--
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