1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/gpu/drm/msm
Stephen Boyd c28d76d360 drm/msm/dpu: Increment vsync_cnt before waking up userspace
The 'vsync_cnt' is used to count the number of frames for a crtc.
Unfortunately, we increment the count after waking up userspace via
dpu_crtc_vblank_callback() calling drm_crtc_handle_vblank().
drm_crtc_handle_vblank() wakes up userspace processes that have called
drm_wait_vblank_ioctl(), and if that ioctl is expecting the count to
increase it won't.

Increment the count before calling into the drm APIs so that we don't
have to worry about ordering the increment with anything else in drm.
This fixes a software video decode test that fails to see frame counts
increase on Trogdor boards.

Cc: Mark Yacoub <markyacoub@chromium.org>
Cc: Jessica Zhang <quic_jesszhan@quicinc.com>
Fixes: 885455d6bf ("drm/msm: Change dpu_crtc_get_vblank_counter to use vsync count.")
Signed-off-by: Stephen Boyd <swboyd@chromium.org>
Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Tested-by: Jessica Zhang <quic_jesszhan@quicinc.com> # Trogdor (sc7180)
Patchwork: https://patchwork.freedesktop.org/patch/490531/
Link: https://lore.kernel.org/r/20220622023855.2970913-1-swboyd@chromium.org
Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
2022-06-23 10:25:32 -07:00
..
adreno drm/msm: Don't overwrite hw fence in hw_init 2022-06-18 09:13:33 -07:00
disp drm/msm/dpu: Increment vsync_cnt before waking up userspace 2022-06-23 10:25:32 -07:00
dp drm/msm/dp: force link training for display resolution change 2022-06-18 09:14:06 -07:00
dsi drm/msm/dsi: don't powerup at modeset time for parade-ps8640 2022-05-18 10:51:42 -07:00
hdmi drm/msm/hdmi: fix error check return value of irq_of_parse_and_map() 2022-05-02 02:39:34 +03:00
Kconfig drm/msm: select DRM_DP_AUX_BUS for the AUX bus support 2022-05-02 02:39:23 +03:00
Makefile drm/msm/dpu: add the writeback connector layer 2022-05-02 02:13:00 +03:00
msm_atomic.c drm/msm: Avoid dirtyfb stalls on video mode displays (v2) 2022-02-25 07:59:58 -08:00
msm_atomic_trace.h drm/msm: add atomic traces 2019-09-03 16:17:02 -07:00
msm_atomic_tracepoints.c drm/msm: add atomic traces 2019-09-03 16:17:02 -07:00
msm_debugfs.c drm/msm: replace DEFINE_SIMPLE_ATTRIBUTE with DEFINE_DEBUGFS_ATTRIBUTE 2022-02-18 18:32:52 +03:00
msm_debugfs.h drm: convert .debugfs_init() hook to return void. 2020-03-18 17:53:28 +01:00
msm_drv.c drm/msm: Ensure mmap offset is initialized 2022-06-01 17:20:08 -07:00
msm_drv.h drm/msm: Ensure mmap offset is initialized 2022-06-01 17:20:08 -07:00
msm_fb.c drm/msm: Fix fb plane offset calculation 2022-05-18 10:55:47 -07:00
msm_fbdev.c drm/msm: Remove unnecessary struct_mutex 2021-11-28 09:50:33 -08:00
msm_fence.c drm/msm: Drop update_fences() 2022-06-18 09:13:32 -07:00
msm_fence.h drm/msm/gem: Add fenced vma unpin 2022-04-21 15:03:12 -07:00
msm_gem.c drm/msm/gem: Separate object and vma unpin 2022-06-15 13:06:54 -07:00
msm_gem.h drm/msm/gem: Separate object and vma unpin 2022-06-15 13:06:54 -07:00
msm_gem_prime.c drm/msm: Ensure mmap offset is initialized 2022-06-01 17:20:08 -07:00
msm_gem_shrinker.c treewide: Add missing includes masked by cgroup -> bpf dependency 2021-12-03 10:58:13 -08:00
msm_gem_submit.c drm/msm/gem: Separate object and vma unpin 2022-06-15 13:06:54 -07:00
msm_gem_vma.c drm/msm/gem: Drop early returns in close/purge vma 2022-06-15 13:22:45 -07:00
msm_gpu.c drm/msm: Don't overwrite hw fence in hw_init 2022-06-18 09:13:33 -07:00
msm_gpu.h drm/msm: return the average load over the polling period 2022-04-21 15:05:23 -07:00
msm_gpu_devfreq.c drm/msm: return the average load over the polling period 2022-04-21 15:05:23 -07:00
msm_gpu_trace.h drm/msm: Support evicting GEM objects to swap 2021-04-07 11:05:48 -07:00
msm_gpu_tracepoints.c drm/msm/gpu: Add trace events for tracking GPU submissions 2018-12-11 13:05:28 -05:00
msm_gpummu.c drm/msm: devcoredump iommu fault support 2021-06-23 07:33:55 -07:00
msm_io_utils.c drm/msm: move utility functions from msm_drv.c 2022-02-18 18:32:52 +03:00
msm_iommu.c drm/msm: use for_each_sgtable_sg to iterate over scatterlist 2022-06-14 11:54:38 -07:00
msm_kms.h drm/msm: don't free the IRQ if it was not requested 2022-05-18 15:55:46 -07:00
msm_mdss.c drm/msm/dpu: Move min BW request and full BW disable back to mdss 2022-06-01 16:16:19 -07:00
msm_mmu.h drm/msm: devcoredump iommu fault support 2021-06-23 07:33:55 -07:00
msm_perf.c drm/msm: Remove struct_mutex usage 2021-11-28 09:50:33 -08:00
msm_rd.c drm/msm: Add support for pointer params 2022-04-21 15:01:08 -07:00
msm_ringbuffer.c drm/msm/gem: Separate object and vma unpin 2022-06-15 13:06:54 -07:00
msm_ringbuffer.h drm/msm/gpu: Drop duplicate fence counter 2022-04-21 15:03:11 -07:00
msm_submitqueue.c drm/msm: Add a way to override processes comm/cmdline 2022-04-21 15:01:09 -07:00
NOTES