2 * drivers/s390/char/sclp_info.c
4 * Copyright IBM Corp. 2007
5 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>
8 #include <linux/init.h>
9 #include <linux/errno.h>
10 #include <linux/string.h>
14 struct sclp_readinfo_sccb s390_readinfo_sccb
;
16 void __init
sclp_readinfo_early(void)
19 struct sccb_header
*sccb
;
22 __ctl_set_bit(0, 9); /* enable service signal subclass mask */
24 sccb
= &s390_readinfo_sccb
.header
;
25 command
= SCLP_CMDW_READ_SCP_INFO_FORCED
;
29 memset(&s390_readinfo_sccb
, 0, sizeof(s390_readinfo_sccb
));
30 sccb
->length
= sizeof(s390_readinfo_sccb
);
31 sccb
->control_mask
[2] = 0x80;
33 ret
= sclp_service_call(command
, &s390_readinfo_sccb
);
40 __load_psw_mask(PSW_BASE_BITS
| PSW_MASK_EXT
|
41 PSW_MASK_WAIT
| PSW_DEFAULT_KEY
);
45 response
= sccb
->response_code
;
50 if (response
!= 0x1f0 || command
== SCLP_CMDW_READ_SCP_INFO
)
53 command
= SCLP_CMDW_READ_SCP_INFO
;
56 __ctl_clear_bit(0, 9); /* disable service signal subclass mask */