Lines Matching refs:css
698 css_generate_pgid(struct channel_subsystem *css, u32 tod_high) in css_generate_pgid() argument
703 css->global_pgid.pgid_high.ext_cssid.version = 0x80; in css_generate_pgid()
704 css->global_pgid.pgid_high.ext_cssid.cssid = css->cssid; in css_generate_pgid()
707 css->global_pgid.pgid_high.cpu_addr = stap(); in css_generate_pgid()
709 css->global_pgid.pgid_high.cpu_addr = 0; in css_generate_pgid()
713 css->global_pgid.cpu_id = cpu_id.ident; in css_generate_pgid()
714 css->global_pgid.cpu_model = cpu_id.machine; in css_generate_pgid()
715 css->global_pgid.tod_high = tod_high; in css_generate_pgid()
722 struct channel_subsystem *css; in channel_subsystem_release() local
724 css = to_css(dev); in channel_subsystem_release()
725 mutex_destroy(&css->mutex); in channel_subsystem_release()
726 if (css->pseudo_subchannel) { in channel_subsystem_release()
728 css_subchannel_release(&css->pseudo_subchannel->dev); in channel_subsystem_release()
729 css->pseudo_subchannel = NULL; in channel_subsystem_release()
731 kfree(css); in channel_subsystem_release()
738 struct channel_subsystem *css = to_css(dev); in css_cm_enable_show() local
741 if (!css) in css_cm_enable_show()
743 mutex_lock(&css->mutex); in css_cm_enable_show()
744 ret = sprintf(buf, "%x\n", css->cm_enabled); in css_cm_enable_show()
745 mutex_unlock(&css->mutex); in css_cm_enable_show()
753 struct channel_subsystem *css = to_css(dev); in css_cm_enable_store() local
760 mutex_lock(&css->mutex); in css_cm_enable_store()
763 ret = css->cm_enabled ? chsc_secm(css, 0) : 0; in css_cm_enable_store()
766 ret = css->cm_enabled ? 0 : chsc_secm(css, 1); in css_cm_enable_store()
771 mutex_unlock(&css->mutex); in css_cm_enable_store()
781 struct channel_subsystem *css; in setup_css() local
783 css = channel_subsystems[nr]; in setup_css()
784 memset(css, 0, sizeof(struct channel_subsystem)); in setup_css()
785 css->pseudo_subchannel = in setup_css()
786 kzalloc(sizeof(*css->pseudo_subchannel), GFP_KERNEL); in setup_css()
787 if (!css->pseudo_subchannel) in setup_css()
789 css->pseudo_subchannel->dev.parent = &css->device; in setup_css()
790 css->pseudo_subchannel->dev.release = css_subchannel_release; in setup_css()
791 dev_set_name(&css->pseudo_subchannel->dev, "defunct"); in setup_css()
792 mutex_init(&css->pseudo_subchannel->reg_mutex); in setup_css()
793 ret = css_sch_create_locks(css->pseudo_subchannel); in setup_css()
795 kfree(css->pseudo_subchannel); in setup_css()
798 mutex_init(&css->mutex); in setup_css()
799 css->valid = 1; in setup_css()
800 css->cssid = nr; in setup_css()
801 dev_set_name(&css->device, "css%x", nr); in setup_css()
802 css->device.release = channel_subsystem_release; in setup_css()
804 css_generate_pgid(css, tod_high); in setup_css()
816 struct channel_subsystem *css; in css_reboot_event() local
818 css = channel_subsystems[i]; in css_reboot_event()
819 mutex_lock(&css->mutex); in css_reboot_event()
820 if (css->cm_enabled) in css_reboot_event()
821 if (chsc_secm(css, 0)) in css_reboot_event()
823 mutex_unlock(&css->mutex); in css_reboot_event()
849 struct channel_subsystem *css; in css_power_event() local
851 css = channel_subsystems[i]; in css_power_event()
852 mutex_lock(&css->mutex); in css_power_event()
853 if (!css->cm_enabled) { in css_power_event()
854 mutex_unlock(&css->mutex); in css_power_event()
857 ret = __chsc_do_secm(css, 0); in css_power_event()
859 mutex_unlock(&css->mutex); in css_power_event()
866 struct channel_subsystem *css; in css_power_event() local
868 css = channel_subsystems[i]; in css_power_event()
869 mutex_lock(&css->mutex); in css_power_event()
870 if (!css->cm_enabled) { in css_power_event()
871 mutex_unlock(&css->mutex); in css_power_event()
874 ret = __chsc_do_secm(css, 1); in css_power_event()
876 mutex_unlock(&css->mutex); in css_power_event()
924 struct channel_subsystem *css; in css_bus_init() local
926 css = kmalloc(sizeof(struct channel_subsystem), GFP_KERNEL); in css_bus_init()
927 if (!css) { in css_bus_init()
931 channel_subsystems[i] = css; in css_bus_init()
937 ret = device_register(&css->device); in css_bus_init()
939 put_device(&css->device); in css_bus_init()
943 ret = device_create_file(&css->device, in css_bus_init()
948 ret = device_register(&css->pseudo_subchannel->dev); in css_bus_init()
950 put_device(&css->pseudo_subchannel->dev); in css_bus_init()
976 struct channel_subsystem *css; in css_bus_init() local
979 css = channel_subsystems[i]; in css_bus_init()
980 device_unregister(&css->pseudo_subchannel->dev); in css_bus_init()
981 css->pseudo_subchannel = NULL; in css_bus_init()
983 device_remove_file(&css->device, in css_bus_init()
985 device_unregister(&css->device); in css_bus_init()
999 struct channel_subsystem *css; in css_bus_cleanup() local
1003 css = channel_subsystems[i]; in css_bus_cleanup()
1004 device_unregister(&css->pseudo_subchannel->dev); in css_bus_cleanup()
1005 css->pseudo_subchannel = NULL; in css_bus_cleanup()
1007 device_remove_file(&css->device, &dev_attr_cm_enable); in css_bus_cleanup()
1008 device_unregister(&css->device); in css_bus_cleanup()