}
}
EXPORT_SYMBOL(vf_unreg_provider);
+void vf_light_reg_provider(struct vframe_provider_s *prov)
+{
+ struct vframe_provider_s *p = NULL;
+ struct vframe_receiver_s *receiver = NULL;
+ int i;
+
+ for (i = 0; i < MAX_PROVIDER_NUM; i++) {
+ p = provider_table[i];
+ if (p && !strcmp(p->name, prov->name)) {
+ if (vfm_debug_flag & 1)
+ pr_err("%s:%s\n", __func__, prov->name);
+ receiver = vf_get_receiver(prov->name);
+ if (receiver && receiver->ops
+ && receiver->ops->event_cb) {
+ receiver->ops->event_cb(
+ VFRAME_EVENT_PROVIDER_REG,
+ (void *)prov->name,
+ receiver->op_arg);
+ } else{
+ pr_err("%s Error to notify receiver\n",
+ __func__);
+ }
+ break;
+ }
+ }
+}
+EXPORT_SYMBOL(vf_light_reg_provider);
void vf_light_unreg_provider(struct vframe_provider_s *prov)
{
vf_local_init();
vf_light_unreg_provider(&ppmgr_vf_prov);
msleep(30);
- vf_reg_provider(&ppmgr_vf_prov);
+ vf_light_reg_provider(&ppmgr_vf_prov);
ppmgr_blocking = false;
up(&thread_sem);
PPMGRVPP_WARN("ppmgr rebuild from light-unregister\n");
extern int vf_notify_provider_by_name(const char *provider_name,
int event_type, void *data);
+void vf_light_reg_provider(struct vframe_provider_s *prov);
void vf_light_unreg_provider(struct vframe_provider_s *prov);
void vf_ext_light_unreg_provider(struct vframe_provider_s *prov);
struct vframe_provider_s *vf_get_provider(const char *name);