Lines Matching full:sfp
282 static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id) in pvr2_sysfs_add_control() argument
289 cptr = pvr2_hdw_get_ctrl_by_index(sfp->channel.hdw,ctl_id); in pvr2_sysfs_add_control()
299 cip->chptr = sfp; in pvr2_sysfs_add_control()
301 if (sfp->item_last) { in pvr2_sysfs_add_control()
302 sfp->item_last->item_next = cip; in pvr2_sysfs_add_control()
304 sfp->item_first = cip; in pvr2_sysfs_add_control()
306 sfp->item_last = cip; in pvr2_sysfs_add_control()
391 ret = sysfs_create_group(&sfp->class_dev->kobj,&cip->grp); in pvr2_sysfs_add_control()
409 static void pvr2_sysfs_add_debugifc(struct pvr2_sysfs *sfp) in pvr2_sysfs_add_debugifc() argument
425 sfp->debugifc = dip; in pvr2_sysfs_add_debugifc()
426 ret = device_create_file(sfp->class_dev,&dip->attr_debugcmd); in pvr2_sysfs_add_debugifc()
434 ret = device_create_file(sfp->class_dev,&dip->attr_debuginfo); in pvr2_sysfs_add_debugifc()
445 static void pvr2_sysfs_tear_down_debugifc(struct pvr2_sysfs *sfp) in pvr2_sysfs_tear_down_debugifc() argument
447 if (!sfp->debugifc) return; in pvr2_sysfs_tear_down_debugifc()
448 if (sfp->debugifc->debuginfo_created_ok) { in pvr2_sysfs_tear_down_debugifc()
449 device_remove_file(sfp->class_dev, in pvr2_sysfs_tear_down_debugifc()
450 &sfp->debugifc->attr_debuginfo); in pvr2_sysfs_tear_down_debugifc()
452 if (sfp->debugifc->debugcmd_created_ok) { in pvr2_sysfs_tear_down_debugifc()
453 device_remove_file(sfp->class_dev, in pvr2_sysfs_tear_down_debugifc()
454 &sfp->debugifc->attr_debugcmd); in pvr2_sysfs_tear_down_debugifc()
456 kfree(sfp->debugifc); in pvr2_sysfs_tear_down_debugifc()
457 sfp->debugifc = NULL; in pvr2_sysfs_tear_down_debugifc()
462 static void pvr2_sysfs_add_controls(struct pvr2_sysfs *sfp) in pvr2_sysfs_add_controls() argument
465 cnt = pvr2_hdw_get_ctrl_count(sfp->channel.hdw); in pvr2_sysfs_add_controls()
467 pvr2_sysfs_add_control(sfp,idx); in pvr2_sysfs_add_controls()
472 static void pvr2_sysfs_tear_down_controls(struct pvr2_sysfs *sfp) in pvr2_sysfs_tear_down_controls() argument
475 for (cip1 = sfp->item_first; cip1; cip1 = cip2) { in pvr2_sysfs_tear_down_controls()
478 sysfs_remove_group(&sfp->class_dev->kobj,&cip1->grp); in pvr2_sysfs_tear_down_controls()
499 static void class_dev_destroy(struct pvr2_sysfs *sfp) in class_dev_destroy() argument
502 if (!sfp->class_dev) return; in class_dev_destroy()
504 pvr2_sysfs_tear_down_debugifc(sfp); in class_dev_destroy()
506 pvr2_sysfs_tear_down_controls(sfp); in class_dev_destroy()
507 if (sfp->hdw_desc_created_ok) { in class_dev_destroy()
508 device_remove_file(sfp->class_dev, in class_dev_destroy()
509 &sfp->attr_hdw_desc); in class_dev_destroy()
511 if (sfp->hdw_name_created_ok) { in class_dev_destroy()
512 device_remove_file(sfp->class_dev, in class_dev_destroy()
513 &sfp->attr_hdw_name); in class_dev_destroy()
515 if (sfp->bus_info_created_ok) { in class_dev_destroy()
516 device_remove_file(sfp->class_dev, in class_dev_destroy()
517 &sfp->attr_bus_info); in class_dev_destroy()
519 if (sfp->v4l_minor_number_created_ok) { in class_dev_destroy()
520 device_remove_file(sfp->class_dev, in class_dev_destroy()
521 &sfp->attr_v4l_minor_number); in class_dev_destroy()
523 if (sfp->v4l_radio_minor_number_created_ok) { in class_dev_destroy()
524 device_remove_file(sfp->class_dev, in class_dev_destroy()
525 &sfp->attr_v4l_radio_minor_number); in class_dev_destroy()
527 if (sfp->unit_number_created_ok) { in class_dev_destroy()
528 device_remove_file(sfp->class_dev, in class_dev_destroy()
529 &sfp->attr_unit_number); in class_dev_destroy()
531 pvr2_sysfs_trace("Destroying class_dev id=%p",sfp->class_dev); in class_dev_destroy()
532 dev_set_drvdata(sfp->class_dev, NULL); in class_dev_destroy()
533 dev = sfp->class_dev->parent; in class_dev_destroy()
534 sfp->class_dev->parent = NULL; in class_dev_destroy()
536 device_unregister(sfp->class_dev); in class_dev_destroy()
537 sfp->class_dev = NULL; in class_dev_destroy()
544 struct pvr2_sysfs *sfp; in v4l_minor_number_show() local
545 sfp = dev_get_drvdata(class_dev); in v4l_minor_number_show()
546 if (!sfp) return -EINVAL; in v4l_minor_number_show()
548 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw, in v4l_minor_number_show()
556 struct pvr2_sysfs *sfp; in bus_info_show() local
557 sfp = dev_get_drvdata(class_dev); in bus_info_show()
558 if (!sfp) return -EINVAL; in bus_info_show()
560 pvr2_hdw_get_bus_info(sfp->channel.hdw)); in bus_info_show()
567 struct pvr2_sysfs *sfp; in hdw_name_show() local
568 sfp = dev_get_drvdata(class_dev); in hdw_name_show()
569 if (!sfp) return -EINVAL; in hdw_name_show()
571 pvr2_hdw_get_type(sfp->channel.hdw)); in hdw_name_show()
578 struct pvr2_sysfs *sfp; in hdw_desc_show() local
579 sfp = dev_get_drvdata(class_dev); in hdw_desc_show()
580 if (!sfp) return -EINVAL; in hdw_desc_show()
582 pvr2_hdw_get_desc(sfp->channel.hdw)); in hdw_desc_show()
590 struct pvr2_sysfs *sfp; in v4l_radio_minor_number_show() local
591 sfp = dev_get_drvdata(class_dev); in v4l_radio_minor_number_show()
592 if (!sfp) return -EINVAL; in v4l_radio_minor_number_show()
594 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw, in v4l_radio_minor_number_show()
602 struct pvr2_sysfs *sfp; in unit_number_show() local
603 sfp = dev_get_drvdata(class_dev); in unit_number_show()
604 if (!sfp) return -EINVAL; in unit_number_show()
606 pvr2_hdw_get_unit_number(sfp->channel.hdw)); in unit_number_show()
610 static void class_dev_create(struct pvr2_sysfs *sfp) in class_dev_create() argument
616 usb_dev = pvr2_hdw_get_dev(sfp->channel.hdw); in class_dev_create()
626 pvr2_hdw_get_device_identifier(sfp->channel.hdw)); in class_dev_create()
630 sfp->class_dev = class_dev; in class_dev_create()
631 dev_set_drvdata(class_dev, sfp); in class_dev_create()
640 sysfs_attr_init(&sfp->attr_v4l_minor_number.attr); in class_dev_create()
641 sfp->attr_v4l_minor_number.attr.name = "v4l_minor_number"; in class_dev_create()
642 sfp->attr_v4l_minor_number.attr.mode = S_IRUGO; in class_dev_create()
643 sfp->attr_v4l_minor_number.show = v4l_minor_number_show; in class_dev_create()
644 sfp->attr_v4l_minor_number.store = NULL; in class_dev_create()
645 ret = device_create_file(sfp->class_dev, in class_dev_create()
646 &sfp->attr_v4l_minor_number); in class_dev_create()
652 sfp->v4l_minor_number_created_ok = !0; in class_dev_create()
655 sysfs_attr_init(&sfp->attr_v4l_radio_minor_number.attr); in class_dev_create()
656 sfp->attr_v4l_radio_minor_number.attr.name = "v4l_radio_minor_number"; in class_dev_create()
657 sfp->attr_v4l_radio_minor_number.attr.mode = S_IRUGO; in class_dev_create()
658 sfp->attr_v4l_radio_minor_number.show = v4l_radio_minor_number_show; in class_dev_create()
659 sfp->attr_v4l_radio_minor_number.store = NULL; in class_dev_create()
660 ret = device_create_file(sfp->class_dev, in class_dev_create()
661 &sfp->attr_v4l_radio_minor_number); in class_dev_create()
667 sfp->v4l_radio_minor_number_created_ok = !0; in class_dev_create()
670 sysfs_attr_init(&sfp->attr_unit_number.attr); in class_dev_create()
671 sfp->attr_unit_number.attr.name = "unit_number"; in class_dev_create()
672 sfp->attr_unit_number.attr.mode = S_IRUGO; in class_dev_create()
673 sfp->attr_unit_number.show = unit_number_show; in class_dev_create()
674 sfp->attr_unit_number.store = NULL; in class_dev_create()
675 ret = device_create_file(sfp->class_dev,&sfp->attr_unit_number); in class_dev_create()
681 sfp->unit_number_created_ok = !0; in class_dev_create()
684 sysfs_attr_init(&sfp->attr_bus_info.attr); in class_dev_create()
685 sfp->attr_bus_info.attr.name = "bus_info_str"; in class_dev_create()
686 sfp->attr_bus_info.attr.mode = S_IRUGO; in class_dev_create()
687 sfp->attr_bus_info.show = bus_info_show; in class_dev_create()
688 sfp->attr_bus_info.store = NULL; in class_dev_create()
689 ret = device_create_file(sfp->class_dev, in class_dev_create()
690 &sfp->attr_bus_info); in class_dev_create()
696 sfp->bus_info_created_ok = !0; in class_dev_create()
699 sysfs_attr_init(&sfp->attr_hdw_name.attr); in class_dev_create()
700 sfp->attr_hdw_name.attr.name = "device_hardware_type"; in class_dev_create()
701 sfp->attr_hdw_name.attr.mode = S_IRUGO; in class_dev_create()
702 sfp->attr_hdw_name.show = hdw_name_show; in class_dev_create()
703 sfp->attr_hdw_name.store = NULL; in class_dev_create()
704 ret = device_create_file(sfp->class_dev, in class_dev_create()
705 &sfp->attr_hdw_name); in class_dev_create()
711 sfp->hdw_name_created_ok = !0; in class_dev_create()
714 sysfs_attr_init(&sfp->attr_hdw_desc.attr); in class_dev_create()
715 sfp->attr_hdw_desc.attr.name = "device_hardware_description"; in class_dev_create()
716 sfp->attr_hdw_desc.attr.mode = S_IRUGO; in class_dev_create()
717 sfp->attr_hdw_desc.show = hdw_desc_show; in class_dev_create()
718 sfp->attr_hdw_desc.store = NULL; in class_dev_create()
719 ret = device_create_file(sfp->class_dev, in class_dev_create()
720 &sfp->attr_hdw_desc); in class_dev_create()
726 sfp->hdw_desc_created_ok = !0; in class_dev_create()
729 pvr2_sysfs_add_controls(sfp); in class_dev_create()
731 pvr2_sysfs_add_debugifc(sfp); in class_dev_create()
738 struct pvr2_sysfs *sfp; in pvr2_sysfs_internal_check() local
739 sfp = container_of(chp,struct pvr2_sysfs,channel); in pvr2_sysfs_internal_check()
740 if (!sfp->channel.mc_head->disconnect_flag) return; in pvr2_sysfs_internal_check()
741 pvr2_trace(PVR2_TRACE_STRUCT,"Destroying pvr2_sysfs id=%p",sfp); in pvr2_sysfs_internal_check()
742 class_dev_destroy(sfp); in pvr2_sysfs_internal_check()
743 pvr2_channel_done(&sfp->channel); in pvr2_sysfs_internal_check()
744 kfree(sfp); in pvr2_sysfs_internal_check()
750 struct pvr2_sysfs *sfp; in pvr2_sysfs_create() local
751 sfp = kzalloc(sizeof(*sfp),GFP_KERNEL); in pvr2_sysfs_create()
752 if (!sfp) in pvr2_sysfs_create()
754 pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr2_sysfs id=%p",sfp); in pvr2_sysfs_create()
755 pvr2_channel_init(&sfp->channel,mp); in pvr2_sysfs_create()
756 sfp->channel.check_func = pvr2_sysfs_internal_check; in pvr2_sysfs_create()
758 class_dev_create(sfp); in pvr2_sysfs_create()
779 struct pvr2_sysfs *sfp; in debuginfo_show() local
780 sfp = dev_get_drvdata(class_dev); in debuginfo_show()
781 if (!sfp) return -EINVAL; in debuginfo_show()
782 pvr2_hdw_trigger_module_log(sfp->channel.hdw); in debuginfo_show()
783 return pvr2_debugifc_print_info(sfp->channel.hdw,buf,PAGE_SIZE); in debuginfo_show()
790 struct pvr2_sysfs *sfp; in debugcmd_show() local
791 sfp = dev_get_drvdata(class_dev); in debugcmd_show()
792 if (!sfp) return -EINVAL; in debugcmd_show()
793 return pvr2_debugifc_print_status(sfp->channel.hdw,buf,PAGE_SIZE); in debugcmd_show()
801 struct pvr2_sysfs *sfp; in debugcmd_store() local
804 sfp = dev_get_drvdata(class_dev); in debugcmd_store()
805 if (!sfp) return -EINVAL; in debugcmd_store()
807 ret = pvr2_debugifc_docmd(sfp->channel.hdw,buf,count); in debugcmd_store()