Lines Matching refs:css
783 css_generate_pgid(struct channel_subsystem *css, u32 tod_high) in css_generate_pgid() argument
788 css->global_pgid.pgid_high.ext_cssid.version = 0x80; in css_generate_pgid()
789 css->global_pgid.pgid_high.ext_cssid.cssid = in css_generate_pgid()
790 (css->cssid < 0) ? 0 : css->cssid; in css_generate_pgid()
792 css->global_pgid.pgid_high.cpu_addr = stap(); in css_generate_pgid()
795 css->global_pgid.cpu_id = cpu_id.ident; in css_generate_pgid()
796 css->global_pgid.cpu_model = cpu_id.machine; in css_generate_pgid()
797 css->global_pgid.tod_high = tod_high; in css_generate_pgid()
802 struct channel_subsystem *css = to_css(dev); in channel_subsystem_release() local
804 mutex_destroy(&css->mutex); in channel_subsystem_release()
805 kfree(css); in channel_subsystem_release()
811 struct channel_subsystem *css = to_css(dev); in real_cssid_show() local
813 if (css->cssid < 0) in real_cssid_show()
816 return sprintf(buf, "%x\n", css->cssid); in real_cssid_show()
823 struct channel_subsystem *css = to_css(dev); in cm_enable_show() local
826 mutex_lock(&css->mutex); in cm_enable_show()
827 ret = sprintf(buf, "%x\n", css->cm_enabled); in cm_enable_show()
828 mutex_unlock(&css->mutex); in cm_enable_show()
835 struct channel_subsystem *css = to_css(dev); in cm_enable_store() local
842 mutex_lock(&css->mutex); in cm_enable_store()
845 ret = css->cm_enabled ? chsc_secm(css, 0) : 0; in cm_enable_store()
848 ret = css->cm_enabled ? 0 : chsc_secm(css, 1); in cm_enable_store()
853 mutex_unlock(&css->mutex); in cm_enable_store()
891 struct channel_subsystem *css; in setup_css() local
894 css = kzalloc(sizeof(*css), GFP_KERNEL); in setup_css()
895 if (!css) in setup_css()
898 channel_subsystems[nr] = css; in setup_css()
899 dev_set_name(&css->device, "css%x", nr); in setup_css()
900 css->device.groups = cssdev_attr_groups; in setup_css()
901 css->device.release = channel_subsystem_release; in setup_css()
903 mutex_init(&css->mutex); in setup_css()
904 css->cssid = chsc_get_cssid(nr); in setup_css()
905 css_generate_pgid(css, (u32) (get_tod_clock() >> 32)); in setup_css()
907 ret = device_register(&css->device); in setup_css()
909 put_device(&css->device); in setup_css()
913 css->pseudo_subchannel = kzalloc(sizeof(*css->pseudo_subchannel), in setup_css()
915 if (!css->pseudo_subchannel) { in setup_css()
916 device_unregister(&css->device); in setup_css()
921 css->pseudo_subchannel->dev.parent = &css->device; in setup_css()
922 css->pseudo_subchannel->dev.release = css_subchannel_release; in setup_css()
923 mutex_init(&css->pseudo_subchannel->reg_mutex); in setup_css()
924 ret = css_sch_create_locks(css->pseudo_subchannel); in setup_css()
926 kfree(css->pseudo_subchannel); in setup_css()
927 device_unregister(&css->device); in setup_css()
931 dev_set_name(&css->pseudo_subchannel->dev, "defunct"); in setup_css()
932 ret = device_register(&css->pseudo_subchannel->dev); in setup_css()
934 put_device(&css->pseudo_subchannel->dev); in setup_css()
935 device_unregister(&css->device); in setup_css()
949 struct channel_subsystem *css; in css_reboot_event() local
953 for_each_css(css) { in css_reboot_event()
954 mutex_lock(&css->mutex); in css_reboot_event()
955 if (css->cm_enabled) in css_reboot_event()
956 if (chsc_secm(css, 0)) in css_reboot_event()
958 mutex_unlock(&css->mutex); in css_reboot_event()
977 struct channel_subsystem *css; in css_power_event() local
984 for_each_css(css) { in css_power_event()
985 mutex_lock(&css->mutex); in css_power_event()
986 if (!css->cm_enabled) { in css_power_event()
987 mutex_unlock(&css->mutex); in css_power_event()
990 ret = __chsc_do_secm(css, 0); in css_power_event()
992 mutex_unlock(&css->mutex); in css_power_event()
998 for_each_css(css) { in css_power_event()
999 mutex_lock(&css->mutex); in css_power_event()
1000 if (!css->cm_enabled) { in css_power_event()
1001 mutex_unlock(&css->mutex); in css_power_event()
1004 ret = __chsc_do_secm(css, 1); in css_power_event()
1006 mutex_unlock(&css->mutex); in css_power_event()
1074 struct channel_subsystem *css = channel_subsystems[i]; in css_bus_init() local
1075 device_unregister(&css->pseudo_subchannel->dev); in css_bus_init()
1076 device_unregister(&css->device); in css_bus_init()
1090 struct channel_subsystem *css; in css_bus_cleanup() local
1092 for_each_css(css) { in css_bus_cleanup()
1093 device_unregister(&css->pseudo_subchannel->dev); in css_bus_cleanup()
1094 device_unregister(&css->device); in css_bus_cleanup()