Shengjiu Wang [Wed, 15 Feb 2017 03:24:05 +0000 (11:24 +0800)]
MLK-13904-4: ARM: dts: add rpmsg audio sound card device note
audio will use the fourth slot in rpmsg address space.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Acked-by: Robin Gong <yibin.gong@nxp.com>
Shengjiu Wang [Wed, 15 Feb 2017 03:23:45 +0000 (11:23 +0800)]
MLK-13904-3: ASoC: fsl: add audio machine driver base on rpmsg
Add machine driver, which is using the dummy codec.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Acked-by: Robin Gong <yibin.gong@nxp.com>
Shengjiu Wang [Wed, 15 Feb 2017 03:28:26 +0000 (11:28 +0800)]
MLK-13904-2: ASoC: fsl: add audio platform driver base on rpmsg
Add platform driver, each step like set hw param, trigger start
trigger stop, and so on, will call the rpmsg api.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Acked-by: Robin Gong <yibin.gong@nxp.com>
Shengjiu Wang [Wed, 15 Feb 2017 03:28:36 +0000 (11:28 +0800)]
MLK-13904-1: ASoC: fsl: add audio cpu dai driver base on rpmsg
Add the cpu dai driver, as the rpmsg_send api can't be used in
atomic context, so using the workqueue instead of calling
rpmsg_send() directly.
The detail communication stack is defined in header file.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Acked-by: Robin Gong <yibin.gong@nxp.com>
Peter Chen [Mon, 13 Feb 2017 07:14:17 +0000 (15:14 +0800)]
MLK-13912-2 gpio: gpio-vf610: mask interrupt on suspend for imx7ulp
At imx7ulp, any interrupts can wake system up from suspend at "standby"
mode, so we mask interrupt for gpio by default. The user can still
enable wakeup through /sys entry.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Mon, 13 Feb 2017 06:56:37 +0000 (14:56 +0800)]
MLK-13912-1 extcon: ext-usb-gpio: do not enable wakeup by default
The wakeup on USB port should be determined by user, but not enabled
by default.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Robby Cai [Mon, 13 Feb 2017 10:01:25 +0000 (18:01 +0800)]
MLK-13917 pxp: fix build error for pxp library in user space
Fix following build error by changing type to '__u64'.
include/uapi/linux/pxp_dma.h:230:2: error: unknown type name 'u64'
u64 lut_sels;
^~~
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Haibo Chen [Mon, 13 Feb 2017 09:35:30 +0000 (17:35 +0800)]
MLK-13765 ARM: dts: imx7ulp-evk-sd1: remove property out for sd1 slot
The two properties pm-ignore-notify and keep-power-in-suspend need
to remove for the sd slot on base board(sd1 slot).
If not, after system suspend, once remove the card from sd1 slot,
then system can't resume successfully, resume process hung due to
dead lock.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Robin Gong [Mon, 13 Feb 2017 06:58:55 +0000 (14:58 +0800)]
MLK-13913: ARM: imx: rpmsg: add reboot handler to support reboot
Add reboot handler to send reboot message by rpmsg to M4 side, then
M4 will reboot A7 core. Meanwhile, remove shutdown interface at rpmsg
level, since M4 prefer to clear reboot and shutdown interface instead
of shutdown interface at rpmsg level.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robin Gong [Fri, 10 Feb 2017 09:23:38 +0000 (17:23 +0800)]
MLK-13905: ARM: imx: pm-rpmsg: fix kernel warning while resume back
On i.mx7ulp, kernel need notify m4 side power mode message before enter VLLS
and resume back, but pm_qos_remove_request will enable local irq that cause
the below kernel warning since kernel assum local irq disalbed in syscore_resume.
In this case, just ignore touch pm_qos_* since cpu0 never enter idle at that
suspend time.
WARNING: CPU: 0 PID: 629 at drivers/base/syscore.c:99 syscore_resume+0xcc/0xec()
Interrupts enabled before system core resume.
Modules linked in:
CPU: 0 PID: 629 Comm: sh Not tainted
4.1.33-02249-g69520ab-dirty #259
Hardware name: Freescale i.MX7ULP (Device Tree)
[<
80015ddc>] (unwind_backtrace) from [<
8001274c>] (show_stack+0x10/0x14)
[<
8001274c>] (show_stack) from [<
807c97f0>] (dump_stack+0x88/0x9c)
[<
807c97f0>] (dump_stack) from [<
800386e4>] (warn_slowpath_common+0x84/0xb4)
[<
800386e4>] (warn_slowpath_common) from [<
80038744>] (warn_slowpath_fmt+0x30/0x40)
[<
80038744>] (warn_slowpath_fmt) from [<
8038d3d0>] (syscore_resume+0xcc/0xec)
[<
8038d3d0>] (syscore_resume) from [<
8006c1c4>] (suspend_devices_and_enter+0x3c4/0x500)
[<
8006c1c4>] (suspend_devices_and_enter) from [<
8006c580>] (pm_suspend+0x280/0x2fc
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Andy Duan [Fri, 10 Feb 2017 08:25:14 +0000 (16:25 +0800)]
MLK-13910: ARM: imx7d: clk: correct enet clock CCGR register offset
Correct enet clock CCGR register offset.
CCGR6: IMX7D_ENET_AXI_ROOT_CLK (enet1 enet2 bus clocks)
CCGR112: IMX7D_ENET1_TIME_ROOT_CLK, IMX7D_ENET1_IPG_ROOT_CLK
CCGR113: IMX7D_ENET2_TIME_ROOT_CLK, IMX7D_ENET2_IPG_ROOT_CLK
IMX7D_ENET_PHY_REF_ROOT_DIV supply clock for PHY, no gate after the clock, its parent
clcok root has gate.
IMX7D_ENET1_REF_ROOT_DIV/IMX7D_ENET2_REF_ROOT_DIV supply clocks for enet IPG_CLK_RMII,
no gate after the clock, its parent clock root has gate.
IMX7D_PLL_ENET_MAIN_125M_CLK (anatop pll) supply clock for enet RGMII tx_clk.
Update copyright information.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Cristina Ciocan [Mon, 30 Jan 2017 09:31:21 +0000 (11:31 +0200)]
MLK-13840 fbdev: mxsfb: Fix explicit null dereference
In mxsfb driver, function overlayfb_check_var, a null pointer dereference
occurs if fourcc pixel format is one not considered explicitly.
This case should not occur, since the pixel format is verified against
supported values before getting to this null dereference code, but this may
change if overlay_fmt_support() or overlayfb_check_var() changes and they
are not kept in sync.
Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
Cristina Ciocan [Fri, 3 Feb 2017 17:32:44 +0000 (19:32 +0200)]
MLK-13839 fbdev: mxsfb: Fix null pointer dereference
In function mxsfb_check_var an explicit null pointer dereference occurs
when input frame is 32 bpp (var->bits_per_pixel) and the output frame is
different from 8/16/18/24 (host->ld_intf_width).
Even though a 32bpp output is possible under certain conditions, this is
currently not implemented, so any other output bpp value is not valid.
Signed-off-by: Cristina Ciocan <cristina-mihaela.ciocan@nxp.com>
Han Xu [Fri, 10 Feb 2017 17:03:30 +0000 (11:03 -0600)]
MLK-13906: ARM: dts: new dtb for mfgtool to burn both BSP and M4 to eMMC
Add one more dtb file for mfgtool purpose only, it enabled both eMMC and
QSPI to burn both BSP and M4 images in one process.
Kernel still uses the original eMMC dtb so the QSPI, which belongs to
M4 domain won't be exposed in A7 domain.
Signed-off-by: Han Xu <han.xu@nxp.com>
Robby Cai [Wed, 25 Jan 2017 09:14:34 +0000 (17:14 +0800)]
MLK-13862-2 epdc/pxp: imx6ull/imx6sll: enhance the LUT cleanup flow to avoid stalling display
- change setting for wfe_b to support new flow
(note there's no wfe_a on i.mx6ull/i.mx6sll, while on i.mx7d wfe_a is used
for this purpose)
- the underlying design policy change as follows (similar to i.mx7d).
in previous flow, when all LUTs are used, the LUT cleanup operation
need to wait for all the LUT to finish, it will not happen util last LUT
is done. while in new flow, the cleanup operation does not need to wait
for all LUTs to finish, instead it can start when there's LUT's done.
The saved time is multiple LUT operation time.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Robby Cai [Thu, 1 Dec 2016 01:47:31 +0000 (09:47 +0800)]
MLK-13862-1 epdc/pxp: imx7d: enhance the LUT cleanup flow to avoid stalling display
- change from wfe_b to wfe_a, and modifiy register settings to support new flow
- the underlying design policy change as follows.
in previous flow, when all LUTs are used, the LUT cleanup operation
need to wait for all the LUT to finish, it will not happen util last LUT
is done. while in new flow, the cleanup operation does not need to wait
for all LUTs to finish, instead it can start when there's LUT's done.
The saved time is multiple LUT operation time.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Andy Duan [Tue, 7 Feb 2017 06:10:54 +0000 (14:10 +0800)]
MLK-13893 net: fec: do defer probe when mii bus not registered
When two MACs share one mii bus, MAC driver should do defer probe
when the mii bus not registered.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Xianzhong [Fri, 10 Feb 2017 06:11:09 +0000 (14:11 +0800)]
MGS-2092 [#imx-101] apply errata workaround to fix mmu exception
fixed gc7000xsvx mmu exception with hardware problems:
- Texture border clamps to wrong max value (HBN1839)
- MMU exception created when Image Load reads pixel data at end of
buffer(HBN1847)
only apply errata workaround for the texture with GL_CLAMP_TO_BORDER.
Date: Jan 16, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Xianzhong [Mon, 6 Feb 2017 06:42:35 +0000 (14:42 +0800)]
MGS-2133-4 [#imx-199] fix gpu hang with power management
power management is only disabled for GPU0, but NOT disabled for GPU1,
need apply this patch to configure power management for all GPU cores.
also configure fast clear and gpu profiler for all GPU cores.
Date: Feb 06, 2017
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Juan Gutierrez [Wed, 8 Feb 2017 01:05:37 +0000 (19:05 -0600)]
MXSCM-240-4 arm: imx: add missing brackets to mmdc_clk check
Even though is not affecting the behaviour, the brackets are missing
to limit this check for imx6q as was intended in first place
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Fancy Fang [Wed, 8 Feb 2017 09:23:43 +0000 (17:23 +0800)]
MLK-13895 ARM: dts: imx7ulp: correct the device node name of lpi2c5
Correct this spelling mistake error for lpi2c5 node.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Bai Ping [Wed, 8 Feb 2017 09:22:58 +0000 (17:22 +0800)]
MLK-13894 ARM: imx: Add low power run voltage change support on i.mx6ull
Drop the VDD_SOC and VDD_ARM voltage to 0.9V when system runs at low
power run mode.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Robin Gong [Tue, 7 Feb 2017 05:43:41 +0000 (13:43 +0800)]
MLK-13887: rpmsg: virtio_rpmsg_bus: fix high memory case
rpmsg core didn't take care of high memory case which may be triggered
in 1:3 kernel/userspace memory split. Get correct page by vmalloc_to_page
instead of virt_to_page.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robin Gong [Mon, 6 Feb 2017 05:33:42 +0000 (13:33 +0800)]
MLK-13733-5 ARM: imx: imx_rpmsg: add shutdown for rpmsg
Add shutdown message to notify m4 side so that rpmsg can work
after A7 boot again.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robin Gong [Fri, 20 Jan 2017 04:53:52 +0000 (12:53 +0800)]
MLK-13733-4 ARM: imx: pm-rpmsg: allign header format as M4 defined
Alllign header format as M4 defined, no need revert order. Correct
the data to u8 instead of u32 as M4 defined. Call the header define
in imx_rpmsg.h derectly.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robin Gong [Wed, 18 Jan 2017 06:58:18 +0000 (14:58 +0800)]
MLK-13733-3 regulator: pf1550-regulator-rpmsg: update pf1550-rpmsg interface
update driver since m4 side refine the header structure.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Anson Huang [Mon, 9 Jan 2017 09:34:29 +0000 (17:34 +0800)]
MLK-13733-2 ARM: imx: add pm rpmsg for i.mx7ulp
Add PM RPMSG for i.MX7ULP power management, currently
it handles heart beat function which will notify M4
that linux is alive every 30 seconds, and when system
enters/exit VLLS mode, it will notify M4 for proper
power management.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Mon, 9 Jan 2017 09:49:25 +0000 (17:49 +0800)]
MLK-13733-1 ARM: dts: imx7ulp: add rpmsg instance for power management
On i.MX7ULP, add a new RPMSG instance for power management.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Peter Chen [Fri, 3 Feb 2017 03:16:21 +0000 (11:16 +0800)]
MLK-13851-1 usb: chipidea: otg: delete the workaround code
After commit
49670184289e ("usb: chipidea: otg: change workqueue
ci_otg as freezable"), we have fixed the bug that ID removed
wakeup (ID: 0->1) will lock up system resume, we delete the
workaround code in this commit.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Juan Gutierrez [Mon, 16 Jan 2017 19:52:40 +0000 (13:52 -0600)]
MXSCM-243-2 arm: imx6q: mmdc handshake for lpddr2 2ch-mode on low-power
For i.mx6q systems the mmdc handshake on channel 0 is kept enabled (while
channel 1 is bypassed). This is ok for lpddr2 systems operating on 1ch-mode,
but not true for 2ch-mode. On this case the handshake needs to be set for
both channels, otherwise a kernel panic or Oops error might be observed
after resuming from suspend.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Juan Gutierrez [Tue, 31 Jan 2017 16:32:19 +0000 (10:32 -0600)]
MXSCM-243-1 arm: imx: get the mmdc 2ch-mode api for lpddr2
To configure the suspend settings for lpddr2 systems is necessary
to know if mmdc is operating on 1ch-mode or 2ch-mode.
Here, the imx_get_lpddr2_2ch_mode api is introduced to get this info
when needed and decide accordingly.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Juan Gutierrez [Thu, 26 Jan 2017 20:44:12 +0000 (14:44 -0600)]
MXSCM-240-3 arm: imx: set CLK_GET_RATE_NOCACHE flag for clock dividers
Using the CLK_GET_RATE_NOCACHE flag on the clock dividers will allow
the recalculation of the rate instead of just caching its value.
For instance, this allows the mmdc clock to be properly updated,
after being modified by the busfreq driver, within an iram routine
by calling the clk_get_rate api. Using this flag allows to call only
to the .recalc_rate functions instead of additionally call the
.set_rate ones.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
Juan Gutierrez [Tue, 24 Jan 2017 16:30:34 +0000 (10:30 -0600)]
MXSCM-240-2 arm: dts: imx: make mmdc clk accessible from the busfreq driver
The mmdc clk rate needs to be explicitly updated when moving to
high audio rate by the busfreq module for the i.mx6q lpddr2 systems.
In order to make the mmdc_ch0_axi clk visible by this driver, it
needs to be included on the clocks/clock-names list.
For the imx6dqscm-1gb-evb systems the clocks list for the busfreq
module is originally inherited from imx6q.dtsi. To include the mmdc
clk, the full clocks list plus the mmdc clk needs to be overwriten
on the individual dts files.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Juan Gutierrez [Tue, 24 Jan 2017 15:59:22 +0000 (09:59 -0600)]
MXSCM-240-1 arm: imx: set mmdc clk rate on high audio freq on i.mx6q lpddr2
As periph_pre_clk's parent is not changed when going to high audio frequency,
the clk framework will not update its children's frequency. This cause
the the mmdc_ch0_axi clk_rate does not reflect the right frequency when
reading it from userspace like:
cat /sys/kernel/debug/clk/mmdc_ch0_axi/clk_rate
Since the mmdc_ch0_axi_podf is changed in the asm busfreq routine, then the
mmdc rate needs to be updated to make sure clk tree is right, although it
will not do any change to hardware.
To do this the clk_get_rate api is used to update the mmdc_clk which
needs to be dereferenced from the device tree. Since for other cases like
ddr3, the update of the rate of the mmdc clk is not needed, the absense of
this parameter (on the device tree) don't make throw an error, instead, NULL
checks are used to check if the mmdc clk needs to be updated or not.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Juan Gutierrez [Tue, 17 Jan 2017 15:49:38 +0000 (09:49 -0600)]
MXSCM-241-2 arm: imx: coherency issues after updating lpddr2 busfreq
After a frequency transition, like 400MHz to 24Mhz, on i.mx6DQ SCM
systems (which use lpddr2), the curr_ddr_rate variable retains its
previous cached value causing the next frequency update transition
to fail by following a wrong flow which results in a complete hang
of the system.
Issuing an L1 cache flush during the freq update routine (as in in
MXSCM-241-1) and moving up the curr_ddr_rate variable before calling
tge freq update alleviates the problem.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Juan Gutierrez [Wed, 18 Jan 2017 18:01:08 +0000 (12:01 -0600)]
MXSCM-242-1 arm: imx6q: flush and disable L1 before L2 on lpddr2 for i.mx6q
Flush and disable L1 before disabling L2, to let data to be coherent.
Flushing L1 pushes everyhting to L2. L2 is sync later, but it can still
have dirty lines.
Signed-off-by: Juan Gutierrez <juan.gutierrez@nxp.com>
Peter Chen [Sun, 22 Jan 2017 02:50:09 +0000 (10:50 +0800)]
MLK-13760 ARM: dts: imx7ulp-evk: update tx-d-cal according to certification results
Changing tx-d-cal according to USB certification test results.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Haibo Chen [Fri, 20 Jan 2017 02:36:16 +0000 (10:36 +0800)]
MLK-12672 ARM: dts: imx6ul-9x9-evk: correct the xnur pad setting
Setting the xnur-gpio to GPIO_ACTIVE_LOW, otherwise touch calibration
may has some issue.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Octavian Purdila [Wed, 11 Jan 2017 10:43:48 +0000 (12:43 +0200)]
MLK-13779 crypto: caam - initialize kslock spinlock
Fixes the following lockdep message:
INFO: trying to register non-static key.
the code is fine but needs lockdep annotation.
turning off the locking correctness validator.
CPU: 0 PID: 1 Comm: swapper/0 Not tainted
4.1.30-02225-g55e4b9e #8
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
[<
800162b0>] (unwind_backtrace) from [<
80012ba0>] (show_stack+0x10/0x14)
[<
80012ba0>] (show_stack) from [<
808d09d0>] (dump_stack+0xa8/0xd4)
[<
808d09d0>] (dump_stack) from [<
8007aed0>] (__lock_acquire+0x1eb0/0x2224)
[<
8007aed0>] (__lock_acquire) from [<
8007b840>] (lock_acquire+0xa4/0xd0)
[<
8007b840>] (lock_acquire) from [<
808dc28c>] (_raw_spin_lock+0x3c/0x4c)
[<
808dc28c>] (_raw_spin_lock) from [<
80666724>] (sm_keystore_slot_alloc+0x24/0x74)
[<
80666724>] (sm_keystore_slot_alloc) from [<
806677c8>] (caam_sm_example_init+0x1ec/0xb68)
[<
806677c8>] (caam_sm_example_init) from [<
80c6ff48>] (caam_sm_test_init+0x50/0x58)
[<
80c6ff48>] (caam_sm_test_init) from [<
80009770>] (do_one_initcall+0x8c/0x1d8)
[<
80009770>] (do_one_initcall) from [<
80c26dc8>] (kernel_init_freeable+0x144/0x1e4)
[<
80c26dc8>] (kernel_init_freeable) from [<
808cbff0>] (kernel_init+0x8/0xe8)
[<
808cbff0>] (kernel_init) from [<
8000f618>] (ret_from_fork+0x14/0x3c)
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Reviewed-by: Dan Douglass <dan.douglass@nxp.com>
Octavian Purdila [Mon, 14 Nov 2016 16:20:05 +0000 (18:20 +0200)]
MLK-13457 ARM: imx: busfreq: fix deadlock detected by lockdep
The deadlock scenario is the following:
1. We schedule low_bus_freq_handle() but it does not run yet.
2. We run set_high_bus_freq() or some other function, that does the
following two things: (a) takes the busfreq mutex and (b)
synchronously cancel the low_bus_freq_handle work
If between (a) and (b) the low_bus_freq_handle work starts running, it
will take the bus freq mutex and block which will cause (b) to
deadlock since the work will never finish now.
To fix this issue avoid synchronously canceling the work and instead
use a new global variable (protected by the busfreq mutex) to mark the
cancellation and abort the work when it is scheduled. In order to
avoid unnecessary schedules we also try to cancel the work with
cancel_delayed_work().
======================================================
[ INFO: possible circular locking dependency detected ]
4.9.0-rc4-00776-gd4f2779 #348 Tainted: G W
-------------------------------------------------------
kworker/3:1/68 is trying to acquire lock:
(
bus_freq_mutex
){+.+...}
, at:
[<
c0128a20>] reduce_bus_freq_handler+0x1c/0x30
but task is already holding lock:
(
(&(&low_bus_freq_handler)->work)
){+.+...}
, at:
[<
c014f4ec>] process_one_work+0x128/0x418
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1
(
(&(&low_bus_freq_handler)->work)
){+.+...}
:
[<
c014dafc>] flush_work+0x44/0x234
[<
c0150348>] __cancel_work_timer+0x98/0x1c8
[<
c01504a4>] cancel_delayed_work_sync+0x14/0x18
[<
c0129d9c>] request_bus_freq+0x9c/0x150
[<
c06b2b28>] imx6q_cpufreq_init+0x8c/0xb8
[<
c06afc9c>] cpufreq_online+0xc0/0x67c
[<
c06b0308>] cpufreq_add_dev+0xb0/0xd4
[<
c05251b0>] subsys_interface_register+0x9c/0xd8
[<
c06af124>] cpufreq_register_driver+0x130/0x1dc
[<
c06b3224>] imx6q_cpufreq_probe+0x5c8/0x8a0
[<
c0528768>] platform_drv_probe+0x54/0xb8
[<
c0526bf8>] driver_probe_device+0x20c/0x2c4
[<
c0526e4c>] __device_attach_driver+0x9c/0xb4
[<
c0524e3c>] bus_for_each_drv+0x6c/0xa0
[<
c05268c8>] __device_attach+0xb8/0x11c
[<
c0526fc4>] device_initial_probe+0x14/0x18
[<
c0525ee8>] bus_probe_device+0x90/0x98
[<
c052401c>] device_add+0x3c8/0x578
[<
c052846c>] platform_device_add+0xa8/0x208
[<
c0529030>] platform_device_register+0x28/0x2c
[<
c0d0f63c>] imx6q_init_late+0x180/0x1c8
[<
c0d03880>] init_machine_late+0x24/0x98
[<
c01019ec>] do_one_initcall+0x44/0x180
[<
c0d00e28>] kernel_init_freeable+0x12c/0x1f4
[<
c0978ba8>] kernel_init+0x10/0x120
[<
c0107ff0>] ret_from_fork+0x14/0x24
-> #0
(
bus_freq_mutex
){+.+...}
:
[<
c01811e4>] lock_acquire+0x78/0x98
[<
c097cedc>] mutex_lock_nested+0x54/0x3e4
[<
c0128a20>] reduce_bus_freq_handler+0x1c/0x30
[<
c014f558>] process_one_work+0x194/0x418
[<
c014f810>] worker_thread+0x34/0x4fc
[<
c0155e44>] kthread+0xdc/0xf8
[<
c0107ff0>] ret_from_fork+0x14/0x24
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0 CPU1
---- ----
lock( (&(&low_bus_freq_handler)->work) );
lock( bus_freq_mutex );
lock( (&(&low_bus_freq_handler)->work) );
lock( bus_freq_mutex );
*** DEADLOCK ***
2 locks held by kworker/3:1/68:
#0:
(
"events"
){.+.+.+}
, at:
[<
c014f4ec>] process_one_work+0x128/0x418
#1:
(
(&(&low_bus_freq_handler)->work)
){+.+...}
, at:
[<
c014f4ec>] process_one_work+0x128/0x418
stack backtrace:
CPU: 3 PID: 68 Comm: kworker/3:1 Tainted: G W
4.9.0-rc4-00776-gd4f2779 #348
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
Workqueue: events reduce_bus_freq_handler
Backtrace:
[<
c010c538>] (dump_backtrace) from [<
c010c730>] (show_stack+0x18/0x1c)
[<
c010c718>] (show_stack) from [<
c0403a58>] (dump_stack+0xb4/0xe8)
[<
c04039a4>] (dump_stack) from [<
c017d4f0>] (print_circular_bug+0x1d4/0x318)
[<
c017d31c>] (print_circular_bug) from [<
c0180bb4>] (__lock_acquire+0x1864/0x1ad4)
[<
c017f350>] (__lock_acquire) from [<
c01811e4>] (lock_acquire+0x78/0x98)
[<
c018116c>] (lock_acquire) from [<
c097cedc>] (mutex_lock_nested+0x54/0x3e4)
[<
c097ce88>] (mutex_lock_nested) from [<
c0128a20>] (reduce_bus_freq_handler+0x1c/0x30)
[<
c0128a04>] (reduce_bus_freq_handler) from [<
c014f558>] (process_one_work+0x194/0x418)
[<
c014f3c4>] (process_one_work) from [<
c014f810>] (worker_thread+0x34/0x4fc)
[<
c014f7dc>] (worker_thread) from [<
c0155e44>] (kthread+0xdc/0xf8)
[<
c0155d68>] (kthread) from [<
c0107ff0>] (ret_from_fork+0x14/0x24)
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Reviewed-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
Peng Fan [Thu, 19 Jan 2017 07:05:29 +0000 (15:05 +0800)]
MLK-13783 char: otp: no need to check bank0/bank1 when prog
Bank0/Bank1 are not in ECC mode, so no need to check.
Each bank contains 8 words, so we check (phy_index > 15).
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Bai Ping [Thu, 19 Jan 2017 06:07:38 +0000 (14:07 +0800)]
MLK-13774 ARM: imx: fix lpddr2 busfreq support on i.mx6ull
Fix busfreq support on i.MX6ULL LPDDR2 board.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Haibo Chen [Thu, 19 Jan 2017 06:14:36 +0000 (14:14 +0800)]
MLK-13766 ARM: dts: imx6ull-9x9-evk: correct the xnur pad setting
Setting the xnur-gpio to GPIO_ACTIVE_LOW, otherwise touch calibration
may has some issue.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Andy Duan [Wed, 18 Jan 2017 05:20:32 +0000 (13:20 +0800)]
MLK-13773 gpio: pca953x: correct device_reset() return value check on kernel 4.1
Correct device_reset() return value checking.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Peng Fan [Wed, 18 Jan 2017 02:56:10 +0000 (10:56 +0800)]
MLK-13538-2 char: otp: support i.MX7ULP1
Add ULP1 OTP support.
No timing required for ULP1 OTP.
The CTRL_ADDR is 8 bits width.
When finished access to OTP, gate the power to OTP memory to save power.
Fix store, when invalid args, not return 0, but return the error values.
To ULP, fuse only support being programmed once, so add a check before
program.
Test log:
root@imx6qdlsolo:/sys/fsl_otp# cat HW_OCOTP_GP84
0x0
root@imx6qdlsolo:/sys/fsl_otp# echo 1 > HW_OCOTP_GP84
root@imx6qdlsolo:/sys/fsl_otp# cat HW_OCOTP_GP84
0x1
root@imx6qdlsolo:/sys/fsl_otp# echo 1 > HW_OCOTP_GP84
-sh: echo: write error: Operation not permitted
root@imx6qdlsolo:/sys/fsl_otp# echo fg > HW_OCOTP_GP84
-sh: echo: write error: Invalid argument
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Peng Fan [Wed, 18 Jan 2017 02:54:58 +0000 (10:54 +0800)]
MLK-13538-1 arm: dts: imx7ulp1: add ocotp node
Add ocotp node.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Richard Liu [Fri, 13 Jan 2017 09:12:19 +0000 (17:12 +0800)]
MA-9165 fix kernel panic issue reported by some android stress test
The issue can be reproduced when run some android stress test, such as
monkey test, usb camera long time recording, AndroidSurface.apk.
When the issue happen we always found some zero memory is tampered
to 1, and then some kernel panic happen.
Two changes to fix the issue:
1. Requires mutex-lock in when reference gctSIGNAL in gckOS_MapSignal,
to fix concurrent issue. If the signal is already freed at this point,
atomic_inc_return may change zero memory to 1 and cause memory corruption.
if (atomic_inc_return(&signal->ref) <= 1)
{
/* The previous value is 0, it has been deleted. */
gcmkONERROR(gcvSTATUS_INVALID_ARGUMENT);
}
2. Refine gckOS_UserSignal in kernel code, do not need reference and dereference
around gckOS_Signal.
Change-Id: Ib5970e86dbfbfd7d73f27a07d5e77a38c78a5fb6
Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
Robin Gong [Fri, 6 Jan 2017 03:05:48 +0000 (11:05 +0800)]
MLK-13748: ARM: dts: imx6ull-9x9-evk-ldo: add ldo enable dts
Add ldo enable dts
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Yuchou Gan [Mon, 16 Jan 2017 16:04:31 +0000 (00:04 +0800)]
MLK-13751 [7ULP1]A7 mem mode suspend can't be resumed by M4 through M4 image after suspend/resume 1 time and effect by GPU.100%
This reverts commit
a6553be76f8368442bd976f39a6bc28352c57f99 and run power on before power off in gpu_suspend.
This issue happened in x11 because x11 gpu has more complicated power management than fb. Revert the commit which imported this issue and fix the former MGS-2513 in another way.
Date: Jan 16, 2017
Signed-off-by: yuchou.gan <yuchou.gan@nxp.com>
Han Xu [Fri, 13 Jan 2017 20:14:04 +0000 (14:14 -0600)]
MLK-13755: ARM: dts: fix the QSPI iomux issue
The iomux PAD setting for QSPI on i.MX7ULP should belong to
iomuxc0(refers to iomuxc in dtsi file) rather than iomuxc1.
Signed-off-by: Han Xu <han.xu@nxp.com>
Shengjiu Wang [Wed, 11 Jan 2017 07:48:46 +0000 (15:48 +0800)]
MLK-13724: ARM: dts: fix audio error log in kernel boot up
Below error happen when boot up imx6ul/imx6ull 9x9 board. which is caused by
that dts is not updated in commit
0a4c5844f91de8 ("MLK-12059 ARM: dts:
imx6ul-14x14-evk: add mic detect gpio to support headset Jack")
[ 1.871240] imx-wm8960 sound: ASoC: Failed to add route HP_L -> direct -> Headset Jack
[ 1.884002] imx-wm8960 sound: ASoC: Failed to add route HP_R -> direct -> Headset Jack
[ 1.896532] imx-wm8960 sound: ASoC: Failed to add route Hp MIC -> direct -> LINPUT2
[ 1.909936] imx-wm8960 sound: ASoC: Failed to add route Hp MIC -> direct -> LINPUT3
[ 1.923511] imx-wm8960 sound: ASoC: Failed to add route MICB -> direct -> Hp MIC
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Andy Duan [Wed, 11 Jan 2017 09:27:33 +0000 (17:27 +0800)]
MLK-13743-02 ARM: dtsi: imx7ulp-evk: add modem gpio reset
Add modem gpio reset for lpuart6 port.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Andy Duan [Mon, 9 Jan 2017 09:12:56 +0000 (17:12 +0800)]
MLK-13735 ARM: dtsi: imx7ulp: set the lpuart module clock to 48Mhz
The untrimmed chip firc clock is 50Mhz after manually tuning.
Now the trimmed chip firc clock is stable to 48Mhz, so change
the lpuart module clock rate to 48Mhz.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Robin Gong [Thu, 12 Jan 2017 05:55:21 +0000 (13:55 +0800)]
MLK-13745: ARM: dts: imx6sll: sync with i.mx6ul
Because i.mx6sll support mega_fast power off, sdma driver can sync
with i.mx6ul which support this feature. Modify compatible name
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Guoniu.Zhou [Wed, 11 Jan 2017 06:42:02 +0000 (14:42 +0800)]
MLK-13741: video: mxsfb: unchecked return value
In overlayfb_enable(), unchecked the return value of lock_fb_info function, if
it return zero, it maybe cause mistakes.
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Robby Cai [Tue, 10 Jan 2017 09:02:17 +0000 (17:02 +0800)]
MLK-13737 pxp: refine dithering setting
- use different LUT setting and coefficient setting for different quantization
bits.
- clear CTRL0_MUX14_SEL to 0 only when use dithering algorithm, set to 1 for
not using dithering module.
- bypass PXP_OUT_AS for dithering and add DITHER_STORE_SIZE setting
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Guoniu.Zhou [Wed, 11 Jan 2017 02:07:28 +0000 (10:07 +0800)]
MLK-13739 video: mxsfb: use a pointer after free.
In mxsfb_overlay_exit, a pointer to freed memory is dereferenced, used as a
function argument, exchange the reference and freed function position.
Signed-off-by: Guoniu.Zhou <guoniu.zhou@nxp.com>
Yuchou Gan [Tue, 10 Jan 2017 16:53:16 +0000 (00:53 +0800)]
MGS-2540 [#ccc] Need set baseAddress with RAM start address on IMX6Q
set the baseAddress with 0x10000000 on IMX6Q
Signed-off-by: Yuchou Gan <yuchou.gan@nxp.com>
Date: Jan 10, 2017
Richard Zhu [Tue, 27 Dec 2016 02:15:50 +0000 (10:15 +0800)]
MLK-13679-2 PCI: imx: workaround of ERR010728 for pcie on imx7d
Description: Initial VCO oscillation may fail under
corner conditions such as cold temperature. It causes
PCIe PLL fail to lock in initialization phase.
Project Impact: iMX7 PCIe PLL fails to lock and iMX7D
PCIe doesn't work.
Workarounds: To toggle internal PLL_PD signal to make
VCO oscillate after G_RST signal is de-asserted by
following the sequences:
- De-asserted G_RST signal
- Toggle internal PLL_PD signal:
- Write "0x04" to the address "0x306D_0054"
- Write "0xA4" to the address "0x306D_0054"
- Write "0x04" to the address "0x306D_0054"
- De-asserted CMN_RST signal
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Richard Zhu [Tue, 27 Dec 2016 08:58:03 +0000 (16:58 +0800)]
MLK-13679-1 ARM: imx: add the imx7d pcie phy node
add imx7d pcie phy node into 7d dts
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Richard Zhu [Fri, 6 Jan 2017 05:54:21 +0000 (13:54 +0800)]
MLK-13792-2 ARM: imx: remove the hardcoded vring buf
input the vring buffer by device tree node, and
remove the hard-coded vring buffer in the driver
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Richard Zhu [Fri, 6 Jan 2017 05:53:44 +0000 (13:53 +0800)]
MLK-13729-1 ARM: imx: add the reg into the rpmsg node
In order to remove the hard-coded vring buffer in
the driver, input the vring buffer by device tree
node.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Peter Chen [Fri, 30 Dec 2016 02:23:42 +0000 (10:23 +0800)]
MLK-13638-6 usb: chipidea: add recovery from vbus is off during system suspend
When the vbus is off during the suspend controller is powered off, if we
do not want to see disconnection from USB core, we need to make sure the
device pulls DP up before USB core resume runs. However, several devices
are slow to pull DP up when see vbus (maybe it needs vbus to power up
system), so we need to wait connection at platform code.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Thu, 22 Dec 2016 03:19:03 +0000 (11:19 +0800)]
MLK-13638-5 usb: chipidea: usbmisc_imx: add power_lost_check API for imx7ulp
For imx7ulp, the power of USB controller may be lost, add power_lost_check
API for USB recovery.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Thu, 22 Dec 2016 03:16:09 +0000 (11:16 +0800)]
MLK-13638-4 regulator: fixed: add system pm routines for pinctrl
At some systems, the pinctrl setting will be lost or needs to
set as "sleep" state to save power consumption. So, we need to
configure pinctrl as "sleep" state when system enters suspend,
and as "default" state after system resumes. In this way, the
pinctrl value can be recovered as "default" state after resuming.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Thu, 22 Dec 2016 03:11:31 +0000 (11:11 +0800)]
MLK-13638-3 extcon: usb-gpio: add pinctrl operation during system PM
At some systems, the pinctrl setting will be lost or needs to
set as "sleep" state to save power consumption. So, we need to
configure pinctrl as "sleep" state when system enters suspend,
and as "default" state after system resumes. In this way, the
pinctrl value can be recovered as "default" state after resuming.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Fri, 6 Jan 2017 02:58:33 +0000 (10:58 +0800)]
MLK-13638-2 ARM: dts: imx7ulp-evk: fix GPIO direction for USB vbus and id
The vbus should be output, and the id should be input.
Without this change, the GPIO configuration (through pinctrl
register) is incorrect from system suspend.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Peter Chen [Thu, 22 Dec 2016 02:08:56 +0000 (10:08 +0800)]
MLK-13638-1 ARM: dts: imx7ulp-evk: add VLLS mode recovery support
At imx7ulp VLLS mode, the power of iomux1 is lost, so we need to
recover pinctrl value when back from this mode.
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Fancy Fang [Thu, 5 Jan 2017 09:00:37 +0000 (17:00 +0800)]
MLK-13722-3 video: mxsfb: add more sanity check on overlayfb_check_var()
The overlay function of LCDIF only support when the bpp of fb0
and fb1 are the same. So add this check on overlayfb_check_var().
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Wed, 4 Jan 2017 07:34:43 +0000 (15:34 +0800)]
MLK-13722-2 video: mxsfb: change 'usage' to atomic_t type
The 'usage' field of mxsfb_layer is used to record the
overlay fb user counts. So change its type to atomic_t
to avoid race problem.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Wed, 4 Jan 2017 07:19:31 +0000 (15:19 +0800)]
MLK-13722-1 video: mxsfb: the fb_info var should be init on every device open.
After the last close of the fb1 open, the fb_info var structure
contains the information in the last overlay display. This may
cause the next overlay display contains old and invalid var
info. So re-init the var info on every fb1 open.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Wed, 4 Jan 2017 01:51:02 +0000 (09:51 +0800)]
MLK-13715-2 video: mxsfb: add global alpha mode for overlay fb
Add global alpha mode for overlay framebuffer when the
overlay fb has no alpha channel, which means set a fix
alpha value which is used during the alpha blending
between AS and framebuffer.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Wed, 4 Jan 2017 02:07:21 +0000 (10:07 +0800)]
MLK-13715-1 video: mxsfb: miss a 'break' in switch statements.
Add the missing 'break' in some switch statements.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Gao Pan [Wed, 4 Jan 2017 07:13:29 +0000 (15:13 +0800)]
MLK-13717-2 spi: imx-lpspi: support for vlls mode
On i.MX7ULP sillicon, system suspend go through VLLS mode that gate
off pinctrl and modules power, then all registers are reset to HW
default value. To support the feature, driver needs to recover all
registers status.
Signed-off-by: Gao Pan <pandy.gao@nxp.com>
Gao Pan [Wed, 4 Jan 2017 07:12:33 +0000 (15:12 +0800)]
MLK-13717-1 ARM: dts: imx7ulp-evk: add lpspi sleep pinctrl
Add lpspi sleep pinctrl.
Signed-off-by: Gao Pan <pandy.gao@nxp.com>
Gao Pan [Wed, 4 Jan 2017 07:01:22 +0000 (15:01 +0800)]
MLK-13716-2 i2c: imx-lpi2c: support for vlls mode
On i.MX7ULP sillicon, system suspend go through VLLS mode that gate
off pinctrl and modules power, then all registers are reset to HW
default value. To support the feature, driver needs to recover all
registers status.
Signed-off-by: Gao Pan <pandy.gao@nxp.com>
Gao Pan [Wed, 4 Jan 2017 06:59:27 +0000 (14:59 +0800)]
MLK-13716-1 ARM: dts: imx7ulp-evk: add lpi2c sleep pinctrl
Add lpi2c sleep pinctrl.
Signed-off-by: Gao Pan <pandy.gao@nxp.com>
Fancy Fang [Tue, 3 Jan 2017 09:26:42 +0000 (17:26 +0800)]
MLK-13714 video: mxsfb: fix the overlay wrong offset issue
The overlay function should be enabled when the lcdif is disabled
to make them synchronous. Otherwise, there will be offset for the
overlay surface when display.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Thu, 29 Dec 2016 06:39:48 +0000 (14:39 +0800)]
MLK-13684-4 video: mxsfb: add pan display for overlay fb
Add pan display support for the AS overlay framebuffer.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Tue, 27 Dec 2016 01:31:33 +0000 (09:31 +0800)]
MLK-13684-3 video: mxsfb: add overlay framebuffer support based on lcdif
The enhanced LCDIF controller has added an AS surface which
can be used to blend with the original framebuffer fb0.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Tue, 27 Dec 2016 01:30:35 +0000 (09:30 +0800)]
MLK-13684-2 video: mxsfb: add 'FB_MXC_OVERLAY' config
Add 'FB_MXC_OVERLAY' config to control overlay framebuffer
feature. And also add this config to defconfig.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Mon, 26 Dec 2016 09:08:37 +0000 (17:08 +0800)]
MLK-13684-1 video: mxsfb: correct the 'fb_info' alloc size
The 'framebuffer_alloc()' will add the fb_info_size to the 'size'
parameter before doing the real allocation. So it is not necessary
to pass the sizeof(struct fb_info) to it again.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Fri, 30 Dec 2016 07:21:28 +0000 (15:21 +0800)]
MLK-13706 video: mxsfb: defer fb probe when dispdrv is not ready
Some dispdrv depends on several other modules. For example, mipi dsi
depends on gpio and gpio-reset modules. And in some cases, during
the mipi dsi initialization process, the gpio or gpio-reset is not
loaded yet, so defer the fb probing until all the depending modules
loaded completed.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Andy Duan [Thu, 29 Dec 2016 05:59:26 +0000 (13:59 +0800)]
MLK-13711-01 ARM: dts: imx7ulp-evk: add lpuart sleep pinctrl
Add lpuart sleep pinctrl.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Andy Duan [Wed, 28 Dec 2016 08:48:02 +0000 (16:48 +0800)]
MLK-13710 tty: serial: fsl_lpuart: add magic SysRq support
Add magic SysRq key support.
Signed-off-by: Fugang Duan <fugang.duan@nxp.com>
Yuchou Gan [Fri, 30 Dec 2016 11:30:03 +0000 (19:30 +0800)]
MGS-2460 [#ccc] 7ULP1 GPU suspend/resume problem
Do not enable the gpu clock when initialize the clock
Date: Dec 30, 2016
Signed-off-by: Yuchou Gan <yuchou.gan@nxp.com>
Anson Huang [Thu, 29 Dec 2016 13:56:44 +0000 (21:56 +0800)]
MLK-13693 ARM: imx: add gpio save/restore for i.mx7ulp VLLS mode
Add GPIO save/restore for i.MX7ULP VLLS mode, as GPIO might lost
power in VLLS mode, including GPIO port C,D,E,F.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Haibo Chen [Wed, 28 Dec 2016 08:12:41 +0000 (16:12 +0800)]
MLK-13681-2 ARM: dts: add imx6sll-evk-reva baord support
The latest imx6sll evk Rev A board (default board) already fix
HS400 I/O timing issue, so the default evk board support HS400
mode. But the older evk board (Rev A) board still has issue for
HS400 mode, so this patch disabled HS400 mode for the older evk
board, just support HS200 mode for imx6sll evk Rev A board.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Haibo Chen [Wed, 28 Dec 2016 08:01:04 +0000 (16:01 +0800)]
MLK-13681-1 ARM: imx6sll: add HS400 support for imx6sll
The imx6sll support eMMC HS400 mode, this patch default add HS400
mode support.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Haibo Chen [Tue, 27 Dec 2016 02:22:28 +0000 (10:22 +0800)]
MLK-13675 ARM: dts: imx6sll-evk.dts: change the pad setting of sd1/sd3
According to HW team's suggestion, change the pad setting of sd1 and
sd3 on imx6sll-evk board.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Bai Ping [Tue, 13 Dec 2016 05:20:01 +0000 (13:20 +0800)]
MLK-13507 ARM: imx: workaround of ERR010579 for ipu on imx6dl
Workaround for ERR010579
When switching the clock source of IPU clock root in CCM, even setting
CCGR3[CG0]=0x0 to gate off clock before switching, IPU may hang due to
no IPU clock from CCM. The root cause is an integration bug in SOC level,
setting CCGR3[CG0]=0x0 can NOT gate off the clock after IPU clock source MUX.
The IPU clock source MUX is glitchg MUX, that means the clock glitch during
clock switch is unavoidable, which will cause the divider after it stop work
and no clock output. In order to avoid the clock glitch, we must obey below
procedures if clock source switch is needed:
1. gate off the CG after MUX
2. switch clock source
3. gate on the CG after MUX
On the other hand, the EN of the CG between MUX and divider is a feedback
logic(OR result) from several LPCG cells in SOC top, but for IPU clock, one
LPCG is forced to open forever, then the feedback OR result is always high,
it causes the CG can NOT be gated off even the CCGR3[CG0] is set to 0x0.
For detailed workaround steps, please refer to the errata document.
Tested-by: Ying Liu <victor.liu@nxp.com>
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Bai Ping [Wed, 21 Dec 2016 09:24:44 +0000 (17:24 +0800)]
MLK-13642 ARM: imx: update the ddr frequency change flow on imx7d
Update busfreq change flow on i.MX7D. When changing the
DDR frequency to 24MHz, 98MHz and 533MHz, different value
should be set in 'DDRC_RFSHTMG' register. Detailed setting
is below:
LPDDR2/3:
24MHz: 0x00010003
98MHz: 0x0005000B
533MHz: 0x00200038
DDR3:
24MHz: 0x00030004
98MHz: 0x000B000D
533MHz: 0x00040046
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Irina Tirdea [Mon, 20 Feb 2017 08:36:06 +0000 (10:36 +0200)]
MLK-13869 cpufreq: imx7: use updated arm clk
The "arm" clock for imx7d has been modified to encapsulate
all other clocks needed for normal functioning ("arm_root_src",
"pll_arm", "pll_sys_main"). Modify cpufreq to use the new
version of "arm" clock.
Signed-off-by: Irina Tirdea <irina.tirdea@nxp.com>
Octavian Purdila [Wed, 22 Feb 2017 15:32:46 +0000 (17:32 +0200)]
MLK-13869 ARM: dts: imx7: route interrupts through GPC
We need to "logically" route interrupts through GPC instead of directly
through GIC in order to support low power mode with SCU and L2 off.
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Octavian Purdila [Wed, 22 Feb 2017 15:36:53 +0000 (17:36 +0200)]
MLK-13869 ARM: imx7d: run pm init during intialization
This patch adds code that was missed during the rebase of the imx7 PM
patches.
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Octavian Purdila [Wed, 22 Feb 2017 15:34:26 +0000 (17:34 +0200)]
MLK-13869 ARM: gpcv2: update driver to lastest irq_domain APIs
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Octavian Purdila [Mon, 20 Feb 2017 09:29:55 +0000 (11:29 +0200)]
MLK-13869 ARM: dts: imx7d: fix pxp AXI clock name
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Octavian Purdila [Mon, 20 Feb 2017 09:27:15 +0000 (11:27 +0200)]
MLK-13869 mmc: card: fix infinite loop in mmc_blk_alloc_req
Initialize ret to avoid an infinite loop in mmc_blk_alloc_req which may
happen if the uninitialize ret value is -EAGAIN.
Signed-off-by: Octavian Purdila <octavian.purdila@nxp.com>
Irina Tirdea [Tue, 14 Feb 2017 08:37:56 +0000 (10:37 +0200)]
MLK-13869 Revert "ARM: imx: add sleep for pllv3 relock"
This reverts commit
322503a15740bd9383bb4ed452e5dd5a40598170.
The driver for clk-pllv3 has moved from arch/arm/mach-imx/clk-pllv3.c
to drivers/clk/imx/clk-pllv3.c since the orginal change was made,
so the revert is done to the new file instead.
Signed-off-by: Irina Tirdea <irina.tirdea@nxp.com>
Irina Tirdea [Thu, 9 Feb 2017 14:04:11 +0000 (16:04 +0200)]
MLK-13869 clk: imx7d: Fix usdhc and ahb init clock order
The nand_usdhc_root_clk and ahb_root_clk clocks need to be initialized
earlier so the board can boot, since there are other clocks that
depend on them.
This is a leftover from rebasing patch
a06eafc305c4c2db6dfc3de372f667af0135fa9e
(MLK-11349-3 ARM: imx: update clk driver for imx7d), that has the clocks
initialized in the correct order.
Signed-off-by: Irina Tirdea <irina.tirdea@nxp.com>