Lines Matching defs:sfp

286 static void pvr2_sysfs_add_control(struct pvr2_sysfs *sfp,int ctl_id)
293 cptr = pvr2_hdw_get_ctrl_by_index(sfp->channel.hdw,ctl_id);
303 cip->chptr = sfp;
305 if (sfp->item_last) {
306 sfp->item_last->item_next = cip;
308 sfp->item_first = cip;
310 sfp->item_last = cip;
395 ret = sysfs_create_group(&sfp->class_dev->kobj,&cip->grp);
413 static void pvr2_sysfs_add_debugifc(struct pvr2_sysfs *sfp)
429 sfp->debugifc = dip;
430 ret = device_create_file(sfp->class_dev,&dip->attr_debugcmd);
438 ret = device_create_file(sfp->class_dev,&dip->attr_debuginfo);
449 static void pvr2_sysfs_tear_down_debugifc(struct pvr2_sysfs *sfp)
451 if (!sfp->debugifc) return;
452 if (sfp->debugifc->debuginfo_created_ok) {
453 device_remove_file(sfp->class_dev,
454 &sfp->debugifc->attr_debuginfo);
456 if (sfp->debugifc->debugcmd_created_ok) {
457 device_remove_file(sfp->class_dev,
458 &sfp->debugifc->attr_debugcmd);
460 kfree(sfp->debugifc);
461 sfp->debugifc = NULL;
466 static void pvr2_sysfs_add_controls(struct pvr2_sysfs *sfp)
469 cnt = pvr2_hdw_get_ctrl_count(sfp->channel.hdw);
471 pvr2_sysfs_add_control(sfp,idx);
476 static void pvr2_sysfs_tear_down_controls(struct pvr2_sysfs *sfp)
479 for (cip1 = sfp->item_first; cip1; cip1 = cip2) {
482 sysfs_remove_group(&sfp->class_dev->kobj,&cip1->grp);
506 static void class_dev_destroy(struct pvr2_sysfs *sfp)
509 if (!sfp->class_dev) return;
511 pvr2_sysfs_tear_down_debugifc(sfp);
513 pvr2_sysfs_tear_down_controls(sfp);
514 if (sfp->hdw_desc_created_ok) {
515 device_remove_file(sfp->class_dev,
516 &sfp->attr_hdw_desc);
518 if (sfp->hdw_name_created_ok) {
519 device_remove_file(sfp->class_dev,
520 &sfp->attr_hdw_name);
522 if (sfp->bus_info_created_ok) {
523 device_remove_file(sfp->class_dev,
524 &sfp->attr_bus_info);
526 if (sfp->v4l_minor_number_created_ok) {
527 device_remove_file(sfp->class_dev,
528 &sfp->attr_v4l_minor_number);
530 if (sfp->v4l_radio_minor_number_created_ok) {
531 device_remove_file(sfp->class_dev,
532 &sfp->attr_v4l_radio_minor_number);
534 if (sfp->unit_number_created_ok) {
535 device_remove_file(sfp->class_dev,
536 &sfp->attr_unit_number);
538 pvr2_sysfs_trace("Destroying class_dev id=%p",sfp->class_dev);
539 dev_set_drvdata(sfp->class_dev, NULL);
540 dev = sfp->class_dev->parent;
541 sfp->class_dev->parent = NULL;
543 device_unregister(sfp->class_dev);
544 sfp->class_dev = NULL;
551 struct pvr2_sysfs *sfp;
552 sfp = dev_get_drvdata(class_dev);
553 if (!sfp) return -EINVAL;
555 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw,
563 struct pvr2_sysfs *sfp;
564 sfp = dev_get_drvdata(class_dev);
565 if (!sfp) return -EINVAL;
567 pvr2_hdw_get_bus_info(sfp->channel.hdw));
574 struct pvr2_sysfs *sfp;
575 sfp = dev_get_drvdata(class_dev);
576 if (!sfp) return -EINVAL;
578 pvr2_hdw_get_type(sfp->channel.hdw));
585 struct pvr2_sysfs *sfp;
586 sfp = dev_get_drvdata(class_dev);
587 if (!sfp) return -EINVAL;
589 pvr2_hdw_get_desc(sfp->channel.hdw));
597 struct pvr2_sysfs *sfp;
598 sfp = dev_get_drvdata(class_dev);
599 if (!sfp) return -EINVAL;
601 pvr2_hdw_v4l_get_minor_number(sfp->channel.hdw,
609 struct pvr2_sysfs *sfp;
610 sfp = dev_get_drvdata(class_dev);
611 if (!sfp) return -EINVAL;
613 pvr2_hdw_get_unit_number(sfp->channel.hdw));
617 static void class_dev_create(struct pvr2_sysfs *sfp,
624 usb_dev = pvr2_hdw_get_dev(sfp->channel.hdw);
634 pvr2_hdw_get_device_identifier(sfp->channel.hdw));
638 sfp->class_dev = class_dev;
639 dev_set_drvdata(class_dev, sfp);
648 sysfs_attr_init(&sfp->attr_v4l_minor_number.attr);
649 sfp->attr_v4l_minor_number.attr.name = "v4l_minor_number";
650 sfp->attr_v4l_minor_number.attr.mode = S_IRUGO;
651 sfp->attr_v4l_minor_number.show = v4l_minor_number_show;
652 sfp->attr_v4l_minor_number.store = NULL;
653 ret = device_create_file(sfp->class_dev,
654 &sfp->attr_v4l_minor_number);
660 sfp->v4l_minor_number_created_ok = !0;
663 sysfs_attr_init(&sfp->attr_v4l_radio_minor_number.attr);
664 sfp->attr_v4l_radio_minor_number.attr.name = "v4l_radio_minor_number";
665 sfp->attr_v4l_radio_minor_number.attr.mode = S_IRUGO;
666 sfp->attr_v4l_radio_minor_number.show = v4l_radio_minor_number_show;
667 sfp->attr_v4l_radio_minor_number.store = NULL;
668 ret = device_create_file(sfp->class_dev,
669 &sfp->attr_v4l_radio_minor_number);
675 sfp->v4l_radio_minor_number_created_ok = !0;
678 sysfs_attr_init(&sfp->attr_unit_number.attr);
679 sfp->attr_unit_number.attr.name = "unit_number";
680 sfp->attr_unit_number.attr.mode = S_IRUGO;
681 sfp->attr_unit_number.show = unit_number_show;
682 sfp->attr_unit_number.store = NULL;
683 ret = device_create_file(sfp->class_dev,&sfp->attr_unit_number);
689 sfp->unit_number_created_ok = !0;
692 sysfs_attr_init(&sfp->attr_bus_info.attr);
693 sfp->attr_bus_info.attr.name = "bus_info_str";
694 sfp->attr_bus_info.attr.mode = S_IRUGO;
695 sfp->attr_bus_info.show = bus_info_show;
696 sfp->attr_bus_info.store = NULL;
697 ret = device_create_file(sfp->class_dev,
698 &sfp->attr_bus_info);
704 sfp->bus_info_created_ok = !0;
707 sysfs_attr_init(&sfp->attr_hdw_name.attr);
708 sfp->attr_hdw_name.attr.name = "device_hardware_type";
709 sfp->attr_hdw_name.attr.mode = S_IRUGO;
710 sfp->attr_hdw_name.show = hdw_name_show;
711 sfp->attr_hdw_name.store = NULL;
712 ret = device_create_file(sfp->class_dev,
713 &sfp->attr_hdw_name);
719 sfp->hdw_name_created_ok = !0;
722 sysfs_attr_init(&sfp->attr_hdw_desc.attr);
723 sfp->attr_hdw_desc.attr.name = "device_hardware_description";
724 sfp->attr_hdw_desc.attr.mode = S_IRUGO;
725 sfp->attr_hdw_desc.show = hdw_desc_show;
726 sfp->attr_hdw_desc.store = NULL;
727 ret = device_create_file(sfp->class_dev,
728 &sfp->attr_hdw_desc);
734 sfp->hdw_desc_created_ok = !0;
737 pvr2_sysfs_add_controls(sfp);
739 pvr2_sysfs_add_debugifc(sfp);
746 struct pvr2_sysfs *sfp;
747 sfp = container_of(chp,struct pvr2_sysfs,channel);
748 if (!sfp->channel.mc_head->disconnect_flag) return;
749 pvr2_trace(PVR2_TRACE_STRUCT,"Destroying pvr2_sysfs id=%p",sfp);
750 class_dev_destroy(sfp);
751 pvr2_channel_done(&sfp->channel);
752 kfree(sfp);
759 struct pvr2_sysfs *sfp;
760 sfp = kzalloc(sizeof(*sfp),GFP_KERNEL);
761 if (!sfp) return sfp;
762 pvr2_trace(PVR2_TRACE_STRUCT,"Creating pvr2_sysfs id=%p",sfp);
763 pvr2_channel_init(&sfp->channel,mp);
764 sfp->channel.check_func = pvr2_sysfs_internal_check;
766 class_dev_create(sfp,class_ptr);
767 return sfp;
804 struct pvr2_sysfs *sfp;
805 sfp = dev_get_drvdata(class_dev);
806 if (!sfp) return -EINVAL;
807 pvr2_hdw_trigger_module_log(sfp->channel.hdw);
808 return pvr2_debugifc_print_info(sfp->channel.hdw,buf,PAGE_SIZE);
815 struct pvr2_sysfs *sfp;
816 sfp = dev_get_drvdata(class_dev);
817 if (!sfp) return -EINVAL;
818 return pvr2_debugifc_print_status(sfp->channel.hdw,buf,PAGE_SIZE);
826 struct pvr2_sysfs *sfp;
829 sfp = dev_get_drvdata(class_dev);
830 if (!sfp) return -EINVAL;
832 ret = pvr2_debugifc_docmd(sfp->channel.hdw,buf,count);