diff options
Diffstat (limited to 'include/asm-s390')
-rw-r--r-- | include/asm-s390/atomic.h | 4 | ||||
-rw-r--r-- | include/asm-s390/cmb.h | 1 | ||||
-rw-r--r-- | include/asm-s390/processor.h | 4 | ||||
-rw-r--r-- | include/asm-s390/sclp.h | 47 | ||||
-rw-r--r-- | include/asm-s390/sfp-machine.h | 6 | ||||
-rw-r--r-- | include/asm-s390/sfp-util.h | 11 |
6 files changed, 35 insertions, 38 deletions
diff --git a/include/asm-s390/atomic.h b/include/asm-s390/atomic.h index c17bdbf22067..ea486952f778 100644 --- a/include/asm-s390/atomic.h +++ b/include/asm-s390/atomic.h | |||
@@ -24,7 +24,7 @@ | |||
24 | */ | 24 | */ |
25 | 25 | ||
26 | typedef struct { | 26 | typedef struct { |
27 | volatile int counter; | 27 | int counter; |
28 | } __attribute__ ((aligned (4))) atomic_t; | 28 | } __attribute__ ((aligned (4))) atomic_t; |
29 | #define ATOMIC_INIT(i) { (i) } | 29 | #define ATOMIC_INIT(i) { (i) } |
30 | 30 | ||
@@ -141,7 +141,7 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) | |||
141 | 141 | ||
142 | #ifdef __s390x__ | 142 | #ifdef __s390x__ |
143 | typedef struct { | 143 | typedef struct { |
144 | volatile long long counter; | 144 | long long counter; |
145 | } __attribute__ ((aligned (8))) atomic64_t; | 145 | } __attribute__ ((aligned (8))) atomic64_t; |
146 | #define ATOMIC64_INIT(i) { (i) } | 146 | #define ATOMIC64_INIT(i) { (i) } |
147 | 147 | ||
diff --git a/include/asm-s390/cmb.h b/include/asm-s390/cmb.h index 241756f80df3..021e7c3223ec 100644 --- a/include/asm-s390/cmb.h +++ b/include/asm-s390/cmb.h | |||
@@ -88,7 +88,6 @@ extern u64 cmf_read(struct ccw_device *cdev, int index); | |||
88 | * any | 88 | * any |
89 | **/ | 89 | **/ |
90 | extern int cmf_readall(struct ccw_device *cdev, struct cmbdata*data); | 90 | extern int cmf_readall(struct ccw_device *cdev, struct cmbdata*data); |
91 | extern void cmf_reset(struct ccw_device *cdev); | ||
92 | 91 | ||
93 | #endif /* __KERNEL__ */ | 92 | #endif /* __KERNEL__ */ |
94 | #endif /* S390_CMB_H */ | 93 | #endif /* S390_CMB_H */ |
diff --git a/include/asm-s390/processor.h b/include/asm-s390/processor.h index 5cb480af65d5..3b972d4c6b29 100644 --- a/include/asm-s390/processor.h +++ b/include/asm-s390/processor.h | |||
@@ -357,8 +357,8 @@ extern void (*s390_base_ext_handler_fn)(void); | |||
357 | /* | 357 | /* |
358 | * CPU idle notifier chain. | 358 | * CPU idle notifier chain. |
359 | */ | 359 | */ |
360 | #define CPU_IDLE 0 | 360 | #define S390_CPU_IDLE 0 |
361 | #define CPU_NOT_IDLE 1 | 361 | #define S390_CPU_NOT_IDLE 1 |
362 | 362 | ||
363 | struct notifier_block; | 363 | struct notifier_block; |
364 | int register_idle_notifier(struct notifier_block *nb); | 364 | int register_idle_notifier(struct notifier_block *nb); |
diff --git a/include/asm-s390/sclp.h b/include/asm-s390/sclp.h index 21ed64773210..cb9faf1ea5cf 100644 --- a/include/asm-s390/sclp.h +++ b/include/asm-s390/sclp.h | |||
@@ -11,29 +11,6 @@ | |||
11 | #include <linux/types.h> | 11 | #include <linux/types.h> |
12 | #include <asm/chpid.h> | 12 | #include <asm/chpid.h> |
13 | 13 | ||
14 | struct sccb_header { | ||
15 | u16 length; | ||
16 | u8 function_code; | ||
17 | u8 control_mask[3]; | ||
18 | u16 response_code; | ||
19 | } __attribute__((packed)); | ||
20 | |||
21 | #define LOADPARM_LEN 8 | ||
22 | |||
23 | struct sclp_readinfo_sccb { | ||
24 | struct sccb_header header; /* 0-7 */ | ||
25 | u16 rnmax; /* 8-9 */ | ||
26 | u8 rnsize; /* 10 */ | ||
27 | u8 _reserved0[24 - 11]; /* 11-23 */ | ||
28 | u8 loadparm[LOADPARM_LEN]; /* 24-31 */ | ||
29 | u8 _reserved1[91 - 32]; /* 32-90 */ | ||
30 | u8 flags; /* 91 */ | ||
31 | u8 _reserved2[100 - 92]; /* 92-99 */ | ||
32 | u32 rnsize2; /* 100-103 */ | ||
33 | u64 rnmax2; /* 104-111 */ | ||
34 | u8 _reserved3[4096 - 112]; /* 112-4095 */ | ||
35 | } __attribute__((packed, aligned(4096))); | ||
36 | |||
37 | #define SCLP_CHP_INFO_MASK_SIZE 32 | 14 | #define SCLP_CHP_INFO_MASK_SIZE 32 |
38 | 15 | ||
39 | struct sclp_chp_info { | 16 | struct sclp_chp_info { |
@@ -42,12 +19,22 @@ struct sclp_chp_info { | |||
42 | u8 configured[SCLP_CHP_INFO_MASK_SIZE]; | 19 | u8 configured[SCLP_CHP_INFO_MASK_SIZE]; |
43 | }; | 20 | }; |
44 | 21 | ||
45 | extern struct sclp_readinfo_sccb s390_readinfo_sccb; | 22 | #define LOADPARM_LEN 8 |
46 | extern void sclp_readinfo_early(void); | 23 | |
47 | extern int sclp_sdias_blk_count(void); | 24 | struct sclp_ipl_info { |
48 | extern int sclp_sdias_copy(void *dest, int blk_num, int nr_blks); | 25 | int is_valid; |
49 | extern int sclp_chp_configure(struct chp_id chpid); | 26 | int has_dump; |
50 | extern int sclp_chp_deconfigure(struct chp_id chpid); | 27 | char loadparm[LOADPARM_LEN]; |
51 | extern int sclp_chp_read_info(struct sclp_chp_info *info); | 28 | }; |
29 | |||
30 | void sclp_readinfo_early(void); | ||
31 | void sclp_facilities_detect(void); | ||
32 | unsigned long long sclp_memory_detect(void); | ||
33 | int sclp_sdias_blk_count(void); | ||
34 | int sclp_sdias_copy(void *dest, int blk_num, int nr_blks); | ||
35 | int sclp_chp_configure(struct chp_id chpid); | ||
36 | int sclp_chp_deconfigure(struct chp_id chpid); | ||
37 | int sclp_chp_read_info(struct sclp_chp_info *info); | ||
38 | void sclp_get_ipl_info(struct sclp_ipl_info *info); | ||
52 | 39 | ||
53 | #endif /* _ASM_S390_SCLP_H */ | 40 | #endif /* _ASM_S390_SCLP_H */ |
diff --git a/include/asm-s390/sfp-machine.h b/include/asm-s390/sfp-machine.h index 8ca8c77b2d04..4e16aede4b06 100644 --- a/include/asm-s390/sfp-machine.h +++ b/include/asm-s390/sfp-machine.h | |||
@@ -27,9 +27,9 @@ | |||
27 | 27 | ||
28 | 28 | ||
29 | #define _FP_W_TYPE_SIZE 32 | 29 | #define _FP_W_TYPE_SIZE 32 |
30 | #define _FP_W_TYPE unsigned long | 30 | #define _FP_W_TYPE unsigned int |
31 | #define _FP_WS_TYPE signed long | 31 | #define _FP_WS_TYPE signed int |
32 | #define _FP_I_TYPE long | 32 | #define _FP_I_TYPE int |
33 | 33 | ||
34 | #define _FP_MUL_MEAT_S(R,X,Y) \ | 34 | #define _FP_MUL_MEAT_S(R,X,Y) \ |
35 | _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) | 35 | _FP_MUL_MEAT_1_wide(_FP_WFRACBITS_S,R,X,Y,umul_ppmm) |
diff --git a/include/asm-s390/sfp-util.h b/include/asm-s390/sfp-util.h index 8cabcd23d976..0addc6466d95 100644 --- a/include/asm-s390/sfp-util.h +++ b/include/asm-s390/sfp-util.h | |||
@@ -51,6 +51,16 @@ | |||
51 | wl = __wl; \ | 51 | wl = __wl; \ |
52 | }) | 52 | }) |
53 | 53 | ||
54 | #ifdef __s390x__ | ||
55 | #define udiv_qrnnd(q, r, n1, n0, d) \ | ||
56 | do { unsigned long __n; \ | ||
57 | unsigned int __r, __d; \ | ||
58 | __n = ((unsigned long)(n1) << 32) + n0; \ | ||
59 | __d = (d); \ | ||
60 | (q) = __n / __d; \ | ||
61 | (r) = __n % __d; \ | ||
62 | } while (0) | ||
63 | #else | ||
54 | #define udiv_qrnnd(q, r, n1, n0, d) \ | 64 | #define udiv_qrnnd(q, r, n1, n0, d) \ |
55 | do { unsigned int __r; \ | 65 | do { unsigned int __r; \ |
56 | (q) = __udiv_qrnnd (&__r, (n1), (n0), (d)); \ | 66 | (q) = __udiv_qrnnd (&__r, (n1), (n0), (d)); \ |
@@ -58,6 +68,7 @@ | |||
58 | } while (0) | 68 | } while (0) |
59 | extern unsigned long __udiv_qrnnd (unsigned int *, unsigned int, | 69 | extern unsigned long __udiv_qrnnd (unsigned int *, unsigned int, |
60 | unsigned int , unsigned int); | 70 | unsigned int , unsigned int); |
71 | #endif | ||
61 | 72 | ||
62 | #define UDIV_NEEDS_NORMALIZATION 0 | 73 | #define UDIV_NEEDS_NORMALIZATION 0 |
63 | 74 | ||