linux.git
7 years agoMLK-11221 imx: mx6ul add 14x14 lpddr2 arm2 dts
Peng Fan [Tue, 7 Jul 2015 11:48:37 +0000 (19:48 +0800)]
MLK-11221 imx: mx6ul add 14x14 lpddr2 arm2 dts

Add dts for mx6ul-14x14-lpddr2-arm2 board.
Basic function tested: SD1/EMMC2/ENET/UART1 is ok.

This patch takes mx6ul-14x14-ddr3-arm2.dts as a reference.

Conflicts:
arch/arm/boot/dts/Makefile

Signed-off-by: Peng Fan <Peng.Fan@freescale.com>
(cherry picked from commit 8d10e92ed1b7d49332dec6f28c98250c28cdfa3f)

7 years agoMLK-11595-2 ARM: dts: imx7d-12x12-lpddr3-arm2: add hs400 support for usdhc3
Haibo Chen [Wed, 2 Sep 2015 09:51:39 +0000 (17:51 +0800)]
MLK-11595-2 ARM: dts: imx7d-12x12-lpddr3-arm2: add hs400 support for usdhc3

Add hs400 support for usdhc3 and add sd3.0 support for usdhc2.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-11593-3 ARM: dts: imx6ul.dtsi: remove redundancy touch screen
Haibo Chen [Mon, 21 Sep 2015 03:21:29 +0000 (11:21 +0800)]
MLK-11593-3 ARM: dts: imx6ul.dtsi: remove redundancy touch screen

Currently we only use 'tsc' for touch screen, so here remove
the redundancy 'touchctrl'.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-11593-1 ARM: config: add imx6ul touch screen support
Haibo Chen [Mon, 21 Sep 2015 03:05:18 +0000 (11:05 +0800)]
MLK-11593-1 ARM: config: add imx6ul touch screen support

Add imx6ul touch screen driver support in imx_v7_defconfig
and imx_v7_mfg_defconfig

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-11500-1 ARM: dts: imx7d-sdb: add sd3.0 and hs400 support
Haibo Chen [Wed, 16 Sep 2015 03:19:42 +0000 (11:19 +0800)]
MLK-11500-1 ARM: dts: imx7d-sdb: add sd3.0 and hs400 support

Add usdhc1 support for SD3.0 and add usdhc3 support for HS400 mode.

Signed-off-by: Haibo Chen <haibo.chen@freescale.com>
7 years agoMLK-11514 [MX6SX] No GUI show and the display is blank after bootup to x rootfs with...
Fancy Fang [Tue, 15 Sep 2015 08:47:50 +0000 (16:47 +0800)]
MLK-11514 [MX6SX] No GUI show and the display is blank after bootup to x rootfs with LVDS.100%.

The reason for this issue is that, on imx6sx platform, there is a display mix
to control the display modules(including lcdif) power on/off. When the fb
driver calls the 'pm_runtime_put_sync_suspend()', the display mix will be
powered down. And at this moment, all the register settings for lcdif always
have no effects. So the pm_runtime calling points in mxsfb driver should be
optimized to avoid this kind of cases.

Signed-off-by: Fancy Fang <chen.fang@freescale.com>
(cherry picked from commit 3b85eb989c89fb1c6d08215e435d72ab175e4e1e)

Conflicts:
drivers/video/mxsfb.c

7 years agoMLK-11542 media: mxc vout: reset video output count to zero when streamon
Song Bing [Tue, 15 Sep 2015 06:19:02 +0000 (14:19 +0800)]
MLK-11542 media: mxc vout: reset video output count to zero when streamon

As streamoff/streamon will reset all buffer list, video output count should
be reset to zero.  Or timer will get wrong schedule time if input buffer time
stamp is 0.

Signed-off-by: Song Bing b06498@freescale.com
7 years agoMLK-11519-02: arm: dts: Enable ipu output driver
Sandor Yu [Tue, 8 Sep 2015 08:38:02 +0000 (16:38 +0800)]
MLK-11519-02: arm: dts: Enable ipu output driver

Add IPU v4l2 output driver.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11519-1 media: forward mxc video output drivers to 4.1 kernel
Sandor Yu [Tue, 8 Sep 2015 07:54:21 +0000 (15:54 +0800)]
MLK-11519-1 media: forward mxc video output drivers to 4.1 kernel

Forward imx_3.14.y mxc video output drivers to 4.1 kernel.

The priv field of v4l2_pix_format is used to expand colorspace,
and can not use to pass IPU input crop size.
Add private IOCTL VIDIOC_S_INPUT_CROP and VIDIOC_G_INPUT_CROP
to pass input crop size.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11484-6 pci: imx: enable pcie ep rc msi test
Richard Zhu [Tue, 1 Sep 2015 06:29:55 +0000 (14:29 +0800)]
MLK-11484-6 pci: imx: enable pcie ep rc msi test

Regarding to the limitation of the iMX ADAP(pcie connector),
only imx7d 12x12 arm2 board is used to verify the pcie
ep/rc validation system on imx7d platforms

Enalbe the msi pcie ep rc on it.
Test howto:
- Enable CONFIG_PCI_MSI=y, when rebuild the rc/ep images

- EP side(console command and kernel message):
root@imx6sxsabresd:~# ./memtool -32 <msi_addr>=0
Writing 32-bit value 0x0 to address <msi_addr>

- RC side(console command and kernel message):
root@imx6sxsabresd:~# cat /proc/interrupts  | grep MSI
384:          1   PCI-MSI

Note:
imx6q  msi_addr 0x01ff_8000
imx6sx msi_addr 0x08ff_8000
imx7d  msi_addr 0x4ffc_0000

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11484-5 pci: imx: enable pcie ep rc system on imx7d
Richard Zhu [Tue, 1 Sep 2015 02:11:09 +0000 (10:11 +0800)]
MLK-11484-5 pci: imx: enable pcie ep rc system on imx7d

Regarding to the limitation of the iMX ADAP(pcie connector),
only imx7d 12x12 arm2 board is used to verify the pcie
ep/rc validation system on imx7d platforms

hw setup:
* two imx boards, one is used as pcie rc, the other is used
as pcie ep. Connected by fsl pcie adap adaptor.

sw setup:
* when build rc image, make sure that
  CONFIG_IMX_PCIE=y
  # CONFIG_EP_MODE_IN_EP_RC_SYS is not set
  CONFIG_RC_MODE_IN_EP_RC_SYS=y
* when build ep image
  CONFIG_IMX_PCIE=y
  CONFIG_EP_MODE_IN_EP_RC_SYS=y
  # CONFIG_RC_MODE_IN_EP_RC_SYS is not set

features:
* set-up link between rc and ep by their stand-alone
ref clk running internally.

* in ep's system, ep can access the reserved ddr memory
(default address:0x4000_0000 on imx6q sd board, and
0xb000_0000 on imx6sx sdb and imx7d arm2 boards) of
pcie rc's system, by the interconnection between pcie
ep and pcie rc.

* add the configuration methods in the ep side, used to
configure the start address and the size of the reserved
rc's memory window.
  - cat /sys/devices/soc0/soc.1/1ffc000.pcie/rc_memw_info
  - echo 0x41000000 > /sys/devices/soc0/soc.1/1ffc000.pcie/rc_memw_start_set
  - echo 0x200000 > /sys/devices/soc0/soc.1/1ffc000.pcie/rc_memw_size_set

* provide one example, howto configure the bar# and so on,
when pcie ep emaluates one memory ram ep device

* setup one new outbound memory region at rc side, used
to let imx pcie rc can access the memory of imx pcie ep
in imx pcie rc ep validation system.
  - set the default address of the ddr memory to be 0x4000_0000
  on imxq sd board, and 0xb000_0000 on imx6sx sdb and imx7d
  arm2 boards.

NOTE:
* boot up ep platform firstly, then boot up rc platform.
* make sure that mem=768M is contained in the kernel command line,
since the start address of the upper 256mb of the 1g ddr mem is
reserved to do the pcie ep rc access operations in default.

Test howto of the RC access memory of EP on imx6q sd platforms.
step1:
EP side:
1.1:
echo <768M_DDR_MEM_ADDR> > /sys/devices/.../pcie/ep_bar0_addr

1.2:
memtool -32 <768M_DDR_MEM_ADDR> 4
E
Reading 0x4 count starting at address 0x40000000

<768M_DDR_MEM_ADDR>:  6FE9E9F6 7583FBB9 39EAEFEA FBDCFD78

step2:
RC side:
memtool -32 <PCI_BASE_ADDR> =58D454DA
memtool -32 <PCI_BASE_ADDR + 4> =7332095B

step3:
EP side:
memtool -32 <768M_DDR_MEM_ADDR> 4
E
Reading 0x4 count starting at address 0x40000000

<768M_DDR_MEM_ADDR>:  58D454DA 7332095B 39EAEFEA FBDCFD78

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11484-4 PCI: imx: enable imx7d pcie support
Richard Zhu [Fri, 21 Aug 2015 05:30:27 +0000 (13:30 +0800)]
MLK-11484-4 PCI: imx: enable imx7d pcie support

- enable pcie functions on imx7d platforms
- grst/brst should be asserted/de-asserted during resume,
since the pcie power would be cut off automatically by HW
during system suspend/resume

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11484-3 PCI: designware: Refine setup_rc and add msi data restore
Richard Zhu [Fri, 26 Sep 2014 08:54:02 +0000 (16:54 +0800)]
MLK-11484-3 PCI: designware: Refine setup_rc and add msi data restore

- move "program correct class for RC" from dw_pcie_host_init()
to dw_pcie_setup_rc(). since this is RC setup, it's
better to contained in dw_pcie_setup_rc function.
Then, RC can be re-setup really by dw_pcie_setup_rc().
- add one store/re-store msi cfg functions. Because that
pcie controller maybe powered off during system suspend,
and the msi data configuration would be lost.
these functions can be used to store/restore the msi data
and msi_enable during the suspend/resume callback.

Signed-off-by: Richard Zhu <richard.zhu@freescale.com>
7 years agoMLK-11484-2 ARM: imx: add imx7d pcie pwr clk operations
Richard Zhu [Thu, 20 Aug 2015 08:27:54 +0000 (16:27 +0800)]
MLK-11484-2 ARM: imx: add imx7d pcie pwr clk operations

- For PCIe module on i.mx7d, some GPC operations would
be mandatory required when PCIe PHY is powered on/off.
So we need update gpc driver for the new requirements.
We implement it by regulator notify framwork in gpcv2
driver.
NOTE:
make sure gpc driver is ready before PCIe driver is probed.
Otherwise, cause system hang during PCIe driver probe,
because the notify NOT installed ready and the gpc will
NOT power on PCIe.
- config the imx7d pcie

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11484-1 ARM: imx: enable pcie on imx7d platforms
Richard Zhu [Tue, 1 Sep 2015 08:33:13 +0000 (16:33 +0800)]
MLK-11484-1 ARM: imx: enable pcie on imx7d platforms

enable pcie support on imx7d platforms.

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11535 mfg_defconfig: enlarge mmc block number
Frank Li [Fri, 11 Sep 2015 13:40:07 +0000 (21:40 +0800)]
MLK-11535 mfg_defconfig: enlarge mmc block number

default is 8. android require more.
Change to 16.

Signed-off-by: Frank Li <Frank.Li@freescale.com>
7 years agoMLK-11546 fix build error when use imx_v7_mfg_defconfig
Frank Li [Mon, 14 Sep 2015 13:33:29 +0000 (21:33 +0800)]
MLK-11546 fix build error when use imx_v7_mfg_defconfig

arch/arm/mach-imx/built-in.o: In function `clk_pllv3_do_shared_clks':
:(.text+0xed8): undefined reference to `imx_sema4_mutex_lock'
:(.text+0xf04): undefined reference to `imx_sema4_mutex_unlock'
arch/arm/mach-imx/built-in.o: In function `clk_gate2_do_shared_clks':
:(.text+0x1208): undefined reference to `imx_sema4_mutex_lock'
:(.text+0x1234): undefined reference to `imx_sema4_mutex_unlock'
arch/arm/mach-imx/built-in.o: In function `clk_pfd_do_shared_clks':
:(.text+0x15f4): undefined reference to `imx_sema4_mutex_lock'
:(.text+0x1620): undefined reference to `imx_sema4_mutex_unlock'
arch/arm/mach-imx/built-in.o: In function `imx_amp_power_init':
:(.init.text+0x10d50): undefined reference to `imx_sema4_mutex_create'
drivers/built-in.o: In function `mxcfb_unregister':
:(.text+0x20e70): undefined reference to `ipu_free_irq'
:(.text+0x20e94): undefined reference to `ipu_free_irq'
:(.text+0x20eac): undefined reference to `ipu_free_irq'
drivers/built-in.o: In function `fbi_to_pixfmt':

Signed-off-by: Frank Li <Frank.Li@freescale.com>
7 years agoMLK-9662 [V4L2 Capture] Revert patch to re-add support for _G_CHIP_IDENT
Oliver Brown [Tue, 30 Sep 2014 14:12:46 +0000 (09:12 -0500)]
MLK-9662 [V4L2 Capture] Revert patch to re-add support for _G_CHIP_IDENT

This reverts commit b71c99801e18eb172ae34851daf25044a3bf644a.

Signed-off-by: Oliver Brown <oliver.brown@freescale.com>
(cherry picked from commit 5c74966c0e7deb0ac84b3fa8a84c6c942e7d434f)

Conflicts:
drivers/media/v4l2-core/v4l2-compat-ioctl32.c
include/media/v4l2-subdev.h

7 years agoMGS-955 GPU:Integrate GPU module
Shawn Xiao [Wed, 26 Aug 2015 07:29:26 +0000 (15:29 +0800)]
MGS-955 GPU:Integrate GPU module

1. Upstream 5.0.11p7 driver to kernel

2. Add the GPU configuration to imx6q.dtsi

3. Remove IRQF_DISABLED in GPU driver
The IRQF_DISABLED has been removed from 4.1.0 kernel. To accomodate with
the change, add version check logic and use 0x0 instead of IRQF_DISABLED
from 4.1.0 kernel on.

4. Convert file->f_dentry->d_inode to file_inode() in GPU driver
The file struct has changed since 3.19. Changed the usage in GPU driver
too.

5. Add version check for CONFIG_PM_RUNTIME
The CONFIG_PM_RUNTIME will never be used in 4.1.0 kernel. Add version
check to avoid calling it in GPU driver.

Signed-off-by: Shawn Xiao <b49994@freescale.com>
7 years agoMLK-11527 ARM: imx: gpcv2: using irq number wrongly
Peter Chen [Wed, 9 Sep 2015 04:58:47 +0000 (12:58 +0800)]
MLK-11527 ARM: imx: gpcv2: using irq number wrongly

We should use hwirq instead of logic number at gpc driver, otherwise,
it may override other global memory due to write out of boundary
for array, eg: below oops may kernel at imx7d sdb board during suspend/
resume test:

INFO: rcu_preempt detected stalls on CPUs/tasks:
1: (2 GPs behind) idle=b25/140000000000000/0 softirq=1951/1957 fqs=0
(detected by 0, t=2102 jiffies, g=847, c=846, q=4)
Task dump for CPU 1:
swapper/1       R running   6088     0      1 0x00000000
[<8089f4e4>] (__schedule) from [<8089f908>] (schedule+0x4c/0xa4)
[<8089f908>] (schedule) from [<80011514>] (arch_cpu_idle_dead+0x18/0x1c)
[<80011514>] (arch_cpu_idle_dead) from [<8006e3d8>] (cpu_startup_entry+0x2e0/0x450)
[<8006e3d8>] (cpu_startup_entry) from [<80017200>] (secondary_start_kernel+0x13c/0x15c)
[<80017200>] (secondary_start_kernel) from [<800095ac>] (__enable_mmu+0x0/0x14)
rcu_preempt kthread starved for 2102 jiffies!
NMI watchdog: BUG: soft lockup - CPU#0 stuck for 22s! [rtcwakeup.out:735]
Modules linked in: evbug
CPU: 0 PID: 735 Comm: rtcwakeup.out Tainted: G        W       4.1.4-00701-g32bb3ba-dirty #370
Hardware name: Freescale i.MX7 Dual (Device Tree)
task: a8920a00 ti: a99bc000 task.ti: a99bc000
PC is at _raw_spin_lock+0x4c/0x60
LR is at get_parent_ip+0x14/0x30
pc : [<808a2e74>]    lr : [<8005c080>]    psr: 80000013
sp : a99bdcd8  ip : a99bdca8  fp : a99bdcec
r10: 80d4455c  r9 : 00008070  r8 : 00000010
r7 : 00000000  r6 : 00000000  r5 : 00000001  r4 : 80e09934
r3 : 00000001  r2 : 00000000  r1 : 00000000  r0 : 00000000
Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: a9f0006a  DAC: 00000015
CPU: 0 PID: 735 Comm: rtcwakeup.out Tainted: G        W       4.1.4-00701-g32bb3ba-dirty #370
Hardware name: Freescale i.MX7 Dual (Device Tree)
[<80019258>] (unwind_backtrace) from [<80014948>] (show_stack+0x20/0x24)
[<80014948>] (show_stack) from [<8089b490>] (dump_stack+0x8c/0xcc)
[<8089b490>] (dump_stack) from [<80011714>] (show_regs+0x1c/0x20)
[<80011714>] (show_regs) from [<800af83c>] (watchdog_timer_fn+0x290/0x2fc)
[<800af83c>] (watchdog_timer_fn) from [<8008c0a8>] (__run_hrtimer+0x90/0x294)
[<8008c0a8>] (__run_hrtimer) from [<8008cd94>] (hrtimer_interrupt+0x11c/0x2ac)
[<8008cd94>] (hrtimer_interrupt) from [<80618a4c>] (arch_timer_handler_phys+0x40/0x48)
[<80618a4c>] (arch_timer_handler_phys) from [<8007ca24>] (handle_percpu_devid_irq+0xac/0x1d0)
[<8007ca24>] (handle_percpu_devid_irq) from [<80078334>] (generic_handle_irq+0x3c/0x4c)
[<80078334>] (generic_handle_irq) from [<80078660>] (__handle_domain_irq+0x8c/0xfc)
[<80078660>] (__handle_domain_irq) from [<800094e4>] (gic_handle_irq+0x34/0x6c)
[<800094e4>] (gic_handle_irq) from [<80015500>] (__irq_svc+0x40/0x74)
Exception stack(0xa99bdc90 to 0xa99bdcd8)
dc80:                                     00000000 00000000 00000000 00000001
dca0: 80e09934 00000001 00000000 00000000 00000010 00008070 80d4455c a99bdcec
dcc0: a99bdca8 a99bdcd8 8005c080 808a2e74 80000013 ffffffff
[<80015500>] (__irq_svc) from [<808a2e74>] (_raw_spin_lock+0x4c/0x60)
[<808a2e74>] (_raw_spin_lock) from [<8002ac14>] (imx_enable_cpu+0x34/0xc8)
[<8002ac14>] (imx_enable_cpu) from [<8002b548>] (imx_cpu_kill+0x60/0x94)
[<8002b548>] (imx_cpu_kill) from [<80017090>] (__cpu_die+0x60/0x94)
[<80017090>] (__cpu_die) from [<808959bc>] (_cpu_down+0x1e4/0x2fc)
[<808959bc>] (_cpu_down) from [<80036f7c>] (disable_nonboot_cpus+0xd0/0x264)
[<80036f7c>] (disable_nonboot_cpus) from [<80073984>] (suspend_devices_and_enter+0x344/0x910)
[<80073984>] (suspend_devices_and_enter) from [<8007433c>] (pm_suspend+0x3ec/0x6e4)
[<8007433c>] (pm_suspend) from [<80072754>] (state_store+0x7c/0xcc)
[<80072754>] (state_store) from [<803455e4>] (kobj_attr_store+0x1c/0x28)
[<803455e4>] (kobj_attr_store) from [<8019f670>] (sysfs_kf_write+0x54/0x58)
[<8019f670>] (sysfs_kf_write) from [<8019ea40>] (kernfs_fop_write+0xc8/0x1ac)
[<8019ea40>] (kernfs_fop_write) from [<8013285c>] (__vfs_write+0x34/0xe8)
[<8013285c>] (__vfs_write) from [<801330cc>] (vfs_write+0xa0/0x174)
[<801330cc>] (vfs_write) from [<80133970>] (SyS_write+0x54/0xb0)
[<80133970>] (SyS_write) from [<800108c0>] (ret_fast_syscall+0x0/0x3c)

Signed-off-by: Peter Chen <peter.chen@freescale.com>
7 years agoMLK-9731 ASoC: imx-hdmi-dma: audio output is noisy in long time playback
Shengjiu Wang [Fri, 31 Oct 2014 05:51:20 +0000 (13:51 +0800)]
MLK-9731 ASoC: imx-hdmi-dma: audio output is noisy in long time playback

In the frame_to_bytes(), when hw_ptr*frame_bits exceed the maxmum of unsigned
long, the return value is saturated, so the appl_bytes is wrong.
This patch is to correct the usage of frame_to_bytes().

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit 9e66132d9c96305b65aa5fa3ba8a35271a04ded9)

7 years agoMLK-11530-04 dmaengine: imx-sdma: add hdmi audio support
Zidan Wang [Fri, 11 Sep 2015 09:03:00 +0000 (17:03 +0800)]
MLK-11530-04 dmaengine: imx-sdma: add hdmi audio support

No need to alloc bd for hdmi audio, and the period len of hdmi audio is
0, so add constraint for it.

And correct per_address and per_address2 for hdmi audio.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11530-03 ARM: defconfig: enable hdmi audio sound card
Zidan Wang [Fri, 11 Sep 2015 08:57:28 +0000 (16:57 +0800)]
MLK-11530-03 ARM: defconfig: enable hdmi audio sound card

enable hdmi audio sound card

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11530-02 ARM: dts: correct hdmi peripheral type
Zidan Wang [Fri, 11 Sep 2015 08:59:06 +0000 (16:59 +0800)]
MLK-11530-02 ARM: dts: correct hdmi peripheral type

correct hdmi peripheral type

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11530-01 ASoC: fsl_hdmi: port hdmi audio driver from imx_3.10.y
Shengjiu Wang [Wed, 27 Aug 2014 06:52:50 +0000 (14:52 +0800)]
MLK-11530-01 ASoC: fsl_hdmi: port hdmi audio driver from imx_3.10.y

cherry-pick below patch from v3.14.y:
ENGR00330403-2: ASoC: fsl_hdmi: port hdmi audio driver from imx_3.10.y

Port HDMI audio driver (CPU driver, machine driver, platform driver) from
imx_3.10.y.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
(cherry picked from commit 60996f868ed6ff68b45a39a0747df831e27571ba)

7 years agoMLK-11534 uapi: Add mxc_mlb.h into Kbuild
Robby Cai [Fri, 11 Sep 2015 08:17:27 +0000 (16:17 +0800)]
MLK-11534 uapi: Add mxc_mlb.h into Kbuild

export this for 'make headers_install'

Signed-off-by: Robby Cai <r63905@freescale.com>
7 years agoMLK-11533 uapi: Add isl29023.h into Kbuild
Robby Cai [Fri, 11 Sep 2015 08:02:49 +0000 (16:02 +0800)]
MLK-11533 uapi: Add isl29023.h into Kbuild

export this for 'make headers_install'

Signed-off-by: Robby Cai <r63905@freescale.com>
7 years agoMLK-11532: include: uapi: Add mxc_asrc.h to Kbuild
Shengjiu Wang [Fri, 11 Sep 2015 09:03:20 +0000 (17:03 +0800)]
MLK-11532: include: uapi: Add mxc_asrc.h to Kbuild

Add mxc_asrc.h to Kbuild. otherwise this header is not installed by
"make headers_install INSTALL_HDR_PATH=XXX".

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMLK-11531: uapi: Add v4l2 and dcic head file
Sandor Yu [Fri, 11 Sep 2015 08:33:30 +0000 (16:33 +0800)]
MLK-11531: uapi: Add v4l2 and dcic head file

Add v4l2 and dcic head file.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11525 ARM: dts: add wm8962 headphone detect gpio for imx6sx-sdb board
Zidan Wang [Tue, 8 Sep 2015 06:08:03 +0000 (14:08 +0800)]
MLK-11525 ARM: dts: add wm8962 headphone detect gpio for imx6sx-sdb board

add wm8962 headphone detect gpio for imx6sx-sdb board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11524 ARM: dts: add ssi<->wm8962 sound card support for imx6qdl-sabresd board
Zidan Wang [Mon, 7 Sep 2015 09:08:27 +0000 (17:08 +0800)]
MLK-11524 ARM: dts: add ssi<->wm8962 sound card support for imx6qdl-sabresd board

add ssi<->wm8962 sound card support for imx6qdl-sabresd board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11513-02 ARM: dts: add spdif sound card support for imx6sl-evk board
Zidan Wang [Mon, 7 Sep 2015 09:04:54 +0000 (17:04 +0800)]
MLK-11513-02 ARM: dts: add spdif sound card support for imx6sl-evk board

add spdif sound card support for imx6sl-evk board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11513-01 ARM: dts: add ssi<->wm8962 sound card support for imx6sl-evk board
Zidan Wang [Mon, 7 Sep 2015 09:03:40 +0000 (17:03 +0800)]
MLK-11513-01 ARM: dts: add ssi<->wm8962 sound card support for imx6sl-evk board

add ssi<->wm8962 sound card support for imx6sl-evk board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11521 ARM: dts: fix a typo for clock name 'pll1_bypass_src'
Bai Ping [Tue, 8 Sep 2015 18:33:53 +0000 (02:33 +0800)]
MLK-11521 ARM: dts: fix a typo for clock name 'pll1_bypass_src'

Fix a typo for clock name 'pll1_bypass_src'.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11518-05 ARM: defconfig: enable the device cooling
Bai Ping [Tue, 8 Sep 2015 16:57:09 +0000 (00:57 +0800)]
MLK-11518-05 ARM: defconfig: enable the device cooling

Enable the device cooling device in the defconfig.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11518-03 thermal: imx enable devfreq cooling
Bai Ping [Tue, 8 Sep 2015 15:55:03 +0000 (23:55 +0800)]
MLK-11518-03 thermal: imx enable devfreq cooling

Enable devfreq cooling to trigger GPU freq change when
hot trip is reached.

Make sure thermal driver loaded after cpufreq is loaded,
otherwise, cpu_cooling will not get valid cpufreq table,
hence cpu_cooling will be not working.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11518-02 thermal: imx: add .get_trend callback fn in thermal driver
Bai Ping [Mon, 7 Sep 2015 17:58:22 +0000 (01:58 +0800)]
MLK-11518-02 thermal: imx: add .get_trend callback fn in thermal driver

add .get_trend callback to determine the thermal raise/fall trend,
when the temp great than a threshold, drop to the lowest trend
(THERMAL_TREND_DROP_FULL).

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11518-01 thermal: imx: add thermal support for imx7
Bai Ping [Mon, 7 Sep 2015 11:17:13 +0000 (19:17 +0800)]
MLK-11518-01 thermal: imx: add thermal support for imx7

This pacth re-write part of the code the support i.MX6 and i.MX7
in thermal driver. the TEMPMON module in i.MX6 and i.MX7 can provide
the same funtion, but has different register offset and bitfield define.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-10188 arm: imx: Add dummy LDO2p5 regulator for VBUS wakeup
Bai Ping [Fri, 30 Jan 2015 10:56:40 +0000 (18:56 +0800)]
MLK-10188 arm: imx:  Add dummy LDO2p5 regulator for VBUS wakeup

LDO2p5 cannot be disabled in low power idle mode when the USB driver
enables VBUS wakeup. To identify when LDO2p5 can be disabled add a dummy
regulator that the USB driver will enable when VBUS wakeup is required.

This patch is copied from commit 7d849e4d9ebca3c as code the structure has
changed too many. directly cherry-pick has too many conflicts to resolve

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 25a42aeb8eeb0b894a70e1a0f6750ced39830a46)

7 years agoMLK-11499 ARM: imx: add low power idle for imx6sl
Bai Ping [Sun, 6 Sep 2015 15:07:00 +0000 (23:07 +0800)]
MLK-11499 ARM: imx: add low power idle for imx6sl

Add low power idle support for i.MX6SL.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11495-03 ARM: imx: fix the ARM/IPG ratio when busfreq enabled
Bai Ping [Sun, 6 Sep 2015 14:23:24 +0000 (22:23 +0800)]
MLK-11495-03 ARM: imx: fix the ARM/IPG ratio when busfreq enabled

On i.MX6SL, we must make sure ARM:IPG clock ratio is within 12:5 when entering
wait mode. If the system is in low_bus_freq_mode, the IPG is at 12MHz
according the busfreq code. So the max rate of ARM is 28.8MHz when entering
wait mode. As there is no way run at this clk rate, so set ARM to run from
24MHz OSC.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11495-02 ARM: imx: add busfreq support for imx6sl
Bai Ping [Sun, 6 Sep 2015 14:05:58 +0000 (22:05 +0800)]
MLK-11495-02 ARM: imx: add busfreq support for imx6sl

Add busfreq support for i.MX6SL SOC. we support three
busfreq mode (high_bus_freq_mode/low_bus_freq_mode and
audio_bus_freq_mode).

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11495-01 ARM: dts: imx: add busfreq device node for imx6sl
Bai Ping [Sun, 6 Sep 2015 14:03:16 +0000 (22:03 +0800)]
MLK-11495-01 ARM: dts: imx: add busfreq device node for imx6sl

Add busfreq device node for imx6sl.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11249-2 ARM: imx: add support for dynamic settings of gpc timing
Anson Huang [Thu, 16 Jul 2015 13:08:10 +0000 (21:08 +0800)]
MLK-11249-2 ARM: imx: add support for dynamic settings of gpc timing

On different platforms, the CPU power down/up timing may be
different because of different requirements or different
implementations in hardware, so we need to support dynamic
setting of these timing, board level dtb file will provide
these settings, and GPC driver need to read them and set them
to the hardware.

Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit b0145b4e8556621cbe0d72e56cec5b04454db6c2)

7 years agoMLK-11437-02 ARM: imx: change the pll1_sw/sys clks type on imx6
Bai Ping [Thu, 27 Aug 2015 17:22:13 +0000 (01:22 +0800)]
MLK-11437-02 ARM: imx: change the pll1_sw/sys clks type on imx6

The 'PLL1_SYS' and 'PLL1_SW' clks are used by the cpufreq
driver to do dynamic frequency changing procedure.

The 'CLK_SET_PARENT_GATE' should not be set for 'PLL1_SW'
clk, this clock's prepare_count is not zero all the time.

change the clk type of 'PLL1_SYS' to fixed_factor. due to
the hardware limit, when changing the ARM_PODF. This clock's
output should not be gated.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11437-01 ARM: dts: imx: correct the clock info of cpu node
Bai Ping [Thu, 27 Aug 2015 17:17:44 +0000 (01:17 +0800)]
MLK-11437-01 ARM: dts: imx: correct the clock info of cpu node

The pll1_bypass and pll1_bypass_src clock index  in cpu node
should be IMX6SX_PLL1_BYPASS and IMX6SX_PLL1_BYPASS_SRC,
so correct this.

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11249-3 ARM: imx: improve i.mx6ul's low power idle setting
Anson Huang [Thu, 16 Jul 2015 13:11:28 +0000 (21:11 +0800)]
MLK-11249-3 ARM: imx: improve i.mx6ul's low power idle setting

For low power idle with ARM power gated, per hardware requirement,
there must be no interrupt coming during the power down
process of ARM core, so RBC counter is enabled to hold interrupts.

However, the previous setting of RBC counter is 1, which is ~30us,
but the hardware design recommend a ~90us is required during ARM
core power down, so we update the RBC counter value to 4(~120us) here.

Previous delay loop to make sure RBC is actually enabled, 3us is
needed, but the loop value assume ARM is running @1GHz, but actually
ARM is running @24MHz now, so we need to update the loop value
according to ARM speed.

The ARM power up timing is based on IPG / 2048, IPG is 1.5MHz during
low power idle, so the total latency of cpuidle exit should be
updated accordingly.

Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit 4e1fd49da5e87c5cc23f053692e8d7648a4d4b21)

7 years agoMLK-11234 ARM: imx: add RC-OSC freq initialization on imx6ul
Bai Ping [Tue, 7 Jul 2015 12:47:27 +0000 (20:47 +0800)]
MLK-11234 ARM: imx: add RC-OSC freq initialization on imx6ul

If in low power idle, we use the RC-OSC to reduce the power consumption,
the RC-OSC freq need to be adjusted, otherwise, the RC-OSC freq is not
very accurate. It may lead to system instability issue.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 8a93ab44e98bcc6611170734b829cd8d140dd722)

7 years agoMLK-11204 ARM: imx: set int_mem_clk_lpm bit bit when entering wait mode on 6ul
Bai Ping [Tue, 30 Jun 2015 17:19:14 +0000 (01:19 +0800)]
MLK-11204 ARM: imx: set int_mem_clk_lpm bit bit when entering wait mode on 6ul

This bit is used to keep the ARM Platform memory clocks enabled if
an interrupt is pending when entering low power mode. This bit should
always bet set when the CCM_CLPCR_LPM bits are set to 01(WAIT Mode) or
10 (STOP mode) without power gating.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 0272868641041c5a9eb1b3476660711bb5cd69e4)

7 years agoMLK-11021-03 ARM: imx6: add low power idle support on imx6ul
Bai Ping [Wed, 3 Jun 2015 14:30:33 +0000 (22:30 +0800)]
MLK-11021-03 ARM: imx6: add low power idle support on imx6ul

Add the low power idle support on i.MX6UL. The ANATOP can enter low
power when all PLLs are powered down. If need entering low power idle
with LDO_2P5 and LDO_1P1 power down and other anatop module in low
power mode, add "uart_from_osc' on command line to make sure the UART
clk is from osc to let the PLL3  power down when entering low power idle.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit 5215cba66938fd09f44e61b2c7b7ae0ef0629c2f)

7 years agoMLK-11428 ARM: imx: enable busfreq support on imx6ul
Bai Ping [Wed, 26 Aug 2015 15:32:03 +0000 (23:32 +0800)]
MLK-11428 ARM: imx: enable busfreq support on imx6ul

Enable the busfreq support on i.MX6UL EVK board. The
busfreq support below 3 busfreq mode:

* high_bus_mode:  MMDC<--> 400MHz
* audio_bus_mode: MMDC<--> 50MHz
* low_bus_mode:   MMDC<--> 24MHz

Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11117-01 ARM: clk: imx6: adjust axi clock to 264MHz on imx6ul
Bai Ping [Wed, 17 Jun 2015 13:15:05 +0000 (21:15 +0800)]
MLK-11117-01 ARM: clk: imx6: adjust axi clock to 264MHz on imx6ul

According to the latest reference manual, the default AXI clock rate
should be 264MHz. Soucre AXI/AHB from pll2_bus to get the required
clock rate.

Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit d7560da7baee7a14ecb33d51182bbdc485ee6d7d)

7 years agoMLK-11414-3 ARM: dts: imx: apply ENET IRQ workaround for sabresd board
Shawn Guo [Mon, 15 Sep 2014 03:32:40 +0000 (11:32 +0800)]
MLK-11414-3 ARM: dts: imx: apply ENET IRQ workaround for sabresd board

Cherry-pick below patch:

ENGR00317981 ARM: dts: imx: apply ENET IRQ workaround for sabresd board

This a forward porting of commit (ENGR00313685-15 ARM: dts: imx: apply
ENET IRQ workaround for sabresd board) from imx_3.10.y to imx_3.14.y.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11414-2: ARM: dts: add dumb dts for enetirq and ldo
Shawn Guo [Wed, 27 Aug 2014 15:51:39 +0000 (23:51 +0800)]
MLK-11414-2: ARM: dts: add dumb dts for enetirq and ldo

Cherry-pick below patch:

ENGR00317981: ARM: dts: add dumb dts for enetirq and ldo

Add a couple of dumb dts files for enetirq and ldo cases, which are
asked by Yocto build for 3.14 kernel.

Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11498 rpmsg: imx: tell remote process about the channel
Richard Zhu [Tue, 18 Aug 2015 00:34:15 +0000 (08:34 +0800)]
MLK-11498 rpmsg: imx: tell remote process about the channel

send a message to our remote processor, and tell remote
processor about this channel

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
(cherry picked from commit 2708c004a60c5b6da020803ee9291b83984d4a65)

7 years agoMLK-11520 ARM: imx: enable axi clk in clk_init_on on i.mx6qdl
Anson Huang [Tue, 8 Sep 2015 07:25:42 +0000 (15:25 +0800)]
MLK-11520 ARM: imx: enable axi clk in clk_init_on on i.mx6qdl

AXI clk should be always enabled, as many peripheral
devices need this clk to be on, especially for busfreq,
AXI podf change needs AXI clk and its parent on.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11431-4: ARM: DTS: imx: Update IPU and display property
Sandor Yu [Fri, 28 Aug 2015 10:05:53 +0000 (18:05 +0800)]
MLK-11431-4: ARM: DTS: imx: Update IPU and display property

Update IPU and display property, make sure these dts files can
pass build.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11431-3: ARM: DTS: imx6 Add IPU and display support
Sandor Yu [Fri, 28 Aug 2015 10:04:46 +0000 (18:04 +0800)]
MLK-11431-3: ARM: DTS: imx6 Add IPU and display support

Add IPU, HDMI and LDB support.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11431-2: ARM: defconfig: enable IPU and display
Sandor Yu [Fri, 28 Aug 2015 10:38:49 +0000 (18:38 +0800)]
MLK-11431-2: ARM: defconfig: enable IPU and display

Enable IPU, HDMI and LDB.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-11431-1: IPU: forward IPU display drivers to 4.1.y kernel
Sandor Yu [Wed, 26 Aug 2015 08:42:02 +0000 (16:42 +0800)]
MLK-11431-1: IPU: forward IPU display drivers to 4.1.y kernel

Forward imx_3.14.y IPU and display drivers to 4.1 kernel.
This includes IPU core driver, display driver, LDB and HDMI driver.

Signed-off-by: Sandor Yu <R01008@freescale.com>
7 years agoMLK-10103-2 cpufreq: imx6: increase SOC/PU voltage for vpu 352M
Anson Huang [Fri, 16 Jan 2015 10:47:42 +0000 (18:47 +0800)]
MLK-10103-2 cpufreq: imx6: increase SOC/PU voltage for vpu 352M

When VPU is running at 352MHz, SOC/PU voltage need to be
at 1.25V for 396/792MHz setpoint, as 396M setpoint is
removed, so only increase 792M setpoint's voltage.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-10103-1 ARM: imx: add VPU 352M for i.mx6q
Anson Huang [Fri, 16 Jan 2015 10:42:08 +0000 (18:42 +0800)]
MLK-10103-1 ARM: imx: add VPU 352M for i.mx6q

When VPU freq is set to 352MHz, it needs to source clk
from PLL2_PFD2_396M, and PLL2_PFD2_396M need to change
freq to 352M, cpufreq's 396M setpoint will be removed.

Busfreq will be disabled as it needs PLL2_PFD2 to be
as 396MHz to achieve low power audio freq setpoint.

To enable VPU 352MHz feature, select it in menuconfig,
it is disabled by default.

Signed-off-by: Anson Huang <b20788@freescale.com>
Conflicts:
arch/arm/mach-imx/clk-imx6q.c
arch/arm/mach-imx/mach-imx6q.c

7 years agoMLK-11497-2 ARM: imx: add busfreq support for imx6q/dl
Anson Huang [Sun, 6 Sep 2015 05:36:55 +0000 (13:36 +0800)]
MLK-11497-2 ARM: imx: add busfreq support for imx6q/dl

Add busfreq support for i.MX6Q/DL, 3 setpoints supported:

HIGH: MMDC = 528MHz on i.MX6Q, = 396MHz on i.MX6DL; AHB = AXI = 24MHz;
AUDIO: MMDC = 50MHz, AXI = 50MHz, AHB = 25MHz;
LOW: MMDC = AXI = AHB = 24MHz.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11497-1 ARM: dts: add busfreq support for imx6q/dl
Anson Huang [Sun, 6 Sep 2015 05:35:55 +0000 (13:35 +0800)]
MLK-11497-1 ARM: dts: add busfreq support for imx6q/dl

Add busfreq support for i.MX6Q/DL.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-10 arm: imx: add A9-M4 power management
Anson Huang [Thu, 4 Dec 2014 04:24:49 +0000 (12:24 +0800)]
MLK-11488-10 arm: imx: add A9-M4 power management

this patch adds A9-M4 power management, including
below features:

1. busfreq: M4 is registered as a high speed device
   of A9, when M4 is running at high speed, busfreq
   will NOT enter low bus mode, when M4 is entering
   its low power idle, A9 will be able to enter low
   bus mode according to its state machine;
2. low power idle: only when M4 is in its low power
   idle, busfreq is staying at low bus mode, low
   power idle is available for kernel;
3. suspend: when M4 is NOT in its low power idle,
   when linux is about to suspend, it will only
   force SOC enter WAIT mode, only when M4 is in
   its low power idle in TCM, linux suspend can
   enter DSM mode. M4 can request/release wakeup
   source via MU to A9.

as M4 can NOT switch its clk parent due to glitch MUX,
to handle this case, A9 will help switch M4's clk
parent, the flow is as below:

M4:
1. enter low power idle, send bus use count-- to A9;
2. enter wfi and only wait for MU interrupt;
3. receive A9's clk switch ready message, go into low
   power idle;
4. receive interrupt to exit low power idle, send request
   to A9 for increase busfreq and M4 freq, enter wfi
   and only wait for MU interrupt;
5. receive A9 ready message, go out of low power idle.

A9:
1. when receive M4's message of entering low power idle,
   wait M4 into wfi, hold M4 in wfi by hardware, gate
   M4 clk, then switch M4's clk to OSC, ungate M4 clk,
   send ready command to wake up M4 into low power idle;
2. when receive M4's message of exiting low power idle,
   wait M4 into wfi, hold M4 in wfi by hardware, gate
   M4 clk, then switch M4's clk to origin high clk,
   ungate M4 clk, send ready command to wake up M4
   to exit low power idle;

Signed-off-by: Anson Huang <b20788@freescale.com>
Conflicts:
arch/arm/mach-imx/busfreq-imx6.c
arch/arm/mach-imx/pm-imx6.c

7 years agoMLK-11488-9 arm: imx: add A9-M4 clk shared management
Anson Huang [Thu, 4 Dec 2014 04:22:20 +0000 (12:22 +0800)]
MLK-11488-9 arm: imx: add A9-M4 clk shared management

As A9 and M4 share many resources on i.MX6SX, especially for
clk and power related resource, so we need to handle the hardware
conflict between these two cores, there are two cases that we
need to consider currently:

clk management: for every clk node, only when both A9 and
M4 do NOT need it, then we can disable it from hardware;

Here we use MU and hardware SEMA4 to achieve our goal, MU is
for communiation between A9 and M4, SEMA4 is to protect the
shared memory.

For clk management, we use shared memory to maintain the clk
status for both A9 and M4 side, and this shared memory is
protected by hardware SEMA4, A9 and M4 will maintain their
own clk tree info in their SW environment, and get other
CORE's clk tree info from shared memory to decide whether
to perform a hardware setting change when they plan to.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-8 arm: imx: adjust qspi device index according to dtb setting
Anson Huang [Wed, 19 Nov 2014 06:24:16 +0000 (14:24 +0800)]
MLK-11488-8 arm: imx: adjust qspi device index according to dtb setting

When resume from DSM with Mega/Fast off, we need to restore
the right QSPI module for M4, so get the qspi index from dtb file.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-7 arm: imx: add QSPI save/restore when M4 is enabled
Allen Xu [Mon, 13 Oct 2014 23:15:35 +0000 (18:15 -0500)]
MLK-11488-7 arm: imx: add QSPI save/restore when M4 is enabled

As M4 is executing on QSPI2 flash, and QSPI is inside Mega/Fast
domain which may lost power in DSM, so we need to do save/restore
of QSPI2 controller to make sure QSPI flash can be accessed before
waking up M4 after exiting from DSM.

Signed-off-by: Allen Xu <b45815@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-6 arm: dts: imx6sx: add mu support
Anson Huang [Thu, 4 Dec 2014 02:06:52 +0000 (10:06 +0800)]
MLK-11488-6 arm: dts: imx6sx: add mu support

add MU support for i.MX6SX.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-5 arm: dts: imx6sx: add m4 dts support
Anson Huang [Thu, 4 Dec 2014 01:58:27 +0000 (09:58 +0800)]
MLK-11488-5 arm: dts: imx6sx: add m4 dts support

1. add i.MX6SX SabreAuto board M4 dts support;
2. add shared memory node support for AMP clk/power management;
3. add qspi restore node for suspend/resume with Mega/Fast off
   when M4 is enabled and running on QSPI flash.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-4 arm: dts: imx6sx: add sema4 support
Anson Huang [Thu, 4 Dec 2014 02:05:38 +0000 (10:05 +0800)]
MLK-11488-4 arm: dts: imx6sx: add sema4 support

add SEMA4 support for i.MX6SX.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-3 arm: imx: enable CONFIG_IMX_SEMA4 by default
Anson Huang [Wed, 3 Dec 2014 07:13:56 +0000 (15:13 +0800)]
MLK-11488-3 arm: imx: enable CONFIG_IMX_SEMA4 by default

enable CONFIG_IMX_SEMA4 by default.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-2 arm: imx: add HAVE_IMX_AMP for imx6sx
Anson Huang [Thu, 4 Dec 2014 01:51:27 +0000 (09:51 +0800)]
MLK-11488-2 arm: imx: add HAVE_IMX_AMP for imx6sx

add HAVE_IMX_AMP and select by default for i.MX6SX.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11488-1 driver: char: sema4: add sema4 support
Anson Huang [Wed, 2 Sep 2015 05:03:59 +0000 (13:03 +0800)]
MLK-11488-1 driver: char: sema4: add sema4 support

- add linux sema4 driver.
- use volatile types in sema4 structure.
- align the port definiton a9 is 1, m4 is 2.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Richard Zhu <r65037@freescale.com>
7 years agoMLK-11414-1 ARM: imx: add clk return check for imx6sx
Anson Huang [Tue, 25 Aug 2015 08:13:27 +0000 (16:13 +0800)]
MLK-11414-1 ARM: imx: add clk return check for imx6sx

This patch adds clk API return check for imx6sx.

Signed-off-by: Anson Huang <b20788@freescale.com>
7 years agoMLK-11487 ARM: dts: add sound card support for imx6ul-14x14-ddr3-arm2 board
Zidan Wang [Wed, 2 Sep 2015 06:02:37 +0000 (14:02 +0800)]
MLK-11487 ARM: dts: add sound card support for imx6ul-14x14-ddr3-arm2 board

add mqs, spdif and wm8958 sound card support for imx6ul-14x14-ddr3-arm2
board.

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11444 ata: imx: cmd buf corruption errata bug fix
Richard Zhu [Tue, 7 Jul 2015 07:29:01 +0000 (15:29 +0800)]
MLK-11444 ata: imx: cmd buf corruption errata bug fix

errata:
When a read command returns less data than specified in the PRDs (for
example, there are two PRDs for this command, but the device returns a
number of bytes which is less than in the first PRD), the second PRD of
this command is  not read out of the PRD FIFO, causing the next command
to use this PRD erroneously.

workaround
- forces sg_tablesize = 1
- modified the sg_io function in block/scsi_ioctl.c to use a 64k buffer
  allocated with dma_alloc_coherent during the probe in ahci_imx
- In order to fix the scsi/sata hang, when CD_ROM and HDD are
  accessed simultaneously after the workaround is applied.
  Do not go to sleep in scsi_eh_handler, when there is host failed.

Signed-off-by: Richard Zhu <Richard.Zhu@freescale.com>
7 years agoMLK-11251 video: mxsfb: fix an auto reboot hang issue on imx7d-sdb board
Fancy Fang [Tue, 1 Sep 2015 05:03:01 +0000 (13:03 +0800)]
MLK-11251 video: mxsfb: fix an auto reboot hang issue on imx7d-sdb board

The hang issue is caused by the driver pan display function.
In the mxsfb, the pan display didn't wait the address flip
done before it exits. So this may cause the irq handler
running at the blank state which will cause system hang.
Two things are done in this patch:
1. Remove the 'flip_sem', since the pan_display is always
   called under the console lock hold.
2. Add a new completion 'flip_complete" to wait for the
   address flip done.

Signed-off-by: Fancy Fang <chen.fang@freescale.com>
(cherry picked from commit 7cb41403cb7cf1e977536af2a0422a214382c9f5)

Conflicts:
drivers/video/mxsfb.c

7 years agoMLK-11485 thermal: add device cooling for thermal driver
Anson Huang [Thu, 8 Aug 2013 17:20:40 +0000 (13:20 -0400)]
MLK-11485 thermal: add device cooling for thermal driver

this patch is chery-picked from imx_3.14.y
(cherry picked from commit 51e376b469c)
ENGR00274056-1 thermal: add device cooling for thermal driver

cpu cooling is not enough when temperature is
too hot, as some devices may contribute a lot of heat
to SOC, such as GPU, so we need to add device cooling
as well, when system is too hot, devices can also take
their actions to lower SOC temperature.

when temperature cross the passive trip, device cooling
driver will send out notification, those devices who
register this devfreq_cooling notification will take
actions to lower SOC temperature.

Signed-off-by: Anson Huang <b20788@freescale.com>
Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
Signed-off-by: Bai Ping <b51503@freescale.com>
7 years agoMLK-11480-03 ARM: dts: add spdif sound card support for imx6sx-sdb board
Zidan Wang [Tue, 1 Sep 2015 11:11:50 +0000 (19:11 +0800)]
MLK-11480-03 ARM: dts: add spdif sound card support for imx6sx-sdb board

add spdif sound card support for imx6sx-sdb board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11480-02 ARM: dts: add sai<->wm8962 sound card support for imx6sx-sdb board
Zidan Wang [Tue, 1 Sep 2015 07:34:38 +0000 (15:34 +0800)]
MLK-11480-02 ARM: dts: add sai<->wm8962 sound card support for imx6sx-sdb board

add sai<->wm8962 sound card support for imx6sx-sdb board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11480-01 ARM: dts: add ssi<->wm8962 sound card support for imx6sx-sdb board
Zidan Wang [Tue, 1 Sep 2015 05:27:30 +0000 (13:27 +0800)]
MLK-11480-01 ARM: dts: add ssi<->wm8962 sound card support for imx6sx-sdb board

add ssi<->wm8962 sound card support for imx6sx-sdb board

Signed-off-by: Zidan Wang <zidan.wang@freescale.com>
7 years agoMLK-11259-2: ASoC: fsl: enable ASRC p2p for ssi->wm8962
Shengjiu Wang [Fri, 17 Jul 2015 06:18:21 +0000 (14:18 +0800)]
MLK-11259-2: ASoC: fsl: enable ASRC p2p for ssi->wm8962

Enable ASRC p2p for ssi->wm8962, base on the new p2p script,
which support to select dualfifo for source/destination device.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMLK-11479-11 ASoC: imx-wm8962: Add non-SSI cpu dai support
Nicolin Chen [Tue, 8 Apr 2014 11:13:15 +0000 (19:13 +0800)]
MLK-11479-11 ASoC: imx-wm8962: Add non-SSI cpu dai support

cherry-pick below patch from v3.14.y:
ENGR00307635-5 ASoC: imx-wm8962: Add non-SSI cpu dai support

The current imx-wm8962 machine driver is designed for SSI as CPU DAI only
while as its name we should make the driver more generic to any other CPU
DAI on i.MX serires -- ESAI, SAI for example.

So this patch makes the driver more general so as to support those non-SSI
cases.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
(cherry picked from commit b6fca438dde1b4c0bbdee31729871d601f287dc9)

7 years agoMLK-11479-10 ASoC: fsl: pop noise with wm8962
Shengjiu Wang [Wed, 7 May 2014 10:02:15 +0000 (18:02 +0800)]
MLK-11479-10 ASoC: fsl: pop noise with wm8962

cherry-pick below patch from v3.14.y:
ENGR00312217-1 ASoC: fsl: pop noise with wm8962

The reason of pop noise is that we change the sysclk in hw_free, which is
for another wm8962 issue. So in currently the pop noise can't be resolved
with no confliction. So for Android, because the samplerate is fixed. we can
use other workaround for this issue: change the sysclk in the set_bias().

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
(cherry picked from commit 84babc7fa0a56f6620f8b04a86baece620297dda)

7 years agoMLK-11479-09 pulseaudio5.0 mute Headphone volume when Headphone plugged
Shengjiu Wang [Thu, 3 Apr 2014 08:05:40 +0000 (16:05 +0800)]
MLK-11479-09 pulseaudio5.0 mute Headphone volume when Headphone plugged

cherry-pick below patch from v3.14.y:
ENGR00306857 pulseaudio5.0 mute Headphone volume when Headphone plugged

Pulseaudio will detect the Headphone Jack, then swith to Headphone.
So register new Jack for Headphone, the iface=CARD.

Signed-off-by: Shengjiu Wang <b02247@freescale.com>
(cherry picked from commit 6a715373c43f16e48883061049e67919281878d1)

7 years agoMLK-11479-08 ASoC: fsl: Drop snd_soc_dapm_sync() in imx-wm8962
Nicolin Chen [Fri, 29 Nov 2013 09:44:39 +0000 (17:44 +0800)]
MLK-11479-08 ASoC: fsl: Drop snd_soc_dapm_sync() in imx-wm8962

cherry-pick below patch from v3.14.y:
ENGR00290229 ASoC: fsl: Drop snd_soc_dapm_sync() in imx-wm8962

As DAPM would do the sync() for us, we don't need to handle it by ourselves.
And leaving snd_soc_dapm_sync() here is dangerous because it would disable
the clock from WM8962 during the short period of the output route changing
since we don't leave the alternative route's enanbling to this machine driver
but to DAPM core.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit c4dcde0b5119262cbb75c5136422af2071bffbda)

7 years agoMLK-11479-07 ASoC: fsl: Drop useless resume function in WM8962 machine driver
Nicolin Chen [Thu, 12 Sep 2013 06:24:20 +0000 (14:24 +0800)]
MLK-11479-07 ASoC: fsl: Drop useless resume function in WM8962 machine driver

cherry-pick below patch from v3.14.y:
ENGR00279368-1 ASoC: fsl: Drop useless resume function in WM8962 machine driver

The resume function is useless for the driver because registered jack pin has
already handled suspend/resume cases, thus drop it.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit d9357cae4492abd5bca41515793ab6fe461717b2)

7 years agoMLK-11479-06 ASoC: fsl: Add WM8962 jack detecting support
Nicolin Chen [Tue, 3 Sep 2013 04:45:05 +0000 (12:45 +0800)]
MLK-11479-06 ASoC: fsl: Add WM8962 jack detecting support

cherry-pick below patch from v3.14.y:
ENGR00277715-3 ASoC: fsl: Add WM8962 jack detecting support

There're two GPIOs connected to the headphone jack and microphone jack,
thus add the states detection.

Reviewed-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit f85ca1dd664178328bd813651e91d612787b6926)

7 years agoMLK-11479-05 ASoC: fsl: Fix set-mute-failed issue after WM8962 capture
Nicolin Chen [Fri, 30 Aug 2013 08:02:35 +0000 (16:02 +0800)]
MLK-11479-05 ASoC: fsl: Fix set-mute-failed issue after WM8962 capture

cherry-pick below patch from v3.14.y:
ENGR00277471 ASoC: fsl: Fix set-mute-failed issue after WM8962 capture

We only need to mute WM8962 after playback, so add direction check
before doing mute.

And a mute failure would cause hw_free() abruptly return after it,
which might drop the essential procedure code for FLL controlling.
Thus put mute before FLL controlling code and drop its return check.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit 3133b6cfb31b202805d31d449bfa70383e5e1c75)

7 years agoMLK-11479-04 ASoC: imx-wm8962: Set MCLK source clock to 0Hz in hw_free()
Nicolin Chen [Tue, 13 Aug 2013 03:37:54 +0000 (11:37 +0800)]
MLK-11479-04 ASoC: imx-wm8962: Set MCLK source clock to 0Hz in hw_free()

cherry-pick below patch from v3.14.y:
ENGR00274386-2 ASoC: imx-wm8962: Set MCLK source clock to 0Hz in hw_free()

When DAPM closed WM8962 after playback, its driver would prompt
'wm8962 0-001a: Unsupported sysclk ratio 500' due to the invalid
divisor calculated by WM8962 codec driver.

To fix it, we can work around by setting its MCLK source to 0Hz,
so the codec driver would never get an invalid divisor any more.
Since hw_params() would re-set the MCLK source, no need to worry
about any side-effect.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit a935f7680ac3958ce72cf7413cac278c0683d4c0)

7 years agoMLK-11479-02 ASoC: WM8962: Let codec driver enable/disable its MCLK
Nicolin Chen [Mon, 5 Aug 2013 08:26:16 +0000 (16:26 +0800)]
MLK-11479-02 ASoC: WM8962: Let codec driver enable/disable its MCLK

cherry-pick below patch from v3.14.y:
ENGR00273838-8 ASoC: WM8962: Let codec driver enable/disable its MCLK

WM8962 needs its MCLK when powerup -- wm8962_resume(). Thus it's better
to control the MCLK in codec driver. Thus remove the clock enable in
machine dirver accordingly.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit 007d3504914096760124f2ef13d52da206341a66)

7 years agoMLK-11479-01 ASoC: fsl: Use hw_params() and hw_free() to set FLL
Nicolin Chen [Mon, 5 Aug 2013 07:34:05 +0000 (15:34 +0800)]
MLK-11479-01 ASoC: fsl: Use hw_params() and hw_free() to set FLL

cherry-pick below patch from v3.14.y:
ENGR00273838-7 ASoC: fsl: Use hw_params() and hw_free() to set FLL

We followed community way by using set_bias() to set FLL of WM8962.
But this can't meet our requirement: aplay -Dhw: 16khz.wav 24khz.wav.
Thus use hw_params() and hw_free() instead.

Acked-by: Wang Shengjiu <b02247@freescale.com>
Signed-off-by: Nicolin Chen <b42378@freescale.com>
(cherry picked from commit 8db9a2f44a5eecd02be2259a3783178a521ef2d2)

7 years agoMLK-11483-5 Add config for mfgtools
Frank Li [Thu, 3 Oct 2013 19:51:58 +0000 (14:51 -0500)]
MLK-11483-5 Add config for mfgtools

Build in USB Mass storage
Enable CONFIG_FSL_UTP

Signed-off-by: Frank Li <Frank.li@freescale.com>
7 years agoMLK-11483-4 UTP : replace kzalloc() with vmalloc()
Huang Shijie [Wed, 26 Oct 2011 09:31:25 +0000 (17:31 +0800)]
MLK-11483-4 UTP : replace kzalloc() with vmalloc()

When allocating large memory, such as 128K,
vmalloc() uses single page for the allocation process,
while kzalloc() has to consume a continuous pages for the allocation.

In low memory case, the kzalloc() may fails.
So use the vmalloc() instead.

Also add some sanity check for the NULL pointer.

Add missed line for ENGR00161643-3 UTP : bugfix

Signed-off-by: Huang Shijie <b32955@freescale.com>
7 years agoMLK-11483-3 mfg: fix the bug that ubiformat utility breaks utp protocol
Peter Chen [Tue, 22 Mar 2011 09:27:17 +0000 (17:27 +0800)]
MLK-11483-3 mfg: fix the bug that ubiformat utility breaks utp protocol

ubiformat includes command, data, command periods,
it breaks utp protocol for PUT commands. So we add two operations to fix it.
One is sending busy to host before the data periods begins.
The second is adding a new command to waiting ubiformat's command period.

Signed-off-by: Li Xingyu <b02754@freescale.com>
Signed-off-by: Peter Chen <peter.chen@freescale.com>
7 years agoMLK-11483-2 mfgtool firmware will crash during mfgtool running
Tony LIU [Fri, 20 Jul 2012 02:11:06 +0000 (10:11 +0800)]
MLK-11483-2 mfgtool firmware will crash during mfgtool running

- the root cause of this issue is there is no protection for
  the resource which will be accessed by multiple thread

Signed-off-by: Tony LIU <junjie.liu@freescale.com>
7 years agoMLK-11483-1 make the kernel image for mfgtool
Frank Li [Wed, 28 Aug 2013 21:02:06 +0000 (16:02 -0500)]
MLK-11483-1 make the kernel image for mfgtool

uboot needs pass down below parameters
removable = 1
stall = 0
idVendor = 0x066F
idProduct = 0x37FF
iSerialNumber = ""

sleep_thread add new parameter

Signed-off-by: Lu Lin <b37454@freescale.com>
Signed-off-by: Frank Li<frank.li@freescale.com>
7 years agoMLK-11477 ARM: dts: imx6ul-14x14-evk.dts: move fxls8471 interrupt pin to iomux hoggrp
Fugang Duan [Tue, 1 Sep 2015 08:49:39 +0000 (16:49 +0800)]
MLK-11477 ARM: dts: imx6ul-14x14-evk.dts: move fxls8471 interrupt pin to iomux hoggrp

Commit cb75ac1d83e interduces one issue that add fxls8471 interrupt pin into
other module pin function. The patch move the pin to iomux hoggrp pin group.

Signed-off-by: Fugang Duan <B38611@freescale.com>
7 years agoMLK-10105 ARM: dtsi: Add MLB50 support for the i.MX6SX
Luwei Zhou [Fri, 16 Jan 2015 04:37:41 +0000 (12:37 +0800)]
MLK-10105 ARM: dtsi: Add MLB50 support for the i.MX6SX

Add MLB50 support on the i.MX6SX-ARD platform.

Signed-off-by: Luwei Zhou <b45643@freescale.com>