diff options
| author | Ingo Molnar <mingo@kernel.org> | 2014-09-09 00:48:07 -0400 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2014-09-09 00:48:07 -0400 |
| commit | bdea534db894ea19320f470ce2e63b1d9de96a15 (patch) | |
| tree | 8ec2a0a93d9bb5e7205253c67aa624b9ec227477 /include/linux | |
| parent | 39b5a56ec0be5effe9b7d0f18cb27724bf2e5d47 (diff) | |
| parent | 2ce7598c9a453e0acd0e07be7be3f5eb39608ebd (diff) | |
Merge tag 'v3.17-rc4' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/blk-mq.h | 7 | ||||
| -rw-r--r-- | include/linux/f2fs_fs.h | 16 | ||||
| -rw-r--r-- | include/linux/ftrace.h | 14 | ||||
| -rw-r--r-- | include/linux/gpio/consumer.h | 109 | ||||
| -rw-r--r-- | include/linux/jbd2.h | 30 | ||||
| -rw-r--r-- | include/linux/leds.h | 3 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 2 | ||||
| -rw-r--r-- | include/linux/nfs_page.h | 1 | ||||
| -rw-r--r-- | include/linux/platform_data/mtd-nand-omap2.h | 13 | ||||
| -rw-r--r-- | include/linux/pm_domain.h | 2 | ||||
| -rw-r--r-- | include/linux/regulator/driver.h | 2 | ||||
| -rw-r--r-- | include/linux/regulator/machine.h | 1 | ||||
| -rw-r--r-- | include/linux/seqno-fence.h | 1 | ||||
| -rw-r--r-- | include/linux/spi/spi.h | 7 | ||||
| -rw-r--r-- | include/linux/tick.h | 7 |
15 files changed, 142 insertions, 73 deletions
diff --git a/include/linux/blk-mq.h b/include/linux/blk-mq.h index eb726b9c5762..a1e31f274fcd 100644 --- a/include/linux/blk-mq.h +++ b/include/linux/blk-mq.h | |||
| @@ -127,10 +127,9 @@ enum { | |||
| 127 | BLK_MQ_RQ_QUEUE_ERROR = 2, /* end IO with error */ | 127 | BLK_MQ_RQ_QUEUE_ERROR = 2, /* end IO with error */ |
| 128 | 128 | ||
| 129 | BLK_MQ_F_SHOULD_MERGE = 1 << 0, | 129 | BLK_MQ_F_SHOULD_MERGE = 1 << 0, |
| 130 | BLK_MQ_F_SHOULD_SORT = 1 << 1, | 130 | BLK_MQ_F_TAG_SHARED = 1 << 1, |
| 131 | BLK_MQ_F_TAG_SHARED = 1 << 2, | 131 | BLK_MQ_F_SG_MERGE = 1 << 2, |
| 132 | BLK_MQ_F_SG_MERGE = 1 << 3, | 132 | BLK_MQ_F_SYSFS_UP = 1 << 3, |
| 133 | BLK_MQ_F_SYSFS_UP = 1 << 4, | ||
| 134 | 133 | ||
| 135 | BLK_MQ_S_STOPPED = 0, | 134 | BLK_MQ_S_STOPPED = 0, |
| 136 | BLK_MQ_S_TAG_ACTIVE = 1, | 135 | BLK_MQ_S_TAG_ACTIVE = 1, |
diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h index 6ff0b0b42d47..08ed2b0a96e6 100644 --- a/include/linux/f2fs_fs.h +++ b/include/linux/f2fs_fs.h | |||
| @@ -24,6 +24,9 @@ | |||
| 24 | #define NULL_ADDR ((block_t)0) /* used as block_t addresses */ | 24 | #define NULL_ADDR ((block_t)0) /* used as block_t addresses */ |
| 25 | #define NEW_ADDR ((block_t)-1) /* used as block_t addresses */ | 25 | #define NEW_ADDR ((block_t)-1) /* used as block_t addresses */ |
| 26 | 26 | ||
| 27 | /* 0, 1(node nid), 2(meta nid) are reserved node id */ | ||
| 28 | #define F2FS_RESERVED_NODE_NUM 3 | ||
| 29 | |||
| 27 | #define F2FS_ROOT_INO(sbi) (sbi->root_ino_num) | 30 | #define F2FS_ROOT_INO(sbi) (sbi->root_ino_num) |
| 28 | #define F2FS_NODE_INO(sbi) (sbi->node_ino_num) | 31 | #define F2FS_NODE_INO(sbi) (sbi->node_ino_num) |
| 29 | #define F2FS_META_INO(sbi) (sbi->meta_ino_num) | 32 | #define F2FS_META_INO(sbi) (sbi->meta_ino_num) |
| @@ -87,6 +90,8 @@ struct f2fs_super_block { | |||
| 87 | #define CP_ORPHAN_PRESENT_FLAG 0x00000002 | 90 | #define CP_ORPHAN_PRESENT_FLAG 0x00000002 |
| 88 | #define CP_UMOUNT_FLAG 0x00000001 | 91 | #define CP_UMOUNT_FLAG 0x00000001 |
| 89 | 92 | ||
| 93 | #define F2FS_CP_PACKS 2 /* # of checkpoint packs */ | ||
| 94 | |||
| 90 | struct f2fs_checkpoint { | 95 | struct f2fs_checkpoint { |
| 91 | __le64 checkpoint_ver; /* checkpoint block version number */ | 96 | __le64 checkpoint_ver; /* checkpoint block version number */ |
| 92 | __le64 user_block_count; /* # of user blocks */ | 97 | __le64 user_block_count; /* # of user blocks */ |
| @@ -123,6 +128,9 @@ struct f2fs_checkpoint { | |||
| 123 | */ | 128 | */ |
| 124 | #define F2FS_ORPHANS_PER_BLOCK 1020 | 129 | #define F2FS_ORPHANS_PER_BLOCK 1020 |
| 125 | 130 | ||
| 131 | #define GET_ORPHAN_BLOCKS(n) ((n + F2FS_ORPHANS_PER_BLOCK - 1) / \ | ||
| 132 | F2FS_ORPHANS_PER_BLOCK) | ||
| 133 | |||
| 126 | struct f2fs_orphan_block { | 134 | struct f2fs_orphan_block { |
| 127 | __le32 ino[F2FS_ORPHANS_PER_BLOCK]; /* inode numbers */ | 135 | __le32 ino[F2FS_ORPHANS_PER_BLOCK]; /* inode numbers */ |
| 128 | __le32 reserved; /* reserved */ | 136 | __le32 reserved; /* reserved */ |
| @@ -144,6 +152,7 @@ struct f2fs_extent { | |||
| 144 | #define F2FS_NAME_LEN 255 | 152 | #define F2FS_NAME_LEN 255 |
| 145 | #define F2FS_INLINE_XATTR_ADDRS 50 /* 200 bytes for inline xattrs */ | 153 | #define F2FS_INLINE_XATTR_ADDRS 50 /* 200 bytes for inline xattrs */ |
| 146 | #define DEF_ADDRS_PER_INODE 923 /* Address Pointers in an Inode */ | 154 | #define DEF_ADDRS_PER_INODE 923 /* Address Pointers in an Inode */ |
| 155 | #define DEF_NIDS_PER_INODE 5 /* Node IDs in an Inode */ | ||
| 147 | #define ADDRS_PER_INODE(fi) addrs_per_inode(fi) | 156 | #define ADDRS_PER_INODE(fi) addrs_per_inode(fi) |
| 148 | #define ADDRS_PER_BLOCK 1018 /* Address Pointers in a Direct Block */ | 157 | #define ADDRS_PER_BLOCK 1018 /* Address Pointers in a Direct Block */ |
| 149 | #define NIDS_PER_BLOCK 1018 /* Node IDs in an Indirect Block */ | 158 | #define NIDS_PER_BLOCK 1018 /* Node IDs in an Indirect Block */ |
| @@ -163,8 +172,9 @@ struct f2fs_extent { | |||
| 163 | #define MAX_INLINE_DATA (sizeof(__le32) * (DEF_ADDRS_PER_INODE - \ | 172 | #define MAX_INLINE_DATA (sizeof(__le32) * (DEF_ADDRS_PER_INODE - \ |
| 164 | F2FS_INLINE_XATTR_ADDRS - 1)) | 173 | F2FS_INLINE_XATTR_ADDRS - 1)) |
| 165 | 174 | ||
| 166 | #define INLINE_DATA_OFFSET (PAGE_CACHE_SIZE - sizeof(struct node_footer) \ | 175 | #define INLINE_DATA_OFFSET (PAGE_CACHE_SIZE - sizeof(struct node_footer) -\ |
| 167 | - sizeof(__le32) * (DEF_ADDRS_PER_INODE + 5 - 1)) | 176 | sizeof(__le32) * (DEF_ADDRS_PER_INODE + \ |
| 177 | DEF_NIDS_PER_INODE - 1)) | ||
| 168 | 178 | ||
| 169 | struct f2fs_inode { | 179 | struct f2fs_inode { |
| 170 | __le16 i_mode; /* file mode */ | 180 | __le16 i_mode; /* file mode */ |
| @@ -194,7 +204,7 @@ struct f2fs_inode { | |||
| 194 | 204 | ||
| 195 | __le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */ | 205 | __le32 i_addr[DEF_ADDRS_PER_INODE]; /* Pointers to data blocks */ |
| 196 | 206 | ||
| 197 | __le32 i_nid[5]; /* direct(2), indirect(2), | 207 | __le32 i_nid[DEF_NIDS_PER_INODE]; /* direct(2), indirect(2), |
| 198 | double_indirect(1) node id */ | 208 | double_indirect(1) node id */ |
| 199 | } __packed; | 209 | } __packed; |
| 200 | 210 | ||
diff --git a/include/linux/ftrace.h b/include/linux/ftrace.h index 6bb5e3f2a3b4..f0b0edbf55a9 100644 --- a/include/linux/ftrace.h +++ b/include/linux/ftrace.h | |||
| @@ -102,6 +102,15 @@ enum { | |||
| 102 | FTRACE_OPS_FL_DELETED = 1 << 8, | 102 | FTRACE_OPS_FL_DELETED = 1 << 8, |
| 103 | }; | 103 | }; |
| 104 | 104 | ||
| 105 | #ifdef CONFIG_DYNAMIC_FTRACE | ||
| 106 | /* The hash used to know what functions callbacks trace */ | ||
| 107 | struct ftrace_ops_hash { | ||
| 108 | struct ftrace_hash *notrace_hash; | ||
| 109 | struct ftrace_hash *filter_hash; | ||
| 110 | struct mutex regex_lock; | ||
| 111 | }; | ||
| 112 | #endif | ||
| 113 | |||
| 105 | /* | 114 | /* |
| 106 | * Note, ftrace_ops can be referenced outside of RCU protection. | 115 | * Note, ftrace_ops can be referenced outside of RCU protection. |
| 107 | * (Although, for perf, the control ops prevent that). If ftrace_ops is | 116 | * (Although, for perf, the control ops prevent that). If ftrace_ops is |
| @@ -121,10 +130,9 @@ struct ftrace_ops { | |||
| 121 | int __percpu *disabled; | 130 | int __percpu *disabled; |
| 122 | #ifdef CONFIG_DYNAMIC_FTRACE | 131 | #ifdef CONFIG_DYNAMIC_FTRACE |
| 123 | int nr_trampolines; | 132 | int nr_trampolines; |
| 124 | struct ftrace_hash *notrace_hash; | 133 | struct ftrace_ops_hash local_hash; |
| 125 | struct ftrace_hash *filter_hash; | 134 | struct ftrace_ops_hash *func_hash; |
| 126 | struct ftrace_hash *tramp_hash; | 135 | struct ftrace_hash *tramp_hash; |
| 127 | struct mutex regex_lock; | ||
| 128 | unsigned long trampoline; | 136 | unsigned long trampoline; |
| 129 | #endif | 137 | #endif |
| 130 | }; | 138 | }; |
diff --git a/include/linux/gpio/consumer.h b/include/linux/gpio/consumer.h index b7ce0c64c6f3..12f146fa6604 100644 --- a/include/linux/gpio/consumer.h +++ b/include/linux/gpio/consumer.h | |||
| @@ -16,8 +16,6 @@ struct device; | |||
| 16 | */ | 16 | */ |
| 17 | struct gpio_desc; | 17 | struct gpio_desc; |
| 18 | 18 | ||
| 19 | #ifdef CONFIG_GPIOLIB | ||
| 20 | |||
| 21 | #define GPIOD_FLAGS_BIT_DIR_SET BIT(0) | 19 | #define GPIOD_FLAGS_BIT_DIR_SET BIT(0) |
| 22 | #define GPIOD_FLAGS_BIT_DIR_OUT BIT(1) | 20 | #define GPIOD_FLAGS_BIT_DIR_OUT BIT(1) |
| 23 | #define GPIOD_FLAGS_BIT_DIR_VAL BIT(2) | 21 | #define GPIOD_FLAGS_BIT_DIR_VAL BIT(2) |
| @@ -34,64 +32,38 @@ enum gpiod_flags { | |||
| 34 | GPIOD_FLAGS_BIT_DIR_VAL, | 32 | GPIOD_FLAGS_BIT_DIR_VAL, |
| 35 | }; | 33 | }; |
| 36 | 34 | ||
| 35 | #ifdef CONFIG_GPIOLIB | ||
| 36 | |||
| 37 | /* Acquire and dispose GPIOs */ | 37 | /* Acquire and dispose GPIOs */ |
| 38 | struct gpio_desc *__must_check __gpiod_get(struct device *dev, | 38 | struct gpio_desc *__must_check __gpiod_get(struct device *dev, |
| 39 | const char *con_id, | 39 | const char *con_id, |
| 40 | enum gpiod_flags flags); | 40 | enum gpiod_flags flags); |
| 41 | #define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags) | ||
| 42 | #define gpiod_get(varargs...) __gpiod_get(varargs, 0) | ||
| 43 | struct gpio_desc *__must_check __gpiod_get_index(struct device *dev, | 41 | struct gpio_desc *__must_check __gpiod_get_index(struct device *dev, |
| 44 | const char *con_id, | 42 | const char *con_id, |
| 45 | unsigned int idx, | 43 | unsigned int idx, |
| 46 | enum gpiod_flags flags); | 44 | enum gpiod_flags flags); |
| 47 | #define __gpiod_get_index(dev, con_id, index, flags, ...) \ | ||
| 48 | __gpiod_get_index(dev, con_id, index, flags) | ||
| 49 | #define gpiod_get_index(varargs...) __gpiod_get_index(varargs, 0) | ||
| 50 | struct gpio_desc *__must_check __gpiod_get_optional(struct device *dev, | 45 | struct gpio_desc *__must_check __gpiod_get_optional(struct device *dev, |
| 51 | const char *con_id, | 46 | const char *con_id, |
| 52 | enum gpiod_flags flags); | 47 | enum gpiod_flags flags); |
| 53 | #define __gpiod_get_optional(dev, con_id, flags, ...) \ | ||
| 54 | __gpiod_get_optional(dev, con_id, flags) | ||
| 55 | #define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, 0) | ||
| 56 | struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev, | 48 | struct gpio_desc *__must_check __gpiod_get_index_optional(struct device *dev, |
| 57 | const char *con_id, | 49 | const char *con_id, |
| 58 | unsigned int index, | 50 | unsigned int index, |
| 59 | enum gpiod_flags flags); | 51 | enum gpiod_flags flags); |
| 60 | #define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \ | ||
| 61 | __gpiod_get_index_optional(dev, con_id, index, flags) | ||
| 62 | #define gpiod_get_index_optional(varargs...) \ | ||
| 63 | __gpiod_get_index_optional(varargs, 0) | ||
| 64 | |||
| 65 | void gpiod_put(struct gpio_desc *desc); | 52 | void gpiod_put(struct gpio_desc *desc); |
| 66 | 53 | ||
| 67 | struct gpio_desc *__must_check __devm_gpiod_get(struct device *dev, | 54 | struct gpio_desc *__must_check __devm_gpiod_get(struct device *dev, |
| 68 | const char *con_id, | 55 | const char *con_id, |
| 69 | enum gpiod_flags flags); | 56 | enum gpiod_flags flags); |
| 70 | #define __devm_gpiod_get(dev, con_id, flags, ...) \ | ||
| 71 | __devm_gpiod_get(dev, con_id, flags) | ||
| 72 | #define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, 0) | ||
| 73 | struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev, | 57 | struct gpio_desc *__must_check __devm_gpiod_get_index(struct device *dev, |
| 74 | const char *con_id, | 58 | const char *con_id, |
| 75 | unsigned int idx, | 59 | unsigned int idx, |
| 76 | enum gpiod_flags flags); | 60 | enum gpiod_flags flags); |
| 77 | #define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \ | ||
| 78 | __devm_gpiod_get_index(dev, con_id, index, flags) | ||
| 79 | #define devm_gpiod_get_index(varargs...) __devm_gpiod_get_index(varargs, 0) | ||
| 80 | struct gpio_desc *__must_check __devm_gpiod_get_optional(struct device *dev, | 61 | struct gpio_desc *__must_check __devm_gpiod_get_optional(struct device *dev, |
| 81 | const char *con_id, | 62 | const char *con_id, |
| 82 | enum gpiod_flags flags); | 63 | enum gpiod_flags flags); |
| 83 | #define __devm_gpiod_get_optional(dev, con_id, flags, ...) \ | ||
| 84 | __devm_gpiod_get_optional(dev, con_id, flags) | ||
| 85 | #define devm_gpiod_get_optional(varargs...) \ | ||
| 86 | __devm_gpiod_get_optional(varargs, 0) | ||
| 87 | struct gpio_desc *__must_check | 64 | struct gpio_desc *__must_check |
| 88 | __devm_gpiod_get_index_optional(struct device *dev, const char *con_id, | 65 | __devm_gpiod_get_index_optional(struct device *dev, const char *con_id, |
| 89 | unsigned int index, enum gpiod_flags flags); | 66 | unsigned int index, enum gpiod_flags flags); |
| 90 | #define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \ | ||
| 91 | __devm_gpiod_get_index_optional(dev, con_id, index, flags) | ||
| 92 | #define devm_gpiod_get_index_optional(varargs...) \ | ||
| 93 | __devm_gpiod_get_index_optional(varargs, 0) | ||
| 94 | |||
| 95 | void devm_gpiod_put(struct device *dev, struct gpio_desc *desc); | 67 | void devm_gpiod_put(struct device *dev, struct gpio_desc *desc); |
| 96 | 68 | ||
| 97 | int gpiod_get_direction(const struct gpio_desc *desc); | 69 | int gpiod_get_direction(const struct gpio_desc *desc); |
| @@ -124,27 +96,31 @@ int desc_to_gpio(const struct gpio_desc *desc); | |||
| 124 | 96 | ||
| 125 | #else /* CONFIG_GPIOLIB */ | 97 | #else /* CONFIG_GPIOLIB */ |
| 126 | 98 | ||
| 127 | static inline struct gpio_desc *__must_check gpiod_get(struct device *dev, | 99 | static inline struct gpio_desc *__must_check __gpiod_get(struct device *dev, |
| 128 | const char *con_id) | 100 | const char *con_id, |
| 101 | enum gpiod_flags flags) | ||
| 129 | { | 102 | { |
| 130 | return ERR_PTR(-ENOSYS); | 103 | return ERR_PTR(-ENOSYS); |
| 131 | } | 104 | } |
| 132 | static inline struct gpio_desc *__must_check gpiod_get_index(struct device *dev, | 105 | static inline struct gpio_desc *__must_check |
| 133 | const char *con_id, | 106 | __gpiod_get_index(struct device *dev, |
| 134 | unsigned int idx) | 107 | const char *con_id, |
| 108 | unsigned int idx, | ||
| 109 | enum gpiod_flags flags) | ||
| 135 | { | 110 | { |
| 136 | return ERR_PTR(-ENOSYS); | 111 | return ERR_PTR(-ENOSYS); |
| 137 | } | 112 | } |
| 138 | 113 | ||
| 139 | static inline struct gpio_desc *__must_check | 114 | static inline struct gpio_desc *__must_check |
| 140 | gpiod_get_optional(struct device *dev, const char *con_id) | 115 | __gpiod_get_optional(struct device *dev, const char *con_id, |
| 116 | enum gpiod_flags flags) | ||
| 141 | { | 117 | { |
| 142 | return ERR_PTR(-ENOSYS); | 118 | return ERR_PTR(-ENOSYS); |
| 143 | } | 119 | } |
| 144 | 120 | ||
| 145 | static inline struct gpio_desc *__must_check | 121 | static inline struct gpio_desc *__must_check |
| 146 | gpiod_get_index_optional(struct device *dev, const char *con_id, | 122 | __gpiod_get_index_optional(struct device *dev, const char *con_id, |
| 147 | unsigned int index) | 123 | unsigned int index, enum gpiod_flags flags) |
| 148 | { | 124 | { |
| 149 | return ERR_PTR(-ENOSYS); | 125 | return ERR_PTR(-ENOSYS); |
| 150 | } | 126 | } |
| @@ -157,28 +133,33 @@ static inline void gpiod_put(struct gpio_desc *desc) | |||
| 157 | WARN_ON(1); | 133 | WARN_ON(1); |
| 158 | } | 134 | } |
| 159 | 135 | ||
| 160 | static inline struct gpio_desc *__must_check devm_gpiod_get(struct device *dev, | 136 | static inline struct gpio_desc *__must_check |
| 161 | const char *con_id) | 137 | __devm_gpiod_get(struct device *dev, |
| 138 | const char *con_id, | ||
| 139 | enum gpiod_flags flags) | ||
| 162 | { | 140 | { |
| 163 | return ERR_PTR(-ENOSYS); | 141 | return ERR_PTR(-ENOSYS); |
| 164 | } | 142 | } |
| 165 | static inline | 143 | static inline |
| 166 | struct gpio_desc *__must_check devm_gpiod_get_index(struct device *dev, | 144 | struct gpio_desc *__must_check |
| 167 | const char *con_id, | 145 | __devm_gpiod_get_index(struct device *dev, |
| 168 | unsigned int idx) | 146 | const char *con_id, |
| 147 | unsigned int idx, | ||
| 148 | enum gpiod_flags flags) | ||
| 169 | { | 149 | { |
| 170 | return ERR_PTR(-ENOSYS); | 150 | return ERR_PTR(-ENOSYS); |
| 171 | } | 151 | } |
| 172 | 152 | ||
| 173 | static inline struct gpio_desc *__must_check | 153 | static inline struct gpio_desc *__must_check |
| 174 | devm_gpiod_get_optional(struct device *dev, const char *con_id) | 154 | __devm_gpiod_get_optional(struct device *dev, const char *con_id, |
| 155 | enum gpiod_flags flags) | ||
| 175 | { | 156 | { |
| 176 | return ERR_PTR(-ENOSYS); | 157 | return ERR_PTR(-ENOSYS); |
| 177 | } | 158 | } |
| 178 | 159 | ||
| 179 | static inline struct gpio_desc *__must_check | 160 | static inline struct gpio_desc *__must_check |
| 180 | devm_gpiod_get_index_optional(struct device *dev, const char *con_id, | 161 | __devm_gpiod_get_index_optional(struct device *dev, const char *con_id, |
| 181 | unsigned int index) | 162 | unsigned int index, enum gpiod_flags flags) |
| 182 | { | 163 | { |
| 183 | return ERR_PTR(-ENOSYS); | 164 | return ERR_PTR(-ENOSYS); |
| 184 | } | 165 | } |
| @@ -303,9 +284,43 @@ static inline int desc_to_gpio(const struct gpio_desc *desc) | |||
| 303 | return -EINVAL; | 284 | return -EINVAL; |
| 304 | } | 285 | } |
| 305 | 286 | ||
| 306 | |||
| 307 | #endif /* CONFIG_GPIOLIB */ | 287 | #endif /* CONFIG_GPIOLIB */ |
| 308 | 288 | ||
| 289 | /* | ||
| 290 | * Vararg-hacks! This is done to transition the kernel to always pass | ||
| 291 | * the options flags argument to the below functions. During a transition | ||
| 292 | * phase these vararg macros make both old-and-newstyle code compile, | ||
| 293 | * but when all calls to the elder API are removed, these should go away | ||
| 294 | * and the __gpiod_get() etc functions above be renamed just gpiod_get() | ||
| 295 | * etc. | ||
| 296 | */ | ||
| 297 | #define __gpiod_get(dev, con_id, flags, ...) __gpiod_get(dev, con_id, flags) | ||
| 298 | #define gpiod_get(varargs...) __gpiod_get(varargs, 0) | ||
| 299 | #define __gpiod_get_index(dev, con_id, index, flags, ...) \ | ||
| 300 | __gpiod_get_index(dev, con_id, index, flags) | ||
| 301 | #define gpiod_get_index(varargs...) __gpiod_get_index(varargs, 0) | ||
| 302 | #define __gpiod_get_optional(dev, con_id, flags, ...) \ | ||
| 303 | __gpiod_get_optional(dev, con_id, flags) | ||
| 304 | #define gpiod_get_optional(varargs...) __gpiod_get_optional(varargs, 0) | ||
| 305 | #define __gpiod_get_index_optional(dev, con_id, index, flags, ...) \ | ||
| 306 | __gpiod_get_index_optional(dev, con_id, index, flags) | ||
| 307 | #define gpiod_get_index_optional(varargs...) \ | ||
| 308 | __gpiod_get_index_optional(varargs, 0) | ||
| 309 | #define __devm_gpiod_get(dev, con_id, flags, ...) \ | ||
| 310 | __devm_gpiod_get(dev, con_id, flags) | ||
| 311 | #define devm_gpiod_get(varargs...) __devm_gpiod_get(varargs, 0) | ||
| 312 | #define __devm_gpiod_get_index(dev, con_id, index, flags, ...) \ | ||
| 313 | __devm_gpiod_get_index(dev, con_id, index, flags) | ||
| 314 | #define devm_gpiod_get_index(varargs...) __devm_gpiod_get_index(varargs, 0) | ||
| 315 | #define __devm_gpiod_get_optional(dev, con_id, flags, ...) \ | ||
| 316 | __devm_gpiod_get_optional(dev, con_id, flags) | ||
| 317 | #define devm_gpiod_get_optional(varargs...) \ | ||
| 318 | __devm_gpiod_get_optional(varargs, 0) | ||
| 319 | #define __devm_gpiod_get_index_optional(dev, con_id, index, flags, ...) \ | ||
| 320 | __devm_gpiod_get_index_optional(dev, con_id, index, flags) | ||
| 321 | #define devm_gpiod_get_index_optional(varargs...) \ | ||
| 322 | __devm_gpiod_get_index_optional(varargs, 0) | ||
| 323 | |||
| 309 | #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) | 324 | #if IS_ENABLED(CONFIG_GPIOLIB) && IS_ENABLED(CONFIG_GPIO_SYSFS) |
| 310 | 325 | ||
| 311 | int gpiod_export(struct gpio_desc *desc, bool direction_may_change); | 326 | int gpiod_export(struct gpio_desc *desc, bool direction_may_change); |
diff --git a/include/linux/jbd2.h b/include/linux/jbd2.h index d5b50a19463c..0dae71e9971c 100644 --- a/include/linux/jbd2.h +++ b/include/linux/jbd2.h | |||
| @@ -159,7 +159,11 @@ typedef struct journal_header_s | |||
| 159 | * journal_block_tag (in the descriptor). The other h_chksum* fields are | 159 | * journal_block_tag (in the descriptor). The other h_chksum* fields are |
| 160 | * not used. | 160 | * not used. |
| 161 | * | 161 | * |
| 162 | * Checksum v1 and v2 are mutually exclusive features. | 162 | * If FEATURE_INCOMPAT_CSUM_V3 is set, the descriptor block uses |
| 163 | * journal_block_tag3_t to store a full 32-bit checksum. Everything else | ||
| 164 | * is the same as v2. | ||
| 165 | * | ||
| 166 | * Checksum v1, v2, and v3 are mutually exclusive features. | ||
| 163 | */ | 167 | */ |
| 164 | struct commit_header { | 168 | struct commit_header { |
| 165 | __be32 h_magic; | 169 | __be32 h_magic; |
| @@ -179,6 +183,14 @@ struct commit_header { | |||
| 179 | * raw struct shouldn't be used for pointer math or sizeof() - use | 183 | * raw struct shouldn't be used for pointer math or sizeof() - use |
| 180 | * journal_tag_bytes(journal) instead to compute this. | 184 | * journal_tag_bytes(journal) instead to compute this. |
| 181 | */ | 185 | */ |
| 186 | typedef struct journal_block_tag3_s | ||
| 187 | { | ||
| 188 | __be32 t_blocknr; /* The on-disk block number */ | ||
| 189 | __be32 t_flags; /* See below */ | ||
| 190 | __be32 t_blocknr_high; /* most-significant high 32bits. */ | ||
| 191 | __be32 t_checksum; /* crc32c(uuid+seq+block) */ | ||
| 192 | } journal_block_tag3_t; | ||
| 193 | |||
| 182 | typedef struct journal_block_tag_s | 194 | typedef struct journal_block_tag_s |
| 183 | { | 195 | { |
| 184 | __be32 t_blocknr; /* The on-disk block number */ | 196 | __be32 t_blocknr; /* The on-disk block number */ |
| @@ -187,9 +199,6 @@ typedef struct journal_block_tag_s | |||
| 187 | __be32 t_blocknr_high; /* most-significant high 32bits. */ | 199 | __be32 t_blocknr_high; /* most-significant high 32bits. */ |
| 188 | } journal_block_tag_t; | 200 | } journal_block_tag_t; |
| 189 | 201 | ||
| 190 | #define JBD2_TAG_SIZE32 (offsetof(journal_block_tag_t, t_blocknr_high)) | ||
| 191 | #define JBD2_TAG_SIZE64 (sizeof(journal_block_tag_t)) | ||
| 192 | |||
| 193 | /* Tail of descriptor block, for checksumming */ | 202 | /* Tail of descriptor block, for checksumming */ |
| 194 | struct jbd2_journal_block_tail { | 203 | struct jbd2_journal_block_tail { |
| 195 | __be32 t_checksum; /* crc32c(uuid+descr_block) */ | 204 | __be32 t_checksum; /* crc32c(uuid+descr_block) */ |
| @@ -284,6 +293,7 @@ typedef struct journal_superblock_s | |||
| 284 | #define JBD2_FEATURE_INCOMPAT_64BIT 0x00000002 | 293 | #define JBD2_FEATURE_INCOMPAT_64BIT 0x00000002 |
| 285 | #define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT 0x00000004 | 294 | #define JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT 0x00000004 |
| 286 | #define JBD2_FEATURE_INCOMPAT_CSUM_V2 0x00000008 | 295 | #define JBD2_FEATURE_INCOMPAT_CSUM_V2 0x00000008 |
| 296 | #define JBD2_FEATURE_INCOMPAT_CSUM_V3 0x00000010 | ||
| 287 | 297 | ||
| 288 | /* Features known to this kernel version: */ | 298 | /* Features known to this kernel version: */ |
| 289 | #define JBD2_KNOWN_COMPAT_FEATURES JBD2_FEATURE_COMPAT_CHECKSUM | 299 | #define JBD2_KNOWN_COMPAT_FEATURES JBD2_FEATURE_COMPAT_CHECKSUM |
| @@ -291,7 +301,8 @@ typedef struct journal_superblock_s | |||
| 291 | #define JBD2_KNOWN_INCOMPAT_FEATURES (JBD2_FEATURE_INCOMPAT_REVOKE | \ | 301 | #define JBD2_KNOWN_INCOMPAT_FEATURES (JBD2_FEATURE_INCOMPAT_REVOKE | \ |
| 292 | JBD2_FEATURE_INCOMPAT_64BIT | \ | 302 | JBD2_FEATURE_INCOMPAT_64BIT | \ |
| 293 | JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT | \ | 303 | JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT | \ |
| 294 | JBD2_FEATURE_INCOMPAT_CSUM_V2) | 304 | JBD2_FEATURE_INCOMPAT_CSUM_V2 | \ |
| 305 | JBD2_FEATURE_INCOMPAT_CSUM_V3) | ||
| 295 | 306 | ||
| 296 | #ifdef __KERNEL__ | 307 | #ifdef __KERNEL__ |
| 297 | 308 | ||
| @@ -1296,6 +1307,15 @@ static inline int tid_geq(tid_t x, tid_t y) | |||
| 1296 | extern int jbd2_journal_blocks_per_page(struct inode *inode); | 1307 | extern int jbd2_journal_blocks_per_page(struct inode *inode); |
| 1297 | extern size_t journal_tag_bytes(journal_t *journal); | 1308 | extern size_t journal_tag_bytes(journal_t *journal); |
| 1298 | 1309 | ||
| 1310 | static inline int jbd2_journal_has_csum_v2or3(journal_t *journal) | ||
| 1311 | { | ||
| 1312 | if (JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_CSUM_V2) || | ||
| 1313 | JBD2_HAS_INCOMPAT_FEATURE(journal, JBD2_FEATURE_INCOMPAT_CSUM_V3)) | ||
| 1314 | return 1; | ||
| 1315 | |||
| 1316 | return 0; | ||
| 1317 | } | ||
| 1318 | |||
| 1299 | /* | 1319 | /* |
| 1300 | * We reserve t_outstanding_credits >> JBD2_CONTROL_BLOCKS_SHIFT for | 1320 | * We reserve t_outstanding_credits >> JBD2_CONTROL_BLOCKS_SHIFT for |
| 1301 | * transaction control blocks. | 1321 | * transaction control blocks. |
diff --git a/include/linux/leds.h b/include/linux/leds.h index 6a599dce7f9d..e43686472197 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h | |||
| @@ -15,6 +15,7 @@ | |||
| 15 | #include <linux/list.h> | 15 | #include <linux/list.h> |
| 16 | #include <linux/spinlock.h> | 16 | #include <linux/spinlock.h> |
| 17 | #include <linux/rwsem.h> | 17 | #include <linux/rwsem.h> |
| 18 | #include <linux/timer.h> | ||
| 18 | #include <linux/workqueue.h> | 19 | #include <linux/workqueue.h> |
| 19 | 20 | ||
| 20 | struct device; | 21 | struct device; |
| @@ -68,7 +69,7 @@ struct led_classdev { | |||
| 68 | const char *default_trigger; /* Trigger to use */ | 69 | const char *default_trigger; /* Trigger to use */ |
| 69 | 70 | ||
| 70 | unsigned long blink_delay_on, blink_delay_off; | 71 | unsigned long blink_delay_on, blink_delay_off; |
| 71 | struct delayed_work blink_work; | 72 | struct timer_list blink_timer; |
| 72 | int blink_brightness; | 73 | int blink_brightness; |
| 73 | 74 | ||
| 74 | struct work_struct set_brightness_work; | 75 | struct work_struct set_brightness_work; |
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index 3083c53e0270..c300db3ae285 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
| @@ -949,7 +949,7 @@ static inline int jedec_feature(struct nand_chip *chip) | |||
| 949 | : 0; | 949 | : 0; |
| 950 | } | 950 | } |
| 951 | 951 | ||
| 952 | /** | 952 | /* |
| 953 | * struct nand_sdr_timings - SDR NAND chip timings | 953 | * struct nand_sdr_timings - SDR NAND chip timings |
| 954 | * | 954 | * |
| 955 | * This struct defines the timing requirements of a SDR NAND chip. | 955 | * This struct defines the timing requirements of a SDR NAND chip. |
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h index 6ad2bbcad405..6c3e06ee2fb7 100644 --- a/include/linux/nfs_page.h +++ b/include/linux/nfs_page.h | |||
| @@ -123,6 +123,7 @@ extern int nfs_wait_on_request(struct nfs_page *); | |||
| 123 | extern void nfs_unlock_request(struct nfs_page *req); | 123 | extern void nfs_unlock_request(struct nfs_page *req); |
| 124 | extern void nfs_unlock_and_release_request(struct nfs_page *); | 124 | extern void nfs_unlock_and_release_request(struct nfs_page *); |
| 125 | extern int nfs_page_group_lock(struct nfs_page *, bool); | 125 | extern int nfs_page_group_lock(struct nfs_page *, bool); |
| 126 | extern void nfs_page_group_lock_wait(struct nfs_page *); | ||
| 126 | extern void nfs_page_group_unlock(struct nfs_page *); | 127 | extern void nfs_page_group_unlock(struct nfs_page *); |
| 127 | extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); | 128 | extern bool nfs_page_group_sync_on_bit(struct nfs_page *, unsigned int); |
| 128 | 129 | ||
diff --git a/include/linux/platform_data/mtd-nand-omap2.h b/include/linux/platform_data/mtd-nand-omap2.h index 660c029d694f..16ec262dfcc8 100644 --- a/include/linux/platform_data/mtd-nand-omap2.h +++ b/include/linux/platform_data/mtd-nand-omap2.h | |||
| @@ -21,8 +21,17 @@ enum nand_io { | |||
| 21 | }; | 21 | }; |
| 22 | 22 | ||
| 23 | enum omap_ecc { | 23 | enum omap_ecc { |
| 24 | /* 1-bit ECC calculation by GPMC, Error detection by Software */ | 24 | /* |
| 25 | OMAP_ECC_HAM1_CODE_HW = 0, | 25 | * 1-bit ECC: calculation and correction by SW |
| 26 | * ECC stored at end of spare area | ||
| 27 | */ | ||
| 28 | OMAP_ECC_HAM1_CODE_SW = 0, | ||
| 29 | |||
| 30 | /* | ||
| 31 | * 1-bit ECC: calculation by GPMC, Error detection by Software | ||
| 32 | * ECC layout compatible with ROM code layout | ||
| 33 | */ | ||
| 34 | OMAP_ECC_HAM1_CODE_HW, | ||
| 26 | /* 4-bit ECC calculation by GPMC, Error detection by Software */ | 35 | /* 4-bit ECC calculation by GPMC, Error detection by Software */ |
| 27 | OMAP_ECC_BCH4_CODE_HW_DETECTION_SW, | 36 | OMAP_ECC_BCH4_CODE_HW_DETECTION_SW, |
| 28 | /* 4-bit ECC calculation by GPMC, Error detection by ELM */ | 37 | /* 4-bit ECC calculation by GPMC, Error detection by ELM */ |
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h index 7c1d252b20c0..ebc4c76ffb73 100644 --- a/include/linux/pm_domain.h +++ b/include/linux/pm_domain.h | |||
| @@ -60,7 +60,7 @@ struct generic_pm_domain { | |||
| 60 | struct mutex lock; | 60 | struct mutex lock; |
| 61 | struct dev_power_governor *gov; | 61 | struct dev_power_governor *gov; |
| 62 | struct work_struct power_off_work; | 62 | struct work_struct power_off_work; |
| 63 | char *name; | 63 | const char *name; |
| 64 | unsigned int in_progress; /* Number of devices being suspended now */ | 64 | unsigned int in_progress; /* Number of devices being suspended now */ |
| 65 | atomic_t sd_count; /* Number of subdomains with power "on" */ | 65 | atomic_t sd_count; /* Number of subdomains with power "on" */ |
| 66 | enum gpd_status status; /* Current state of the domain */ | 66 | enum gpd_status status; /* Current state of the domain */ |
diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h index bbe03a1924c0..4efa1ed8a2b0 100644 --- a/include/linux/regulator/driver.h +++ b/include/linux/regulator/driver.h | |||
| @@ -218,6 +218,8 @@ enum regulator_type { | |||
| 218 | * @linear_min_sel: Minimal selector for starting linear mapping | 218 | * @linear_min_sel: Minimal selector for starting linear mapping |
| 219 | * @fixed_uV: Fixed voltage of rails. | 219 | * @fixed_uV: Fixed voltage of rails. |
| 220 | * @ramp_delay: Time to settle down after voltage change (unit: uV/us) | 220 | * @ramp_delay: Time to settle down after voltage change (unit: uV/us) |
| 221 | * @linear_ranges: A constant table of possible voltage ranges. | ||
| 222 | * @n_linear_ranges: Number of entries in the @linear_ranges table. | ||
| 221 | * @volt_table: Voltage mapping table (if table based mapping) | 223 | * @volt_table: Voltage mapping table (if table based mapping) |
| 222 | * | 224 | * |
| 223 | * @vsel_reg: Register for selector when using regulator_regmap_X_voltage_ | 225 | * @vsel_reg: Register for selector when using regulator_regmap_X_voltage_ |
diff --git a/include/linux/regulator/machine.h b/include/linux/regulator/machine.h index 730e638c5589..0b08d05d470b 100644 --- a/include/linux/regulator/machine.h +++ b/include/linux/regulator/machine.h | |||
| @@ -85,6 +85,7 @@ struct regulator_state { | |||
| 85 | * bootloader then it will be enabled when the constraints are | 85 | * bootloader then it will be enabled when the constraints are |
| 86 | * applied. | 86 | * applied. |
| 87 | * @apply_uV: Apply the voltage constraint when initialising. | 87 | * @apply_uV: Apply the voltage constraint when initialising. |
| 88 | * @ramp_disable: Disable ramp delay when initialising or when setting voltage. | ||
| 88 | * | 89 | * |
| 89 | * @input_uV: Input voltage for regulator when supplied by another regulator. | 90 | * @input_uV: Input voltage for regulator when supplied by another regulator. |
| 90 | * | 91 | * |
diff --git a/include/linux/seqno-fence.h b/include/linux/seqno-fence.h index 3d6003de4b0d..a1ba6a5ccdd6 100644 --- a/include/linux/seqno-fence.h +++ b/include/linux/seqno-fence.h | |||
| @@ -62,6 +62,7 @@ to_seqno_fence(struct fence *fence) | |||
| 62 | * @context: the execution context this fence is a part of | 62 | * @context: the execution context this fence is a part of |
| 63 | * @seqno_ofs: the offset within @sync_buf | 63 | * @seqno_ofs: the offset within @sync_buf |
| 64 | * @seqno: the sequence # to signal on | 64 | * @seqno: the sequence # to signal on |
| 65 | * @cond: fence wait condition | ||
| 65 | * @ops: the fence_ops for operations on this seqno fence | 66 | * @ops: the fence_ops for operations on this seqno fence |
| 66 | * | 67 | * |
| 67 | * This function initializes a struct seqno_fence with passed parameters, | 68 | * This function initializes a struct seqno_fence with passed parameters, |
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index e713543336f1..46d188a9947c 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h | |||
| @@ -253,6 +253,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) | |||
| 253 | * the device whose settings are being modified. | 253 | * the device whose settings are being modified. |
| 254 | * @transfer: adds a message to the controller's transfer queue. | 254 | * @transfer: adds a message to the controller's transfer queue. |
| 255 | * @cleanup: frees controller-specific state | 255 | * @cleanup: frees controller-specific state |
| 256 | * @can_dma: determine whether this master supports DMA | ||
| 256 | * @queued: whether this master is providing an internal message queue | 257 | * @queued: whether this master is providing an internal message queue |
| 257 | * @kworker: thread struct for message pump | 258 | * @kworker: thread struct for message pump |
| 258 | * @kworker_task: pointer to task for message pump kworker thread | 259 | * @kworker_task: pointer to task for message pump kworker thread |
| @@ -262,6 +263,7 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) | |||
| 262 | * @cur_msg: the currently in-flight message | 263 | * @cur_msg: the currently in-flight message |
| 263 | * @cur_msg_prepared: spi_prepare_message was called for the currently | 264 | * @cur_msg_prepared: spi_prepare_message was called for the currently |
| 264 | * in-flight message | 265 | * in-flight message |
| 266 | * @cur_msg_mapped: message has been mapped for DMA | ||
| 265 | * @xfer_completion: used by core transfer_one_message() | 267 | * @xfer_completion: used by core transfer_one_message() |
| 266 | * @busy: message pump is busy | 268 | * @busy: message pump is busy |
| 267 | * @running: message pump is running | 269 | * @running: message pump is running |
| @@ -299,6 +301,10 @@ static inline void spi_unregister_driver(struct spi_driver *sdrv) | |||
| 299 | * @cs_gpios: Array of GPIOs to use as chip select lines; one per CS | 301 | * @cs_gpios: Array of GPIOs to use as chip select lines; one per CS |
| 300 | * number. Any individual value may be -ENOENT for CS lines that | 302 | * number. Any individual value may be -ENOENT for CS lines that |
| 301 | * are not GPIOs (driven by the SPI controller itself). | 303 | * are not GPIOs (driven by the SPI controller itself). |
| 304 | * @dma_tx: DMA transmit channel | ||
| 305 | * @dma_rx: DMA receive channel | ||
| 306 | * @dummy_rx: dummy receive buffer for full-duplex devices | ||
| 307 | * @dummy_tx: dummy transmit buffer for full-duplex devices | ||
| 302 | * | 308 | * |
| 303 | * Each SPI master controller can communicate with one or more @spi_device | 309 | * Each SPI master controller can communicate with one or more @spi_device |
| 304 | * children. These make a small bus, sharing MOSI, MISO and SCK signals | 310 | * children. These make a small bus, sharing MOSI, MISO and SCK signals |
| @@ -632,6 +638,7 @@ struct spi_transfer { | |||
| 632 | * addresses for each transfer buffer | 638 | * addresses for each transfer buffer |
| 633 | * @complete: called to report transaction completions | 639 | * @complete: called to report transaction completions |
| 634 | * @context: the argument to complete() when it's called | 640 | * @context: the argument to complete() when it's called |
| 641 | * @frame_length: the total number of bytes in the message | ||
| 635 | * @actual_length: the total number of bytes that were transferred in all | 642 | * @actual_length: the total number of bytes that were transferred in all |
| 636 | * successful segments | 643 | * successful segments |
| 637 | * @status: zero for success, else negative errno | 644 | * @status: zero for success, else negative errno |
diff --git a/include/linux/tick.h b/include/linux/tick.h index 059052306831..9a82c7dc3fdd 100644 --- a/include/linux/tick.h +++ b/include/linux/tick.h | |||
| @@ -183,13 +183,8 @@ static inline bool tick_nohz_full_cpu(int cpu) | |||
| 183 | 183 | ||
| 184 | extern void tick_nohz_init(void); | 184 | extern void tick_nohz_init(void); |
| 185 | extern void __tick_nohz_full_check(void); | 185 | extern void __tick_nohz_full_check(void); |
| 186 | extern void tick_nohz_full_kick(void); | ||
| 186 | extern void tick_nohz_full_kick_cpu(int cpu); | 187 | extern void tick_nohz_full_kick_cpu(int cpu); |
| 187 | |||
| 188 | static inline void tick_nohz_full_kick(void) | ||
| 189 | { | ||
| 190 | tick_nohz_full_kick_cpu(smp_processor_id()); | ||
| 191 | } | ||
| 192 | |||
| 193 | extern void tick_nohz_full_kick_all(void); | 188 | extern void tick_nohz_full_kick_all(void); |
| 194 | extern void __tick_nohz_task_switch(struct task_struct *tsk); | 189 | extern void __tick_nohz_task_switch(struct task_struct *tsk); |
| 195 | #else | 190 | #else |
