s390/sclp: detect DIRQ facility
authorSebastian Ott <sebott@linux.ibm.com>
Tue, 12 Feb 2019 11:37:50 +0000 (12:37 +0100)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Mon, 29 Apr 2019 08:47:01 +0000 (10:47 +0200)
Detect the adapter CPU directed interruption facility.

Signed-off-by: Sebastian Ott <sebott@linux.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/include/asm/sclp.h
drivers/s390/char/sclp.h
drivers/s390/char/sclp_early.c

index ef5d8fa921226c4610e106081aed4209b6d3ba48..f577c5f6031adbfb318547575ca82e87848d50e6 100644 (file)
@@ -81,6 +81,7 @@ struct sclp_info {
        unsigned char has_diag318 : 1;
        unsigned char has_sipl : 1;
        unsigned char has_sipl_g2 : 1;
+       unsigned char has_dirq : 1;
        unsigned int ibc;
        unsigned int mtid;
        unsigned int mtid_cp;
index 287382dc21c587ec6e895d1a3a6ac8ab70a688b1..043f32ba37491bceadc6e74c592ceb388bd9419b 100644 (file)
@@ -197,7 +197,7 @@ struct read_info_sccb {
        u32     hmfai;                  /* 124-127 */
        u8      _pad_128[134 - 128];    /* 128-133 */
        u8      byte_134;                       /* 134 */
-       u8      _pad_135;               /* 135 */
+       u8      cpudirq;                /* 135 */
        u16     cbl;                    /* 136-137 */
        u8      _pad_138[4096 - 138];   /* 138-4095 */
 } __packed __aligned(PAGE_SIZE);
index dae9de3d7c962ba6d78a17f952a6fd8c52030c6c..fdad2a980129deb7ced748c63fe71586bea65e1f 100644 (file)
@@ -95,6 +95,7 @@ static void __init sclp_early_facilities_detect(struct read_info_sccb *sccb)
        sclp.mtid_prev = (sccb->fac42 & 0x80) ? (sccb->fac66 & 31) : 0;
 
        sclp.hmfai = sccb->hmfai;
+       sclp.has_dirq = !!(sccb->cpudirq & 0x80);
 }
 
 /*