summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-03-31MLK-12277 media: camera: add check for width and height against 0rel_imx_4.1.15_1.1.0_gaRobby Cai
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> (cherry picked from commit 2c1fa9347a50e05c79b76de35f84192af796f677)
2016-03-31MLK-12573 ARM: dts: set LCD_nPWREN low to make VLCD_3V3 output 3V3.Robby Cai
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> (cherry picked from commit c70398a0b2e860d0bd9478d956d077eff8e7ea4f)
2016-03-28MLK-10934 mtd: use memcpy to replace the memcpy_fromioHuang Shijie
During the read of NOR, the kernel actually calls the inline_map_copy_from() to read the data out. And inline_map_copy_from() will use the memcpy_fromio() to do the real job. The memcpy_fromio macro maps _memcpy_fromio() in the current code. But the _memcpy_fromio() will use readb() to do the copy work one byte by one byte. This makes the read performance of NOR very slow(about 2~3MB/s). A similiar discussion could be found in: http://lists.infradead.org/pipermail/linux-arm-kernel/2009-November/003860.html This patch replace the memcpy_fromio with memcpy which is optimized by the kernel. The following is the result from mtd_speedtest with M29W256GL7AN6E: ================================================= mtd_speedtest: MTD device: 2 mtd_speedtest: not NAND flash, assume page size is 512 bytes. mtd_speedtest: MTD device size 4194304, eraseblock size 131072, page size 512, count of eraseblocks 32, pages per eraseblock 256, OOB size 0 mtd_speedtest: testing eraseblock write speed mtd_speedtest: eraseblock write speed is 845 KiB/s mtd_speedtest: testing eraseblock read speed mtd_speedtest: eraseblock read speed is 19504 KiB/s mtd_speedtest: testing page write speed mtd_speedtest: page write speed is 845 KiB/s mtd_speedtest: testing page read speed mtd_speedtest: page read speed is 19140 KiB/s mtd_speedtest: testing 2 page write speed mtd_speedtest: 2 page write speed is 846 KiB/s mtd_speedtest: testing 2 page read speed mtd_speedtest: 2 page read speed is 19320 KiB/s mtd_speedtest: Testing erase speed mtd_speedtest: erase speed is 233 KiB/s mtd_speedtest: Testing 2x multi-block erase speed mtd_speedtest: 2x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 4x multi-block erase speed mtd_speedtest: 4x multi-block erase speed is 224 KiB/s mtd_speedtest: Testing 8x multi-block erase speed mtd_speedtest: 8x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 16x multi-block erase speed mtd_speedtest: 16x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 32x multi-block erase speed mtd_speedtest: 32x multi-block erase speed is 225 KiB/s mtd_speedtest: Testing 64x multi-block erase speed mtd_speedtest: 64x multi-block erase speed is 224 KiB/s mtd_speedtest: finished ================================================= (cherry-picked from: f1e5914ffd82d5326cbd30507d4f37d02a0da099) Signed-off-by: Huang Shijie <b32955@freescale.com>
2016-03-25MGS-1678 [#2269] memleak in GPU driver sysfs interfacegan
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> (cherry picked from commit bf8499286426bd48f00e83a7e794b2309da502bc)
2016-03-25MA-7715 fix GPU kernel panic reported by android CTSRichard Liu
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)
2016-03-25MGS-1630 5.0.11.p8 driver can't pass build with kernel 4.1 on Android M6.0Richard Liu
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)
2016-03-21MLK-12466 ARM: dts: imx6ul-14x14-evk-usb-certi: add USB certification dtsPeter Chen
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> (cherry picked from commit e4a5f2e763d5c9df8b97b01ee38879a9bee66f0d)
2016-03-17usb: chipidea: add system interface for ttctrl.tthaPeter Chen
In chipidea IP RTL, there is a very limited design for siTD, the detail like below: There is no Max Packet Size at siTD, so it uses one constant for both Max Packet Size for packet and the packet size for the last transaction when considering schedule. If the ttctrl.ttha does not match against Hub Address field in siTD, this constant is 188 bytes, else this constant is 1023 bytes. If the ttctrl.ttha is non-zero value, RTL will use 188 as this constant, so it will lose the data if the packet size is larger than 188 bytes, eg, if we playback a wav which format is 48khz, 16 bits, 2 channels, the packet size will be 192bytes, but the controller will only send 188 bytes for this packet, the noise will be heared using USB audio card. The use case is single transaction, but higher frame rate. If the ttctr.ttha is zero value, we can send 1023 bytes within one transaction, but the controller will not accept the coming tranaction if it considers the schedule time is less than 1023 bytes. So the limitation is we can't schedule as many as transactions within frame. If the total bytes is already 256 bytes for previous transactions within frame, it can't accept another transaction. The use case is multiple transactions, but less frame rate. Signed-off-by: Peter Chen <peter.chen@kernel.org> Signed-off-by: Peter Chen <peter.chen@nxp.com> (cherry picked from commit 5e07ea7f812f2216263da2acd4f5e677de97fd62)
2016-03-17doc: usb: ci-hdrc-usb2: add property non-zero-ttctrl-tthaPeter Chen
If this property is not set, the max packet size is 1023 bytes, and if the total of packet size for pervious transactions are more than 256 bytes, it can't accept any transactions within this frame. The use case is single transaction, but higher frame rate. If this property is set, the max packet size is 188 bytes, it can handle more transactions than above case, it can accept transactions until it considers the left room size within frame is less than 188 bytes, software needs to make sure it does not send more than 90% maximum_periodic_data_per_frame. The use case is multiple transactions, but less frame rate. Signed-off-by: Peter Chen <peter.chen@kernel.org> Signed-off-by: Peter Chen <peter.chen@nxp.com> (cherry picked from commit 7f3ee45c71d27ffaf1fb11f002b414ec9a323382)
2016-03-17Revert "usb: chipidea: imx: enable CI_HDRC_SET_NON_ZERO_TTHA"Peter Chen
This reverts commit e765bfb73ff7. In the most of cases, we only use one transaction per frame and the frame rate may be high, If the platforms want to support multiple transactions but less frame rate cases like [1] and [2], it can set "non-zero-ttctrl-ttha" at dts. [1] http://www.spinics.net/lists/linux-usb/msg123125.html [2] http://www.spinics.net/lists/linux-usb/msg118679.html Signed-off-by: Peter Chen <peter.chen@kernel.org> Signed-off-by: Peter Chen <peter.chen@nxp.com> (cherry picked from commit 9e1a14ec6dfe34ae92e9754bbb1a5c470acbcdf1)
2016-03-15MLK-12556 dts: i.mx6ul: configure the CMA region by defaultJason Liu
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>
2016-03-11crypto: testmgr - Disable rfc4543 testHerbert Xu
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>
2016-03-11 MLK-12475 CAAM: sg pointer updated instead of local copyDan Douglass
Correct error in CAAM driver port. dma_map_sg_chained() had a patch applied to traverse the sg list using a local copy to prevent changing the value of the passed in sg list pointer. Signed-off-by: Dan Douglass <dan.douglass@nxp.com>
2016-03-09MLK-12496 bcmdhd: update driver to Broadcom official released version 141.88Dong Aisheng
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> (cherry picked from commit 934f70e3af6af4e887a2c3027e19db2122efd1cb)
2016-03-04MLK-12478-2 dts: imx7d-lpddr3-arm2: add lpsr mode state for flexcan pinsDong Aisheng
add lpsr mode state for flexcan pins Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> (cherry picked from commit 535699f47fbd7fb22a435ca2047560ee20687392)
2016-03-04MLK-12478-1 can: flexcan: add LPSR mode supportDong Aisheng
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> (cherry picked from commit c26587d5ba9e30fce318c2fea516e9e4a6bde9ca)
2016-03-04ASoC: cs42xx8: fix the noise in the right dac channel with mono playbackZidan Wang
When playback mono wav with record in background, there will be some nosie in the right dac channel. It seems that the ADC data has been routed to the dac channel. The cs42888 have 8 dac channels, it's appropriate to mute the unused dac channels, and the noise will disappear. Steps to reproduce this issue: arecord -D hw:0,0 -f S16_LE -r 48000 -c 1 a.wav & aplay -Dhw:0,0 audio48k16M.wav Signed-off-by: Zidan Wang <zidan.wang@freescale.com> Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 1f1e60c9cdd573be271130e44a23efed48e0578d)
2016-03-02MLK-12462 mmc: sdhci-esdhc-imx: only force remove for available cardsDong Aisheng
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> (cherry picked from commit 3c5798c62efeac08be34211eaac7c5467cf62894)
2016-03-02MLK-12481 pci: imx: turn off pcie clks when link downRichard Zhu
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> (cherry picked from commit 841b5c2c6890deebda63ddc119d201b700302262)
2016-03-02Revert "mmc: block: don't use parameter prefix if built as module"Ulf Hansson
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)
2016-03-02MLK-12480 dts: imx7d-12x12-lpddr3-arm2: remove extended enet dts fileFugang Duan
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>
2016-03-01MLK-12462-2 dts: imx: add pm-ignore-notify for WiFi cardDong Aisheng
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>
2016-03-01MLK-12462-1 mmc: core: add MMC_PM_IGNORE_PM_NOTIFY featureDong Aisheng
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>
2016-03-01MA-7685 [#2124] Fix some remaining DEQP EGL CTS failures on GC400TRichard Liu
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> (cherry picked from commit cc78790048a81de6c218c09766277ef3be34ffd0)
2016-03-01MLK-11438-4 lcdif: enable lpsr modeRobby Cai
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
2016-03-01MLK-12457 dts: imx7d-12x12-lpddr3-arm2: correct pwm1 pinctrl settingsFancy Fang
The pwm1's pin belongs to lpsr iomux. So this should be corrected. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit 94f87fc66f354dea8537d360732612ac5d6d65e6)
2016-02-29MLK-12454 ARM: dts: imx7d-12x12-lpddr3-arm2: add adc supportHaibo Chen
Add ADC support for imx7d-12x12-lpddr3-arm2 board. Signed-off-by: Haibo Chen <haibo.chen@nxp.com>
2016-02-26MLK-11472 sim: imx: set sim1 IOMUX to default stateGao Pan
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>
2016-02-26MLK-11405 spi: imx : sets spi IOMUX to default stateGao Pan
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>
2016-02-26MLK-12456 ARM: dts : add spi1 IOMUX sleep stateGao Pan
Add spi1 IOMUX sleep state in imx7d-12x12-lpddr3-arm2.dts. Signed-off-by: Gao Pan <pandy.gao@nxp.com>
2016-02-24MLK-12399: ARM: imx: imx6q: lpddr2 busfreq audio operation supportAdrian Alonso
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)
2016-02-24MLK-12443 ARM: imx: disable low power mode before entering LPSR modeAnson Huang
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>
2016-02-23MLK-12433: arm: dts: imx: disable tempmon device when cpufreq is disabledBai Ping
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>
2016-02-22MLK-10983 : ARM: imx: gpc: wait PU LDO ramp before GPU power up on i.mx6qpRobin Gong
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) (cherry picked from commit 7ddd834bde557db1b62ea2ae683455cc75ba858e)
2016-02-22MGS-1633 GPU: Replace CONFIG_PM_RUNTIME with CONFIG_PMShawn Xiao
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>
2016-02-22MLK-12412 ARM: imx: clk: correct 'csi_sel' settingsFancy Fang
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> (cherry picked from commit 2a1a58c63f4aeba3733f74efdaef3784186ef15c)
2016-02-21MLK-12430 ARM: imx: enable and bypass pll1_bypass clk before changing arm_podfBai Ping
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> (cherry picked from commit 78916c528cb424b20e87887c85246fceac81f3b4)
2016-02-19net: fec: fix fec_enet_get_free_txdesc_numTroy Kisky
When first initialized, cur_tx points to the 1st entry in the queue, and dirty_tx points to the last. At this point, fec_enet_get_free_txdesc_num will return tx_ring_size -2. If tx_ring_size -2 entries are now queued, then fec_enet_get_free_txdesc_num should return 0, but it returns tx_ring_size instead. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-19net: fec: fix rx error countsTroy Kisky
On an overrun, the other flags are not valid, so don't check them. Also, don't pass bad frames up the stack. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: David S. Miller <davem@davemloft.net>
2016-02-19net: fec: stop the "rcv is not +last, " error messagesTroy Kisky
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>
2016-02-19MLK-12423: ARM: dts: imx6sl: remove always-on for vddpuRobin Gong
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)
2016-02-19MLK-11051 net: phy: mdio_bus: don't call .phy_suspendi() when netdev is NULLFugang Duan
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> (cherry picked and merged from commit: ccbbf6172860e310858169a4e551ebf072c2f1a5) Conflicts: drivers/net/phy/mdio_bus.c
2016-02-18MLK-9954 arm: imx: update operating point for i.MX6DLBai Ping
Update the i.MX6DL cpu operating points to comply with the latest published datasheet. Latest i.MX6DL datasheet of Rev.4, 10/2014 updates the 396MHz setpoint's min voltage from 1.075V to 1.125V, Add a 25mV margin to cover the board IR drop, here use 1.15V for 396MHz to match datasheet. Signed-off-by: Bai Ping <b51503@freescale.com> (cherry picked from commit 13c0324e8a006478c1b2045be6e84587b9857ad8)
2016-02-18MLK-10177 arm: imx: add cpuidle driver support for i.MX6DLBai Ping
Add cpudile driver support for i.MX6DL. Signed-off-by: Bai Ping <b51503@freescale.com> (cherry picked from commit 72809d405ca73f85c0397fa277ba2481512fe521)
2016-02-18MLK-12375 ARM: imx: improve ARM power up time for i.MX6UL TO1.1Anson Huang
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> (cherry picked from commit 1036fbdba0111d7fa21acb810e01907db8997a31)
2016-02-17MLK-12404-2 mmc: sdhci-esdhc-imx: change SLV_DLY_TARGET to value 0x7Dong Aisheng
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> (cherry picked from commit 3c755f08de810824250c935d099f3f8c7def4946)
2016-02-17MLK-12404-1 mmc: sdhci-esdhc-imx: fix strobe DLL lock wrong clock issueDong Aisheng
When enable DDR, the clock factor definition is changed. e.g. original 200Mhz will be changed to 100Mhz if set MIX_CTRL_DDREN bit. So we need to update the clock setting for strobe dll to lock the correct clock rate. Additionally we also need disable the clock before locking strobe dll. Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> (cherry picked from commit 4d8095a6e860f773f5d2e4d5b62a6f4ba1a92431)
2016-02-17MLK-12407 ARM: imx: clk: correct the periph_pre clk typeBai Ping
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> (cherry picked from commit c84612adf2ee69b019ef500fe387ad930a5ed151)
2016-02-17MLK-10190 ARM: dts: disable disp mix on imx6sl by defaultRobby Cai
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) (cherry picked from commit 35f41cd363c076a0f429106e2a043992125c36ac)
2016-02-17MLK-12402-2 ARM: dts: imx6sl: add power-domains for display domainFancy Fang
Add power-domains for display domain for imx6sl. Signed-off-by: Fancy Fang <chen.fang@nxp.com> (cherry picked from commit c7d94716a0fcf711a447c0490a81f69bee0cd8dd)