Hi Inki, On 2019-03-21 09:20, Inki Dae wrote: > 19. 3. 19. 오후 10:05에 Andrzej Hajda 이(가) 쓴 글: >> MIXER on Exynos5 SoCs uses different synchronisation method than Exynos4 >> to update internal state (shadow registers). >> Apparently the driver implements it incorrectly. The rule should be >> as follows: >> - do not request updating registers until previous request was finished, >> ie. MXR_CFG_LAYER_UPDATE_COUNT must be 0. >> - before setting registers synchronisation on VSYNC should be turned off, >> ie. MXR_STATUS_SYNC_ENABLE should be reset, >> - after finishing MXR_STATUS_SYNC_ENABLE should be set again. >> The patch hopefully implements it correctly. >> Below sample kernel log from page fault caused by the bug: >> >> [ 25.670038] exynos-sysmmu 14650000.sysmmu: 14450000.mixer: PAGE FAULT occurred at 0x2247b800 >> [ 25.677888] ------------[ cut here ]------------ >> [ 25.682164] kernel BUG at ../drivers/iommu/exynos-iommu.c:450! >> [ 25.687971] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM >> [ 25.693778] Modules linked in: >> [ 25.696816] CPU: 5 PID: 1553 Comm: fb-release_test Not tainted 5.0.0-rc7-01157-g5f86b1566bdd #136 >> [ 25.705646] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree) >> [ 25.711710] PC is at exynos_sysmmu_irq+0x1c0/0x264 >> [ 25.716470] LR is at lock_is_held_type+0x44/0x64 >> >> v2: added missing MXR_CFG_LAYER_UPDATE bit setting in mixer_enable_sync >> >> Reported-by: Marian Mihailescu <mihailescu2m@xxxxxxxxx> >> Signed-off-by: Andrzej Hajda <a.hajda@xxxxxxxxxxx> >> --- >> Hi Inki and Marian, >> >> This is fixed version of my previous patch. The only difference is >> added missing MXR_CFG_LAYER_UPDATE setting in mixer_enable_sync. >> I hope this time it is correct. It should solve one page fault issue >> in MIXER, Marek is preparing fix for another issue (to low clock set by >> devfreq). I hope with both patches page faults will not happen anymore ;) > With this patch modetest worked well. > BTW, this change may affect Exynos4 series - which have different synchronization way to update shadow registers - so could you or someone else who has Exynos4xxx based board check it on Odroid-u3 board? I have no board. :( Andrzej's patch has been tested on Exynos4412 too. HDMI display works fine on Odroid U3. ... Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland