GPU hardware access cannot be guaranteed to complete after unlock memory,
Need perform asynchronous unlock to avoid GPU access the freed MMU page.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
(cherry picked from commit f902173b8ece1f6367c30557498077c569db31ff)
weston-simple-dmabuf-egl has failure without drm render node,
need enable vivante drm to fix dmabuf failure issue.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
default set two banks for large and small memory in 16:1,
there is no function impact for specified bank size.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
[Solution]add U prefix to declare it is uint32_t type
[Problem]CID 6124050 (#8 of 8): Dereference after null check (FORWARD_NULL)
14. var_deref_op: Dereferencing null pointer Node
Signed-off-by: Jiyu Yang <jiyu.yang@nxp.com>
6.4.3.p1 introduced more build break with mmap_sem usage,
define current->mm->mmap_sem/lock with a macro.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
GPU galcore build as module will meet below error when do insmod
with latest android aosp 5.4 kernel.
Fix below module load errors:
galcore: module uses symbol (kernel_write) from namespace
VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver,
but does not import it.
galcore: Unknown symbol kernel_write (err -22)
Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
(cherry picked from commit 317ad82b310f740c436bdca2e73c556ac67041f6)
dev64x_234062: show gpu video
memory free total size and fixed alloc/free counters in re-used processDB
uninitialize issue.(CL258074)
Signed-off-by: Ke Feng <ke.feng@verisilicon.com>
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Loop play a video AVC_1080p_24fps_90Mbps_bird90.m2ts met UI
freeze and "rcu stall". Enable CONFIG_DEBUG_SPINLOCK kernel
debug get below call stack, the reason is due to spin_lock
be used in IRQ interrupt and caused deadlock.
8mq board enabled Video overlay feature, there are two fences
enabled: out fence (represent frame on screen) and android out
fence (new added, represent frame off screen). When there are
two fences sync_file_set_fence() will call dma_fence_array_create()
to register irq_dma_fence_array_work(), then gckOS_DestroySignal()
will be called in IRQ which use spin_lock cause deadlock.
Fix solution is use spin_lock_irqsave() instead of spin_lock()
for Database->lock if it is not called in IRQ interrupt.
Call stack:
[ 608.902810] dump_backtrace.cfi_jt+0x0/0x4
[ 608.906914] show_stack+0x18/0x24
[ 608.910237] dump_stack+0xb8/0x114
[ 608.913644] spin_bug+0xb0/0xb4
[ 608.916788] do_raw_spin_lock+0xac/0x124
[ 608.920714] _raw_spin_lock+0x20/0x2c
[ 608.924384] gckOS_DestroySignal+0x6c/0x170
[ 608.928572] viv_fence_release+0x28/0x40
[ 608.932502] dma_fence_release+0x13c/0x280
[ 608.936603] dma_fence_array_release+0x74/0x98
[ 608.941049] dma_fence_release+0x13c/0x280
[ 608.945150] irq_dma_fence_array_work+0x6c/0x9c
[ 608.949690] irq_work_run_list+0xb4/0x148
[ 608.953702] irq_work_run+0x20/0x40
[ 608.957193] handle_IPI+0x10c/0x180
[ 608.960686] efi_header_end+0x13c/0x15c
[ 608.964526] el1_irq+0x104/0x200
[ 608.967761] radix_tree_lookup+0x38/0x84
[ 608.971686] gckOS_WaitSignal+0x54/0x258
[ 608.975615] gckKERNEL_Dispatch+0x1460/0x1754
[ 608.979977] gckDEVICE_Dispatch+0x1a0/0x1a4
[ 608.984165] drv_ioctl+0xb8/0x184
[ 608.987487] do_vfs_ioctl+0x3a0/0x6f0
[ 608.991154] __arm64_sys_ioctl+0x78/0xa4
[ 608.995082] el0_svc_common+0xb4/0x18c
[ 608.998834] el0_svc_handler+0x74/0x98
[ 609.002589] el0_svc+0x8/0xc
Change-Id: Idf16a5707add70246c74d2f1446f7dbb7037f5f0
Signed-off-by: Haoran.Wang <elven.wang@nxp.com>
Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
There is kernel panic when stop android or kill surfaceflinger
after enable framebuffer tile compression on 8mq board.
The root cause of the issue is dcss driver not api to receive
ts fd, gpu driver will set the ts_dma_buf in _SetVidMemMetadata(),
dcss driver get the ts buffer physical address from ts_dma_buf,
when stop android framebuffer and matched ts buffer will free,
previous ts_dma_buf get from ts_fd will be invalid, when dcss
driver use this ts_dma_buf will cause problem. It is a common
issue, if Linux Weston do the similar stop should also meet
the same panic issue.
Keep a reference for ts_dma_buf in _SetVidMemMetadata(),
decrease the reference in _dmabuf_release() can avoid the
panic issue.
Kernel panic log:
[ 41.007431] kernel BUG at drivers/gpu/drm/drm_gem.c:154!
[ 41.139375] Call trace:
[ 41.141824] drm_gem_object_init+0xb8/0xbc
[ 41.145920] drm_gem_cma_prime_import_sg_table+0x84/0xdc
[ 41.151233] drm_gem_prime_import_dev+0xe8/0x194
[ 41.160036] dcss_plane_atomic_set_base+0x31c/0x3d0
[ 41.164915] dcss_plane_atomic_update+0x450/0x46c
[ 41.164923] drm_atomic_helper_commit_planes+0x130/0x31c
[ 41.182255] dcss_drm_atomic_commit_tail+0xcc/0x150
[ 41.187139] dcss_commit_work+0x10/0x1c
[ 41.197322] process_one_work+0x2d8/0x580
[ 41.201333] worker_thread+0x28c/0x518
[ 41.205085] kthread+0x14c/0x15c
[ 41.208316] ret_from_fork+0x10/0x18
Change-Id: I385851b436d1fead1131ce25f496bdd5d3d14264
Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
Android pass ts_address to dcss to fix kernel panic issue
reported in ticket MA-12928, this fix solution is not formal.
Remove ts_address code to keep align with Linux, if android
still meet panic issue for corner case we need check root
cause and do formal fix.
Change-Id: I04a6294f237e0c1ed5544dce1dc13e5a6ac232ab
Signed-off-by: Richard Liu <xuegang.liu@nxp.com>
fix
the bug#27413. no need to switch hardware object to query the name and chip
info of the chip.
Signed-off-by: Ke Feng <ke.feng@verisilicon.com>
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
use bframe to control low latency mode by default
deprecate the ctrl V4L2_CID_MPEG_VIDEO_H264_ASO
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
user may not sync cache before free the cacheable memory,
when GPU allocate the non-sync memory for non-cacheable map,
it will lead to the unstable issue if cache sync is missing.
revert previous optimization to sync cache for each request,
need work out other idea to reduce the memory consumption.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
gst will depend on the try_fmt api
if driver don't report the correct color space in try_fmt
gst may return fail
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
opencl conformance encounters out of memory on 6qp often
Normal free:223540kB, free_cma:180280kB
0 pages HighMem/MovableOnly
currently GPU virtual memory allocate highmem only,
change to try normal zone first, then go highmem.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
create dma mapping and scatter list pages for cachable memory,
also move the auxiliary memory allocation into map/unmap.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Disabled TX clock gating can not fix GFXBench hang on M865,
128B L2 cache mode for reading texture can fix that.
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
Bit field of 'valid_ts_received' is 1, change its typedef to
unsigned int. (coverity ID 9000734)
Signed-off-by: Shijie Qin <shijie.qin@nxp.com>
Reviewed-by: ming_qian <ming.qian@nxp.com>
1. enable color description in vui when encoding.
2. improve the get/set color description api
Signed-off-by: Ming Qian <ming.qian@nxp.com>
Reviewed-by: Shijie Qin <shijie.qin@nxp.com>
HW enable and disable are shared with the same function, driver need to
check the parameter to identify whether HW is enabled or not
Signed-off-by: Zhou Peng <eagle.zhou@nxp.com>