From 70d68d9a997c1a0f63f614afcc531d38f74dea18 Mon Sep 17 00:00:00 2001 From: "Kevin.xie" Date: Fri, 29 Jul 2022 16:08:25 +0800 Subject: [PATCH] v4l2test: Fix the 'not support error' on null-display with mmap io_method. Signed-off-by: Kevin.xie --- package/starfive/v4l2_test/v4l2_test.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/package/starfive/v4l2_test/v4l2_test.c b/package/starfive/v4l2_test/v4l2_test.c index 5981d27c..239d62d0 100644 --- a/package/starfive/v4l2_test/v4l2_test.c +++ b/package/starfive/v4l2_test/v4l2_test.c @@ -568,7 +568,8 @@ static void mainloop() uint32_t nfds = 0; LOG(STF_LEVEL_TRACE, "Enter\n"); - if (STF_DISP_FB == gp_cfg_param->disp_type) { + if (STF_DISP_FB == gp_cfg_param->disp_type || + STF_DISP_NONE == gp_cfg_param->disp_type) { // fb nfds = 1; fds = (struct pollfd*)malloc(sizeof(struct pollfd) * nfds); @@ -577,7 +578,7 @@ static void mainloop() fds[0].events = POLLIN; } else if (STF_DISP_DRM == gp_cfg_param->disp_type && - IO_METHOD_MMAP == gp_cfg_param->io_mthd) { + IO_METHOD_MMAP == gp_cfg_param->io_mthd) { // drm + mmap nfds = 2; fds = (struct pollfd*)malloc(sizeof(struct pollfd) * nfds); @@ -593,7 +594,7 @@ static void mainloop() ev.page_flip_handler = mmap_page_flip_handler; } else if (STF_DISP_DRM == gp_cfg_param->disp_type && - IO_METHOD_DMABUF == gp_cfg_param->io_mthd) { + IO_METHOD_DMABUF == gp_cfg_param->io_mthd) { // (drm + dmabuf) nfds = 2; fds = (struct pollfd*)malloc(sizeof(struct pollfd) * nfds); @@ -635,14 +636,15 @@ static void mainloop() break; } - if (STF_DISP_FB == gp_cfg_param->disp_type) { + if (STF_DISP_FB == gp_cfg_param->disp_type || + STF_DISP_NONE == gp_cfg_param->disp_type) { // fb if (fds[0].revents & POLLIN) { frameRead(); calc_frame_fps(); } } else if (STF_DISP_DRM == gp_cfg_param->disp_type && - IO_METHOD_MMAP == gp_cfg_param->io_mthd) { + IO_METHOD_MMAP == gp_cfg_param->io_mthd) { // drm + mmap if (fds[0].revents & POLLIN) { frameRead(); @@ -653,7 +655,7 @@ static void mainloop() drmHandleEvent(gp_cfg_param->drm_param.fd, &ev); } } else if (STF_DISP_DRM == gp_cfg_param->disp_type && - IO_METHOD_DMABUF == gp_cfg_param->io_mthd) { + IO_METHOD_DMABUF == gp_cfg_param->io_mthd) { // drm + dmabuf if (fds[0].revents & POLLIN) { int dequeued = stf_v4l2_dequeue_buffer(&gp_cfg_param->v4l2_param, &buf);