linux.git
7 years agoMGS-2698-2 [#imx-188] improve imx8 scu control for gpu
Xianzhong [Fri, 3 Mar 2017 02:36:32 +0000 (10:36 +0800)]
MGS-2698-2 [#imx-188] improve imx8 scu control for gpu

need set scu pid config in gpu_3d0 and gpu_3d1 entry
fsl,sc_gpu_pid = <SC_R_GPU_0_PID0>;

Date: Mar 03, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMGS-2698 [#imx-188] the unified imx gpu platform driver
Xianzhong [Mon, 27 Feb 2017 04:02:15 +0000 (12:02 +0800)]
MGS-2698 [#imx-188] the unified imx gpu platform driver

implemented the unified gpu clock structure for all imx devices,
removed the specific codes for _SetClock_imx8x and _SetPower_imx8x.

Date: Feb 27, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMGS-2619-3 [#imx-188] fix kernel panic with rmmod
Xianzhong [Mon, 6 Mar 2017 01:58:16 +0000 (09:58 +0800)]
MGS-2619-3 [#imx-188] fix kernel panic with rmmod

should unregister platform driver before device driver

Date: Mar 06, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMGS-2619-2 [#imx-188] Use imx-gpu-subsytem method to probe GPU Devices
Prabhu Sundararaj [Wed, 22 Feb 2017 22:59:44 +0000 (16:59 -0600)]
MGS-2619-2 [#imx-188] Use imx-gpu-subsytem method to probe GPU Devices

Use component_add menthod to initailize GPU devices. component_add helps
to load after power domains are loaded.

For more reference on the deferred loading
https://patchwork.kernel.org/patch/7683421/

Date: Feb 22, 2017
Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
7 years agoMGS-2619 [#imx-188] Use imx-gpu-subsytem method to probe GPU Devices
Prabhu Sundararaj [Thu, 16 Feb 2017 23:01:17 +0000 (17:01 -0600)]
MGS-2619 [#imx-188] Use imx-gpu-subsytem method to probe GPU Devices

Mainline kernel already implements each GPU device as separate node
and gpu-subsystem is being used.

This method will suit better for i.MX8QM where each GPU have different
power domains and need for a separate node. By this way calling of direct
SCFW API can be avoided and use the linux call.

Date: Feb 16, 2017
Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
7 years agoMGS-2740 [#imx-456] i.mx6qp: gpu hang with repeat insmod/rmmod galcore
Yuchou Gan [Fri, 17 Mar 2017 16:11:22 +0000 (00:11 +0800)]
MGS-2740 [#imx-456] i.mx6qp: gpu hang with repeat insmod/rmmod galcore

i.mx6qp has hardware problem with fabric design for gpu reset,
add the workaround in gpu driver to avoid gpu hang on i.mx6qp.

updated gpu chip model and revision from original 5.x patch.

Date: Mar 17, 2017
Signed-off-by: Yuchou Gan<yuchou.gan@nxp.com>
7 years agoMLK-14477: arm: dts: imx6qp-sabresd-btwifi: Enable build
Tiberiu Breana [Thu, 16 Mar 2017 14:40:31 +0000 (16:40 +0200)]
MLK-14477: arm: dts: imx6qp-sabresd-btwifi: Enable build

Add imx6qp-sabresd-btwifi.dtb to the Makefile, as it was missing.

Signed-off-by: Tiberiu Breana <andrei-tiberiu.breana@nxp.com>
7 years agoMLK-14475 soc: imx: fix build error after enable rpmsg
Richard Zhu [Thu, 16 Mar 2017 10:13:14 +0000 (18:13 +0800)]
MLK-14475 soc: imx: fix build error after enable rpmsg

- fix the wrong path of header file
- select MU/RPMSG when iMX8 is configured

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14471-2 arm: dts: imx7ulp: change pad setting for touch
Gao Pan [Sat, 11 Mar 2017 12:23:10 +0000 (20:23 +0800)]
MLK-14471-2 arm: dts: imx7ulp: change pad setting for touch

Set OBE for touch RST pin, set IBE for touch RST.

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from 815e6828ba53a9849974b63a7f3024896aa54cb8)

7 years agoMLK-14471-1 arm: dts: restore touch pin when exit VLLS mode
Gao Pan [Fri, 10 Mar 2017 11:52:36 +0000 (19:52 +0800)]
MLK-14471-1 arm: dts: restore touch pin when exit VLLS mode

restore touch pin when exit VLLS mode

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from 807fdc794af9b6ec15673d5e70cb03065b80f9fd)

7 years agoMLK-14394 i2c: imx-lpi2c: change default bitrate
Gao Pan [Wed, 8 Mar 2017 14:37:23 +0000 (22:37 +0800)]
MLK-14394 i2c: imx-lpi2c: change default bitrate

Due to the eviation i2c clk settings, the result may less than
100KBps. As a result, some i2c slave works in wrong condition.

This patch changes i2c bitrate to 200KBps

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from e8001d5993b9be81a872a0d93106e71050dced24)

7 years agoMLK-14393 i2c: imx-lpi2c: directly retrun ISR when detect a NACK
Gao Pan [Wed, 8 Mar 2017 14:29:22 +0000 (22:29 +0800)]
MLK-14393 i2c: imx-lpi2c: directly retrun ISR when detect a NACK

A NACK flag in ISR means i2c bus error. In such codition,
there is no need to do read/write operation. It's better
to return ISR directly and then stop i2c transfer.

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from 839d59e48b6fdbd882776a48a88ce26ff14d8b86)

7 years agoMLK-14407 arm: dts: enable lpi2c7 & disable lpi2c4
Gao Pan [Thu, 2 Mar 2017 07:52:17 +0000 (15:52 +0800)]
MLK-14407 arm: dts: enable lpi2c7 & disable lpi2c4

lpi2c4 is not used on imx7ulp platform, disable it;
lpi2c7 is used for touch, enable it;

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from 9137ed6de38513c585206febe7ce6c8279674f1b)

7 years agoMLK-14392-3 arm: dts: imx7ulp: add swap property for touch device node
Gao Pan [Wed, 8 Mar 2017 09:40:47 +0000 (17:40 +0800)]
MLK-14392-3 arm: dts: imx7ulp: add swap property for touch device node

add swap property for touch device node

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from 7bf0bd714098affe65ecc0a1d80921a367b7dc1c)

7 years agoMLK-14392-2 arm: dts: imx7ulp: add focaltech touch sopport
Gao Pan [Fri, 10 Mar 2017 06:54:32 +0000 (14:54 +0800)]
MLK-14392-2 arm: dts: imx7ulp: add focaltech touch sopport

add focaltech touch sopport

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pcik from c4f54a91769229e0fb4944929b2f116aa8e70ae8)

7 years agoMLK-14392-1 input: touch: add focaltech touch screen support
Gao Pan [Thu, 16 Mar 2017 08:31:56 +0000 (16:31 +0800)]
MLK-14392-1 input: touch: add focaltech touch screen support

add focaltech touch screen support

Signed-off-by: Gao Pan <pandy.gao@nxp.com>
(cherry-pick from 595cefbee5586e77ceb9ad900c256177a98367c7)

7 years agoMLK-14405 bcmdhd: replace WL_ERR() with WL_INFO() in some normal code slice
Andy Duan [Mon, 13 Mar 2017 04:43:59 +0000 (12:43 +0800)]
MLK-14405 bcmdhd: replace WL_ERR() with WL_INFO() in some normal code slice

Replace WL_ERR() with WL_INFO in some normal code slice to avoid confusion.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
7 years agoMLK-14438-06 net: fec: add property to define exclusive MII bus
Andy Duan [Tue, 14 Mar 2017 07:50:41 +0000 (15:50 +0800)]
MLK-14438-06 net: fec: add property to define exclusive MII bus

In defalut, most of i.MX boards share one MII bus in boards design to reduce
pins utilize, but others each MAC use their exclusive MII bus. To solve the
problem, user can select to define the mii-exclusive property in board dts file.

The patch also update binding doc.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
7 years agoMLK-14438-05 net: fec: register Athreos phy AR8031 fixup
Andy Duan [Tue, 14 Mar 2017 07:04:12 +0000 (15:04 +0800)]
MLK-14438-05 net: fec: register Athreos phy AR8031 fixup

Register Athreos PHY AR8031 fixup.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
(cherry picked and merged from commit:676bf1d92b3e6babdab623694fd83d54f881fc2f)

7 years agoMLK-14438-04 net: fec: add phy-reset-gpios PROBE_DEFER check
Andy Duan [Tue, 14 Mar 2017 06:09:29 +0000 (14:09 +0800)]
MLK-14438-04 net: fec: add phy-reset-gpios PROBE_DEFER check

Add dts property "phy-reset-gpios" PROBE_DEFER check, and use
gpio_set_value_cansleep() due to the FEC PHY reset gpio may be on
an I2C expander.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
(cherry picked from commit: 3b63e39f460d239c19a5afaf281d9a512b958cf7)

7 years agoMLK-14438-03 dts: arm64: imx8qm: add enet node
Andy Duan [Mon, 13 Mar 2017 09:03:51 +0000 (17:03 +0800)]
MLK-14438-03 dts: arm64: imx8qm: add enet node

Add enet node for imx8qm.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
7 years agoMLK-14438-02 arm64: defconfig: enable freescale FEC ethernet
Andy Duan [Tue, 14 Mar 2017 05:23:01 +0000 (13:23 +0800)]
MLK-14438-02 arm64: defconfig: enable freescale FEC ethernet

Enable freescale FEC ethernet controller.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
7 years agoMLK-14438-01 net: fec: add FEC support for NXP i.MX8x chips
Andy Duan [Tue, 14 Mar 2017 03:23:10 +0000 (11:23 +0800)]
MLK-14438-01 net: fec: add FEC support for NXP i.MX8x chips

Add FEC support for NXP i.MX8x chips.

Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
7 years agoMLK-14439-4 rpmsg: imx: setup the imx rpmsg driver
Richard Zhu [Wed, 15 Mar 2017 04:36:02 +0000 (12:36 +0800)]
MLK-14439-4 rpmsg: imx: setup the imx rpmsg driver

- move imx_rpmsg from arch/arm/ to drivers/rpmsg.
- use the new MU generic APIs in the rpmsg implementation.
- Validated the pingpong test on both imx6sx and imx7d sdb boards.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14439-3 arm: imx: support amp soc pm on 4.9
Richard Zhu [Thu, 9 Mar 2017 09:12:15 +0000 (17:12 +0800)]
MLK-14439-3 arm: imx: support amp soc pm on 4.9

- let the arch/arm/mach-imx/mu.c do the
AMP PM only, add the IRQF_SHARED to its isr.
- remove the rpmsg implementations in this
mu driver.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14439-2 soc: imx: enhance the mu driver
Richard Zhu [Thu, 9 Mar 2017 09:06:02 +0000 (17:06 +0800)]
MLK-14439-2 soc: imx: enhance the mu driver

- add the MU version1.0 (introduced by 7ulp)
support.
- add the MU_SetFn and MU_ReadStatus APIs.
- fix one mispell bug when enable the RX INTs.
Otherwise, the RX INTs wouldn't be configured
correctly.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14439-1 soc: imx: rename imx8 to imx in soc driver
Richard Zhu [Wed, 15 Mar 2017 04:57:45 +0000 (12:57 +0800)]
MLK-14439-1 soc: imx: rename imx8 to imx in soc driver

- rename the drivers/soc/imx8 to drivers/soc/imx

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14444: mtd: fsl-quadspi: fix logic error when reading dummy cycle
Han Xu [Wed, 15 Mar 2017 05:57:59 +0000 (00:57 -0500)]
MLK-14444: mtd: fsl-quadspi: fix logic error when reading dummy cycle

Fix the logic error when reading dummy cycle for qspi ddr quad mode

Signed-off-by: Han Xu <han.xu@nxp.com>
7 years agoMLK-14440 tty: serial: fsl_lpuart: add compatible for 7ulp
Octavian Purdila [Wed, 15 Mar 2017 06:43:48 +0000 (08:43 +0200)]
MLK-14440 tty: serial: fsl_lpuart: add compatible for 7ulp

Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
7 years agoMLK-14472-2 dts: imx7s: add flexcan stop mode wakeup support
Dong Aisheng [Thu, 16 Mar 2017 05:15:38 +0000 (13:15 +0800)]
MLK-14472-2 dts: imx7s: add flexcan stop mode wakeup support

Add stop-mode property which is required by stop mode wakeup feature.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
7 years agoMLK-14472-1 dts: imx6ul: add flexcan stop mode wakeup support
Dong Aisheng [Thu, 16 Mar 2017 05:13:34 +0000 (13:13 +0800)]
MLK-14472-1 dts: imx6ul: add flexcan stop mode wakeup support

Add stop-mode property which is required by stop mode wakeup feature.

Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
7 years agoARM: imx: Add AXI address filter support for MMDC profiling
Tiberiu Breana [Mon, 13 Feb 2017 16:46:27 +0000 (18:46 +0200)]
ARM: imx: Add AXI address filter support for MMDC profiling

Add support for an extra config parameter for perf commands:
axi_id, which will be written in the MMDC's MADPCR1 register,
to filter memory usage profiling (see i.MX6 reference manual,
chapter 44.7 MMDC Profiling for AXI id usage).

Signed-off-by: Tiberiu Breana <andrei-tiberiu.breana@nxp.com>
7 years agoARM: imx: Fix mmdc_pmu_write_accesses event definition
Tiberiu Breana [Mon, 13 Feb 2017 16:43:50 +0000 (18:43 +0200)]
ARM: imx: Fix mmdc_pmu_write_accesses event definition

Fixed an error in the "write-accesses" event definition.

Signed-off-by: Tiberiu Breana <andrei-tiberiu.breana@nxp.com>
7 years agoMLK-14396 usb: chipidea: add mutex for concurrent running
Peter Chen [Tue, 14 Mar 2017 05:57:39 +0000 (13:57 +0800)]
MLK-14396 usb: chipidea: add mutex for concurrent running

The ci_handle_id_switch is called at two places, at very rare situations,
it may be running at the same time. Eg, when the system is back from
the resume, the id event is occurred from extcon driver, as well as
power_lost work item is called due to the controller is poweroff at
the suspend.

Signed-off-by: Peter Chen <peter.chen@nxp.com>
7 years agoMLK-14256 usb: chipidea: udc: update gadget state after bus resume
Li Jun [Fri, 3 Mar 2017 16:30:44 +0000 (00:30 +0800)]
MLK-14256 usb: chipidea: udc: update gadget state after bus resume

Gadget state is set to be suspended when bus suspened, but not updated
after resume, this patch saves the gadget state before suspend and
restores it after resume.

Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
7 years agoAdd missing NULL checks in CAAM sm
Radu Solea [Wed, 8 Mar 2017 14:34:15 +0000 (16:34 +0200)]
Add missing NULL checks in CAAM sm

    Missing NULL checks in CAAM sm_store and sm_test cause kernel
    crashes if caam init fails.

Signed-off-by: Radu Solea <radu.solea@nxp.com>
7 years agoARM: cpuidle-imx*: Report the entered state index
Leonard Crestez [Mon, 13 Mar 2017 10:35:24 +0000 (12:35 +0200)]
ARM: cpuidle-imx*: Report the entered state index

When a cpuidle driver is called it can choose to enter a different state
that what was asked from above. When this happens it should return the
actual entered_state index for proper accounting.

This fixes the various imx cpuidle drivers which depend on low busfreq
for LOW-POWER-IDLE to correctly report that they entered WAIT instead.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
7 years agoMLK-14424 ARM: imx: fix PM CCM init on imx6sll
Octavian Purdila [Mon, 13 Mar 2017 11:15:34 +0000 (13:15 +0200)]
MLK-14424 ARM: imx: fix PM CCM init on imx6sll

Since we share the same machine code for both imx6sll and imx6sl we
need to check the CPU in order to select the right device tree
binding for the PM CCM.

Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
7 years agoMLK-14425: clk-imx6sx: Check clk_on_imx6sx in imx_amp_power_init
Leonard Crestez [Fri, 10 Mar 2017 16:33:40 +0000 (18:33 +0200)]
MLK-14425: clk-imx6sx: Check clk_on_imx6sx in imx_amp_power_init

This fixes crashing on boot on imx7d if imx_src_is_m4_enabled(). This
check was lost when porting 24ee04ce76d6a8d8229c642eb5d7a15ea57570c6.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
7 years agoRevert "MLK-13795 ARM: disable CPU_SW_DOMAIN_PAN"
Octavian Purdila [Mon, 13 Mar 2017 09:40:01 +0000 (11:40 +0200)]
Revert "MLK-13795 ARM: disable CPU_SW_DOMAIN_PAN"

This reverts commit 9820aee9fb81 ("MLK-13795 ARM: disable
CPU_SW_DOMAIN_PAN") because the root cause issue has been fixed in
commit 21affa46f845 ("MGS-2721: gpu: integrate 6.2.2 early release
driver").

Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
7 years agoMLK-14399: 4.9 rebase: LVDS panel does not work on iMX6SX Auto
Cristina Ciocan [Thu, 9 Mar 2017 18:13:17 +0000 (20:13 +0200)]
MLK-14399: 4.9 rebase: LVDS panel does not work on iMX6SX Auto

The LCDIF driver fails at boot time because it cannot read display timings
from device tree. This is a fake error because the LCDIF DT node contains a
display device property which leads to the display driver that also provides
the timings.

This fake error case has been introduced by
commit 5443a75ed038 ("MLK-14283: dts: fix DE polarity for lcdif") and
commit 56412d6a83d8 ("MLK-13996: lcdif: Use DE polarity specified in DTS")
which fixed DE polarity panel differences for different boards.

This patch adds support for choosing a particular video mode from the ones
provided by the display driver, thus also fixing the DE polarity issue
initially fixed by the above mentioned 2 patches.

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
7 years agoRevert "MLK-14283: dts: fix DE polarity for lcdif"
Cristina Ciocan [Thu, 9 Mar 2017 16:16:13 +0000 (18:16 +0200)]
Revert "MLK-14283: dts: fix DE polarity for lcdif"

This reverts commit 5443a75ed038 ("MLK-14283: dts: fix DE polarity for lcdif").

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
7 years agoRevert "MLK-13996: lcdif: Use DE polarity specified in DTS"
Cristina Ciocan [Thu, 9 Mar 2017 14:00:47 +0000 (16:00 +0200)]
Revert "MLK-13996: lcdif: Use DE polarity specified in DTS"

This reverts commit 56412d6a83d8 ("MLK-13996: lcdif: Use DE polarity
specified in DTS").

We need to take the display timings from "disp-dev" if such node exists.
Revert this patch because it tries to find the display-timings in the
display controller node, even though it has been found in the display
device node.

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
7 years agoMLK-14282: 4.9 rebase: LVDS display not working on iMX6QP SabreSD
Cristina Ciocan [Wed, 8 Mar 2017 11:58:13 +0000 (13:58 +0200)]
MLK-14282: 4.9 rebase: LVDS display not working on iMX6QP SabreSD

Fix IPU2 DI(Display Interface) clocks for iMX6QP SABRESD. The upstream
version uses ldb_di0_podf and ldb_di1_podf as clock parents for ipu_di,
which fails to work on iMX6QP SABRESD. This patch fixes clock tree by:
- setting ipu_di selectors to ldb_di_div_sel in imx6q clock driver
- matching "ldb_di0", "ldb_di1" clock names with
  IMX6QDL_CLK_LDB_DI0_DIV_SEL, IMX6QDL_CLK_LDB_DI1_DIV_SEL; otherwise,
  ldb_di0_div_sel and ldb_di1_div_sel will not be recognized as LDB clk parents
  and will not drive the Display Interface.

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
7 years agoMGS-2731 gpu: dts: fix the wrong clock config for 7ulp gpu shader
Xianzhong [Sat, 11 Mar 2017 15:04:27 +0000 (23:04 +0800)]
MGS-2731 gpu: dts: fix the wrong clock config for 7ulp gpu shader

gc7000nu has only clk2x core input, no external shader clock input,
currently gpu_3d_shader clock is set to the 2d bus clock mistakenly,

should set gpu_3d_shader config with dummy clock in gpu device,
also removed the unused gpu2d_shader_clock setting from dts.

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
(cherry picked from commit 021b397e2594a37987d852a382f90bf0559fcf30)

7 years agoMGS-2730 gpu-viv : Set Unique for Vivante DRM Driver
Prabhu Sundararaj [Fri, 10 Mar 2017 23:10:29 +0000 (17:10 -0600)]
MGS-2730 gpu-viv : Set Unique for Vivante DRM Driver

1. unique need to be set to get proper busid.
   Vivante driver is very simple and does not use drm_dev_alloc
   which in turn calls drm_dev_set_unique.
   Use set_busid to set the unique.

   https://patchwork.kernel.org/patch/9182749/

2. driver_features = DRIVER_LEGACY added to do mmap of SHM.
   https://patchwork.kernel.org/patch/8694561/

fix the problem that X11 cannot work with 4.9 kernel upgrade

Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
7 years agoMLK-14401: ARM: dts: Add supply for bypassed vddpu
Leonard Crestez [Thu, 9 Mar 2017 15:50:49 +0000 (17:50 +0200)]
MLK-14401: ARM: dts: Add supply for bypassed vddpu

Newer kernel versions output a lot of warnings if they encounter a
bypassed regulator without an explicitly configured supply. Like this:

vddpu: bypassed regulator has no supply!
vddpu: bypassed regulator has no supply!
vddpu: bypassed regulator has no supply!

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
7 years agoMGS-2721: gpu: integrate 6.2.2 early release driver
Xianzhong [Fri, 10 Mar 2017 09:20:43 +0000 (17:20 +0800)]
MGS-2721: gpu: integrate 6.2.2 early release driver

integrated critical gpu bug-fixing for i.MX6/i.MX7ULP/i.MX8,
solved gpu hang and khronos conformance issues for below features:
 - OpenGL ES11/ES20/ES30/ES31/ES32,
 - OpenCL 1.1/1.2FP,
 - OpenVX 1.0.1
 - Vulkan 1.0
 - OpenVG 1.1

Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMLK-14273: ARM: imx: mach-imx6q: fix csi mux setting for imx6qp
Laurentiu Palcu [Thu, 9 Mar 2017 09:54:17 +0000 (11:54 +0200)]
MLK-14273: ARM: imx: mach-imx6q: fix csi mux setting for imx6qp

Currently, for imx6qp, the first camera interface is set as MIPI CSI.
However, for sabresd and sabreauto, this should be set as parallel.

Signed-off-by: Laurentiu Palcu <laurentiu.palcu@nxp.com>
7 years agoMLK-14400-2 defconfig: formalize imx_v7_mfg_defconfig
Haibo Chen [Fri, 10 Mar 2017 06:33:18 +0000 (14:33 +0800)]
MLK-14400-2 defconfig: formalize imx_v7_mfg_defconfig

This patch use command 'make savedefconfig' to produce the defconfig
and replace the imx_v7_mfg_defconfig

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
7 years agoMLK-14400-1 defconfig: fix warning in imx_v7_defconfig
Haibo Chen [Thu, 9 Mar 2017 11:49:25 +0000 (19:49 +0800)]
MLK-14400-1 defconfig: fix warning in imx_v7_defconfig

when use imx_v7_defconfig, there are following warning:

arch/arm/configs/imx_v7_defconfig:172:warning: override: reassigning to symbol TOUCHSCREEN_IMX6UL_TSC
arch/arm/configs/imx_v7_defconfig:392:warning: override: reassigning to symbol ION
arch/arm/configs/imx_v7_defconfig:393:warning: override: reassigning to symbol ION_MXC

This patch use command 'make savedefconfig' to produce the defconfig
and replace the imx_v7_defconfig.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
7 years agoMLK-14316 ASoC: fsl_ssi: Fix playback and capture with mono stream
Shengjiu Wang [Wed, 8 Mar 2017 17:44:47 +0000 (19:44 +0200)]
MLK-14316 ASoC: fsl_ssi: Fix playback and capture with mono stream

After starting playback with a single channel SSI runs in Normal mode
(SCR.net = 0b, SCR.i2s_mode = 00b). But, if starting also capture
in parallel with playback the SSI mode changes which breaks the playback.

This happens because, we can change SSI mode from two distinct places:
* _fsl_ssi_set_dai_fmt
* fsl_ssi_hw_params

When running playback and capture in parallel for a mono channel, changing
hw params for the second stream will have no effect.

This patch allows changing the mode only from fsl_ssi_hw_parms so that
we have an atomic view of SSI mode.

Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
7 years agoMLK-14388 mtd: gpmi: remove direct mtd->priv accesses
Octavian Purdila [Wed, 8 Mar 2017 17:02:29 +0000 (19:02 +0200)]
MLK-14388 mtd: gpmi: remove direct mtd->priv accesses

mtd->priv is no longer pointing to the struct nand_chip it is attached
to.  Replace those accesses by mtd_to_nand() calls.

Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
7 years agoMLK-14266 ARM: imx: mach-imx7d: remove mxc_restart
Octavian Purdila [Tue, 7 Mar 2017 15:03:26 +0000 (17:03 +0200)]
MLK-14266 ARM: imx: mach-imx7d: remove mxc_restart

mxc_restart was incorrectly added back in commit c81df74845c74d14
("MLK-13869 ARM: imx7d: run pm init during intialization").

Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
7 years agoMGS-2719 [#imx-421] fix gckOS_MapMemory failure
Xianzhong [Wed, 8 Mar 2017 08:56:20 +0000 (16:56 +0800)]
MGS-2719 [#imx-421] fix gckOS_MapMemory failure

gckOS_MapMemory failure with 4.9 kernel on ARM64 build,

_DmaMapUser will return gcvSTATUS_OUT_OF_MEMORY since
dma_mmap_writecombine does not set the valid device handle.

fslcma allocator has the same function as the DMA allocator,
then disable the DMA allocator to avoid more problems.

Date: Mar 08, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMGS-2715 [#imx-418] fix 6.2.0.p2 Coverity high impact issues
Xianzhong [Mon, 6 Mar 2017 08:47:55 +0000 (16:47 +0800)]
MGS-2715 [#imx-418] fix 6.2.0.p2 Coverity high impact issues

fix coverity high impact issues in 6.2.0.p2 gpu kernel driver

59982:  Resource leak (mappedQueue)
57724: Pointer to local outside scope (_nextCMDBUF)
57722: Uninitialized scalar variable (linkBytes)
57721: Uninitialized scalar variable (nopBytes)

Date: Mar 06, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMLK-14359-3 soc: imx8: correct pm domains compatible string
Anson Huang [Tue, 7 Mar 2017 16:50:00 +0000 (00:50 +0800)]
MLK-14359-3 soc: imx8: correct pm domains compatible string

Correct power domains compatible string name to match
with dtb.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
7 years agoMLK-14359-2 soc: imx8: skip power-domain initialization for non-SCFW system
Anson Huang [Tue, 7 Mar 2017 16:48:42 +0000 (00:48 +0800)]
MLK-14359-2 soc: imx8: skip power-domain initialization for non-SCFW system

For non-SCFW system, the power domain initialization is NOT
necessary, so add check to skip it if necessary.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
7 years agoMLK-14359-1 soc: imx8: improve coding style
Anson Huang [Tue, 7 Mar 2017 16:36:00 +0000 (00:36 +0800)]
MLK-14359-1 soc: imx8: improve coding style

Follow linux coding style.

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
7 years agoMLK-14303: ARM: dts: imx7d: Fix duplicate tsc2046 definition
Leonard Crestez [Mon, 6 Mar 2017 16:07:07 +0000 (18:07 +0200)]
MLK-14303: ARM: dts: imx7d: Fix duplicate tsc2046 definition

Reconcile MLK-12075 ARM: dts: remove imx7d-sdb-touch.dts
with the upstream tsc2046@0 definition. When this patch was ported to
imx_4.9.y a new touchscreen definition was added instead.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
7 years agoMLK-14280: gpc: gpc driver not probed
Robert Chiras [Thu, 2 Mar 2017 12:01:46 +0000 (14:01 +0200)]
MLK-14280: gpc: gpc driver not probed

The GPC controller driver is handling two sections: interrupts and PGC
(Power Gate Controller). The interrupts are handled in imx_gpcv2_init
function, and the PGC is handled in imx_gpcv2_probe function.
In kernel 4.9, the driver is probed by it's compatible entry in:
OF_DECLARE_2(irqchip, imx_gpcv2, "fsl,imx7d-gpc", imx_gpcv2_init);

Because the driver is already probed, imx_gpcv2_probe function is not
called, since it is registered with the same compatible name.
In order to separate the interrupts from PGC, this patch moves the
regulator entrys in DTS to a new node: pgc. And, assign the probe
function to this new node.
Also, added DeviceTree documentation about the new added node. Since GPC
(the block containing the PGC) didn't have any documentation, documented
GPC too.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
7 years agoMLK-14283: dts: fix DE polarity for lcdif
Robert Chiras [Thu, 2 Mar 2017 14:01:38 +0000 (16:01 +0200)]
MLK-14283: dts: fix DE polarity for lcdif

For imx7d, the DTS definition (imx7d-sdb.dts) is used by default, and this
is the one used when plugging a HDMI device. Since HDMI works with DE
polarity as active high, but the MIPI DSI works with active low, this
patch sets the DE polarity to active high in imx7-sdb.dts and moves the
active low polarity to imx7d-sdb-mipi-dsi.dts.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
7 years agoMLK-14325-3 PCI: designware: Remove the redundant codes
Richard Zhu [Tue, 7 Mar 2017 01:12:09 +0000 (09:12 +0800)]
MLK-14325-3 PCI: designware: Remove the redundant codes

Remove the redundant codes in pcie-designware driver.
Because that the class configration had been
contained in 4.9 kernel.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14325-2 PCI: imx: enable pcie on 4.9 kernel
Richard Zhu [Tue, 7 Mar 2017 01:11:12 +0000 (09:11 +0800)]
MLK-14325-2 PCI: imx: enable pcie on 4.9 kernel

- Do not return error when the GEN2 link negatiation
is failed. Because that the limitation maybe caused
by the remote GEN1 EP device.
- Move the power saving codes to the proper place
after the link is down.
Otherwise, system would hang when link is down.

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoMLK-14325-1 ARM: dts: enable imx pcie gen2 link
Richard Zhu [Tue, 28 Feb 2017 01:22:23 +0000 (09:22 +0800)]
MLK-14325-1 ARM: dts: enable imx pcie gen2 link

Set the max link capability of the imx pcie to gen2

Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
7 years agoARM: imx: hide unused variable in #ifdef
Arnd Bergmann [Tue, 10 Jan 2017 12:19:05 +0000 (13:19 +0100)]
ARM: imx: hide unused variable in #ifdef

A bugfix added a new local variable that is only used inside of an #ifdef
section, and unused if CONFIG_PERF_EVENTS is disabled:

arch/arm/mach-imx/mmdc.c:63:25: warning: 'cpuhp_mmdc_state' defined but not used [-Wunused-variable]

This moves the variable down inside that same ifdef.

Fixes: a051f220d6b9 ("ARM/imx/mmcd: Fix broken cpu hotplug handling")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
7 years agoARM/imx/mmcd: Fix broken cpu hotplug handling
Thomas Gleixner [Wed, 21 Dec 2016 19:19:48 +0000 (20:19 +0100)]
ARM/imx/mmcd: Fix broken cpu hotplug handling

The cpu hotplug support of this perf driver is broken in several ways:

1) It adds a instance before setting up the state.

2) The state for the instance is different from the state of the
   callback. It's just a randomly chosen state.

3) The instance registration is not error checked so nobody noticed that
   the call can never succeed.

4) The state for the multi install callbacks is chosen randomly and
   overwrites existing state. This is now prevented by the core code so the
   call is guaranteed to fail.

5) The error exit path in the init function leaves the instance registered
   and then frees the memory which contains the enqueued hlist node.

6) The remove function is removing the state and not the instance.

Fix it by:

- Setting up the state before adding instances. Use a dynamically allocated
  state for it.

- Installing instances after the state has been set up

- Removing the instance in the error path before freeing memory

- Removing the instance not the state in the driver remove callback

While at is use raw_cpu_processor_id(), because cpu_processor_id() cannot
be used in preemptible context, and set the driver data after successful
registration of the pmu.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Shawn Guo <shawnguo@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Sebastian Siewior <bigeasy@linutronix.de>
Cc: Frank Li <frank.li@nxp.com>
Cc: Zhengyu Shen <zhengyu.shen@nxp.com>
Link: http://lkml.kernel.org/r/20161221192111.596204211@linutronix.de
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
7 years agoARM: imx: mmdc perf function support i.MX6QP
Frank Li [Mon, 7 Nov 2016 17:30:48 +0000 (11:30 -0600)]
ARM: imx: mmdc perf function support i.MX6QP

i.MX6QP added new register bit PROFILE_SEL in MADPCR0.
need set it at perf start.

Signed-off-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
7 years agoRevert "Revert "ARM: imx: Added perf functionality to mmdc driver""
Tiberiu Breana [Mon, 6 Mar 2017 16:56:13 +0000 (18:56 +0200)]
Revert "Revert "ARM: imx: Added perf functionality to mmdc driver""

This reverts commit 0fcec3b21f92184b230c98b85887fa7fbbdf6f64.

7 years agoMLK-14301: Revert "MLK-11343-01 cpufreq: imx: replace clk_get & regulator_get will...
Leonard Crestez [Fri, 3 Mar 2017 17:09:04 +0000 (19:09 +0200)]
MLK-14301: Revert "MLK-11343-01 cpufreq: imx: replace clk_get & regulator_get will devm ones"

Upstream rejected this patch because it is wrong: Attaching clk and
regulator resources to the cpu device results in them never actually
getting freed.

This is relevant now that we rely on supporting EPROBE_DEFER because we
must handle correctly returning from a partial probe.

In particular this patch fixes imx6qp-sabresd not setting the PU
regulator to bypass mode because the cpufreq driver fetched the
regulator before gpc and leaked it.

This is not a straight revert because other clks and regulators were
added, we add code to free them too.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
7 years agoMLK-14301: imx dts: Fix cpu regulator references
Leonard Crestez [Fri, 3 Mar 2017 16:50:41 +0000 (18:50 +0200)]
MLK-14301: imx dts: Fix cpu regulator references

On imx_4.9.y we no longer override the cpu arm/soc/pu-supply properties
to link to pmic directly but rather rely on the regulator core
propagating a set_voltage on a bypassed regulator upwards.

This change was already performance for imx6qdl, now do it for all the
boards using ldo-bypass.

Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
7 years agoMLK-14291 ARM: config: imx: Allow changing trip temperatures from userspace
Irina Tirdea [Tue, 28 Feb 2017 16:01:28 +0000 (18:01 +0200)]
MLK-14291 ARM: config: imx: Allow changing trip temperatures from userspace

The temperature trip points should be writable from userspace to
allow testing the thermal driver. This is a new configuration
option added in 4.9 and needed to allow the functionality
introduced by commit fc4fcd689419
("MLK-11705 thermal: imx: make the critical trip temp changable for test").

Signed-off-by: Irina Tirdea <irina.tirdea@nxp.com>
7 years agoMLK-14291 thermal: imx: fix setting passive trip temp
Irina Tirdea [Tue, 28 Feb 2017 15:51:05 +0000 (17:51 +0200)]
MLK-14291 thermal: imx: fix setting passive trip temp

When setting passive temperature trip point, it is not
allowed to set a higher value than the default.

Currently the driver compares the new temperature to set
with a constant (0). This comparison wil always be true
(temp to set higher than 0) and the driver will return
-EINVAL. This is a leftover from rebasing the commit fc4fcd689419
("MLK-11705 thermal: imx: make the critical trip temp changable for test").

Fix the comparison by using the actual default passive
temperature value instead of the wrong constant.

Signed-off-by: Irina Tirdea <irina.tirdea@nxp.com>
7 years agoMLK-14304 ARM: dts: imx7d: enable ocotp node
Octavian Purdila [Fri, 3 Mar 2017 11:04:22 +0000 (13:04 +0200)]
MLK-14304 ARM: dts: imx7d: enable ocotp node

The octop node was defined in imx7s.dtsi but disabled. It is needed by
the fsl_otp driver.

Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
7 years agoMLK-14292: 4.9 rebase: LCDIF: 6SX SDB does not boot with lcdif dts
Cristina Ciocan [Tue, 28 Feb 2017 17:10:54 +0000 (19:10 +0200)]
MLK-14292: 4.9 rebase: LCDIF: 6SX SDB does not boot with lcdif dts

On imx6SX SDB eLCDIF driver cannot coexist with CAAM driver. The cause
seems to be an ipg clk that failes to be identified by the CAAM driver.

This patch disables the CAAM driver by setting its status to "disabled"
in the dts used for obtaining LCDIF functionality.

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
7 years agoMLK-13982: 4.9 rebase: EPDC does not work
Cristina Ciocan [Mon, 27 Feb 2017 10:04:17 +0000 (12:04 +0200)]
MLK-13982: 4.9 rebase: EPDC does not work

The Linux kernel regulator core implementation does not accept negative
voltage values; all negative values are treated as errors.

The problem with the EPDC is that the panel uses a negative voltage
regulator which fails to be enabled by the regulator core. This issue has
slipped up until the 4.9 rebase because the voltage range [min, max] was
checked against only when min = max. This has been fixed in 4.9, resulting
in errors in the VCOM regulator driver.

The fix is to use the negative values when communicating with the hardware,
but send only positive values to the regulator core.

This patch sends the absolute value to the regulator core and transforms
the received value (from the regulator core) to negative one before sending
it to hardware.

Fix device tree to deal with negative voltage regulator values by setting
min_value = -real_max_value and vice versa. Boards affected:
- imx6dl-sabresd
- imx6ull-14x14-ddr3-arm2
- imx7d-12x12-lpddr3-arm2
- imx7d-sdb
- imx6sll-evk
- imx6sl-evk
- imx6sll-lpddr3-arm2

Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
7 years agoMLK-13996: lcdif: Use DE polarity specified in DTS
Robert Chiras [Fri, 17 Feb 2017 12:16:52 +0000 (14:16 +0200)]
MLK-13996: lcdif: Use DE polarity specified in DTS

Currently, the LCDIF driver (mxsfb.c) is overriding the DE polarity
specified in DTS with the one specified in fb_videomode (sync member) by
the panel driver.
Initially, the panel driver found in
drivers/video/fbdev/mxc/mxcfb_hx8363_wvga.c specified the sync in
fb_videomode as FB_SYNC_OE_LOW_ACT.

But this patch, changed it to 0x0:

commit 4deb430fd05a ("MLK-13607-8 video: mipi-panel: hx8363: change DE
polarity to active high")
Author: Fancy Fang <chen.fang@nxp.com>
Date:   Wed Dec 14 16:21:51 2016 +0800

    The NorthWest Logic MIPI DSI only support active low data enable
    signal on imx7ulp-evk board.

The problem is that, the hx8363 panel was working with active low on
imx7d-sdb, but with active high on imx7ulp-evk. The above patch broke
hx8363 panel on imx7d-sdb board.

So, instead of using a hard-coded polarity in panel driver, better use
the one defined in device-tree.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
7 years agoMLK-14283: mxsfb: fix clock definitions for lcdif
Robert Chiras [Mon, 27 Feb 2017 13:19:50 +0000 (15:19 +0200)]
MLK-14283: mxsfb: fix clock definitions for lcdif

The mxsfb framebuffer driver uses three clock definitions, but only two
are defined in DTS for imx7s (also used by imx7d); because of this,
driver fails in probe. Since iMX7D uses only one clock, add the third clock
and make two of them dummy.
Also, add additional error messages for better identification of a
failing probe.

Signed-off-by: Robert Chiras <robert.chiras@nxp.com>
7 years agoMLK-14276-2 mmc: sdhci: remove IS_ERR_VALUE abuses
Haibo Chen [Tue, 28 Feb 2017 11:12:14 +0000 (19:12 +0800)]
MLK-14276-2 mmc: sdhci: remove IS_ERR_VALUE abuses

It is wrong to pass 'int' to IS_ERR_VALUE(), Linus's commit
aa00edc1 point out this abuse.

This patch use operator instead.

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
7 years agoMLK-14276-1 mmc: sdio: remove compile warning
Haibo Chen [Mon, 27 Feb 2017 09:07:28 +0000 (17:07 +0800)]
MLK-14276-1 mmc: sdio: remove compile warning

Remove the TI wifi from defconfig and include the head file host.h
which contain the definition of struct mmc_host to avoid the following
compile warning:

In file included from drivers/net/wireless/ti/wlcore/sdio.c:28:0:
./include/linux/mmc/sdio.h:193:35: warning: 'struct mmc_host' declared inside parameter list
 void mmc_sdio_force_remove(struct mmc_host *host);
                                    ^
./include/linux/mmc/sdio.h:193:35: warning: its scope is only this definition or declaration, which is probably not what you want

Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
7 years agoMLK-14271 ARM64: configs: defconfig: remove unused configs to fix build warnings
Anson Huang [Mon, 27 Feb 2017 10:06:11 +0000 (18:06 +0800)]
MLK-14271 ARM64: configs: defconfig: remove unused configs to fix build warnings

Remove unused configs to fix below build warnings:

  CC      drivers/pci/host/pci-layerscape.o
drivers/pci/host/pci-layerscape.c:182:2: warning: initialization from incompatible pointer type
  .host_init = ls1021_pcie_host_init,
  ^
drivers/pci/host/pci-layerscape.c:182:2: warning: (near initialization for ‘ls1021_pcie_host_ops.host_init’)
drivers/pci/host/pci-layerscape.c:188:2: warning: initialization from incompatible pointer type
  .host_init = ls_pcie_host_init,
  ^
drivers/pci/host/pci-layerscape.c:188:2: warning: (near initialization for ‘ls_pcie_host_ops.host_init’)
  CC      drivers/pci/host/pcie-qcom.o
drivers/pci/host/pcie-qcom.c:482:2: warning: initialization from incompatible pointer type
  .host_init = qcom_pcie_host_init,
  ^
drivers/pci/host/pcie-qcom.c:482:2: warning: (near initialization for ‘qcom_pcie_dw_ops.host_init’)
  CC      drivers/pci/host/pcie-armada8k.o
drivers/pci/host/pcie-armada8k.c:164:2: warning: initialization from incompatible pointer type
  .host_init = armada8k_pcie_host_init,
  ^
drivers/pci/host/pcie-armada8k.c:164:2: warning: (near initialization for ‘armada8k_pcie_host_ops.host_init’)
  LD      drivers/pci/host/built-in.o
  LD      drivers/pci/built-in.o

Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
7 years agoMLK-14241-5: ARM: imx: pm-rpmsg: add heartbeat_off support in bootargs
Robin Gong [Thu, 23 Feb 2017 10:07:56 +0000 (18:07 +0800)]
MLK-14241-5: ARM: imx: pm-rpmsg: add heartbeat_off support in bootargs

If bootargs with 'heartbeat_off' setting, will remove heartbeat feature
in kernel and M4 will not reset A7 even A7 hang. It's useful for debug
in A7 if you want to connect debugger, otherwise M4 will reset A7 core
if A7 core halt more than 30s.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
7 years agoMLK-14241-4 ARM: imx: pm-rpmsg: fix 'rpmsg_send timeout' during bootup
Robin Gong [Wed, 22 Feb 2017 09:34:42 +0000 (17:34 +0800)]
MLK-14241-4 ARM: imx: pm-rpmsg: fix 'rpmsg_send timeout' during bootup

The rpmsg driver probe function such as pm_rpmsg_probe is called by rpmsg
rx callback, so we can't wait in pm_rpmsg_probe for any completion which
issued by callback itself, otherwise, timeout triggered definitily, because
your last callback no chance to reurn to handle the next callback unless
timeout happened. This patch move the rpmsg send code from pm_rpmsg_probe
to delay work.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
7 years agoMLK-14241-3 ARM: imx: pm-rpmsg: cancel heartbeat workqueue before suspend
Robin Gong [Wed, 22 Feb 2017 08:52:51 +0000 (16:52 +0800)]
MLK-14241-3 ARM: imx: pm-rpmsg: cancel heartbeat workqueue before suspend

cancel heartbeat workqueue to make sure no any heartbeat message will
be sent to M4 after M4 thought A7 core enter VLLS mode.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
7 years agoMLK-14241-2 ARM: imx: pm-rpmsg: add mutex protect for pm_send_message
Robin Gong [Mon, 20 Feb 2017 00:58:30 +0000 (08:58 +0800)]
MLK-14241-2 ARM: imx: pm-rpmsg: add mutex protect for pm_send_message

Heatbeat workqueue and suspend/resume may call pm_send_message at the same
time as pf1550-regulator-rpmsg driver, so add mutex to avoid the potential
pm_qpos_* reentry issue.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
7 years agoMLK-14241-1 regulator: pf1550-regulator-rpmsg: add mutex for pm_qos_add_request reentry
Robin Gong [Sun, 19 Feb 2017 07:50:56 +0000 (15:50 +0800)]
MLK-14241-1 regulator: pf1550-regulator-rpmsg: add mutex for pm_qos_add_request reentry

Multi drivers(mmc, cpufreq..) may access pf1550 regulator rpmsg driver at
the same time, so we have to add mutex for this multi-entry case. Otherwise
the below kernel warning maybe triggered:

------------[ cut here ]------------
WARNING: CPU: 0 PID: 19 at kernel/power/qos.c:453 pf1550_send_message+0x4c/0xf8()
pm_qos_add_request() called for already added request
Modules linked in:
CPU: 0 PID: 19 Comm: kworker/0:1 Not tainted 4.1.33-02293-g80b8c19 #636
Hardware name: Freescale i.MX7ULP (Device Tree)
Workqueue: events od_dbs_timer
[<80015d78>] (unwind_backtrace) from [<8001271c>] (show_stack+0x10/0x14)
[<8001271c>] (show_stack) from [<8082ba50>] (dump_stack+0x88/0x9c)
[<8082ba50>] (dump_stack) from [<800387c8>] (warn_slowpath_common+0x80/0xb0)
[<800387c8>] (warn_slowpath_common) from [<80038828>] (warn_slowpath_fmt+0x30/0x40)
[<80038828>] (warn_slowpath_fmt) from [<80341180>] (pf1550_send_message+0x4c/0xf8)
[<80341180>] (pf1550_send_message) from [<80341504>] (pf1550_get_voltage+0x48/0x5c)
[<80341504>] (pf1550_get_voltage) from [<803370a0>] (_regulator_get_voltage+0x68/0xb4)
[<803370a0>] (_regulator_get_voltage) from [<8033936c>] (_regulator_do_set_voltage+0x5c/0x3e4)
[<8033936c>] (_regulator_do_set_voltage) from [<803397a4>] (regulator_set_voltage+0xb0/0x14c)
[<803397a4>] (regulator_set_voltage) from [<8058dae8>] (imx7ulp_set_target+0x178/0x238)
[<8058dae8>] (imx7ulp_set_target) from [<80584d14>] (__cpufreq_driver_target+0x164/0x294)
[<80584d14>] (__cpufreq_driver_target) from [<8058bb08>] (dbs_check_cpu+0x1a0/0x1e0)
[<8058bb08>] (dbs_check_cpu) from [<805888e8>] (od_dbs_timer+0x80/0x138)
[<805888e8>] (od_dbs_timer) from [<8004bbbc>] (process_one_work+0x118/0x3e4)
[<8004bbbc>] (process_one_work) from [<8004bed4>] (worker_thread+0x4c/0x4f4)
[<8004bed4>] (worker_thread) from [<80050e4c>] (kthread+0xdc/0xf4)
[<80050e4c>] (kthread) from [<8000f528>] (ret_from_fork+0x14/0x2c)
---[ end trace f8281ecde7a0b4ce ]---
------------[ cut here ]------------

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
7 years agoMLK-14252-2 video: mipi_dsi_northwest: reset dsi domains when dsi disabled.
Fancy Fang [Thu, 23 Feb 2017 08:31:37 +0000 (16:31 +0800)]
MLK-14252-2 video: mipi_dsi_northwest: reset dsi domains when dsi disabled.

Put the three dsi domains into reset state when dsi is disabled
to avoid dsi being an unstable state before next time enabled.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
7 years agoMLK-14252-1 video: mipi_dsi_northwest: reset dsi domains when shutdown.
Fancy Fang [Thu, 23 Feb 2017 06:17:45 +0000 (14:17 +0800)]
MLK-14252-1 video: mipi_dsi_northwest: reset dsi domains when shutdown.

Put the three dsi domains into reset state before dsi is
shutdown to avoid dsi being a unstable state.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
7 years agoMLK-14237 video: mxsfb: fb1 maybe access when fb0 in blank state
Fancy Fang [Thu, 23 Feb 2017 01:36:26 +0000 (09:36 +0800)]
MLK-14237 video: mxsfb: fb1 maybe access when fb0 in blank state

The overlay framebuffer fb1 access maybe accessed when fb0
is in the blank state in which all the lcd clocks have been
disabled.

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
7 years agoMLK-13362-2 ARM: imx: fix audio bus mode hang for imx6dq lpddr2
Juan Gutierrez [Tue, 21 Feb 2017 01:24:25 +0000 (19:24 -0600)]
MLK-13362-2 ARM: imx: fix audio bus mode hang for imx6dq lpddr2

The double MU count operations should be only done when changing the
MMDC frequency from 400MHz to a low frequency(100MHz or 24MHz).
Otherwise, the MU count may overflow and lead to system hang/panic issue.

This is basically a porting of 4d09bf110b878a6f720ee9d19c8b64ceace95fbe
to imx6dq lppdr2.

Also a member "freq" has been added to the mmdc_settings_info structure
to store the current ddr frequency on iram settings to be able to execute
the double MU count, only on 400MHz mode and bypass the operation
otherwise within the update freq routine.

Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
7 years agoMLK-14240 video: mipi_dsi_northwest: fix access dsi register when clock disabled.
Fancy Fang [Wed, 22 Feb 2017 07:16:23 +0000 (15:16 +0800)]
MLK-14240 video: mipi_dsi_northwest: fix access dsi register when clock disabled.

In the mipi_dsi_shutdown() function, it accesses some dsi registers.
But in some cases, the esc_clk may be disabled at this moment. So
first enable this clock then do other shutdown works. Otherwise,
it may cause kernel panic dump as belows when rebooting system:

Unhandled fault: imprecise external abort (0x1c06) at 0x0033802c
pgd = b0a24000
[0033802c] *pgd=908f1831, *pte=6320775f, *ppte=63207c7f
Internal error: : 1c06 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1059 Comm: reboot Not tainted 4.1.33-02248-g22f8d64-dirty #513
Hardware name: Freescale i.MX7ULP (Device Tree)
task: b0f56600 ti: b08e8000 task.ti: b08e8000
PC is at mipi_dsi_pkt_write+0x38/0x1b0
LR is at mipi_dsi_wr_tx_header.constprop.2+0x6c/0x94
pc : [<802fda08>]    lr : [<802fd8b8>]    psr: 60070013
sp : b08e9c00  ip : 00000001  fp : 00000000
r10: 00000000  r9 : b024a810  r8 : b00c5044
r7 : 80cac4d8  r6 : 80bd2504  r5 : b024a810  r4 : b024a810
r3 : c0920000  r2 : 00000000  r1 : 60070013  r0 : 00000023
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c53c7d  Table: 90a2406a  DAC: 00000015
Process reboot (pid: 1059, stack limit = 0xb08e8210)
Stack: (0xb08e9c00 to 0xb08ea000)
9c00: 00000000 80066e30 00000000 b00c5000 20070113 b024a810 b024a810 b00c5010
9c20: 80cac4d8 b00c5044 80c54020 00000000 00000000 802fdba4 00000028 00000000
9c40: bf672edc 00000001 80bdff40 8007ad7c 8004993c 8082eb30 00000000 80be0140
9c60: 80bcddc0 80832cd8 80c517f1 80bcddc0 b08e9c70 80bdfb40 b0004c60 00000000
9c80: 00000009 00000000 00000009 00000000 80c576c0 00000000 80bd20a8 8003b9d8
9ca0: 00000000 b08e9d68 b08e9ca0 80c576c0 0000000a ffffb7c1 80bd2100 80bcbbe8
9cc0: 00000000 80bcd800 b0f56600 bf672800 b0f56648 b00fab08 b00fab10 8005fc30
9ce0: 00000017 00000000 00000000 8006ff84 c080200c 00000026 80bd2838 b08e9d28
9d00: 80361f04 80c586d6 80c586d6 8035b2a8 80361f04 b02b3610 80bd2504 001c0700
9d20: 003c0700 8036212c 80bff3b0 80c58198 80bdf8a0 20070093 00000199 8082e868
9d40: 00000000 80bdf8a0 80c58198 00000000 00000199 8082eadc 80c58198 8006e8b0
9d60: 00000400 80c5f48c 00000029 80c98ac8 80c58198 80c98098 60070013 00000000
9d80: 80bdf880 00000001 00000000 80c58198 00000000 00000029 00000001 80c58198
9da0: 00000029 00000001 00000000 8006e654 00000000 8006ee2c 00000000 00000000
9dc0: 00000000 00000000 80c98ae6 00000029 00000000 00000000 00000000 60070013
9de0: 00000000 00000000 00000000 8006f214 b024a810 b00c5010 80cac4d8 b00c5044
9e00: 80c54020 00000000 00000000 8006f238 80a580f0 b08e9e34 00000000 80824414
9e20: 80a58148 b08e9e34 b024a810 802fdc6c 80a580f0 80872338 00000000 802fdc80
9e40: 60070013 b024a810 b00c1a10 802fdd10 802fdcf0 b00c5010 b00c1a10 8038e8a8
9e60: b00c501c 8038b3cc 01234567 00000000 80bdee38 00000000 fee1dead 8000f644
9e80: b08e8000 800529cc 00000000 80052c24 bf699000 00000001 00000000 800b3498
9ea0: 00000000 bfca9160 bf699000 80bd04b8 bfca9160 00000000 80c50880 800b5460
9ec0: b08e9ed4 00000000 b08e9ec8 00000000 b074ad10 00000000 00359000 b074a7e8
9ee0: b08e9f20 b074ad10 b0a56e00 00351000 b074ad10 800d3cb8 b0a56e00 00000000
9f00: b074ad10 00351000 00000001 00000001 b08e9f24 b0001680 00000001 00000001
9f20: b08e9f34 bf672e00 b086a240 bf672e00 ae13f550 ae13f5a0 00080040 00000001
9f40: b086a240 ae1533f0 00000000 b07e1d90 ae13f550 40000010 b086a240 800ed1b0
9f60: 00000020 00000000 b0f569f8 00000000 b0f569f8 00000000 80c57c28 b0f56600
9f80: 00000000 8004f358 b086a240 b08e8000 8000f644 7eec5e14 00000003 00000000
9fa0: 00000058 8000f4c0 7eec5e14 00000003 fee1dead 28121969 01234567 00000000
9fc0: 7eec5e14 00000003 00000000 00000058 00000000 00000000 00000000 00000000
9fe0: 76f3ec10 7eec5c7c 00010fc8 76f3ec30 60070010 fee1dead 00000000 00000000
[<802fda08>] (mipi_dsi_pkt_write) from [<802fdba4>] (mipi_dsi_dcs_cmd.part.0+0x24/0x2c)
[<802fdba4>] (mipi_dsi_dcs_cmd.part.0) from [<802fdc80>] (mipi_display_enter_sleep+0x30/0xa0)
[<802fdc80>] (mipi_display_enter_sleep) from [<802fdd10>] (mipi_dsi_shutdown+0x20/0x9c)
[<802fdd10>] (mipi_dsi_shutdown) from [<8038e8a8>] (platform_drv_shutdown+0x18/0x28)
[<8038e8a8>] (platform_drv_shutdown) from [<8038b3cc>] (device_shutdown+0xdc/0x1e4)
[<8038b3cc>] (device_shutdown) from [<800529cc>] (kernel_restart+0xc/0x50)
[<800529cc>] (kernel_restart) from [<80052c24>] (SyS_reboot+0xc8/0x1b8)
[<80052c24>] (SyS_reboot) from [<8000f4c0>] (ret_fast_syscall+0x0/0x3c)
Code: e34860bd e58da000 e1a0200c ebffff90 (f57ff04e)
---[ end trace 9f61c48a242457f2 ]---

Signed-off-by: Fancy Fang <chen.fang@nxp.com>
7 years agoMGS-2664-7 [#imx-403] request "gpu2d" and "gpuvg" resets as shared
Prabhu Sundararaj [Fri, 17 Feb 2017 20:22:43 +0000 (14:22 -0600)]
MGS-2664-7 [#imx-403] request "gpu2d" and "gpuvg" resets as shared

These resets are shared at least on im6q, so request them as shared to
avoid devm_reset_control_get() failures since Linux 4.9 upstream has modified it
to assume exclusive usage.

Date: Feb 17, 2016
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Signed-off-by: Prabhu Sundararaj <prabhu.sundararaj@nxp.com>
7 years agoMLK-13281-2 ARM: imx: missing brackets on phy checking for 6sx
Juan Gutierrez [Thu, 16 Feb 2017 21:01:48 +0000 (15:01 -0600)]
MLK-13281-2 ARM: imx: missing brackets on phy checking for 6sx

Adding the corresponding brackets were missing when introducing
a new phy fixup function. This patch fix it.

Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
7 years agoMLK-14007: ASoC: fsl_rpmsg_i2s: remove mono for M4 don't support it
Shengjiu Wang [Mon, 20 Feb 2017 07:44:40 +0000 (15:44 +0800)]
MLK-14007: ASoC: fsl_rpmsg_i2s: remove mono for M4 don't support it

Currently the M4 audio driver don't support mono channel, so remove it.
After mono channel is supported in M4 os, this commit should be reverted.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMLK-13997: ARM: dts: disable rpmsg-audio in wm8960 dts for conflict
Shengjiu Wang [Mon, 20 Feb 2017 03:43:26 +0000 (11:43 +0800)]
MLK-13997: ARM: dts: disable rpmsg-audio in wm8960 dts for conflict

The rpmsg-audio and wm8960-audio use same device in two way, there is
conflict when enabled together.
imx7ulp-evk-wm8960.dts is for demo usage, there is a hardware issue
(TKT320235) that EDMA interrupt can't wake up the A7 core, so there
is glitch noise occassionally.

Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
7 years agoMGS-2664-5 [#imx-403] update GPU platform config with i.MX8QM
Xianzhong [Thu, 16 Feb 2017 08:16:07 +0000 (16:16 +0800)]
MGS-2664-5 [#imx-403] update GPU platform config with i.MX8QM

Update GPU platform config with i.MX8QM.

Date: Feb 16, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMGS-2664-4 [#imx-403] fix __dma_flush_range wht 4.9 kernel
Xianzhong [Thu, 16 Feb 2017 08:08:58 +0000 (16:08 +0800)]
MGS-2664-4 [#imx-403] fix __dma_flush_range wht 4.9 kernel

__dma_flush_range interface is removed in 4.9 kernel version,
should use the replaceable function with __dma_flush_area instead.

Date: Feb 16, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMGS-2664-2 [#imx-403] fix gpu build failure with get_user_pages
Xianzhong [Thu, 16 Feb 2017 08:03:48 +0000 (16:03 +0800)]
MGS-2664-2 [#imx-403] fix gpu build failure with get_user_pages

get_user_pages function has interface change in 4.9 kernel,
update the gpu driver to fix the build problem.

Date: Feb 16, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
7 years agoMLK-13994-1: ARM: imx7ulp: add acknowledgement for vlls message notification
Robin Gong [Fri, 17 Feb 2017 07:48:56 +0000 (15:48 +0800)]
MLK-13994-1: ARM: imx7ulp: add acknowledgement for vlls message notification

Now, M4 rpmsg add free buffer feature that free the reciever buffer and update
some rpmsg structure data in share memory(DDR) once M4 receive the message from
A7 side, that means M4 will access DDR after it receive the vlls message(A7 enter
VLLS mode quickly), thus M4 hang because DDR in slef-refresh...
This patch move the vlls message notification ahead to driver suspend and add
acknowledgement to make sure no any DDR access comes from M4 side after A7 enter
suspend.

Signed-off-by: Robin Gong <yibin.gong@nxp.com>
7 years agoMLK-13994-2 ARM: dts: imx7ulp: add heartbeat device node
Robin Gong [Fri, 17 Feb 2017 07:59:25 +0000 (15:59 +0800)]
MLK-13994-2 ARM: dts: imx7ulp: add heartbeat device node

add heartbeat device node to add suspend/resume in
arch/arm/mach-imx/pm-rpmsg.c

Signed-off-by: Robin Gong <yibin.gong@nxp.com>