summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2014-09-18crypto: testmgr - avoid DMA mapping from text, rodata, stackrel_imx_3.10.17_1.0.2_gaHoria Geanta
With DMA_API_DEBUG set, following warnings are emitted (tested on CAAM accelerator): DMA-API: device driver maps memory from kernel text or rodata DMA-API: device driver maps memory from stack and the culprits are: -key in __test_aead and __test_hash -result in __test_hash MAX_KEYLEN is changed to accommodate maximum key length from existing test vectors in crypto/testmgr.h (131 bytes) and rounded. Signed-off-by: Horia Geanta <horia.geanta@freescale.com> Acked-by: Kim Phillips <kim.phillips@freescale.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2014-09-18crypto: testmgr - Fix DMA-API warningTadeusz Struk
With DMA-API debug enabled testmgr triggers a "DMA-API: device driver maps memory from stack" warning, when tested on a crypto HW accelerator. Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2014-09-18ENGR00332071 Revert "ENGR00322632 [#1243] fix invalid data access over ↵Xianzhong
memory mapping" This reverts commit 321862cbad506707fe9d0ae4dcca24a865a5feea. this patch is from Vivante without test, it causes X issue Date: Sep 18, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 7cc50eb75efb4c8d41e48577dc020a700ddb1039)
2014-08-20ENGR00313001 separate GPU low memory killer and reserve memory accountRichard Liu
separate GPU low memory killer and GPU reserve memory account query code, so that we can separate control GPU low memory killer and android system low memory killer to query the reserve memory account. Signed-off-by: Richard Liu <r66033@freescale.com> (cherry picked from commit 6fbb4058a21d24384e4c8f2d3fd8ef33c2141302) (cherry picked from commit dde88d1e7c3173c16844c9a0fa7f84365fa4ed76)
2014-08-20ENGR00322672 [#1244] avoid system freeze when dump GPU state without valid ↵Loren Huang
clock & power GPU recovery is disabled by default, GPU kernel driver will dump hardware status, but if GPU clock & power is truned off, system will get frozen unexpectedly. this fix is to avoid system freeze by detecting clock & power state. Date: Jul 14, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Shawn Guo (cherry picked from commit 05fd7bf5615a9ccde4af97ff7dcae3e7e2c9a86a) (cherry picked from commit 7c094ccb55e4a70ada5d7c2df8b6d3816956333a)
2014-08-15ENGR00322632 [#1243] fix memory type to avoid overwriting issueXianzhong
fix invalid access issue in GPU kernel triggered with the certain condition, memory extensive type exceed 256 and will cause memory overwriting issue Date: Jul 14, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 0db530ceadb9e1559793c725d4ab576370ffb1c2)
2014-08-15ENGR00325794 [#1087] fix video memory mutex sharing issueXianzhong
the root cause is video memory mutex is not global variable, it will cause video memory managment problem with mixed 2D/3D/VG. kernel panic with multiple instances stress test running glesx_viv.sh. Date: Jul 31, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 02bdc91149f077aba37c790aca1e59041d473f71) (cherry picked from commit 26c25e084b4137bf19aaa20e5075bb3c16096066) (cherry picked from commit 94c683128e5b7b2d2aaa92de28a32500926b0fad)
2014-08-15ENGR00316978 [#1162] force_sig crash in GPU lower memory killerLoren Huang
it is caused when multiple threads try to kill same one process, the global semaphore is used to avoid this conflict. Date: Jun 05, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 48c860eba3aae80c85587a37a858082b3a8b7b08) (cherry picked from commit d6acc3d27428be0d0b4682ab86b76de03c54efab)
2014-08-15ENGR00315583 [#1209] fix random data corruption in GPU memoryLoren Huang
GPU memory node should not be used after node structure is destoryed, that will cause random GPU memory data corruption issue in Android platform. the issue can be reproduced when run cts -p android.opengl repeatly(more than 100 times) Date: May 28, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 36dbe12f0dbd01dd7ef10b52a9c508fa5d7d19d0) (cherry picked from commit c81d392b824699088f88d4552cb1935d94d89dc3)
2014-08-15ENGR00313862 [#1173] fix android cts testThroughput failLoren Huang
fix android.media.cts.PresentationSyncTest#testThroughput cts fail, root cause is dequeueBuffer and queueBuffer in Surface will acquire the same mutex and in GPU driver dequeueBuffer and queueBuffer is work at asynchronous mode, so queueBuffer maybe blocked by dequeueBuffer and dequeueBuffer will return after 16ms (vsync time). Date: May 16, 2014 Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Jason Liu (cherry picked from commit e62993b346e418f08cb88d25303a0541653a5468) (cherry picked from commit cb850fe07a406ecd4610b985b23b55b37dcdb703)
2014-08-15ENGR00314119 [#1183] fixed database mutex multi-lock issueXianzhong
The abnormal flow with the monkey test freeze problem is as below: gckKERNEL_DestroyProcessDB--> aquire mutex --> gckCOMMAND_Detach(gckEVENT_FreeContiguousMemory) --> ___RemoveRecordFromProcessDB --> gckKERNEL_RemoveProcessDB --> aquire the same mutex the fix is to disable mutex lock when perform record destory operations Date: May 19, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 8d62ea9a655f1bb0ca86af222de7625abc8d2bc8) (cherry picked from commit cd5a9a37525d4d2f79b6013f4bd93779b900b854) (cherry picked from commit 31d6a06da4cf9beacd9b1ba7a7e67d41cee18f7d)
2014-08-15ENGR00312477 [#1162] fixed gpu lower memory killerXianzhong
mutex operation is performed in gckKERNEL_QueryProcessDB remove spinlock for gckKERNEL_QueryProcessDB to avoid scheduling issue Date: May 08, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 554581201c0a1c2c7caddad5750b1fd678e09c8c) (cherry picked from commit 78ecaf1c6475ee188a6a2a1dfbe954e457a28997) (cherry picked from commit 6837de20c0ce171bc16c7d779d6ac177b53d5529)
2014-08-15ENGR00308899 [#1087] enhanced GPU database protectionXianzhong
the potential risk is found in special case when application exit, deleting record will cause the unexpected issue when process database is destoryed without atom protection the enhanced database patch should be applied to avoid the unexpected kernel issue Date: Apr 17, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit e799c1ae023264c0e1e1e41d448e30e2304944e1) (cherry picked from commit 7eb5273b6dd61d61c2ffe778bdb6d5032bbc1aa0) (cherry picked from commit ae4ba121bb72164183d7a47eb8a7c3ea316f6204)
2014-08-15ENGR00309915 [#1087] enhanced video memory mutexXianzhong
this patch can fix NULL pointer issue in GPU kernel driver with the following log [<7f240438>] (gckEVENT_AddList+0x0/0x810 [galcore]) from [<7f239ebc>] (gckCOMMAND_Commit+0xf28/0x118c [galcore]) [<7f238f94>] (gckCOMMAND_Commit+0x0/0x118c [galcore]) from [<7f2362dc>] (gckKERNEL_Dispatch+0x120c/0x24e4 [galcore]) [<7f2350d0>] (gckKERNEL_Dispatch+0x0/0x24e4 [galcore]) from [<7f222280>] (drv_ioctl+0x390/0x540 [galcore]) [<7f221ef0>] (drv_ioctl+0x0/0x540 [galcore]) from [<800facd0>] (vfs_ioctl+0x30/0x44) The false code is at 0x217bc where the 0-pointer happens (r3 = 0) gcuVIDMEM_NODE_PTR node = (gcuVIDMEM_NODE_PTR)(gcmUINT64_TO_PTR(Record->info.u.FreeVideoMemory.node)); 217b8: e5953028 ldr r3, [r5, #40] ; 0x28 if (node->VidMem.memory->object.type == gcvOBJ_VIDMEM) 217bc: e5932000 ldr r2, [r3] 217c0: e5922000 ldr r2, [r2] 217c4: e152000a cmp r2, sl { gcmkVERIFY_OK(gckKERNEL_RemoveProcessDB(Event->kernel, Date: Apr 23, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit fcde214d8c793d4dd785e47175b5833f1f3f5f1f) (cherry picked from commit 952142648d76fce2663ef649d9f988f1b7809815) (cherry picked from commit 9d7b33678f1f944f75644e958c3ceeb7f2e4bac9)
2014-08-15ENGR00310166 [#1157] disable GPU recovery functionRichard Liu
Disable GPU auto recovery so that GPU can dump the stack. GPU support auto recovery function, when GPU meet some issue it will try to do recovery, but most of cases GPU can't really recovery, we do find some cases GPU can recovery for example some 2D hang, but customer is not accept such recovery, so show the GPU stack dump and find the root cause is the correct way. Date: Apr 24, 2014 Signed-off-by: Richard Liu <r66033@freescale.com> (cherry picked from commit 888c79ab0f114b7b259266fc82c1399cbb926faf) (cherry picked from commit 8a213f47050eb49da70877090e07323b530bf147) (cherry picked from commit 6f779e52e7678aaab198ea4caa9bac1e686a44eb)
2014-08-15ENGR00308233-4 [#791]Refine wclip workaround algorithm 003Loren Huang
Vivante patch name:000e-more-refinements-for-wclip-issue Date: Apr 14, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo (cherry picked from commit 3fae441a3b6a40e4981473bf967c121e22a9eda7) (cherry picked from commit 46dcad78113f8c4757d8bb36a91f865ac6bc5afb)
2014-08-15ENGR00308233-3 [#791]Refine wclip workaround algorithm 002Loren Huang
Vivante patch name:0002-more-refinements-for-wclip-issue Date: Apr 14, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo (cherry picked from commit e25208c14fcfae452ebd378e33c671a8366ee55a) (cherry picked from commit c7d1eab0815f6034b78263e7c994179e3b897d1c)
2014-08-15ENGR00308233-2 [#791]Refine wclip workaround algorithm 001Loren Huang
Vivante patch name:0001-more-refinements-for-wclip-issue Date: Apr 14, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo (cherry picked from commit 807330b464a55be19d4d5117e5f6b161f00a2f88) (cherry picked from commit ebced57ab02386cbc00d550b03e9546e07f1db8d)
2014-08-15ENGR00306397 [#1118] use BUG_ON to check if GPU clock is offXianzhong
Access GPU register will cause system hang(bus lock-up) without log when clock is off, GPU kernel BUG_ON is added to check if GPU clock is off when read & write GPU registers, GPU clock issue can be easily identified with the detailed kernel panic log as below: kernel BUG at drivers/mxc/gpu-viv/hal/os/linux/kernel/gc_hal_kernel_os.c:2423! Unable to handle kernel NULL pointer dereference at virtual address 0000000 ... [<c0050008>] (__bug+0x1c/0x28) from [<c046bb3c>] (gckOS_ReadRegisterEx+0xbc/0xdc) [<c046bb3c>] (gckOS_ReadRegisterEx+0xbc/0xdc) from [<c047eab4>] (gckHARDWARE_QueryIdle+0x4c/0xbc) [<c047eab4>] (gckHARDWARE_QueryIdle+0x4c/0xbc) from [<c0475e0c>] (_TryToIdleGPU+0x70/0x12c) Mutex protection is not necessary for interrupt handling, because GPU clock is only turned off by interrupt worker thread during clock gating. Date: Apr 11, 2014 Signed-off-by: Xianzhong <b07117@freescale.com> Acked-by: Jason Liu (cherry picked from commit 50c3767eb19bb22f395215755dac220f4bbb2f14) (cherry picked from commit faf4eb3fd5a66661782f8d0395a27016d7a8fc52) (cherry picked from commit f8a666c09cd714a609812552b73603d23879b10f)
2014-08-13ENGR00307848 MXC IPUv3 fb: Fix MXCFB_CSC_UPDATE ioctl()Julien Olivain
Add a missing 'break' in the MXCFB_CSC_UPDATE case in mxcfb_ioctl(), to prevent it to always return EINVAL (Invalid argument). Acked-by: Liu Ying <Ying.Liu@freescale.com> Signed-off-by: Julien Olivain <julien.olivain@freescale.com>
2014-07-15ENGR00300876 [#ccc] Fix flick issue in GAL2D compositorLoren Huang
Move wl_surface_commit to work thread. Fix memory leak in wl_egl_window_resize. Date: Jul 10, 2014 Signed-off-by Yong Gan <yong.gan@freescale.com> Acked-by: Jason Liu (cherry picked from commit c114ec8a4c74fc2a2d0f64c60031c66d2225ff83)
2014-07-15ENGR00306992-2 gpu:gpu2d may cause bus hang in some corner caseLoren Huang
Vivante patch name: fix_fsl_2d_base_on_p13.v2.rls.diff -Updated the outstanding request limit to 12. -Refined the 2D chip feature check. -Refine the 2D cache flush operation (avoid FE and PE access memory through the same port). -Enable cache flush for filterblt. -Dynamic enabling SPLIT_RECT by checking chip feature(disable for us) -Use brush stretch blt for clear operation. -Enable SplitFilterBlit to workaround the 2d hang issue in filterblit case. -Refine 2d line operation. Date: May 05, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo (cherry picked from commit 479b9125caefc45451aa1c4a1b7f2704b57831fa)
2014-07-02ENGR00320554: ARM: imx: drop unncessary PL310 errataRichard Liu
The PL310 integrated on i.MX6 series and VF610 are revision r3p1 and later. Per ARM PL310 errata document, 588369 is fixed in r2p0 and 727915 is fixed in r3p1. Neither is needed for i.MX6 or VF610. So let's drop them. Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Jason Liu <r64343@freescale.com> Signed-off-by: Shawn Guo <shawn.guo@freescale.com>
2014-06-26ENGR00320048 ARM:imx6sl:Ensure that bandgap is not disabled in LDO-enabled modeRanjani Vaidyanathan
The main bandgap is required for regulation in LDO-enabled mode. Ensure that the main bandgap is only disabled in LDO-bypass mode when entering low power IDLE. Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com>
2014-06-13ENGR00318392 ARM:imx6x: Save/restore SCU and some CP15 registers across ↵Ranjani Vaidyanathan
suspend/resume This patch ensures that the SCU and certain A9 CP15 registers state are maintained across a suspend/resume cycle: 1. Need to ensure that SCU standby bit is set again after suspend/resume cycle, else the system will never WAIT mode after a suspend/resume cycle. This bit should be enabled on all SMP systems immaterial of whether CPUIDLE is enabled or not. 2. Several A9 errata workarounds involve setting bits in the ARM diagnostic register. Save/restore this register across a suspend/resume cycle. 3. Save and restore the A9 power control register also. Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com> (cherry picked from commit 7b5b4ef5b3cdc65c0576f87cfa52bcca1bda8b33)
2014-05-26ENGR00301078-2: ARM: dts: imx6sl-evk: add support for pfuze200 on imx6sl-evkRobin Gong
move pmic device node from imx6sl-evk.dtsi to upper-level, and add another layer on imx6sl-evk to diff pfuze100 or pfuze200. Meanwhile only works in ldo-enable mode if using pfuze200, since 'SW1C' switch regulator is cut for cost-down which means VDDARM_IN and VDDSOC_IN have to share the same switch regulator Signed-off-by: Robin Gong <b38343@freescale.com>
2014-05-26ENGR00301078-1: ARM: dts: imx6dl-sabresd: add support for pfuze200 on ↵Robin Gong
mx6dl-sabresd move pmic device node from imx6qdl-sabresd.dtsi to up-level, and add another layer on imx6dl-sabresd to diff pfuze100 or pfuze200. Meanwhile only work in ldo-enable mode if using pfuze200,since 'SW1C' switch regulator is cut for cost-down which means VDDARM_IN and VDDSOC_IN have to share the same switch regulator Signed-off-by: Robin Gong <b38343@freescale.com> (cherry picked from commit 32e4e161b087bfdcea74bd80f0b24c341092c96b)
2014-05-26pfuze100-regulator: Fix of_node_get() parameterFabio Estevam
Since commit d7857c42 (regulator: pfuze100: Use of_get_child_by_name) we get the following probe failure: pfuze100-regulator 1-0008: Full layer: 1, Metal layer: 0 pfuze100-regulator 1-0008: FAB: 0, FIN: 0 pfuze100-regulator 1-0008: regulators node not found pfuze100-regulator: probe of 1-0008 failed with error -22 Now that of_get_child_by_name() is used we should adjust the device_node pointer 'np' to not get the parent node anymore. Suggested-by: Shawn Guo <shawn.guo@linaro.org> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Acked-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 0780208ff201feb45e12ebecb39ecac4740b1244)
2014-05-26regulator: pfuze100: Use of_get_child_by_nameSachin Kamat
of_find_node_by_name walks the allnodes list, and can thus walk outside of the parent node. Use of_get_child_by_name instead. Signed-off-by: Sachin Kamat <sachin.kamat@linaro.org> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 4d286178d55cc5811d50750a44eb729252adef11)
2014-05-26regulator: pfuze100: Add PFUZE200 support to Kconfig and module descriptionAxel Lin
Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Robin Gong <b38343@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit 2cee2121db44cfeee206d0854bedd52344eea444) Signed-off-by: Robin Gong <b38343@freescale.com> (cherry picked from commit 88236aaba4ed9b89a7873b30fc1ca9cdcb6b407d)
2014-05-26regulator: pfuze100: Add terminate entry for [i2c|of]_device_id tablesAxel Lin
Also remove PFUZE_NUM to avoid below build warnings: CC [M] drivers/regulator/pfuze100-regulator.o drivers/regulator/pfuze100-regulator.c:86:2: warning: excess elements in array initializer [enabled by default] drivers/regulator/pfuze100-regulator.c:86:2: warning: (near initialization for 'pfuze_device_id') [enabled by default] drivers/regulator/pfuze100-regulator.c:93:2: warning: excess elements in array initializer [enabled by default] drivers/regulator/pfuze100-regulator.c:93:2: warning: (near initialization for 'pfuze_dt_ids') [enabled by default] Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit e6c4c3378d82c5eeb136ed06b1a23651bcdaf739) (cherry picked from commit 12c7dd7c396378fd6dc907903a4ae540a75b31f5)
2014-05-26regulator: pfuze100: add pfuze200 supportRobin Gong
support pfuze200 chip which remove SW1C and SW4 based on pfuze100. Signed-off-by: Robin Gong <b38343@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> (cherry picked from commit f2518480c7b744296a5587990a54e3a284d932b8) Conflicts: drivers/regulator/pfuze100-regulator.c (cherry picked from commit f9e62732cfb59ff68fed303bbbb3913d2f1002bf)
2014-05-26regulator: pfuze100: Fix address of FABIDAxel Lin
According to the datasheet, the address of FABID is 0x4. Fix it. Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Robin Gong <b38343@freescale.com> Signed-off-by: Mark Brown <broonie@linaro.org> Cc: stable@vger.kernel.org (cherry picked from commit c07a24939f36fb6de522a9726369ea64eee5d98d) (cherry picked from commit cfec286ff9f375c2c289072d63cedbb0c7917a48)
2014-05-23ENGR00309838 ARM: imx6sl: gpc: add chip revision check for dispmixRobby Cai
The dispmix feature works without problem since TO1.2. This patch adds the back-compatibility for older chip. Signed-off-by: Robby Cai <r63905@freescale.com> (cherry picked from commit a187b916d55052fed10de1797009250095b598fb)
2014-04-04ENGR00306992 Revert "ENGR00302036-3 gpu:gpu2d may cause bus hang in some ↵rel_imx_3.10.17_1.0.0_ga3.10-imx6-3.10.17-1.0.0-ts1Loren Huang
corner case" This reverts commit 563931094bf096da2ce6f2cc40387f9e726b3342. That patch causes wrong blitting and will block GA release Date: Apr 04, 2014 Signed-off-by: Loren Huang <b02279@freescale.com> Acked-by: Shawn Guo
2014-04-03ENGR00306875-2 video: mxc_hdmi: Set hdmi cable state a bit earilierNicolin Chen
During hdmi hotplug test, there's a possibility that X-server unblanks the frame buffer while HDMI-audio just gets the signal to start playback. Then audio would get an unblanked state right before the playback and bypassed the DMA enabling code. So this issue is caused by the race between unblank and set_cable_state(). This patch sets the hdmi cable state a bit earilier so as to let audio play first. If unblank happens later, the hdmi core and hdmi audio would be robust enough to handle that case as long as it's not racing with the other parts. Acked-by: Sandor Yu <R01008@freescale.com> Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
2014-04-03ENGR00306875-1 Revert "ENGR00305624-2 ASoC: imx-hdmi-dma: Correct the appl ↵Nicolin Chen
pointer" After change the pointer, ALSA lib would re-copy the initial data to DMA buffer because the pointer is pointing the zero position at the beginning, which results an audiable duplicated playback at the first eight periods. Even though dropping this patch would cause pointer being incorrectly estimated. But to maintain the sanity of basic playback, we revert the previous patch. This reverts commit 5d0d4e1558fa0c235691436e1c5d26d9c8950775. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
2014-04-03ENGR00306832 mxsfb: xres_virtual should not larger than xresSandor Yu
eLCDIF did not support stride buffer, check the xres_virtual in function mxfb_check_var, return false if the value larger than xres. Signed-off-by: Sandor Yu <R01008@freescale.com>
2014-04-02ENGR00298286 arm: dts: imx6qdl: add clock to CAAM.Dan Douglass
CAAM depends on the clock used by WEIM interface. This patch supplied by Haung Shijie corrects the issue by adding the clock as a resource for the CAAM driver. Signed-off-by: Dan Douglass <dan.douglass@freescale.com>
2014-04-02ENGR00298286 arm: dts: imx6qdl: add clock to CAAM.Dan Douglass
CAAM depends on the clock used by WEIM interface. This patch supplied by Haung Shijie corrects the issue by adding the clock to the device tree entry for CAAM. Signed-off-by: Dan Douglass <dan.douglass@freescale.com>
2014-04-02ARM: 7669/1: keep __my_cpu_offset consistent with generic oneMing Lei
Commit 14318efb(ARM: 7587/1: implement optimized percpu variable access) introduces arm's __my_cpu_offset to optimize percpu vaiable access, which really works well on hackbench, but will cause __my_cpu_offset to return garbage value before it is initialized in cpu_init() called by setup_arch, so accessing percpu variable before setup_arch may cause kernel hang. But generic __my_cpu_offset always returns zero before percpu area is brought up, and won't hang kernel. So the patch tries to clear __my_cpu_offset on boot CPU early to avoid boot hang. At least now percpu variable is accessed by lockdep before setup_arch(), and enabling CONFIG_LOCK_STAT or CONFIG_DEBUG_LOCKDEP can trigger kernel hang. Signed-off-by: Ming Lei <tom.leiming@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> (cherry picked from commit 9394c1c65e61eb6f4c1c99f342b49e451ec337b6)
2014-04-01ARM: 7811/1: locks: use early clobber in arch_spin_trylockWill Deacon
commit afa31d8eb86fc2f25083e675d57ac8173a98f999 upstream. The res variable is written before we've finished with the input operands (namely the lock address), so ensure that we mark it as `early clobber' to avoid unintended register sharing. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Wang Weidong <wangweidong1@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-01ARM: 7812/1: rwlocks: retry trylock operation if strex fails on free lockWill Deacon
commit 00efaa0250939dc148e2d3104fb3c18395d24a2d upstream. Commit 15e7e5c1ebf5 ("ARM: 7749/1: spinlock: retry trylock operation if strex fails on free lock") modifying our arch_spin_trylock to retry the acquisition if the lock appeared uncontended, but the strex failed. This patch does the same for rwlocks, which were missed by the original patch. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Li Zefan <lizefan@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-01ARM: 7749/1: spinlock: retry trylock operation if strex fails on free lockWill Deacon
commit 15e7e5c1ebf556cd620c9b091e121091ac760f6d upstream. An exclusive store instruction may fail for reasons other than lock contention (e.g. a cache eviction during the critical section) so, in line with other architectures using similar exclusive instructions (alpha, mips, powerpc), retry the trylock operation if the lock appears to be free but the strex reported failure. Reported-by: Tony Thompson <anthony.thompson@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Cc: Li Zefan <lizefan@huawei.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-01ARM: 7957/1: add DSB after icache flush in __flush_icache_all()Vinayak Kale
commit 39544ac9df20f73e49fc6b9ac19ff533388c82c0 upstream. Add DSB after icache flush to complete the cache maintenance operation. Signed-off-by: Vinayak Kale <vkale@apm.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-01ARM: 7953/1: mm: ensure TLB invalidation is complete before enabling MMUWill Deacon
commit bae0ca2bc550d1ec6a118fb8f2696f18c4da3d8e upstream. During __v{6,7}_setup, we invalidate the TLBs since we are about to enable the MMU on return to head.S. Unfortunately, without a subsequent dsb instruction, the invalidation is not guaranteed to have completed by the time we write to the sctlr, potentially exposing us to junk/stale translations cached in the TLB. This patch reworks the init functions so that the dsb used to ensure completion of cache/predictor maintenance is also used to ensure completion of the TLB invalidation. Reported-by: Albin Tonnerre <Albin.Tonnerre@arm.com> Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2014-04-01ENGR00306309 ARM:imx:imx6qdl: Fix procedure to switch the parent of LDB_DI_CLKRanjani Vaidyanathan
Due to incorrect placement of the clock gate cell in the ldb_di[x]_clk tree, the glitchy parent mux of ldb_di[x]_clk can cause a glitch to enter the ldb_di_ipu_div divider. If the divider gets locked up, no ldb_di[x]_clk is generated, and the LVDS display will hang when the ipu_di_clk is sourced from ldb_di_clk. To fix the problem, both the new and current parent of the ldb_di_clk should be disabled before the switch. This patch ensures that correct steps are followed when ldb_di_clk parent is switched in the beginning of boot. Signed-off-by: Ranjani Vaidyanathan <Ranjani.Vaidyanathan@freescale.com> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
2014-04-01ENGR00306276: iMX6: Add workaround for ARM errata 761320 and 794072Nitin Garg
These are Category B, hence workaround is essential. Signed-off-by: Nitin Garg <nitin.garg@freescale.com>
2014-04-01ENGR00306257 [#1027]fix system hang up issue caused by GPURichard Liu
This issue happens when multiple thread is trying to idle GPU at the same time, root cause is some wrong logic related with powerMutex which cause cpu still access GPU AHB register after GPU is suspend(clock off), that cause the bus lockup and make the whole system hang. Signed-off-by: Richard Liu <r66033@freescale.com> Acked-by: Jason Liu (cherry picked from commit d48e52700c4177e94695cdbdb480cb38a88a5ddc)
2014-03-27ENGR00305624-2 ASoC: imx-hdmi-dma: Correct the appl pointerNicolin Chen
We might not be able to get appl_ptr, so we estimated it by using hw_ptr, while the distance between then should not be 2 * priv->period_bytes initially but 8 * priv->period_bytes as we pri-filled one entire buffer size at the beginning. The driver's memory access might be overlapped with ALSA's buffer updating. So this patch fixes this inaccurate distance. Acked-by: Wang Shengjiu <b02247@freescale.com> Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>