Lines Matching refs:sfp
301 static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id) in pvr2_sysfs_add_control() argument
308 cptr = pvr2_hdw_get_ctrl_by_index(sfp->channel.hdw,ctl_id); in pvr2_sysfs_add_control()
318 cip->chptr = sfp; in pvr2_sysfs_add_control()
320 if (sfp->item_last) { in pvr2_sysfs_add_control()
321 sfp->item_last->item_next = cip; in pvr2_sysfs_add_control()
323 sfp->item_first = cip; in pvr2_sysfs_add_control()
325 sfp->item_last = cip; in pvr2_sysfs_add_control()
410 ret = sysfs_create_group(&sfp->class_dev->kobj,&cip->grp); in pvr2_sysfs_add_control()
428 static void pvr2_sysfs_add_debugifc(struct pvr2_sysfs *sfp) in pvr2_sysfs_add_debugifc() argument
444 sfp->debugifc = dip; in pvr2_sysfs_add_debugifc()
445 ret = device_create_file(sfp->class_dev,&dip->attr_debugcmd); in pvr2_sysfs_add_debugifc()
453 ret = device_create_file(sfp->class_dev,&dip->attr_debuginfo); in pvr2_sysfs_add_debugifc()
464 static void pvr2_sysfs_tear_down_debugifc(struct pvr2_sysfs *sfp) in pvr2_sysfs_tear_down_debugifc() argument
466 if (!sfp->debugifc) return; in pvr2_sysfs_tear_down_debugifc()
467 if (sfp->debugifc->debuginfo_created_ok) { in pvr2_sysfs_tear_down_debugifc()
468 device_remove_file(sfp->class_dev, in pvr2_sysfs_tear_down_debugifc()
469 &sfp->debugifc->attr_debuginfo); in pvr2_sysfs_tear_down_debugifc()
471 if (sfp->debugifc->debugcmd_created_ok) { in pvr2_sysfs_tear_down_debugifc()
472 device_remove_file(sfp->class_dev, in pvr2_sysfs_tear_down_debugifc()
473 &sfp->debugifc->attr_debugcmd); in pvr2_sysfs_tear_down_debugifc()
475 kfree(sfp->debugifc); in pvr2_sysfs_tear_down_debugifc()
476 sfp->debugifc = NULL; in pvr2_sysfs_tear_down_debugifc()
481 static void pvr2_sysfs_add_controls(struct pvr2_sysfs *sfp) in pvr2_sysfs_add_controls() argument
484 cnt = pvr2_hdw_get_ctrl_count(sfp->channel.hdw); in pvr2_sysfs_add_controls()
486 pvr2_sysfs_add_control(sfp,idx); in pvr2_sysfs_add_controls()
491 static void pvr2_sysfs_tear_down_controls(struct pvr2_sysfs *sfp) in pvr2_sysfs_tear_down_controls() argument
494 for (cip1 = sfp->item_first; cip1; cip1 = cip2) { in pvr2_sysfs_tear_down_controls()
497 sysfs_remove_group(&sfp->class_dev->kobj,&cip1->grp); in pvr2_sysfs_tear_down_controls()
521 static void class_dev_destroy(struct pvr2_sysfs *sfp) in class_dev_destroy() argument
524 if (!sfp->class_dev) return; in class_dev_destroy()
526 pvr2_sysfs_tear_down_debugifc(sfp); in class_dev_destroy()
528 pvr2_sysfs_tear_down_controls(sfp); in class_dev_destroy()
529 if (sfp->hdw_desc_created_ok) { in class_dev_destroy()
530 device_remove_file(sfp->class_dev, in class_dev_destroy()
531 &sfp->attr_hdw_desc); in class_dev_destroy()
533 if (sfp->hdw_name_created_ok) { in class_dev_destroy()
534 device_remove_file(sfp->class_dev, in class_dev_destroy()
535 &sfp->attr_hdw_name); in class_dev_destroy()
537 if (sfp->bus_info_created_ok) { in class_dev_destroy()
538 device_remove_file(sfp->class_dev, in class_dev_destroy()
539 &sfp->attr_bus_info); in class_dev_destroy()
541 if (sfp->v4l_minor_number_created_ok) { in class_dev_destroy()
542 device_remove_file(sfp->class_dev, in class_dev_destroy()
543 &sfp->attr_v4l_minor_number); in class_dev_destroy()
545 if (sfp->v4l_radio_minor_number_created_ok) { in class_dev_destroy()
546 device_remove_file(sfp->class_dev, in class_dev_destroy()
547 &sfp->attr_v4l_radio_minor_number); in class_dev_destroy()
549 if (sfp->unit_number_created_ok) { in class_dev_destroy()
550 device_remove_file(sfp->class_dev, in class_dev_destroy()
551 &sfp->attr_unit_number); in class_dev_destroy()
553 pvr2_sysfs_trace("Destroying class_dev id=%p",sfp->class_dev); in class_dev_destroy()
554 dev_set_drvdata(sfp->class_dev, NULL); in class_dev_destroy()
555 dev = sfp->class_dev->parent; in class_dev_destroy()
556 sfp->class_dev->parent = NULL; in class_dev_destroy()
558 device_unregister(sfp->class_dev); in class_dev_destroy()
559 sfp->class_dev = NULL; in class_dev_destroy()
566 struct pvr2_sysfs *sfp; in v4l_minor_number_show() local
567 sfp = dev_get_drvdata(class_dev); in v4l_minor_number_show()
568 if (!sfp) return -EINVAL; in v4l_minor_number_show()
570 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw, in v4l_minor_number_show()
578 struct pvr2_sysfs *sfp; in bus_info_show() local
579 sfp = dev_get_drvdata(class_dev); in bus_info_show()
580 if (!sfp) return -EINVAL; in bus_info_show()
582 pvr2_hdw_get_bus_info(sfp->channel.hdw)); in bus_info_show()
589 struct pvr2_sysfs *sfp; in hdw_name_show() local
590 sfp = dev_get_drvdata(class_dev); in hdw_name_show()
591 if (!sfp) return -EINVAL; in hdw_name_show()
593 pvr2_hdw_get_type(sfp->channel.hdw)); in hdw_name_show()
600 struct pvr2_sysfs *sfp; in hdw_desc_show() local
601 sfp = dev_get_drvdata(class_dev); in hdw_desc_show()
602 if (!sfp) return -EINVAL; in hdw_desc_show()
604 pvr2_hdw_get_desc(sfp->channel.hdw)); in hdw_desc_show()
612 struct pvr2_sysfs *sfp; in v4l_radio_minor_number_show() local
613 sfp = dev_get_drvdata(class_dev); in v4l_radio_minor_number_show()
614 if (!sfp) return -EINVAL; in v4l_radio_minor_number_show()
616 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw, in v4l_radio_minor_number_show()
624 struct pvr2_sysfs *sfp; in unit_number_show() local
625 sfp = dev_get_drvdata(class_dev); in unit_number_show()
626 if (!sfp) return -EINVAL; in unit_number_show()
628 pvr2_hdw_get_unit_number(sfp->channel.hdw)); in unit_number_show()
632 static void class_dev_create(struct pvr2_sysfs *sfp, in class_dev_create() argument
639 usb_dev = pvr2_hdw_get_dev(sfp->channel.hdw); in class_dev_create()
649 pvr2_hdw_get_device_identifier(sfp->channel.hdw)); in class_dev_create()
653 sfp->class_dev = class_dev; in class_dev_create()
654 dev_set_drvdata(class_dev, sfp); in class_dev_create()
663 sysfs_attr_init(&sfp->attr_v4l_minor_number.attr); in class_dev_create()
664 sfp->attr_v4l_minor_number.attr.name = "v4l_minor_number"; in class_dev_create()
665 sfp->attr_v4l_minor_number.attr.mode = S_IRUGO; in class_dev_create()
666 sfp->attr_v4l_minor_number.show = v4l_minor_number_show; in class_dev_create()
667 sfp->attr_v4l_minor_number.store = NULL; in class_dev_create()
668 ret = device_create_file(sfp->class_dev, in class_dev_create()
669 &sfp->attr_v4l_minor_number); in class_dev_create()
675 sfp->v4l_minor_number_created_ok = !0; in class_dev_create()
678 sysfs_attr_init(&sfp->attr_v4l_radio_minor_number.attr); in class_dev_create()
679 sfp->attr_v4l_radio_minor_number.attr.name = "v4l_radio_minor_number"; in class_dev_create()
680 sfp->attr_v4l_radio_minor_number.attr.mode = S_IRUGO; in class_dev_create()
681 sfp->attr_v4l_radio_minor_number.show = v4l_radio_minor_number_show; in class_dev_create()
682 sfp->attr_v4l_radio_minor_number.store = NULL; in class_dev_create()
683 ret = device_create_file(sfp->class_dev, in class_dev_create()
684 &sfp->attr_v4l_radio_minor_number); in class_dev_create()
690 sfp->v4l_radio_minor_number_created_ok = !0; in class_dev_create()
693 sysfs_attr_init(&sfp->attr_unit_number.attr); in class_dev_create()
694 sfp->attr_unit_number.attr.name = "unit_number"; in class_dev_create()
695 sfp->attr_unit_number.attr.mode = S_IRUGO; in class_dev_create()
696 sfp->attr_unit_number.show = unit_number_show; in class_dev_create()
697 sfp->attr_unit_number.store = NULL; in class_dev_create()
698 ret = device_create_file(sfp->class_dev,&sfp->attr_unit_number); in class_dev_create()
704 sfp->unit_number_created_ok = !0; in class_dev_create()
707 sysfs_attr_init(&sfp->attr_bus_info.attr); in class_dev_create()
708 sfp->attr_bus_info.attr.name = "bus_info_str"; in class_dev_create()
709 sfp->attr_bus_info.attr.mode = S_IRUGO; in class_dev_create()
710 sfp->attr_bus_info.show = bus_info_show; in class_dev_create()
711 sfp->attr_bus_info.store = NULL; in class_dev_create()
712 ret = device_create_file(sfp->class_dev, in class_dev_create()
713 &sfp->attr_bus_info); in class_dev_create()
719 sfp->bus_info_created_ok = !0; in class_dev_create()
722 sysfs_attr_init(&sfp->attr_hdw_name.attr); in class_dev_create()
723 sfp->attr_hdw_name.attr.name = "device_hardware_type"; in class_dev_create()
724 sfp->attr_hdw_name.attr.mode = S_IRUGO; in class_dev_create()
725 sfp->attr_hdw_name.show = hdw_name_show; in class_dev_create()
726 sfp->attr_hdw_name.store = NULL; in class_dev_create()
727 ret = device_create_file(sfp->class_dev, in class_dev_create()
728 &sfp->attr_hdw_name); in class_dev_create()
734 sfp->hdw_name_created_ok = !0; in class_dev_create()
737 sysfs_attr_init(&sfp->attr_hdw_desc.attr); in class_dev_create()
738 sfp->attr_hdw_desc.attr.name = "device_hardware_description"; in class_dev_create()
739 sfp->attr_hdw_desc.attr.mode = S_IRUGO; in class_dev_create()
740 sfp->attr_hdw_desc.show = hdw_desc_show; in class_dev_create()
741 sfp->attr_hdw_desc.store = NULL; in class_dev_create()
742 ret = device_create_file(sfp->class_dev, in class_dev_create()
743 &sfp->attr_hdw_desc); in class_dev_create()
749 sfp->hdw_desc_created_ok = !0; in class_dev_create()
752 pvr2_sysfs_add_controls(sfp); in class_dev_create()
754 pvr2_sysfs_add_debugifc(sfp); in class_dev_create()
761 struct pvr2_sysfs *sfp; in pvr2_sysfs_internal_check() local
762 sfp = container_of(chp,struct pvr2_sysfs,channel); in pvr2_sysfs_internal_check()
763 if (!sfp->channel.mc_head->disconnect_flag) return; in pvr2_sysfs_internal_check()
764 pvr2_trace(PVR2_TRACE_STRUCT,"Destroying pvr2_sysfs id=%p",sfp); in pvr2_sysfs_internal_check()
765 class_dev_destroy(sfp); in pvr2_sysfs_internal_check()
766 pvr2_channel_done(&sfp->channel); in pvr2_sysfs_internal_check()
767 kfree(sfp); in pvr2_sysfs_internal_check()
774 struct pvr2_sysfs *sfp; in pvr2_sysfs_create() local
775 sfp = kzalloc(sizeof(*sfp),GFP_KERNEL); in pvr2_sysfs_create()
776 if (!sfp) return sfp; in pvr2_sysfs_create()
777 pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr2_sysfs id=%p",sfp); in pvr2_sysfs_create()
778 pvr2_channel_init(&sfp->channel,mp); in pvr2_sysfs_create()
779 sfp->channel.check_func = pvr2_sysfs_internal_check; in pvr2_sysfs_create()
781 class_dev_create(sfp,class_ptr); in pvr2_sysfs_create()
782 return sfp; in pvr2_sysfs_create()
818 struct pvr2_sysfs *sfp; in debuginfo_show() local
819 sfp = dev_get_drvdata(class_dev); in debuginfo_show()
820 if (!sfp) return -EINVAL; in debuginfo_show()
821 pvr2_hdw_trigger_module_log(sfp->channel.hdw); in debuginfo_show()
822 return pvr2_debugifc_print_info(sfp->channel.hdw,buf,PAGE_SIZE); in debuginfo_show()
829 struct pvr2_sysfs *sfp; in debugcmd_show() local
830 sfp = dev_get_drvdata(class_dev); in debugcmd_show()
831 if (!sfp) return -EINVAL; in debugcmd_show()
832 return pvr2_debugifc_print_status(sfp->channel.hdw,buf,PAGE_SIZE); in debugcmd_show()
840 struct pvr2_sysfs *sfp; in debugcmd_store() local
843 sfp = dev_get_drvdata(class_dev); in debugcmd_store()
844 if (!sfp) return -EINVAL; in debugcmd_store()
846 ret = pvr2_debugifc_docmd(sfp->channel.hdw,buf,count); in debugcmd_store()