19 Nov, 2020

15 commits


28 Oct, 2020

1 commit


27 Oct, 2020

2 commits


22 Oct, 2020

4 commits


20 Oct, 2020

1 commit


18 Oct, 2020

1 commit


16 Oct, 2020

1 commit

  • 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
    (cherry picked from commit 317ad82b310f740c436bdca2e73c556ac67041f6)

    Richard Liu
     

10 Sep, 2020

2 commits


04 Sep, 2020

3 commits

  • 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
    Signed-off-by: Richard Liu

    Richard Liu
     
  • 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

    Richard Liu
     
  • 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

    Richard Liu
     

31 Aug, 2020

1 commit


22 Aug, 2020

3 commits


19 Aug, 2020

1 commit


18 Aug, 2020

1 commit

  • 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
     

17 Aug, 2020

1 commit


14 Aug, 2020

3 commits