diff options
Diffstat (limited to 'drivers/s390/char/sclp_info.c')
| -rw-r--r-- | drivers/s390/char/sclp_info.c | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/drivers/s390/char/sclp_info.c b/drivers/s390/char/sclp_info.c deleted file mode 100644 index 7bcbe643b08..00000000000 --- a/drivers/s390/char/sclp_info.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * drivers/s390/char/sclp_info.c - * - * Copyright IBM Corp. 2007 - * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com> - */ - -#include <linux/init.h> -#include <linux/errno.h> -#include <linux/string.h> -#include <asm/sclp.h> -#include "sclp.h" - -struct sclp_readinfo_sccb s390_readinfo_sccb; - -void __init sclp_readinfo_early(void) -{ - sclp_cmdw_t command; - struct sccb_header *sccb; - int ret; - - __ctl_set_bit(0, 9); /* enable service signal subclass mask */ - - sccb = &s390_readinfo_sccb.header; - command = SCLP_CMDW_READ_SCP_INFO_FORCED; - while (1) { - u16 response; - - memset(&s390_readinfo_sccb, 0, sizeof(s390_readinfo_sccb)); - sccb->length = sizeof(s390_readinfo_sccb); - sccb->control_mask[2] = 0x80; - - ret = sclp_service_call(command, &s390_readinfo_sccb); - - if (ret == -EIO) - goto out; - if (ret == -EBUSY) - continue; - - __load_psw_mask(PSW_BASE_BITS | PSW_MASK_EXT | - PSW_MASK_WAIT | PSW_DEFAULT_KEY); - local_irq_disable(); - barrier(); - - response = sccb->response_code; - - if (response == 0x10) - break; - - if (response != 0x1f0 || command == SCLP_CMDW_READ_SCP_INFO) - break; - - command = SCLP_CMDW_READ_SCP_INFO; - } -out: - __ctl_clear_bit(0, 9); /* disable service signal subclass mask */ -} |
