Lines Matching refs:func

630 	struct hantro_func *func = hantro_vdev_to_func(vdev);
648 if (func->id == MEDIA_ENT_F_PROC_VIDEO_ENCODER) {
651 } else if (func->id == MEDIA_ENT_F_PROC_VIDEO_DECODER) {
782 struct hantro_func *func)
789 func->source_pad.flags = MEDIA_PAD_FL_SOURCE;
790 ret = hantro_register_entity(mdev, &func->vdev.entity, "source",
791 &func->source_pad, 1, MEDIA_ENT_F_IO_V4L,
792 &func->vdev);
796 func->proc_pads[0].flags = MEDIA_PAD_FL_SINK;
797 func->proc_pads[1].flags = MEDIA_PAD_FL_SOURCE;
798 ret = hantro_register_entity(mdev, &func->proc, "proc",
799 func->proc_pads, 2, func->id,
800 &func->vdev);
804 func->sink_pad.flags = MEDIA_PAD_FL_SINK;
805 ret = hantro_register_entity(mdev, &func->sink, "sink",
806 &func->sink_pad, 1, MEDIA_ENT_F_IO_V4L,
807 &func->vdev);
812 ret = media_create_pad_link(&func->vdev.entity, 0, &func->proc, 0,
818 ret = media_create_pad_link(&func->proc, 1, &func->sink, 0,
825 func->intf_devnode = media_devnode_create(mdev, MEDIA_INTF_T_V4L_VIDEO,
827 func->vdev.minor);
828 if (!func->intf_devnode) {
834 link = media_create_intf_link(&func->vdev.entity,
835 &func->intf_devnode->intf,
843 link = media_create_intf_link(&func->sink, &func->intf_devnode->intf,
853 media_devnode_remove(func->intf_devnode);
856 media_entity_remove_links(&func->sink);
859 media_entity_remove_links(&func->proc);
860 media_entity_remove_links(&func->vdev.entity);
863 media_device_unregister_entity(&func->sink);
866 media_device_unregister_entity(&func->proc);
869 media_device_unregister_entity(&func->vdev.entity);
873 static void hantro_detach_func(struct hantro_func *func)
875 media_devnode_remove(func->intf_devnode);
876 media_entity_remove_links(&func->sink);
877 media_entity_remove_links(&func->proc);
878 media_entity_remove_links(&func->vdev.entity);
879 media_device_unregister_entity(&func->sink);
880 media_device_unregister_entity(&func->proc);
881 media_device_unregister_entity(&func->vdev.entity);
887 struct hantro_func *func;
892 func = devm_kzalloc(vpu->dev, sizeof(*func), GFP_KERNEL);
893 if (!func) {
898 func->id = funcid;
900 vfd = &func->vdev;
913 vpu->encoder = func;
917 vpu->decoder = func;
930 ret = hantro_attach_func(vpu, func);
966 struct hantro_func *func;
969 func = vpu->encoder;
971 func = vpu->decoder;
973 if (!func)
976 hantro_detach_func(func);
977 video_unregister_device(&func->vdev);