Lines Matching refs:css
697 css_generate_pgid(struct channel_subsystem *css, u32 tod_high) in css_generate_pgid() argument
702 css->global_pgid.pgid_high.ext_cssid.version = 0x80; in css_generate_pgid()
703 css->global_pgid.pgid_high.ext_cssid.cssid = css->cssid; in css_generate_pgid()
705 css->global_pgid.pgid_high.cpu_addr = stap(); in css_generate_pgid()
708 css->global_pgid.cpu_id = cpu_id.ident; in css_generate_pgid()
709 css->global_pgid.cpu_model = cpu_id.machine; in css_generate_pgid()
710 css->global_pgid.tod_high = tod_high; in css_generate_pgid()
716 struct channel_subsystem *css; in channel_subsystem_release() local
718 css = to_css(dev); in channel_subsystem_release()
719 mutex_destroy(&css->mutex); in channel_subsystem_release()
720 if (css->pseudo_subchannel) { in channel_subsystem_release()
722 css_subchannel_release(&css->pseudo_subchannel->dev); in channel_subsystem_release()
723 css->pseudo_subchannel = NULL; in channel_subsystem_release()
725 kfree(css); in channel_subsystem_release()
732 struct channel_subsystem *css = to_css(dev); in css_cm_enable_show() local
735 if (!css) in css_cm_enable_show()
737 mutex_lock(&css->mutex); in css_cm_enable_show()
738 ret = sprintf(buf, "%x\n", css->cm_enabled); in css_cm_enable_show()
739 mutex_unlock(&css->mutex); in css_cm_enable_show()
747 struct channel_subsystem *css = to_css(dev); in css_cm_enable_store() local
754 mutex_lock(&css->mutex); in css_cm_enable_store()
757 ret = css->cm_enabled ? chsc_secm(css, 0) : 0; in css_cm_enable_store()
760 ret = css->cm_enabled ? 0 : chsc_secm(css, 1); in css_cm_enable_store()
765 mutex_unlock(&css->mutex); in css_cm_enable_store()
775 struct channel_subsystem *css; in setup_css() local
777 css = channel_subsystems[nr]; in setup_css()
778 memset(css, 0, sizeof(struct channel_subsystem)); in setup_css()
779 css->pseudo_subchannel = in setup_css()
780 kzalloc(sizeof(*css->pseudo_subchannel), GFP_KERNEL); in setup_css()
781 if (!css->pseudo_subchannel) in setup_css()
783 css->pseudo_subchannel->dev.parent = &css->device; in setup_css()
784 css->pseudo_subchannel->dev.release = css_subchannel_release; in setup_css()
785 dev_set_name(&css->pseudo_subchannel->dev, "defunct"); in setup_css()
786 mutex_init(&css->pseudo_subchannel->reg_mutex); in setup_css()
787 ret = css_sch_create_locks(css->pseudo_subchannel); in setup_css()
789 kfree(css->pseudo_subchannel); in setup_css()
792 mutex_init(&css->mutex); in setup_css()
793 css->valid = 1; in setup_css()
794 css->cssid = nr; in setup_css()
795 dev_set_name(&css->device, "css%x", nr); in setup_css()
796 css->device.release = channel_subsystem_release; in setup_css()
798 css_generate_pgid(css, tod_high); in setup_css()
810 struct channel_subsystem *css; in css_reboot_event() local
812 css = channel_subsystems[i]; in css_reboot_event()
813 mutex_lock(&css->mutex); in css_reboot_event()
814 if (css->cm_enabled) in css_reboot_event()
815 if (chsc_secm(css, 0)) in css_reboot_event()
817 mutex_unlock(&css->mutex); in css_reboot_event()
843 struct channel_subsystem *css; in css_power_event() local
845 css = channel_subsystems[i]; in css_power_event()
846 mutex_lock(&css->mutex); in css_power_event()
847 if (!css->cm_enabled) { in css_power_event()
848 mutex_unlock(&css->mutex); in css_power_event()
851 ret = __chsc_do_secm(css, 0); in css_power_event()
853 mutex_unlock(&css->mutex); in css_power_event()
860 struct channel_subsystem *css; in css_power_event() local
862 css = channel_subsystems[i]; in css_power_event()
863 mutex_lock(&css->mutex); in css_power_event()
864 if (!css->cm_enabled) { in css_power_event()
865 mutex_unlock(&css->mutex); in css_power_event()
868 ret = __chsc_do_secm(css, 1); in css_power_event()
870 mutex_unlock(&css->mutex); in css_power_event()
918 struct channel_subsystem *css; in css_bus_init() local
920 css = kmalloc(sizeof(struct channel_subsystem), GFP_KERNEL); in css_bus_init()
921 if (!css) { in css_bus_init()
925 channel_subsystems[i] = css; in css_bus_init()
931 ret = device_register(&css->device); in css_bus_init()
933 put_device(&css->device); in css_bus_init()
937 ret = device_create_file(&css->device, in css_bus_init()
942 ret = device_register(&css->pseudo_subchannel->dev); in css_bus_init()
944 put_device(&css->pseudo_subchannel->dev); in css_bus_init()
970 struct channel_subsystem *css; in css_bus_init() local
973 css = channel_subsystems[i]; in css_bus_init()
974 device_unregister(&css->pseudo_subchannel->dev); in css_bus_init()
975 css->pseudo_subchannel = NULL; in css_bus_init()
977 device_remove_file(&css->device, in css_bus_init()
979 device_unregister(&css->device); in css_bus_init()
993 struct channel_subsystem *css; in css_bus_cleanup() local
997 css = channel_subsystems[i]; in css_bus_cleanup()
998 device_unregister(&css->pseudo_subchannel->dev); in css_bus_cleanup()
999 css->pseudo_subchannel = NULL; in css_bus_cleanup()
1001 device_remove_file(&css->device, &dev_attr_cm_enable); in css_bus_cleanup()
1002 device_unregister(&css->device); in css_bus_cleanup()