コード例 #1
0
void vdin_unreg_vf_provider(void)
{
     init_flag = 0;
     
#ifdef CONFIG_AMLOGIC_VIDEOIN_MANAGER
       vf_unreg_provider(&vdin_vf_prov);
#else 
       vf_unreg_provider(&vdin_vf_prov);
#endif
}
コード例 #2
0
ファイル: d2d3_drv.c プロジェクト: akuster/linux-meson
static int d2d3_receiver_event_fun(int type, void* data, void* arg)
{
        int i, ret=0;
        d2d3_param_t *parm = &d2d3_devp->param;
        if((type == VFRAME_EVENT_PROVIDER_UNREG)||
           (type == VFRAME_EVENT_PROVIDER_LIGHT_UNREG)){
                prov = NULL;
		if(d2d3_devp->flag & D2D3_BYPASS){
                	d2d3_enable_hw(false);
			d2d3_enable_path(false, parm);
		}

                vf_notify_receiver(d2d3_devp->vfm_name,VFRAME_EVENT_PROVIDER_UNREG,NULL);
                vf_unreg_provider(&d2d3_vf_prov);
                d2d3_devp->flag &= (~D2D3_REG); // keep flag when unreg
                pr_info("[d2d3]%s: provider unregister,disable d2d3.\n",__func__);

        }
        else if(type == VFRAME_EVENT_PROVIDER_REG){
                char* provider_name = (char*)data;

                if((strcmp(provider_name, "deinterlace")==0)||(strcmp(provider_name, "ppmgr")==0)){
                        have_process_fun_private_data = 1;
                }
                else{
                        have_process_fun_private_data = 0;
                }
                vf_reg_provider(&d2d3_vf_prov);

                for(i=0; i<D2D3_IDX_MAX; i++){
                        d2d3_devnox[i].vf = NULL;
                }
                prov = vf_get_provider(d2d3_devp->vfm_name);
		d2d3_devp->flag |= D2D3_REG;
                vf_notify_receiver(d2d3_devp->vfm_name,VFRAME_EVENT_PROVIDER_START,NULL);
        }
        else if((VFRAME_EVENT_PROVIDER_DPBUF_CONFIG == type) &&
                        (D2D3_DPG_MUX_NRW == parm->dpg_path))
        {
                vframe_t * vf = (vframe_t*)data;
                struct di_buf_s *di_buf = vf->private_data;
                d2d3_devp->dpg_addr = di_buf->dp_buf_adr;
                /*just update the dpg canvas config with the addr from di*/
                d2d3_config_dpg_canvas(d2d3_devp);
                pre_count++;

        }
        else if(VFRAME_EVENT_PROVIDER_FR_HINT == type)
        {
               vf_notify_receiver(d2d3_devp->vfm_name,VFRAME_EVENT_PROVIDER_FR_HINT,data);
        }
        else if(VFRAME_EVENT_PROVIDER_FR_END_HINT == type)
        {
               vf_notify_receiver(d2d3_devp->vfm_name,VFRAME_EVENT_PROVIDER_FR_END_HINT,data);
        }
        return ret;
}
コード例 #3
0
ファイル: vm.c プロジェクト: madmaze/Meson-3-Kernel
static vframe_receiver_op_t* vf_vm_unreg_provider(void)
{
//    ulong flags;    
//    stop_vm_task();
//    spin_lock_irqsave(&lock, flags); 
//    vfp = NULL;
//    spin_unlock_irqrestore(&lock, flags);
    vf_unreg_provider(&vm_vf_prov);
    return (vframe_receiver_op_t*)NULL;
}
コード例 #4
0
ファイル: ppmgr_vpp.c プロジェクト: madmaze/Meson-3-Kernel
void vf_ppmgr_unreg_provider(void)
{
    mutex_lock(&ppmgr_mutex);

    stop_ppmgr_task();

    vf_unreg_provider(&ppmgr_vf_prov);

    dec_vfp = NULL;

    mutex_unlock(&ppmgr_mutex);
}
コード例 #5
0
ファイル: vm.c プロジェクト: KaZoom/buildroot-linux-kernel-m3
static vframe_receiver_op_t* vf_vm_unreg_provider(void)
{
//    ulong flags;    
#ifndef CONFIG_AMLOGIC_VM_DISABLE_VIDEOLAYER
	vf_unreg_provider(&vm_vf_prov);
#endif
	stop_vm_task();
//    spin_lock_irqsave(&lock, flags); 
//    vfp = NULL;
//    spin_unlock_irqrestore(&lock, flags);
    return (vframe_receiver_op_t*)NULL;
}
コード例 #6
0
ファイル: d2d3_drv.c プロジェクト: akuster/linux-meson
static int d2d3_remove(struct platform_device *pdev)
{
        vf_unreg_provider(&d2d3_vf_prov);
        vf_unreg_receiver(&d2d3_vf_recv);

        /* Remove the cdev */
        device_remove_file(d2d3_devp->dev, &dev_attr_debug);

        cdev_del(&d2d3_devp->cdev);
        kfree(d2d3_devp);
        d2d3_devp = NULL;
        device_del(d2d3_devp->dev);
        return 0;
}
コード例 #7
0
static  int  thread_progress(void *para)
{
	logo_object_t *plogo=(logo_object_t*)para;
	jpeg_private_t *priv=(jpeg_private_t*)plogo->parser->priv;
	ulong timeout;
		
	timeout = jiffies + HZ*8;
    	while (time_before(jiffies, timeout)) {
		if (priv->state== PIC_FETCHED)
		{
			vf_unreg_provider();
			kfree(priv);
			amlog_mask_level(LOG_MASK_PARSER,LOG_LEVEL_LOW,"logo fetched\n");
			return SUCCESS;
		}	
	}
	amlog_mask_level(LOG_MASK_PARSER,LOG_LEVEL_LOW,"logo unfetched\n");
	return FAIL;
}
コード例 #8
0
void vdin_unreg_vf_provider(void)
{
    vf_unreg_provider();
}