gan [Fri, 25 Mar 2016 13:24:38 +0000 (21:24 +0800)]
MGS-1678 [#2269] memleak in GPU driver sysfs interface
Add missing .release callback in file_operations of vidmem_operations in order to release the allocated memory.
Date: Mar 18, 2016
Signed-off-by: Yuchou Gan <yuchou.gan@nxp.com>
Richard Liu [Thu, 10 Mar 2016 09:53:59 +0000 (17:53 +0800)]
MA-7715 fix GPU kernel panic reported by android CTS
The patch removes the dependence between cache flush operation and node.
Node is not used anymore when flush cache. Cache flush can work with only
logical address passed into underlying functions does not need physical
address.
Signed-off-by: Richard Liu <r66033@freescale.com>
(cherry picked from commit
ad65770512d2baeb45f5d0622d985f9856b7cc1e)
Richard Liu [Fri, 18 Mar 2016 03:31:30 +0000 (11:31 +0800)]
MGS-1630 5.0.11.p8 driver can't pass build with kernel 4.1 on Android M6.0
It has converted sync to fence api in kernel_imx/drivers/staging/android/sync.h,
so make it done in gpu driver to match kernel.
Signed-off-by: Meng Mingming <b51843@freescale.com>
Signed-off-by: Richard Liu <xuegang.liu@freescale.com>
(cherry picked from commit
d69c57557a2ef782d0daa617a30945f41a608fd5)
Robby Cai [Mon, 21 Mar 2016 10:53:09 +0000 (18:53 +0800)]
MLK-12277 media: camera: add check for width and height against 0
when do vte test it meets follow dump in small probability.
Add against-0 check to resovle this.
$ v4l_emma.sh 1 1
$ v4l_emma.sh 1 9
------------[ cut here ]------------
: /dev/video1 Set PARM sucessfulWARNING: CPU: 0 PID: 1123 at /home/bamboo/build/4.1.X-1.0.0_ga/fsl-
imx-fb/temp_build_dir/build_fsl-imx-fb/tmp/work-shared/imx6qdlsolo/kernel-source/mm/page_alloc.c:266
5 __alloc_pages_nodemask+0x3c8/0x894()
ly
v4l_capture_testapp 0 TINModules linked in:FO : /dev/video1 input formatti mx6s_captureng pass
v4l_capture_testapp 0 ov5640_camera TINFO : PRP_ENC_ON_D gpRGBcon evbugv_buf malloc pass!
CPU: 0 PID: 1123 Comm: v4l2_capture_em Not tainted 4.1.8-1.0.0+g87e6c2f #1
Hardware name: Freescale i.MX6 Ultralite (Device Tree)
[<
80015d84>] (unwind_backtrace) from [<
80012728>] (show_stack+0x10/0x14)
[<
80012728>] (show_stack) from [<
80750a54>] (dump_stack+0x84/0xc4)
[<
80750a54>] (dump_stack) from [<
80032f3c>] (warn_slowpath_common+0x80/0xb0)
[<
80032f3c>] (warn_slowpath_common) from [<
80033008>] (warn_slowpath_null+0x1c/0x24)
[<
80033008>] (warn_slowpath_null) from [<
800b2cc4>] (__alloc_pages_nodemask+0x3c8/0x894)
[<
800b2cc4>] (__alloc_pages_nodemask) from [<
8001ba3c>] (__dma_alloc_buffer.isra.3+0x2c/0x84)
[<
8001ba3c>] (__dma_alloc_buffer.isra.3) from [<
8001bab0>] (__alloc_remap_buffer.isra.6+0x1c/0x8c)
[<
8001bab0>] (__alloc_remap_buffer.isra.6) from [<
8001bd1c>] (__dma_alloc+0x1fc/0x228)
[<
8001bd1c>] (__dma_alloc) from [<
8001be78>] (arm_dma_alloc+0x8c/0xa0)
[<
8001be78>] (arm_dma_alloc) from [<
804cd934>] (vb2_dc_alloc+0x68/0x100)
[<
804cd934>] (vb2_dc_alloc) from [<
804c7df8>] (__vb2_queue_alloc+0x134/0x4d0)
[<
804c7df8>] (__vb2_queue_alloc) from [<
804ca794>] (__reqbufs.isra.17+0x1a8/0x304)
[<
804ca794>] (__reqbufs.isra.17) from [<
804b7ac0>] (__video_do_ioctl+0x2b0/0x324)
[<
804b7ac0>] (__video_do_ioctl) from [<
804b753c>] (video_usercopy+0x1b8/0x480)
[<
804b753c>] (video_usercopy) from [<
804b3f34>] (v4l2_ioctl+0x118/0x150)
[<
804b3f34>] (v4l2_ioctl) from [<
800f8360>] (do_vfs_ioctl+0x3e8/0x608)
[<
800f8360>] (do_vfs_ioctl) from [<
800f85b4>] (SyS_ioctl+0x34/0x5c)
[<
800f85b4>] (SyS_ioctl) from [<
8000f480>] (ret_fast_syscall+0x0/0x3c)
---[ end trace
55ed68f89eca4805 ]---
mx6s-csi
21c4000.csi: dma_alloc_coherent of size 0 failed
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Robby Cai [Thu, 17 Mar 2016 05:41:38 +0000 (13:41 +0800)]
MLK-12573 ARM: dts: set LCD_nPWREN low to make VLCD_3V3 output 3V3.
Q901 (IRLML6401) is p-channel MOSET, need set pin1 (LCD_nPWREN) to low
to let pin3 output be 3V3. Normally when pin1 is high, then pin3
output should be gated. It was working previously due to some leakage.
Correct the enable logic from the software viewpoint.
Signed-off-by: Robby Cai <robby.cai@nxp.com>
Shengjiu Wang [Mon, 21 Mar 2016 05:09:26 +0000 (13:09 +0800)]
MLK-12464-2: ASoC: wm8960: fix clock is not correct after suspend/resume
After the suspend/resume, hw_params may be called in bias_level is not
BIAS_ON, then the PLL is not disable/enabled, if the sample rate is
changed, the output clock is not correct.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Shengjiu Wang [Mon, 21 Mar 2016 02:08:11 +0000 (10:08 +0800)]
MLK-12464-1: ASoC: fsl: imx-wm8960: Fix no clock after suspend/resume randomly
After suspend and resume, the wm8960 codec will change the state from
BIAS_OFF to BIAS_ON, in this time, the hw_free is called, the PLL will be
diabled, and next instance is started in rapid sequence, hw_params is called
But PLL is not enabled, because the bias state is not BIAS_ON.
As PLL is disabled in BIAS_ON->BIAS_STANDBY, so don't need to disable pll
in hw_free of machine driver.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Fancy Fang [Tue, 22 Mar 2016 02:52:27 +0000 (10:52 +0800)]
MLK-12420 fix potential head list corruption.
The head list may be corrupted when two requests from
the same 'pxp_chan' are issued sequentially. So change
the issue_pending function to strictly serialized the
requests to avoid this kind of issue.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Li Jun [Fri, 19 Feb 2016 06:42:19 +0000 (14:42 +0800)]
MLK-12421 usb: chipidea: fix build warning if disable CONFIG_USB_CHIPIDEA_HOST
Fix chipidea usb driver compile warning if CONFIG_USB_CHIPIDEA_HOST
is disabled:
In file included from drivers/usb/chipidea/otg.c:26:0:
drivers/usb/chipidea/host.h:23:13: warning: 'ci_hdrc_host_driver_init'
defined but not used [-Wunused-function]
static void ci_hdrc_host_driver_init(void)
^
CC drivers/usb/chipidea/otg_fsm.o
In file included from drivers/usb/chipidea/otg_fsm.c:34:0:
drivers/usb/chipidea/host.h:23:13: warning: 'ci_hdrc_host_driver_init'
defined but not used [-Wunused-function]
static void ci_hdrc_host_driver_init(void)
^
Signed-off-by: Li Jun <jun.li@nxp.com>
ulises [Wed, 18 Nov 2015 14:10:26 +0000 (08:10 -0600)]
MLK-11922 i.mx6: Linux 3.14.28 CAAM & SNVS enabled by default.
JTAG, DS-5 attachment causes exceptions
Added properties to device tree, in order to enable and disable
alarms. The following are the available alarms:
-JTAG active
-WatchDOG 2 reset
-Internal Boot
-External Tamper Detection pad
Robin Gong [Thu, 17 Mar 2016 08:32:40 +0000 (16:32 +0800)]
MLK-12569 ARM: dts: imx6sx-sabreauto: add pfuze100
Add pfuze100 on imx6sx-sabreauto board to align with v3.14, although
no driver use pfuze100 regulator now.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Jason Liu [Mon, 14 Mar 2016 08:40:12 +0000 (16:40 +0800)]
MLK-12556 dts: i.mx6ul: configure the CMA region by default
CMA region is a must to avoid the multile memory mapping
for the DMAed memory and also benifit the large continious
phisical memory allocation.
The default value is depend on the target system design and
user cases definition. This is not suitable to put this into
the soc.dtsi, thus we put it into the board DTS.
customer can override the value by changing cma size in DTS file.
Again, customer need set the CMA size correctly according to the
target system. The incorrectly CMA size can cause Linux kernel fail
to boot up.CMA disabled or CMA size set to zero is also not allowed.
Signed-off-by: Jason Liu <jason.hui.liu@nxp.com>
Herbert Xu [Tue, 16 Jun 2015 05:54:16 +0000 (13:54 +0800)]
crypto: testmgr - Disable rfc4543 test
Because the old rfc4543 implementation always injected an IV into
the AD, while the new one does not, we have to disable the test
while it is converted over to the new AEAD interface.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Fancy Fang [Fri, 4 Mar 2016 09:36:13 +0000 (17:36 +0800)]
MLK-12509-3 video: mipi_dsi_samsung: add build support for TFT3P5079E panel.
The 'otm8018b' is the Source Driver IC which is used
by 'TFT3P5079E' panel. This patch is adding the build
support for the 'otm8018b' kernel driver.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Fri, 4 Mar 2016 09:27:37 +0000 (17:27 +0800)]
MLK-12509-2 video: mipi_dsi_samsung: add 'TFT3P5079E' panel driver.
The 'otm8018b' is the Source Driver IC for 'TFT3P5079E'
mipi panel. This patch is the kernel driver for 'otm8018b'.
No backlight brightness adjustment function, since this is
not supported by imx7d sdb revb board.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Signed-off-by: Frank Li <frank.li@nxp.com>
Fancy Fang [Thu, 3 Mar 2016 08:00:54 +0000 (16:00 +0800)]
MLK-12509-1 video: mipi_dsi_samsung: create a new dts for mipi dsi.
Create a new dts for the 'TFT3P5079E' mipi panel on
imx7d sabresd revb board.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Dong Aisheng [Wed, 24 Feb 2016 03:43:08 +0000 (11:43 +0800)]
MLK-12496 bcmdhd: update driver to Broadcom official released version 141.88
Some major fixes delivered by Broadcom.
1. Initialize nd_config parameter of cfg80211_wowlan to NULL
2. Avoid using hardcoded dummy channel number while creating p2p interface
3. Avoid creation of multiple instance of wl_event_handler thread.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Adrian Alonso [Thu, 18 Feb 2016 19:36:36 +0000 (13:36 -0600)]
MLK-12415: ARM: imx: imx6q: ddr3 adjust read/write latency from DCD
Adjust high frequence (528M) read/write additional latency settings
from target board initial configuration; Save/restore MMDC_MDMISC
from DCD settings.
Remove hardcodded value to issue a ZQ calibration command.
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
(Cherry picked from commit
1036293d72173ef9051ec23babfd4d7f13db4f58)
Adrian Alonso [Wed, 27 Jan 2016 23:49:33 +0000 (17:49 -0600)]
MLK-12400: ARM: imx: imx6q: lppdr2 mmdc timing settings
Add support for saving initial boot mmdc timing settings,
restore timming settings when switching from low to high
lpddr2 ddr frequency.
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Ranjani Vaidyanathan <ranjani.vaidyanathan@nxp.com>
(Cherry picked from commit
6787b0fea9eb1ba5cc21e2faf232c3e7d80ac028)
Dong Aisheng [Fri, 4 Mar 2016 10:18:37 +0000 (18:18 +0800)]
MLK-12478-2 dts: imx7d-lpddr3-arm2: add lpsr mode state for flexcan pins
add lpsr mode state for flexcan pins
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Fri, 4 Mar 2016 08:11:40 +0000 (16:11 +0800)]
MLK-12478-1 can: flexcan: add LPSR mode support
For MX7D LPSR mode, the controller will lost power and got the
configuration state lost after system resume back.
So we need to set pinctrl state again and re-start chip to do
re-configuration after resume.
For wakeup case, we also need re-configure the chip in case the state
got lost. For interface is not up before suspend case, we don't need
re-configure as it will be configured by user later by interface up.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Tue, 1 Mar 2016 10:28:15 +0000 (18:28 +0800)]
MLK-12462 mmc: sdhci-esdhc-imx: only force remove for available cards
Do sanity check before calling mmc_force_remove.
BCM WiFi driver will call wifi_card_detect(false) if probe fails
due to no card exists on board.
This is needed for Android BSP since Android has builtin WiFi drver
and some boards may not have WiFi cards pluged.
Then the kernel dump likes follows may appear.
----------------------------------------------
dhd_module_init in
Power-up adapter 'DHD generic adapter'
wifi_platform_bus_enumerate device present 1
mmc1: mmc_rescan_try_freq: trying to init card at 400000 Hz
mmc1: mmc_rescan_try_freq: trying to init card at 300000 Hz
mmc1: mmc_rescan_try_freq: trying to init card at 200000 Hz
mmc1: mmc_rescan_try_freq: trying to init card at 100000 Hz
failed to power up DHD generic adapter, 3 retry left
wifi_platform_bus_enumerate device present 0
------------[ cut here ]------------
Kernel BUG at
8051247c [verbose debug info unavailable]
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Modules linked in: bcmdhd(+) ov5642_camera ov5640_camera_mipi_int ov5640_camera_int mxc_v4l2_capture ipu_bg_overlay_sdc ipu_still v4l2_int_device mxc_dcic ipu_prp_enc ipu_csi_enc ipu_fg_overlay_sdc evbug
CPU: 3 PID: 1071 Comm: modprobe Not tainted
4.1.15-01591-g1393481 #1504
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
task:
a99be880 ti:
a8dd8000 task.ti:
a8dd8000
PC is at mmc_sdio_remove+0x70/0x74
LR is at mmc_sdio_force_remove+0xc/0x34
pc : [<
8051247c>] lr : [<
8051248c>] psr:
60070013
sp :
a8dd9d00 ip :
00000000 fp :
00000000
r10:
7f100c98 r9 :
00000000 r8 :
7f0fc410
r7 :
a8dd9d48 r6 :
a83b1800 r5 :
00000000 r4 :
a83b1800
r3 :
00000000 r2 :
00000000 r1 :
809b50c8 r0 :
00000000
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control:
10c53c7d Table:
38cdc04a DAC:
00000015
Process modprobe (pid: 1071, stack limit = 0xa8dd8210)
Stack: (0xa8dd9d00 to 0xa8dda000)
9d00:
00000000 a83b1800 00000000 00000000 a8dd9d48 8051248c 00000000 7f0ca6cc
9d20:
a99be880 a90e6280 00000003 7f0ca920 fffffdfb a81af810 80bb570c 00000000
9d40:
00020002 00000000 a8dd9d48 a8dd9d48 00000000 7f100c98 7f100c98 a90e6280
9d60:
fffffdfb 00000008 00000000 7f0fe490 56f19f1c 7f0cabe4 80bb6d74 a81af810
9d80:
7f0fe248 8037f864 8037f820 80bb6d74 a81af810 00000000 7f0fe248 8037e118
9da0:
a81af810 7f0fe248 a81af844 80b1e8b0 00000000 8037e328 00000000 7f0fe248
9dc0:
8037e29c 8037c660 a8025c5c a8187a34 7f0fe248 a9547780 00000000 8037d8b4
9de0:
7f0f5028 7f0fe248 00000000 7f0fe248 00000000 a90e6280 80ba78f4 8037e92c
9e00:
00000000 7f100c98 00000000 7f0cb02c 00000000 80af7720 80af7720 a90e6280
9e20:
7f124000 00000000 00000001 80009730 00000000 8040003b abc7db80 800e1c68
9e40:
00000000 a935c340 8040003a abc83180 ab757000 80af257c 00000001 8040003a
9e60:
00000001 00000001 a8dd9e7c 80af2260 a8001f00 80af46c0 56f19f1c 800e32a0
9e80:
7f0fe448 a90e6108 a90e6240 7f0fe448 a90e6100 7f0fe490 56f19f1c 8078b2b0
9ea0:
7f0fe448 a90e6100 a8dd9f58 a90e6108 00000001 80092dd8 7f0fe454 00007fff
9ec0:
800902a8 a8928900 7f0fe490 00000000 7f0fe590 000015fa c1754bfc 7f0fe590
9ee0:
c16d8000 000c823c 05de516a 00000000 0000000e 00000000 00000000 00000000
9f00:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
9f20:
00000000 00000000 00000000 00000000 00000648 00000000 00000003 01111348
9f40:
0000017b 8000f644 a8dd8000 00000000 00000073 8009352c c16d8000 000c823c
9f60:
c175456c c17543a5 c17957ec 0007ad30 0008f7c0 00000000 00000000 00000000
9f80:
0000002a 0000002b 0000001f 00000023 00000014 00000000 01111348 00000000
9fa0:
00000000 8000f4c0 01111348 00000000 00000003 01111348 00000000 00040000
9fc0:
01111348 00000000 00000000 0000017b 00000000 01111218 00000073 00000073
9fe0:
7ec5d950 7ec5d940 0001f0dc 76ecf610 600d0010 00000003 00000000 00000000
[<
8051247c>] (mmc_sdio_remove) from [<
8051248c>] (mmc_sdio_force_remove+0xc/0x34)
[<
8051248c>] (mmc_sdio_force_remove) from [<
7f0ca6cc>] (wifi_platform_bus_enumerate+0x54/0x90 [bcmdhd])
[<
7f0ca6cc>] (wifi_platform_bus_enumerate [bcmdhd]) from [<
7f0ca920>] (dhd_wifi_platform_load+0x17c/0x39c [bcmdhd])
[<
7f0ca920>] (dhd_wifi_platform_load [bcmdhd]) from [<
7f0cabe4>] (wifi_plat_dev_drv_probe+0xa4/0x124 [bcmdhd])
[<
7f0cabe4>] (wifi_plat_dev_drv_probe [bcmdhd]) from [<
8037f864>] (platform_drv_probe+0x44/0xa4)
[<
8037f864>] (platform_drv_probe) from [<
8037e118>] (driver_probe_device+0x174/0x2b4)
[<
8037e118>] (driver_probe_device) from [<
8037e328>] (__driver_attach+0x8c/0x90)
[<
8037e328>] (__driver_attach) from [<
8037c660>] (bus_for_each_dev+0x6c/0xa0)
[<
8037c660>] (bus_for_each_dev) from [<
8037d8b4>] (bus_add_driver+0x148/0x1f0)
[<
8037d8b4>] (bus_add_driver) from [<
8037e92c>] (driver_register+0x78/0xf8)
[<
8037e92c>] (driver_register) from [<
7f0cb02c>] (dhd_wifi_platform_register_drv+0x1cc/0x20c [bcmdhd])
[<
7f0cb02c>] (dhd_wifi_platform_register_drv [bcmdhd]) from [<
80009730>] (do_one_initcall+0x8c/0x1d4)
[<
80009730>] (do_one_initcall) from [<
8078b2b0>] (do_init_module+0x5c/0x1a8)
[<
8078b2b0>] (do_init_module) from [<
80092dd8>] (load_module+0x177c/0x1d4c)
[<
80092dd8>] (load_module) from [<
8009352c>] (SyS_finit_module+0x64/0x74)
[<
8009352c>] (SyS_finit_module) from [<
8000f4c0>] (ret_fast_syscall+0x0/0x3c)
Code:
e3a03000 e58631f8 e5863228 e8bd80f8 (
e7f001f2)
---[ end trace
6f28ec270544e09e ]---
Segmentation fault
root@imx6qdlsolo:~#
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Richard Zhu [Tue, 1 Mar 2016 03:24:37 +0000 (11:24 +0800)]
MLK-12481 pci: imx: turn off pcie clks when link down
In order to save power consumption, turn off pcie clks/regulators
if there is no pcie link at all.
Summit this patch, because of that MLK-12278
doesn't turn off the clks/regulators actually.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Ulf Hansson [Thu, 11 Feb 2016 15:42:58 +0000 (16:42 +0100)]
Revert "mmc: block: don't use parameter prefix if built as module"
This reverts commit
829b6962f7e3cfc06f7c5c26269fd47ad48cf503.
Revert this change as it causes a sysfs path to change and therefore
introduces and ABI regression. More precisely Android's vold is not being
able to access /sys/module/mmcblk/parameters/perdev_minors any more, since
the path becomes changed to: "/sys/module/mmc_block/..."
Fixes:
829b6962f7e3 ("mmc: block: don't use parameter prefix if built as
module")
Reported-by: John Stultz <john.stultz@linaro.org>
Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
(cherry picked from commit
a5ebb87db84392edfd3142c3a6a78431d820a789)
Fugang Duan [Wed, 2 Mar 2016 02:17:02 +0000 (10:17 +0800)]
MLK-12480 dts: imx7d-12x12-lpddr3-arm2: remove extended enet dts file
There have two same extended enet dts file to enable fec2 port, so
remove the redundant enet dts file.
The issue is caused by the commit
370426c2a918 that was cherry picked
after commit
b74c6b9c7fdc.
Signed-off-by: Fugang Duan <B38611@freescale.com>
Dong Aisheng [Fri, 26 Feb 2016 10:19:38 +0000 (18:19 +0800)]
MLK-12462-2 dts: imx: add pm-ignore-notify for WiFi card
MMC core pm_notify will re-detect card after system suspend/resume,
regardless of post-cd claim.
Since in current MMC implement, non-removeable card only detects once,
this will break post card detect which happens next.
e.g. when we suspend/resume system first, then load Broadcom wifi module,
we will get below dump:
root@imx6qdlsolo:/mnt/nfs/vte_IMX6QP-Sabre-SD# modprobe bcmdhd firmware_path=/lib/firmware/bcm/ZP_BCM4339/fw_bcmdhd.bin nvram_path=/lib/firmware/bcm/ZP_BCM4339/bcmdhd.ZP.SDIO.cal
dhd_module_init in
Power-up adapter 'DHD generic adapter'
wifi_platform_bus_enumerate device present 1
failed to power up DHD generic adapter, 3 retry left
wifi_platform_bus_enumerate device present 0
-----------[ cut here ]-----------
Kernel BUG at
80513170 [verbose debug info unavailable]
Internal error: Oops - BUG: 0 1 PREEMPT SMP ARM
Modules linked in: bcmdhd ov5642_camera ov5640_camera_mipi_int ov5640_camera_int mxc_v4l2_capture mxc_dcic ipu_bg_overlay_sdc ipu_still v4l2_int_device ipu_prp_enc ipu_csi_enc ipu_fg_overlay_sdc
CPU: 1 PID: 1487 Comm: modprobe Not tainted 4.1.15-1.0.0+g54cf6a2 #1
Hardware name: Freescale i.MX6 Quad/DualLite (Device Tree)
task:
a881e3c0 ti:
a9152000 task.ti:
a9152000
PC is at mmc_sdio_remove+0x7c/0x80
LR is at mmc_sdio_force_remove+0xc/0x34
pc : [<
80513170>] lr : [<
80513180>] psr:
60030013
sp :
a9153d28 ip :
00000000 fp :
00000000
r10:
00000000 r9 :
00000000 r8 :
7f0f76e0
r7 :
a9153d58 r6 :
00000000 r5 :
00000000 r4 :
a83f1800
r3 :
00000000 r2 :
00000000 r1 :
809c02f4 r0 :
a83f1800
Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control:
10c53c7d Table:
38d7804a DAC:
00000015
Process modprobe (pid: 1487, stack limit = 0xa9152210)
Stack: (0xa9153d28 to 0xa9154000)
3d20:
00000000 7f0c569c a9ffe440 00000003 00000000 7f0c58f4
3d40:
a81942c0 8032e33c a8195960 7f0fbf68 00020002 00000000 a9153d58 a9153d58
3d60:
fffffdfb 80bc0db4 a81af810 7f0f9518 fffffdfb 00000008 00000000 5624ce5c
3d80:
00000124 80381140 80bc0db4 a81af810 7f0f9518 00000000 00000008 8037f9dc
3da0:
a81af810 7f0f9518 a81af844 80b288b0 00000000 8037fbec 00000000 7f0f9518
3dc0:
8037fb60 8037e068 a8025c5c a818fa34 7f0f9518 a20ff280 00000000 8037f16c
3de0:
7f0f0330 a9ffe440 00000000 7f0f9518 a9ffe440 00000000 80bb18f4 803801ec
3e00:
7f0fbf68 a9ffe440 00000000 7f0c5fdc 80b01720 80b01720 a9ffe440 7f11f000
3e20:
00000000 00000001 5624ce5c 80009730 abc7b120 800e316c 000000c8 a9209a00
3e40:
8040003f 00000001 00010000 800b0dfc 000000c8 8040003f abc7dc60 80afc2b0
3e60:
abc75880 80afc260 a8001f00 80afe6c0 00000124 800e4944 7f0f9718 00000001
3e80:
7f0f9718 00000001 a9ffeb00 7f0f9718 a9db31c0 8078e47c 7f0f9718 a9db31c0
3ea0:
a9153f58 00000001 a9db31c8 80094094 7f0f9724 00007fff 800910d4 00000000
3ec0:
00000000 7f0f9760 00000000 7f0f9860 c0fce8f4 7f0f9724 00000000 8079aa0c
3ee0:
c0f07000 000c7944 00b6817a 00000000 0000000e 00000000 00000000 00000000
3f00:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
3f20:
00000000 00000000 00000000 00000000 00000640 00000000 00000003 01608348
3f40:
0000017b 8000f604 a9152000 00000000 01608270 800944f8 c0f07000 000c7944
3f60:
c0fce28c c0f83439 c0f99248 0007aff8 0008f968 00000000 00000000 00000000
3f80:
00000029 0000002a 00000020 00000024 00000015 00000000 01608348 00000073
3fa0:
00000000 8000f480 01608348 00000073 00000003 01608348 00000000 00000000
3fc0:
01608348 00000073 00000000 0000017b 01608218 00000000 00000073 01608270
3fe0:
7e9ab8c0 7e9ab8b0 0001f2c0 76eac340 600d0010 00000003 00000000 00000000
[<
80513170>] (mmc_sdio_remove) from [<
7f0c58f4>] (dhd_wifi_platform_load+0x180/0x39c [bcmdhd])
[<
7f0c58f4>] (dhd_wifi_platform_load [bcmdhd]) from [<
80381140>] (platform_drv_probe+0x44/0xac)
[<
80381140>] (platform_drv_probe) from [<
8037f9dc>] (driver_probe_device+0x174/0x2b4)
[<
8037f9dc>] (driver_probe_device) from [<
8037fbec>] (__driver_attach+0x8c/0x90)
[<
8037fbec>] (__driver_attach) from [<
8037e068>] (bus_for_each_dev+0x68/0x9c)
[<
8037e068>] (bus_for_each_dev) from [<
8037f16c>] (bus_add_driver+0x148/0x1f0)
[<
8037f16c>] (bus_add_driver) from [<
803801ec>] (driver_register+0x78/0xf8)
[<
803801ec>] (driver_register) from [<
7f0c5fdc>] (dhd_wifi_platform_register_drv+0x1bc/0x208 [bcmdhd])
[<
7f0c5fdc>] (dhd_wifi_platform_register_drv [bcmdhd]) from [<
80009730>] (do_one_initcall+0x8c/0x1d4)
[<
80009730>] (do_one_initcall) from [<
8078e47c>] (do_init_module+0x5c/0x1a8)
[<
8078e47c>] (do_init_module) from [<
80094094>] (load_module+0x1ba8/0x1e50)
[<
80094094>] (load_module) from [<
800944f8>] (SyS_finit_module+0x80/0x90)
[<
800944f8>] (SyS_finit_module) from [<
8000f480>] (ret_fast_syscall+0x0/0x3c)
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
(cherry picked from commit
2ce993c504798e7fad0910432bd2c6cbd332120d)
Dong Aisheng [Fri, 26 Feb 2016 10:02:22 +0000 (18:02 +0800)]
MLK-12462-1 mmc: core: add MMC_PM_IGNORE_PM_NOTIFY feature
With igore pm notify feature, MMC core will not re-detect card
after system suspend/resume. This is needed for some special cards
like Broadcom WiFi which can't work propertly on card re-detect
after system resume.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
(cherry picked from commit
3a4a074d2ead8044afe42cd0d060fe25564b274c)
Richard Liu [Tue, 1 Mar 2016 08:51:01 +0000 (16:51 +0800)]
MA-7685 [#2124] Fix some remaining DEQP EGL CTS failures on GC400T
The root cause of these failures is related with a hardware
ERRATA (onComp2 flop power-up value is 1 instead of 0).
Preview patch
c086763024a8117beaa8ea27ee88eaeafd03ef3e in issue
track #1105 is not a fully fix, here implement a DummyDraw to
workaround the hardware ERRATA.
Signed-off-by: Richard Liu <r66033@freescale.com>
Robby Cai [Thu, 27 Aug 2015 12:34:32 +0000 (20:34 +0800)]
MLK-11438-4 lcdif: enable lpsr mode
restore the pinmux when resume from LPSR mode in suspend.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit
0462eb2cb8b64508260d9c6daa9f163d68ea6be0)
Conflicts:
drivers/video/mxsfb.c
(cherry picked from commit
8ddaa850df8cc9fe4dda4f505053eaa3f704ef69)
Fancy Fang [Mon, 29 Feb 2016 10:06:53 +0000 (18:06 +0800)]
MLK-12457 dts: imx7d-12x12-lpddr3-arm2: correct pwm1 pinctrl settings
The pwm1's pin belongs to lpsr iomux. So this should
be corrected.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Haibo Chen [Mon, 29 Feb 2016 03:24:47 +0000 (11:24 +0800)]
MLK-12454 ARM: dts: imx7d-12x12-lpddr3-arm2: add adc support
Add ADC support for imx7d-12x12-lpddr3-arm2 board.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
(cherry picked from commit
8ed7b52849feced89e8ddcbea49ec7426fa4d8bf)
Peter Chen [Fri, 26 Feb 2016 08:34:20 +0000 (16:34 +0800)]
MLK-12466 ARM: dts: imx6ul-14x14-evk-usb-certi: add USB certification dts
Below are the differences between standard evk:
- Enable tpl
- Enable software control vbus for otg2 (hardware rework is needed)
- Disable TSC due to the pin conflict with above vbus regulator
Signed-off-by: Peter Chen <peter.chen@nxp.com>
Gao Pan [Tue, 1 Sep 2015 05:14:08 +0000 (13:14 +0800)]
MLK-11472 sim: imx: set sim1 IOMUX to default state
SIM1 IOMUX is changed into reset state in LPSR mode.As a result,
sim can't work again.
This patch sets sim1 IOMUX to default state after existing from LPSR mode.
(cherry-picked from commit
8e237775cd413645bfd806e4c648954e1a773a2d)
Signed-off-by: Gao Pan <b54642@freescale.com>
Gao Pan [Thu, 4 Jun 2015 08:57:47 +0000 (16:57 +0800)]
MLK-11405 spi: imx : sets spi IOMUX to default state
SPI IOMUX is changed into reset state in LPSR mode. As a result,
spi can't work again.
This patch sets spi IOMUX to default state.
(cherry-picked from commit
2c8603c31831bb355f6be5b015377fb8fbd89844)
Signed-off-by: Gao Pan <b54642@freescale.com>
Gao Pan [Fri, 26 Feb 2016 03:36:46 +0000 (11:36 +0800)]
MLK-12456 ARM: dts : add spi1 IOMUX sleep state
Add spi1 IOMUX sleep state in imx7d-12x12-lpddr3-arm2.dts.
Signed-off-by: Gao Pan <pandy.gao@nxp.com>
Adrian Alonso [Wed, 27 Jan 2016 23:48:20 +0000 (17:48 -0600)]
MLK-12399: ARM: imx: imx6q: lpddr2 busfreq audio operation support
Add 100Mhz (HIGH_AUDIO_CLK) bus frequency support for imx6q lpddr2 targets
On HIGH_AUDIO_CLK busfreq request source dram mmdc clock root from
pll2_pfd2_div_2 to generate 100Mhz operation frequency.
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
(cherry-picked from commit
5bc118112b36b72ed6b1e75a3760c371b486abec)
Han Xu [Wed, 24 Feb 2016 20:20:25 +0000 (14:20 -0600)]
MLK-12449: mtd: gpmi: fix integer overflow issue
fix the potential integer overflow issue found by coverify.
Signed-off-by: Han Xu <han.xu@nxp.com>
Anson Huang [Wed, 24 Feb 2016 03:57:02 +0000 (11:57 +0800)]
MLK-12443 ARM: imx: disable low power mode before entering LPSR mode
Before entering LPSR mode, as GPC was set to STOP/DSM mode already,
the wfi loop after LPSR mode would cause system enter STOP/DSM mode
first, then SNVS will force PMIC_ON_REQ to low, as SNVS needs IPG
clock to be on before entering SNVS/LPSR mode, so we have to disable
STOP/DSM mode to make sure IPG clock is on before SNVS actually enters
LPSR mode.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Bai Ping [Tue, 23 Feb 2016 09:04:13 +0000 (17:04 +0800)]
MLK-12433: arm: dts: imx: disable tempmon device when cpufreq is disabled
In the lpddr3-arm2-m4 dts, the I2C1 is disabled, so PMIC is disabled,
the cpufreq is not support. As thermal driver is depended on cpufreq
driver, if cpufreq is not support, the tempmon device can be disabled.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Robin Gong [Tue, 26 May 2015 09:08:11 +0000 (17:08 +0800)]
MLK-10983 : ARM: imx: gpc: wait PU LDO ramp before GPU power up on i.mx6qp
Wait PU LDO ramp before GPU power on once system resume back on i.mx6qp,
otherwise, GPU resume may hang.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
361af86190c160e0ea66e007c61b18a793149b74)
Shawn Xiao [Mon, 22 Feb 2016 07:04:41 +0000 (15:04 +0800)]
MGS-1633 GPU: Replace CONFIG_PM_RUNTIME with CONFIG_PM
Since 4.1, linux kernel has dropped CONFIG_PM_RUNTIME macro. And
CONFIG_PM is used instead. GPU driver should be synced with the change.
Date Feb 22, 2016
Signed-off-by: Shawn Xiao <b49994@freescale.com>
Fancy Fang [Thu, 18 Feb 2016 03:16:33 +0000 (11:16 +0800)]
MLK-12412 ARM: imx: clk: correct 'csi_sel' settings
The 'csi_sel' clock is in ccm instead of anatop.
So correct the wrong register address used.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Bai Ping [Sun, 21 Feb 2016 06:53:50 +0000 (14:53 +0800)]
MLK-12430 ARM: imx: enable and bypass pll1_bypass clk before changing arm_podf
Before changing the ARM_PODF, the pll1_bypass clock should be enabled and
bypassed to make sure the ARM_PODF can be changed.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Troy Kisky [Fri, 5 Feb 2016 21:52:43 +0000 (14:52 -0700)]
net: fec: stop the "rcv is not +last, " error messages
Setting the FTRL register will stop the fec from
trying to use multiple receive buffers.
Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Robin Gong [Mon, 15 Sep 2014 08:13:55 +0000 (16:13 +0800)]
MLK-12423: ARM: dts: imx6sl: remove always-on for vddpu
PU can be dynamically turned off or on, so we need remove
"regulator-always-on" property.
Signed-off-by: Robin Gong <b38343@freescale.com>
(cherry picked from commit
f3c0df15fbecce36cae531a4a919d544f9ea8e2a)
(cherry picked from commit
ec113127f090c225dd731383b6fb950c02ae1f0b)
Fugang Duan [Fri, 5 Jun 2015 07:16:23 +0000 (15:16 +0800)]
MLK-11051 net: phy: mdio_bus: don't call .phy_suspendi() when netdev is NULL
In .mdio_bus_phy_may_suspend(), there check netdev is NULL to judge to set
phy to suspend status.
netdev is NULL has three cases:
- phy is not found
- phy is found, match to general phy driver
- phy is found, match to specifical phy driver
Case 1: phy is not found, cannot communicate by MDIO bus.
Case 2: phy is found:
if phy dev driver probe/bind err, netdev is not __open__ status,
mdio bus is unregistered.
if phy is detached, phy had entered suspended status.
Case 3: phy is found, phy is detached, phy had entered suspended status.
So, in here, it shouldn't set phy to suspend by calling mdio bus.
In i.MX6UL evk/arm2 board, if down the ethx interface and do suspend/resume,
system will hang. Because after ethx down all clocks are gated off, for general
phy driver, unbind the phy device, for specifical phy driver, no unbind the
device, and the original driver call mdio bus to set phy to suspend during
system suspend, so system will hang since there have mdio register access.
The patch can fix it.
Signed-off-by: Fugang Duan <B38611@freescale.com>
Conflicts:
drivers/net/phy/mdio_bus.c
Bai Ping [Thu, 29 Jan 2015 13:24:36 +0000 (21:24 +0800)]
MLK-10177 arm: imx: add cpuidle driver support for i.MX6DL
Add cpudile driver support for i.MX6DL.
Signed-off-by: Bai Ping <b51503@freescale.com>
(cherry picked from commit
72809d405ca73f85c0397fa277ba2481512fe521)
Anson Huang [Thu, 28 Jan 2016 14:21:52 +0000 (22:21 +0800)]
MLK-12375 ARM: imx: improve ARM power up time for i.MX6UL TO1.1
On i.MX6UL, PGC_CPU_PUPSCR_SW's counter uses IPG/2048 as clock
source, as IPG is at 1.5MHz during low power idle, so the power
up time can be up to 1.3mS which is too long for idle.
Since TO1.1, design team re-define the bit[5], if this bit is
set to 1, the clock will be IPG/32, ~22us, enable this function
for TO1.1, the latency value for low power idle needs to be
adjusted accordingly.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robin Gong [Tue, 2 Feb 2016 08:30:50 +0000 (16:30 +0800)]
MLK-12371: ARM: imx: suspend-imx7: correct HW_ANADIG_SNVS_MISC_CTRL set
To avoid touch other bits of HW_ANADIG_SNVS_MISC_CTRL , use set/clear register
, and correct the bit29 setting:
--before: write 1 to toggle DDR power pin to high before enter DDR retention,
and write 1 again to pull pin to low when exit from DDR retention.
--now: write 1 to pull DDR power pin to high and write 0 to low.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Robby Cai [Sun, 1 Feb 2015 10:11:16 +0000 (18:11 +0800)]
MLK-10190 ARM: dts: disable disp mix on imx6sl by default
The cause is EPDC works not stable if DISP mix is enabled.
Signed-off-by: Robby Cai <r63905@freescale.com>
(cherry picked from commit
db5b89bd35d259504da1c15d62f898f1291541e2)
Dong Aisheng [Tue, 16 Feb 2016 11:05:17 +0000 (19:05 +0800)]
MLK-12404-2 mmc: sdhci-esdhc-imx: change SLV_DLY_TARGET to value 0x7
Change SLV_DLY_TARGET to IC recommended value 0x7(4/1 cycle)
according to spec.
The old value 0x1 is not robust and may fail in some critical
circumstance.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Bai Ping [Wed, 17 Feb 2016 08:53:33 +0000 (16:53 +0800)]
MLK-12407 ARM: imx: clk: correct the periph_pre clk type
The periph_pre, periph2_pre, periph_clk2_sel and periph2_clk2_sel
should be registered as 'imx_clk_mux_bus' type.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Fancy Fang [Tue, 16 Feb 2016 06:35:51 +0000 (14:35 +0800)]
MLK-12402-2 ARM: dts: imx6sl: add power-domains for display domain
Add power-domains for display domain for imx6sl.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Fancy Fang [Tue, 16 Feb 2016 06:19:59 +0000 (14:19 +0800)]
MLK-12402-1 ARM: dts: imx6sx: add power-domains for display domain
Add power-domains for display domain for imx6sx.
Signed-off-by: Fancy Fang <chen.fang@nxp.com>
Haibo Chen [Mon, 1 Feb 2016 10:15:27 +0000 (18:15 +0800)]
MLK-12345 mmc: sdhci-esdhc-imx: reset tuning circurt when insert sd card
Current driver do not clear the tuning related register setting,
this will impact the timing and let the card inserted later meet
CRC error.
Take the DDR50 card as example, if plug out an SDR104 card and
then plug in this DDR50 card, we will meet the following error log:
mmc2: new ultra high speed DDR50 SDHC card at address aaaa
mmcblk2: mmc2:aaaa SE08G 7.40 GiB
mmcblk2: error -84 transferring data, sector 0, nr 8, cmd response 0x900, card status 0xb00
mmc2: tried to reset card
mmcblk2: p1 p2
Logictally, we should reset the tuning circurt everytime when we
plug in a sd card.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Haibo Chen [Thu, 4 Feb 2016 08:06:15 +0000 (16:06 +0800)]
MLK-12397 mmc: sdhci: disable irq in sdhci host suspend ranther than free this irq
Currently sdhci driver free irq in host suspend, and call
request_threaded_irq() in host resume. But during host resume,
Ctrl+C can impact sdhci host resume, see the error log:
CPU1 is up
PM: noirq resume of devices complete after 0.637 msecs imx-sdma
30bd0000.sdma: loaded firmware 4.1
PM: early resume of devices complete after 0.774 msecs
dpm_run_callback(): platform_pm_resume+0x0/0x44 returns -4
PM: Device
30b40000.usdhc failed to resume: error -4
dpm_run_callback(): platform_pm_resume+0x0/0x44 returns -4
PM: Device
30b50000.usdhc failed to resume: error -4
dpm_run_callback(): platform_pm_resume+0x0/0x44 returns -4
PM: Device
30b60000.usdhc failed to resume: error -4 fec
30be0000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmc0: Timeout waiting for hardware interrupt.
mmc0: error -110 during resume (card was removed?)
mmc2: Timeout waiting for hardware interrupt.
mmc2: Timeout waiting for hardware interrupt.
mmc2: error -110 during resume (card was removed?)
In request_threaded_irq-> __setup_irq-> kthread_create
->kthread_create_on_node, the comment shows that SIGKILLed will
impact the kthread create, and return -EINTR.
This patch replace them with disable|enable_irq(), that will prevent
IRQs from being propagated to the sdhci driver.
Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
Li Jun [Wed, 3 Feb 2016 08:09:57 +0000 (16:09 +0800)]
MLK-12344-3 usb: chipidea: update power lost handling for gadget
After we put gadget disconnect and connect in id switch handling,
update power lost work accordingly.
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
(cherry picked from commit
fd49596eceeb4e61267f35fb74bf0c04056f2ed7)
Li Jun [Wed, 3 Feb 2016 07:54:52 +0000 (15:54 +0800)]
MLK-12344-1 usb: chipidea: otg: add vbus connect for gadget after sleep
During system sleep, if we switch otg role from host to gadget, because
the vbus is on both at system suspend and resume, we will lose vbus
connect event after system resume, thus, no chance to setup vbus session
for gadget so enumeration will not happen. This patch is to fix it by
adding vbus connect handling for this case.
Acked-by: Peter Chen <peter.chen@nxp.com>
Signed-off-by: Li Jun <jun.li@nxp.com>
(cherry picked from commit
bd54eea0f74c40fd801aa632787f05ec1b7407ea)
Dong Aisheng [Fri, 5 Feb 2016 09:58:16 +0000 (17:58 +0800)]
MLK-12391-1 mmc: sdhci-esdhc-imx: back to STROBE_DLL_CTRL_SLV_DLY_TARGET of 1
We see CRCs with SLV_DLY_TARGET of 7 during driver runtime suspend/resume
if disable sw auto retuning. Back to SLV_DLY_TARGET of 1 which is used
in 3.14 kernel and don't have such issue.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Fri, 29 Jan 2016 13:34:45 +0000 (21:34 +0800)]
MLK-12360-3 bcmdhd: fix bcmdhd blocks system suspend issue
When enable WIFi and connected with AP, the system is unable to suspend.
root@imx6qdlsolo:~# echo standby > /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.001 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
dhdsdio_isr: Enter
dhdsdio_isr: Enter
dhdsdio_isr: disable SDIO interrupts
Calling dhdsdio_dpc() from dhdsdio_isr
dhdsdio_dpc: Enter
dhdsdio_bussleep: request WAKE (currently SLEEP)
(Keypress still response here.... )
It's caused by Broadcom WiFi driver will keep handling SDIO irq even after
the driver is already suspended.
This weird behavior will block the MMC host suspend during its irq
synchronize operation in free_irq(), then the system suspend is blocked
too and hanged.
Add SDHCI_QUIRK2_SDIO_IRQ_THREAD for BCM WiFi to use kernel thread
to process sdio interrupts which won't block system suspend and process
freeze operation.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Tue, 26 Jan 2016 14:20:08 +0000 (22:20 +0800)]
MLK-12360-1 mmc: sdhci: add sdio thread irq support
Some special SDIO devices like Broadcom WiFi driver will keep handling
SDIO irq even after the driver is already suspended.
This weird behavior will block the MMC host suspend during its irq
synchronize operation in free_irq(), then the system suspend is blocked
too and hanged.
We add back sdio thread irq support for such WiFi driver to handle
SDIO irqs since the sdio thread is kernel thread which does not
block the process freeze operation during suspend.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Fri, 5 Feb 2016 11:42:57 +0000 (19:42 +0800)]
MLK-12077-4 dts: imx6: add cd-post property for BCM WiFi devices
BCM WiFi driver needs to take care of card detect by itself.
Using cd-post property to tell MMC core not detect card automatically
during host driver probe and post it untill client driver tells it to
do it.
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 14 Jan 2016 12:29:26 +0000 (20:29 +0800)]
MLK-12077-3 bcmdhd: fix bcmdhd system resume crash issue.
bcmdhd can't support removing host during suspend and
driver crash when detect card after resume due to no response
to CMD7.
It looks bcmdhd has a special requirement to enumerate card
by itself which is incompatible with current MMC core.
So implement post-cd feature to allow driver to detect card
as it wants, then we add back non-removable capability
to avoid MMC core to redetect card after resume.
root@imx6qdlsolo:~# echo standby > /sys/power/state
PM: Syncing filesystems ... done.
PM: Preparing system for standby sleep
Freezing user space processes ... (elapsed 0.001 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done.
PM: Entering standby sleep
evbug: Event. Dev: input3, Type: 0, Code: 0, Value: 1
evbug: Event. Dev: input2, Type: 0, Code: 0, Value: 1
PM: suspend of devices complete after 652.363 msecs
PM: suspend devices took 0.660 seconds
PM: late suspend of devices complete after 1.148 msecs
PM: noirq suspend of devices complete after 1.043 msecs
Disabling non-boot CPUs ...
CPU1: shutdown
Enabling non-boot CPUs ...
CPU1 is up
PM: noirq resume of devices complete after 0.534 msecs
PM: early resume of devices complete after 0.553 msecs
evbug: Event. Dev: input2, Type: 1, Code: 116, Value: 1
evbug: Event. Dev: input2, Type: 0, Code: 0, Value: 0
evbug: Event. Dev: input2, Type: 1, Code: 116, Value: 0
evbug: Event. Dev: input2, Type: 0, Code: 0, Value: 0
mmc1: error -110 during resume (card was removed?)
PM: resume of devices complete after 605.525 msecs
PM: resume devices took 0.610 seconds
PM: Finishing wakeup.
Restarting tasks ... done.
WARNING: driver bcmsdh_sdmmc did not remove its interrupt handler!
root@imx6qdlsolo:~# Unable to handle kernel NULL pointer dereference at virtual address
0000022c
pgd =
80004000
[
0000022c] *pgd=
00000000
Internal error: Oops: 17 [#1] PREEMPT SMP ARM
Modules linked in: bcmdhd evbug ov5647_camera_mipi mxc_mipi_csi mx6s_capture
CPU: 1 PID: 780 Comm: kworker/u4:4 Not tainted
4.1.15-01434-g70f4b36 #1310
Hardware name: Freescale i.MX7 Dual (Device Tree)
Workqueue: kmmcd mmc_rescan
task:
a974af80 ti:
a846e000 task.ti:
a846e000
PC is at _raw_spin_lock_irqsave+0x1c/0x5c
LR is at get_parent_ip+0x10/0x2c
pc : [<
8077b9d4>] lr : [<
8005207c>] psr:
60050093
sp :
a846fc20 ip :
0001001f fp :
a800b000
r10:
00000000 r9 :
00000001 r8 :
0000022c
r7 :
00000002 r6 :
0000022c r5 :
a0050013 r4 :
0000022c
r3 :
a974af80 r2 :
00000001 r1 :
a846fc44 r0 :
00000000
Flags: nZCv IRQs off FIQs on Mode SVC_32 ISA ARM Segment kernel
Control:
10c53c7d Table:
a951406a DAC:
00000015
Process kworker/u4:4 (pid: 780, stack limit = 0xa846e210)
Stack: (0xa846fc20 to 0xa8470000)
fc20:
00000000 a846fc50 a846fc44 80061808 00000000 000001dc 00000000 805037fc
fc40:
8d89d5ec 00000000 a974af80 80053e88 00000000 00000000 ab7293c0 00000000
fc60:
7f09c828 000000c9 7f09c828 a916a804 00000001 0001001f a800b000 7f0698a4
fc80:
a974afc8 00000001 00000000 00000000 00012ebc a974af80 00000001 80ad46c0
fca0:
a974af80 00000000 a8eeccc0 00000001 0001001f a846fd04 00000000 7f099440
fcc0:
a800b000 7f0699c4 a846fcdf 00000000 00000001 7f068834 a937c900 0105c688
fce0:
a846fd04 a8e20000 00000000 00000001 00000000 7f071f08 a846fd04 a80a0000
fd00:
ffffffff 00000000 ffffffff a8e20000 a8e20000 00000000 7f099440 00000000
fd20:
00000000 7f099440 a800b000 7f072f4c a974af80 00000000 00000000 80778564
fd40:
a846fd54 a9346550 80330028 00000001 a846e000 a8e20000 7f099440 00000000
fd60:
18005000 a8eeccc0 00000000 7f099440 a800b000 7f073744 a846fd8c 80052130
fd80:
a9273898 00000000 a800b000 a8e20000 7f099440 00000001 a8eec200 a9270000
fda0:
00000000 7f099440 a800b000 7f07cd3c 80b81100 8040003f a800b000 00000000
fdc0:
00000000 a8e20000 7f099440 a9270000 a9273000 a9270000 00000000 7f099440
fde0:
a800b000 7f02df4c 00000001 a8e20000 7f099440 a8eec200 00000000 a916e008
fe00:
00000000 a90bfb00 a800b000 7f074cbc a9270000 7f099440 a8e20000 00000000
fe20:
a8f81610 7f0765ec 7f0765b0 a8eeccc0 a855df40 7f069310 a916a800 a8eec200
fe40:
7f09b414 7f06a950 7f06a908 a8f81608 a8f81600 8050e8b8 a8f81608 7f09b414
fe60:
80b22c70 80379744 a974af80 a8f8163c a8f81608 803797d4 00000005 a81ce930
fe80:
a8f81608 8037923c a8f81608 a8f81608 80b93cf4 80376504 a846fea0 800e0e3c
fea0:
00000000 00000000 a8f81608 000000bd a833f000 00000000 00000000 8050ed04
fec0:
00000001 8050dd8c 400f8c0f a833f000 ffffff92 a833f000 a81ce600 8050de30
fee0:
8050ddbc a833f240 a833f1dc 80506048 a90bfb00 a833f240 a800b000 a81ce600
ff00:
00000000 800462f0 a81ce600 80043c94 00000000 a800b000 a90bfb18 a800b014
ff20:
a846e000 00000088 80b39379 a90bfb00 a800b000 8004654c 80ad4100 a800b164
ff40:
a90bfb00 00000000 a84856c0 a90bfb00 80046500 00000000 00000000 00000000
ff60:
00000000 8004b1e8 2df9acc7 00000000 b5f3ff89 a90bfb00 00000000 00000000
ff80:
a846ff80 a846ff80 00000000 00000000 a846ff90 a846ff90 a846ffac a84856c0
ffa0:
8004b10c 00000000 00000000 8000f568 00000000 00000000 00000000 00000000
ffc0:
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
ffe0:
00000000 00000000 00000000 00000000 00000013 00000000 ecd61557 f82769f5
[<
8077b9d4>] (_raw_spin_lock_irqsave) from [<
80061808>] (add_wait_queue+0x20/0x48)
[<
80061808>] (add_wait_queue) from [<
805037fc>] (__mmc_claim_host+0x58/0x1b0)
[<
805037fc>] (__mmc_claim_host) from [<
7f0698a4>] (sdioh_request_byte+0x1cc/0x2a4 [bcmdhd])
[<
7f0698a4>] (sdioh_request_byte [bcmdhd]) from [<
7f0699c4>] (sdioh_cfg_write+0x20/0x28 [bcmdhd])
[<
7f0699c4>] (sdioh_cfg_write [bcmdhd]) from [<
7f068834>] (bcmsdh_cfg_write+0x90/0xdc [bcmdhd])
[<
7f068834>] (bcmsdh_cfg_write [bcmdhd]) from [<
7f071f08>] (dhdsdio_clk_kso_enab+0x38/0x168 [bcmdhd])
[<
7f071f08>] (dhdsdio_clk_kso_enab [bcmdhd]) from [<
7f072f4c>] (dhdsdio_clk_devsleep_iovar+0xf4/0x5f4 [bcmdhd])
[<
7f072f4c>] (dhdsdio_clk_devsleep_iovar [bcmdhd]) from [<
7f073744>] (dhdsdio_bussleep+0x2f8/0x4dc [bcmdhd])
[<
7f073744>] (dhdsdio_bussleep [bcmdhd]) from [<
7f07cd3c>] (dhd_bus_stop+0x2e8/0x3f0 [bcmdhd])
[<
7f07cd3c>] (dhd_bus_stop [bcmdhd]) from [<
7f02df4c>] (dhd_detach+0x2a4/0x438 [bcmdhd])
[<
7f02df4c>] (dhd_detach [bcmdhd]) from [<
7f074cbc>] (dhdsdio_release+0x4c/0x1dc [bcmdhd])
[<
7f074cbc>] (dhdsdio_release [bcmdhd]) from [<
7f0765ec>] (dhdsdio_disconnect+0x3c/0xa0 [bcmdhd])
[<
7f0765ec>] (dhdsdio_disconnect [bcmdhd]) from [<
7f069310>] (bcmsdh_remove+0x3c/0x60 [bcmdhd])
[<
7f069310>] (bcmsdh_remove [bcmdhd]) from [<
7f06a950>] (bcmsdh_sdmmc_remove+0x48/0x60 [bcmdhd])
[<
7f06a950>] (bcmsdh_sdmmc_remove [bcmdhd]) from [<
8050e8b8>] (sdio_bus_remove+0x30/0xf8)
[<
8050e8b8>] (sdio_bus_remove) from [<
80379744>] (__device_release_driver+0x70/0xe4)
[<
80379744>] (__device_release_driver) from [<
803797d4>] (device_release_driver+0x1c/0x28)
[<
803797d4>] (device_release_driver) from [<
8037923c>] (bus_remove_device+0xd8/0x104)
[<
8037923c>] (bus_remove_device) from [<
80376504>] (device_del+0x10c/0x210)
[<
80376504>] (device_del) from [<
8050ed04>] (sdio_remove_func+0x1c/0x28)
[<
8050ed04>] (sdio_remove_func) from [<
8050dd8c>] (mmc_sdio_remove+0x40/0x70)
[<
8050dd8c>] (mmc_sdio_remove) from [<
8050de30>] (mmc_sdio_detect+0x74/0x100)
[<
8050de30>] (mmc_sdio_detect) from [<
80506048>] (mmc_rescan+0xb8/0x314)
[<
80506048>] (mmc_rescan) from [<
800462f0>] (process_one_work+0x120/0x330)
[<
800462f0>] (process_one_work) from [<
8004654c>] (worker_thread+0x4c/0x480)
[<
8004654c>] (worker_thread) from [<
8004b1e8>] (kthread+0xdc/0xf4)
[<
8004b1e8>] (kthread) from [<
8000f568>] (ret_from_fork+0x14/0x2c)
Code:
f10c0080 e3a00001 ebe359b1 f594f000 (
e1943f9f)
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Thu, 21 Jan 2016 10:15:14 +0000 (18:15 +0800)]
MLK-12077-2 bcmdhd: fix module re-load crash issue
Fix the following crash during module removing.
root@imx6qdlsolo:~# modprobe -r bcmdhd
dhd_prot_ioctl : bus is down. we have nothing to do
dhd_wlfc_deinit():3271, ampdu_hostreorder get failed Err = -1
dhd_prot_ioctl : bus is down. we have nothing to do
dhd_wlfc_deinit():3294 failed to enable/disable bdcv2 tlv signaling Err = -1
dhd_detach(): thread:dhd_watchdog_thread:34f terminated OK
dhd_dpc_thread: Unexpected up_cnt 0
dhd_detach(): thread:dhd_dpc:350 terminated OK
CFG80211-ERROR) wl_event_handler : was terminated
wl_destroy_event_handler(): thread:wl_event_handler:34e terminated OK
------------[ cut here ]------------
Kernel BUG at
800e0f40 [verbose debug info unavailable]
Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
Modules linked in: bcmdhd(-) evbug ov5647_camera_mipi mxc_mipi_csi mx6s_capture [last unloaded: bcmdhd]
CPU: 0 PID: 854 Comm: modprobe Not tainted
4.1.15-01434-g70f4b36 #1311
Hardware name: Freescale i.MX7 Dual (Device Tree)
task:
a97fc4c0 ti:
a912e000 task.ti:
a912e000
PC is at kfree+0x188/0x18c
LR is at wiphy_unregister+0x17c/0x204
pc : [<
800e0f40>] lr : [<
80712184>] psr:
400d0013
sp :
a912fe30 ip :
00080353 fp :
a8647970
r10:
7f219440 r9 :
a9420140 r8 :
ac75fa60
r7 :
a9420000 r6 :
00000000 r5 :
00000000 r4 :
a9420140
r3 :
00000000 r2 :
00000000 r1 :
07ffffff r0 :
00353443
Flags: nZcv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
Control:
10c53c7d Table:
a940c06a DAC:
00000015
Process modprobe (pid: 854, stack limit = 0xa912e210)
Stack: (0xa912fe30 to 0xa9130000)
fe20:
7f219440 a9420140 00000000 00000000
fe40:
a9420000 a94203a0 a9420140 7f219440 a8647970 80712184 00000000 7f219440
fe60:
a8647970 805e1994 7f21d5d8 a8500000 a8574840 a94203a0 00000000 a8647000
fe80:
a94203a0 7f1cb9ec 00000000 00000000 a8644000 a8647000 a8644000 7f21d5d8
fea0:
7f219440 7f1adf28 00000001 a956d000 7f219440 a9770440 00000000 8000f644
fec0:
a912e000 00000000 002691a0 7f1f4cbc a8644000 7f219440 a956d000 00000000
fee0:
00000081 7f1f65ec 7f1f65b0 a9770b40 a9770b00 7f1e9310 a96f6000 a9770440
ff00:
7f21b414 7f1ea950 7f1ea908 a8fdba08 a8fdba00 8050ee74 a8fdba08 7f21b414
ff20:
a8fdba3c 80379744 7f21b414 a8fdba08 7f21b414 80379ed4 7f21b414 002691dc
ff40:
002691a0 803794a4 7f21b478 7f1ff6bc 7f1ff690 8008fec0 00000000 646d6362
ff60:
c0006468 00000000 a97fc8b8 00000000 a97fc8b8 00000000 80b41528 a97fc4c0
ff80:
002691a0 80049c60 a8576540 a912e000 8000f644 0012ffb0 00000006 002691a0
ffa0:
002691dc 8000f4c0 002691a0 002691dc 002691dc 00000800 76e72f78 00000000
ffc0:
002691a0 002691dc 002691a0 00000081 00000001 00000000 00000001 002691a0
ffe0:
76e388a0 7ec089f4 0001f008 76e388ac 600d0010 002691dc 00656e6f 635f6c77
[<
800e0f40>] (kfree) from [<
80712184>] (wiphy_unregister+0x17c/0x204)
[<
80712184>] (wiphy_unregister) from [<
7f1cb9ec>] (wl_free_wdev+0x40/0x148 [bcmdhd])
[<
7f1cb9ec>] (wl_free_wdev [bcmdhd]) from [<
7f1adf28>] (dhd_detach+0x280/0x438 [bcmdhd])
[<
7f1adf28>] (dhd_detach [bcmdhd]) from [<
7f1f4cbc>] (dhdsdio_release+0x4c/0x1dc [bcmdhd])
[<
7f1f4cbc>] (dhdsdio_release [bcmdhd]) from [<
7f1f65ec>] (dhdsdio_disconnect+0x3c/0xa0 [bcmdhd])
[<
7f1f65ec>] (dhdsdio_disconnect [bcmdhd]) from [<
7f1e9310>] (bcmsdh_remove+0x3c/0x60 [bcmdhd])
[<
7f1e9310>] (bcmsdh_remove [bcmdhd]) from [<
7f1ea950>] (bcmsdh_sdmmc_remove+0x48/0x60 [bcmdhd])
[<
7f1ea950>] (bcmsdh_sdmmc_remove [bcmdhd]) from [<
8050ee74>] (sdio_bus_remove+0x30/0xf8)
[<
8050ee74>] (sdio_bus_remove) from [<
80379744>] (__device_release_driver+0x70/0xe4)
[<
80379744>] (__device_release_driver) from [<
80379ed4>] (driver_detach+0xac/0xb0)
[<
80379ed4>] (driver_detach) from [<
803794a4>] (bus_remove_driver+0x4c/0xa0)
[<
803794a4>] (bus_remove_driver) from [<
7f1ff6bc>] (dhd_module_cleanup+0x2c/0x3c [bcmdhd])
[<
7f1ff6bc>] (dhd_module_cleanup [bcmdhd]) from [<
8008fec0>] (SyS_delete_module+0x174/0x1b8)
[<
8008fec0>] (SyS_delete_module) from [<
8000f4c0>] (ret_fast_syscall+0x0/0x3c)
Code:
e1a03007 e28dd004 e8bd4ff0 eafffd59 (
e7f001f2)
---[ end trace
49de84cadd3d030b ]---
Segmentation fault
root@imx6qdlsolo:~#
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Dong Aisheng [Tue, 5 Jan 2016 10:08:31 +0000 (18:08 +0800)]
MLK-12077-1 bcmdhd: add Broadcom bcmdhd engineering release for 4.1 kernel
Broadcom bcmdhd engineering release for 4.1 kernel
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Han Xu [Wed, 10 Feb 2016 22:10:54 +0000 (16:10 -0600)]
MLK-12395: mtd: gpmi: add debugfs flag to indicate NAND driver use new raw access mode
For backward compatibility, kobs-ng need to know if the driver use
legacy raw mode or new bch layout raw mode, add a new flag in debugfs to
indicate the raw access mode.
Signed-off-by: Han Xu <han.xu@nxp.com>
Han Xu [Tue, 9 Feb 2016 20:33:41 +0000 (14:33 -0600)]
MLK-12394-2: mtd: gpmi: update NAND new raw page access functions
support the bch layout with dedicate ecc for meta
Signed-off-by: Han Xu <han.xu@nxp.com>
Han Xu [Wed, 27 Jan 2016 22:41:37 +0000 (16:41 -0600)]
MLK-12394-1: Revert "MLK-12309: mtd: gpmi: workaround for kernel 4.1 NAND boot"
This reverts commit
76babd7d075c9c22a27e6bc272bb57b6327cfbd3.
Signed-off-by: Han Xu <han.xu@nxp.com>
Adrian Alonso [Fri, 5 Feb 2016 20:26:33 +0000 (14:26 -0600)]
MLK-12392: arm: imx6q: fix lpddr2 build error if SMP is disabled
Fix build error if CONFIG_SMP is disabled:
arch/arm/mach-imx/busfreq_lpddr2.c: In function ‘update_lpddr2_freq_smp’:
arch/arm/mach-imx/busfreq_lpddr2.c:236:67: error: ‘me’ undeclared (first
use in this function)
printk(KERN_DEBUG "Bus freq set to %d done! cpu=%d\n", ddr_rate, me);
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Frank Li <Frank.Li@nxp.com>
Shengjiu Wang [Thu, 4 Feb 2016 07:07:57 +0000 (15:07 +0800)]
MLK-12374: ASoC: fsl_sai: Change the dev_warn to dev_dbg
When audio stop, it will first stop dma, then stop cpu_dai.
If there is delay between dma stop and cpu dai stop, there
will be underrun error, the print will cost time, then will
cause another underrun error, it is a infinite loop.
Which will cause the cpu dai can't stop.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Adrian Alonso [Thu, 21 Jan 2016 23:38:22 +0000 (17:38 -0600)]
MLK-12311: ARM: imx: imx6q lpddr2 busfreq single channel support
Add imx6q lpddr2 busfreq support for single channel memory
types, perform ddr frequency scaling taking into account if
ddr uses single or dual channel mode by checking
MMDC0_MDMISC[LPDDR2_2CH] state.
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Adrian Alonso [Mon, 18 Jan 2016 23:34:29 +0000 (17:34 -0600)]
MLK-12307: ARM: imx: imx6q arm2 use lpddr2 in 2 channel fixed mode
Set usable memory to 2 channel fixed mode
MMDC0 0x80000000 512M
MMDC1 0x10000000 512M
MMDC 2 channel fixed mode is enabled by setting
BOOT_CFG3[5:4] = 01 for Fixed 2x32 map
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Adrian Alonso [Thu, 7 Jan 2016 01:05:19 +0000 (19:05 -0600)]
MLK-12306: ARM: imx: imx6 lpddr2 two channel suspend support
Add lpddr2 two channel suspend support
- save/restore mmdc io pads for channel 2
- Set mmdc channe 2 on self refresh and auto power saving mode
only if mmdc channel 2 is enabled
- Perform a reset fifo on resume_io when restoring mmdc io pads
Signed-off-by: Adrian Alonso <adrian.alonso@nxp.com>
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
(cherry picked from commit
2e5982e82edc8fc7de0aebc8894a9f0a41e01965)
Adrian Alonso [Mon, 25 Jan 2016 21:20:06 +0000 (15:20 -0600)]
MLK-12023-3: arm: imx6q: add lpddr2 bus frequency support
Add busfreq support for imx6q lpddr2 pop target platform
DDR scaling support for low bus frequency and high bus
frequency mode (24Mhz/400Mhz)
Update Copyrigth year info
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit
91cff834d4f5d065fe8e7e60c1c1799f00990654)
Adrian Alonso [Mon, 25 Jan 2016 20:54:22 +0000 (14:54 -0600)]
MLK-12023-2: arm: imx6: refactor wfe ddr3 freq change low power mode
Refactor wfe_ddr3_freq_change to wfe_smp_freq_change in order
to reuse enter/exit wfe standby low power mode.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit
4d92e1f5bab3480cb145821dce27960887e7a3ea)
Adrian Alonso [Thu, 10 Dec 2015 19:17:28 +0000 (13:17 -0600)]
MLK-12023-1: ARM: dts: imx: imx6q add busfreq device node label
Add busfreq device node label to allow override busfreq
properties on machine device tree descriptor
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit
fd8faeb7a40fc2f9fb331d6ca6a60b64c95d7ee6)
Adrian Alonso [Wed, 18 Nov 2015 15:26:13 +0000 (09:26 -0600)]
MLK-11890: ARM: dts: imx: add imx6q arm2 lpddr2 target
Add device tree for imx6q arm2 lpddr2 pop target platform
Enable common imx6q features, uart, usb, usdhc, fec.
Set DDR max frequency to 400Mhz which is the clock rate
for MT42L128M64D2-25
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit
06783aba18bda32f25107485891fc4bafc609abf)
Adrian Alonso [Tue, 10 Nov 2015 23:43:18 +0000 (17:43 -0600)]
MLK-11889: arm: imx6: low power mode support for imx6q lpddr2
Add low power suspend mode support for imx6q lpddr2
Save/restore mmdc iomux pads relevant to dual channel
lpddr2 memory when enter/exit low power suspend mode.
Remove unused macros in suspend-imx6.
Signed-off-by: Adrian Alonso <aalonso@freescale.com>
Signed-off-by: Anson Huang <b20788@freescale.com>
(cherry picked from commit
5ebac6d425b859c51d570489d03684e0c976ef60)
Gao Pan [Mon, 14 Dec 2015 13:43:55 +0000 (21:43 +0800)]
MLK-12013 arm: imx: set eim_slow clk to 132Mhz only for MXC_CPU_IMX6Q
A patch(set imx6qp eim_slow to 132Mh) was pushed to eliminate
the weim nor read performance drop cause by the IP difference
between imx6q & imx6qp.
However, the patch impacted the performance of imx6dl-ard.
In succession, AXI clk is set to 270M which exceeds the max
value(264M).
This patch sets eim_slow to 132M only for MXC_CPU_IMX6Q. So
the performance difference between imx6q & imx6qp decreases
while no impact for imx6dl-ard.
please see the following summary of weim nor read performance.
clk(performance) 6q-sabreauto 6qp-sabreauto 6dl-ard
imx_3.10 132M(18.9MB/s) —— 135M(19.1MB/s)
imx_3.14.y 132M(18.9MB/s) 132M(16.8MB/s) 135M(19.1MB/s)
Signed-off-by: Gao Pan <b54642@freescale.com>
(cherry picked from commit
f19e9899eacddb5343e7a7d476a500cd4551dffe)
Teo Hall [Thu, 21 Jan 2016 19:36:02 +0000 (13:36 -0600)]
MLK-11262-5: ARM: imx: Change A7 MU ready timing
Change when A7 signal M4 to make sure busfreq is
always up when the M4 send high bus release.
This prevents race condition for Low Power Demo
Signed-off-by: Teo Hall <teo.hall@nxp.com>
Shengjiu Wang [Mon, 1 Feb 2016 06:44:44 +0000 (14:44 +0800)]
MLK-12372: ASoC: fsl_asrc: fix dma task timeout after suspend/resume
commit
743cead0f8c4ac6311ffb500efd6146c40124310 is not a complete fix.
There is low possibility that this issue still occur.
Last commit add init_completion() in the suspend function, but if the
dma callback function is called after convert error, the complete is
done, the init_completion will not be called, so the complete state is
not correct in the next conversion.
This patch is to move init_completion to the beginning of conversion
to fix the issue.
Signed-off-by: Shengjiu Wang <shengjiu.wang@freescale.com>
Fugang Duan [Mon, 1 Feb 2016 08:10:44 +0000 (16:10 +0800)]
MLK-12370 ARM: dts: imx7d-12x12-lpddr3-arm2: disable sim1 node in flexcan dts file
The sim1 has pin conflicts with flexcan1,flexcan2 and sai1.
By default, imx7d 12x12 lpddr3 arm2 default dts enable sim1 node
and disable flexcan1, flexcan2, sai1 nodes.
The patch do two things:
- disable sim1 node in extended flexcan dts file
- remove redundant sim1 node in default dts file
Signed-off-by: Fugang Duan <B38611@freescale.com>
Dan Douglass [Thu, 20 Feb 2014 17:25:56 +0000 (11:25 -0600)]
MLK-12343 MX6SL-EVK missing hardware random number generator.
ENGR00292341 imx6sl hwrng
Add hwrng support for i.MX6SL.
1. Add RNG driver. This driver originated as fsl-rngc.c. It
has been modified to support device tree. The name has been
changed since it supports both b and c variants of RNG.
2. Added clock and compatible info to the device tree data.
3. Added the entry in the options in the Kconfig for hwrng.
(cherry picked from commit
1f3f2c0647b7319c4e23293a61512e4191593513)
[<vicki.milhoan@freescale.com>: Edited to apply to 3.14]
Signed-off-by: Dan Douglass <dan.douglass@freescale.com>
Signed-off-by: Victoria Milhoan <vicki.milhoan@freescale.com>
Sandor Yu [Wed, 27 Jan 2016 08:00:37 +0000 (16:00 +0800)]
MLK-12364-2: DTS: Add pmic 5v supply to i.MX6qdl sabresd
Add pmic 5v supply to i.MX6qdl sabresd dts.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Sandor Yu [Wed, 27 Jan 2016 07:58:43 +0000 (15:58 +0800)]
MLK-12364-1: HDMI: Add hdmi power supply management
Add HDMI power supply management in hdmi driver.
Signed-off-by: Sandor Yu <Sandor.yu@nxp.com>
Richard Zhu [Mon, 1 Feb 2016 05:05:21 +0000 (13:05 +0800)]
MLK-12358: ARM: dts: imx7d-val-m4: disable sim1 and reg_can2_3v3
- Disable the sim1 on imx7d val board, because that there
are pin conflictions between sim1 and flexcan2 used by M4.
- Disable can2 is not enough, since the reg_can2_3v3 will be
turned off by the regulator framework and that will impact
can2 in m4 side even if can2 driver disabled in A7 side.
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Tested-by: Ge Wang <G.Wang@nxp.com>
Robin Gong [Mon, 1 Feb 2016 03:24:58 +0000 (11:24 +0800)]
MLK-12350: ARM: anatop: disable PU regulator on i.mx6qp before suspend
To eliminate the power number, need turn off PU regulator before suspend
since it's turned on always on i.mx6qp.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Anson Huang [Fri, 29 Jan 2016 05:59:20 +0000 (13:59 +0800)]
MLK-12349 ARM: imx: skip RBC workaround for standby mode on i.MX7D
For standby mode, RBC workaround is NOT necessary as ARM platform
is NOT powered down;
Correct GIC register offset(0x1000) for disabling distributor.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Richard Zhu [Wed, 20 Jan 2016 08:13:28 +0000 (16:13 +0800)]
MLK-12278 pci: imx: turn off pcie clks when link is down
In order to save power assumption, turn off the pcie clks
when there is no pcie link up at all.
add the option CONFIG_PCI_IMX6_COMPLIANCE_TEST, enable it
when the image is used to do the pcie compliance tests
Signed-off-by: Richard Zhu <hongxing.zhu@nxp.com>
Dan Douglass [Thu, 28 Jan 2016 20:48:52 +0000 (14:48 -0600)]
MLK-12339 Security: Missing caam support.
Added CAAM to the device tree for imx6sx in imx6sx.dtsi.
Signed-off-by: Dan Douglass <dan.douglass@nxp.com>
Anson Huang [Tue, 26 Jan 2016 07:53:28 +0000 (15:53 +0800)]
MLK-12262-6 ARM: imx: enable memory power down for i.MX7D TO1.1
Enable memory power down for i.MX7D TO1.1 to save power, TO1.0
has issue of entering DSM by mistake, so it is disabled as a
solution, now that this issue is fixed on TO1.1, enable it.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Wed, 27 Jan 2016 02:58:21 +0000 (10:58 +0800)]
MLK-12262-5 ARM: imx: add RBC workaround for i.MX7D DSM
Same as low power idle, during GPC shutting down ARM core,
interrupts must be hold until the process done, apply RBC
workaround and disable GIC during GPC powering down ARM
core.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Tue, 26 Jan 2016 07:41:01 +0000 (15:41 +0800)]
MLK-12262-4 ARM: imx: fix low power idle issue on i.MX7D TO1.1
For low power idle with ARM power gated, per hardware requirement,
there must be no interrupt coming during the power down
process of ARM core, so RBC counter is enabled to hold interrupts
and GIC must be disabled at the moment;
The hardware design team recommends ~240us is required during ARM
core power down, so we update the RBC counter value to 8(~240us);
Update GPC SCU and CPU power up/down timing according to design
team's recommendation.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Tue, 26 Jan 2016 07:37:15 +0000 (15:37 +0800)]
MLK-12262-3 ARM: imx: reduce DDR3 normal frequency to 400MHz for i.MX7D TO1.1
i.MX7D TO1.1 only supports DDR3 running at max frequency of 400MHz,
update busfreq driver accordingly.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Mon, 25 Jan 2016 14:19:03 +0000 (22:19 +0800)]
MLK-12262-2 ARM: imx: adjust LPDDR2 frequency scale flow for i.MX7D TO1.1
LPDDR2 frequency scale flow needs to be updated for i.MX7D
TO1.1 due to the CKE timing change.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Anson Huang [Mon, 25 Jan 2016 14:16:48 +0000 (22:16 +0800)]
MLK-12262-1 ARM: imx: enable ddr auto self-refresh for i.MX7D
Enable DDR auto self-refresh for i.MX7D, when doing DDR
frequency scale or suspend/resume, DDR self-refresh will
be disabled, this is incorrect for saving power, enable it
for all these scenarios.
Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
Bai Ping [Wed, 27 Jan 2016 07:43:39 +0000 (15:43 +0800)]
MLK-12328 cpufreq: imx: put the cpufreq policy after used
The cpufreq_cpu_get() and cpufreq_cpu_put() should be called in
pairs. Otherwise, system will dump when enabling lock debug config.
Signed-off-by: Bai Ping <ping.bai@nxp.com>
Robin Gong [Thu, 14 Jan 2016 03:40:40 +0000 (11:40 +0800)]
MLK-12256: firmware: imx: sdma: fix bugs in uart script code
Fix two below bugs in script:
-- check error flag in FIFO data, thus dma will stop once the error happen
when real HW error triggered by switch boundrate, overun,etc. Actrually,
no need to check in script since UART driver will handle this.
-- clear other status bit in USR1.
Signed-off-by: Robin Gong <yibin.gong@nxp.com>
Anson Huang [Fri, 6 Nov 2015 14:31:25 +0000 (22:31 +0800)]
MLK-11830 ARM: dts: add tcm address info for imx7d 12x12 lpddr3 board
When M4 is enabled, Linux has to do save/restore for M4 TCM during
suspend/resume, dtb should pass the TCM address for kernel, without
this TCM info, kernel will boot up fail:
------------[ cut here ]------------
WARNING: CPU: 0 PID: 1 at arch/arm/mach-imx/pm-imx7.c:1030 imx7d_pm_init+0x58/0)
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Not tainted
3.14.52-02791-g1babdb1-dirty #2093
[<
80014b40>] (unwind_backtrace) from [<
80011798>] (show_stack+0x10/0x14)
[<
80011798>] (show_stack) from [<
807199ec>] (dump_stack+0x7c/0xbc)
[<
807199ec>] (dump_stack) from [<
80032d78>] (warn_slowpath_common+0x6c/0x88)
[<
80032d78>] (warn_slowpath_common) from [<
80032e30>] (warn_slowpath_null+0x1c/)
[<
80032e30>] (warn_slowpath_null) from [<
80a09760>] (imx7d_pm_init+0x58/0x67c)
[<
80a09760>] (imx7d_pm_init) from [<
80a08d3c>] (imx7d_init_machine+0x3c/0xe4)
[<
80a08d3c>] (imx7d_init_machine) from [<
809e52e4>] (customize_machine+0x20/0x4)
[<
809e52e4>] (customize_machine) from [<
800089bc>] (do_one_initcall+0xf8/0x144)
[<
800089bc>] (do_one_initcall) from [<
809e2c4c>] (kernel_init_freeable+0x138/0x)
[<
809e2c4c>] (kernel_init_freeable) from [<
807159b8>] (kernel_init+0x8/0xf0)
[<
807159b8>] (kernel_init) from [<
8000e580>] (ret_from_fork+0x14/0x34)
---[ end trace
fdb0885876d7ac0b ]---
Unable to handle kernel NULL pointer dereference at virtual address
00000000
pgd =
80004000
[
00000000] *pgd=
00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W
3.14.52-02791-g1babdb1-dir3
task:
a8084000 ti:
a8090000 task.ti:
a8090000
PC is at memcpy+0x48/0x330
LR is at imx7d_pm_init+0xd0/0x67c
pc : [<
8028e768>] lr : [<
80a097d8>] psr:
20000013
sp :
a8091e8c ip :
00000000 fp :
00000000
r10:
a8090030 r9 :
0000010b r8 :
809e52c4
r7 :
80ab9380 r6 :
80ab9380 r5 :
80abb5a4 r4 :
80a411cc
r3 :
00080000 r2 :
00007f80 r1 :
00000000 r0 :
a8140000
Flags: nzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment kernel
Control:
10c53c7d Table:
8000406a DAC:
00000015
Process swapper/0 (pid: 1, stack limit = 0xa8090238)
Signed-off-by: Anson Huang <Anson.Huang@freescale.com>
(cherry picked from commit
c3dc7c16660200f3de8cbbdd1f215ae6a779a039)
Russell King [Sun, 18 Oct 2015 16:51:25 +0000 (17:51 +0100)]
MLK-12312: CAAM hash algorithms fail registration during initialization
Fix cherry-picked from
5ec908319ab53072d3a2188e62ed2e5d7b846951
crypto: caam - only export the state we really need to export
Avoid exporting lots of state by only exporting what we really require,
which is the buffer containing the set of pending bytes to be hashed,
number of pending bytes, the context buffer, and the function pointer
state. This reduces down the exported state size to 216 bytes from
576 bytes.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>