diff --git a/drivers/amlogic/media/video_processor/ionvideo/ionvideo.c b/drivers/amlogic/media/video_processor/ionvideo/ionvideo.c index 025457484dbf..1db29dbe894e 100644 --- a/drivers/amlogic/media/video_processor/ionvideo/ionvideo.c +++ b/drivers/amlogic/media/video_processor/ionvideo/ionvideo.c @@ -382,6 +382,9 @@ static void ionvideo_thread_tick(struct ionvideo_dev *dev) if (dev->active_state == ION_INACTIVE) return; + if (dev->receiver_register == 0) + return; + dev->wait_ge2d_timeout = false; vf = vf_peek(dev->vf_receiver_name); if (!vf) { @@ -961,15 +964,14 @@ static int video_receiver_event_fun(int type, void *data, void *private_data) } /*tsync_avevent(VIDEO_STOP, 0);*/ - IONVID_DBG("unreg:ionvideo\n"); + pr_info("unreg:ionvideo\n"); } else if (type == VFRAME_EVENT_PROVIDER_REG) { - dev->receiver_register = 1; dev->is_omx_video_started = 1; dev->ppmgr2_dev.interlaced_num = 0; dev->active_state = ION_ACTIVE; init_completion(&dev->inactive_done); - - IONVID_DBG("reg:ionvideo\n"); + dev->receiver_register = 1; + pr_info("reg:ionvideo\n"); } else if (type == VFRAME_EVENT_PROVIDER_QUREY_STATE) { if (dev->vf_wait_cnt > 1) return RECEIVER_INACTIVE; diff --git a/drivers/amlogic/media/video_processor/ionvideo/ppmgr2.c b/drivers/amlogic/media/video_processor/ionvideo/ppmgr2.c index e74d4861de05..9ab7de955478 100644 --- a/drivers/amlogic/media/video_processor/ionvideo/ppmgr2.c +++ b/drivers/amlogic/media/video_processor/ionvideo/ppmgr2.c @@ -481,6 +481,11 @@ int ppmgr2_process(struct vframe_s *vf, struct ppmgr2_device *ppd, int index) int angle = (ppd->angle + src_vf->orientation) % 4; int dst_canvas_id = 0; + if (ppd->phy_addr[index] == NULL) { + ppmgr2_printk(1, "NULL physical address!\n"); + return -1; + } + if (src_vf->type & VIDTYPE_INTERLACE) { if ((ppd->bottom_first && src_vf->type & 0x2) || (ppd->bottom_first == 0