aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/char
diff options
context:
space:
mode:
authorMichael Mueller <mimu@linux.vnet.ibm.com>2014-03-15 13:16:26 -0400
committerChristian Borntraeger <borntraeger@de.ibm.com>2014-05-16 08:57:30 -0400
commit570126d370e9c018e603d63272ebcf7340efc05b (patch)
treeb01ed6c8e29d72f088aa8fa06f48ee0044cb4fac /drivers/s390/char
parent4953919feedaeb6d0161ecea920c35d1d1f639d3 (diff)
s390/sclp: add sclp_get_ibc function
The patch adds functionality to retrieve the IBC configuration by means of function sclp_get_ibc(). Signed-off-by: Michael Mueller <mimu@linux.vnet.ibm.com> Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
Diffstat (limited to 'drivers/s390/char')
-rw-r--r--drivers/s390/char/sclp_early.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/s390/char/sclp_early.c b/drivers/s390/char/sclp_early.c
index b57fe0efb422..1918d9dff45d 100644
--- a/drivers/s390/char/sclp_early.c
+++ b/drivers/s390/char/sclp_early.c
@@ -27,7 +27,9 @@ struct read_info_sccb {
27 u8 loadparm[8]; /* 24-31 */ 27 u8 loadparm[8]; /* 24-31 */
28 u8 _reserved1[48 - 32]; /* 32-47 */ 28 u8 _reserved1[48 - 32]; /* 32-47 */
29 u64 facilities; /* 48-55 */ 29 u64 facilities; /* 48-55 */
30 u8 _reserved2[84 - 56]; /* 56-83 */ 30 u8 _reserved2a[76 - 56]; /* 56-75 */
31 u32 ibc; /* 76-79 */
32 u8 _reserved2b[84 - 80]; /* 80-83 */
31 u8 fac84; /* 84 */ 33 u8 fac84; /* 84 */
32 u8 fac85; /* 85 */ 34 u8 fac85; /* 85 */
33 u8 _reserved3[91 - 86]; /* 86-90 */ 35 u8 _reserved3[91 - 86]; /* 86-90 */
@@ -47,6 +49,7 @@ static unsigned long sclp_hsa_size;
47static unsigned int sclp_max_cpu; 49static unsigned int sclp_max_cpu;
48static struct sclp_ipl_info sclp_ipl_info; 50static struct sclp_ipl_info sclp_ipl_info;
49static unsigned char sclp_siif; 51static unsigned char sclp_siif;
52static u32 sclp_ibc;
50 53
51u64 sclp_facilities; 54u64 sclp_facilities;
52u8 sclp_fac84; 55u8 sclp_fac84;
@@ -111,6 +114,7 @@ static void __init sclp_facilities_detect(struct read_info_sccb *sccb)
111 sclp_rnmax = sccb->rnmax ? sccb->rnmax : sccb->rnmax2; 114 sclp_rnmax = sccb->rnmax ? sccb->rnmax : sccb->rnmax2;
112 sclp_rzm = sccb->rnsize ? sccb->rnsize : sccb->rnsize2; 115 sclp_rzm = sccb->rnsize ? sccb->rnsize : sccb->rnsize2;
113 sclp_rzm <<= 20; 116 sclp_rzm <<= 20;
117 sclp_ibc = sccb->ibc;
114 118
115 if (!sccb->hcpua) { 119 if (!sccb->hcpua) {
116 if (MACHINE_IS_VM) 120 if (MACHINE_IS_VM)
@@ -168,6 +172,12 @@ int sclp_has_siif(void)
168} 172}
169EXPORT_SYMBOL(sclp_has_siif); 173EXPORT_SYMBOL(sclp_has_siif);
170 174
175unsigned int sclp_get_ibc(void)
176{
177 return sclp_ibc;
178}
179EXPORT_SYMBOL(sclp_get_ibc);
180
171/* 181/*
172 * This function will be called after sclp_facilities_detect(), which gets 182 * This function will be called after sclp_facilities_detect(), which gets
173 * called from early.c code. The sclp_facilities_detect() function retrieves 183 * called from early.c code. The sclp_facilities_detect() function retrieves