diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/acpi.h | 8 | ||||
-rw-r--r-- | include/linux/bcm47xx_wdt.h | 9 | ||||
-rw-r--r-- | include/linux/bcma/bcma_driver_chipcommon.h | 1 | ||||
-rw-r--r-- | include/linux/btrfs.h | 6 | ||||
-rw-r--r-- | include/linux/compat.h | 3 | ||||
-rw-r--r-- | include/linux/device-mapper.h | 49 | ||||
-rw-r--r-- | include/linux/dm-kcopyd.h | 25 | ||||
-rw-r--r-- | include/linux/dmaengine.h | 16 | ||||
-rw-r--r-- | include/linux/dw_dmac.h | 5 | ||||
-rw-r--r-- | include/linux/hsi/hsi.h | 6 | ||||
-rw-r--r-- | include/linux/irqchip/metag-ext.h | 33 | ||||
-rw-r--r-- | include/linux/irqchip/metag.h | 24 | ||||
-rw-r--r-- | include/linux/memblock.h | 2 | ||||
-rw-r--r-- | include/linux/mm.h | 20 | ||||
-rw-r--r-- | include/linux/mtd/map.h | 9 | ||||
-rw-r--r-- | include/linux/nfs_xdr.h | 1 | ||||
-rw-r--r-- | include/linux/platform_data/elm.h | 54 | ||||
-rw-r--r-- | include/linux/stmp3xxx_rtc_wdt.h | 15 | ||||
-rw-r--r-- | include/linux/sunrpc/clnt.h | 1 | ||||
-rw-r--r-- | include/linux/watchdog.h | 9 |
20 files changed, 240 insertions, 56 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index f46cfd73a553..bcbdd7484e58 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -485,14 +485,6 @@ static inline bool acpi_driver_match_device(struct device *dev, | |||
485 | 485 | ||
486 | #endif /* !CONFIG_ACPI */ | 486 | #endif /* !CONFIG_ACPI */ |
487 | 487 | ||
488 | #ifdef CONFIG_ACPI_NUMA | ||
489 | void __init early_parse_srat(void); | ||
490 | #else | ||
491 | static inline void early_parse_srat(void) | ||
492 | { | ||
493 | } | ||
494 | #endif | ||
495 | |||
496 | #ifdef CONFIG_ACPI | 488 | #ifdef CONFIG_ACPI |
497 | void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state, | 489 | void acpi_os_set_prepare_sleep(int (*func)(u8 sleep_state, |
498 | u32 pm1a_ctrl, u32 pm1b_ctrl)); | 490 | u32 pm1a_ctrl, u32 pm1b_ctrl)); |
diff --git a/include/linux/bcm47xx_wdt.h b/include/linux/bcm47xx_wdt.h index e5dfc256485b..b708786d4cbf 100644 --- a/include/linux/bcm47xx_wdt.h +++ b/include/linux/bcm47xx_wdt.h | |||
@@ -1,7 +1,10 @@ | |||
1 | #ifndef LINUX_BCM47XX_WDT_H_ | 1 | #ifndef LINUX_BCM47XX_WDT_H_ |
2 | #define LINUX_BCM47XX_WDT_H_ | 2 | #define LINUX_BCM47XX_WDT_H_ |
3 | 3 | ||
4 | #include <linux/notifier.h> | ||
5 | #include <linux/timer.h> | ||
4 | #include <linux/types.h> | 6 | #include <linux/types.h> |
7 | #include <linux/watchdog.h> | ||
5 | 8 | ||
6 | 9 | ||
7 | struct bcm47xx_wdt { | 10 | struct bcm47xx_wdt { |
@@ -10,6 +13,12 @@ struct bcm47xx_wdt { | |||
10 | u32 max_timer_ms; | 13 | u32 max_timer_ms; |
11 | 14 | ||
12 | void *driver_data; | 15 | void *driver_data; |
16 | |||
17 | struct watchdog_device wdd; | ||
18 | struct notifier_block notifier; | ||
19 | |||
20 | struct timer_list soft_timer; | ||
21 | atomic_t soft_ticks; | ||
13 | }; | 22 | }; |
14 | 23 | ||
15 | static inline void *bcm47xx_wdt_get_drvdata(struct bcm47xx_wdt *wdt) | 24 | static inline void *bcm47xx_wdt_get_drvdata(struct bcm47xx_wdt *wdt) |
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h index 1d002b58b60b..8390c474f69a 100644 --- a/include/linux/bcma/bcma_driver_chipcommon.h +++ b/include/linux/bcma/bcma_driver_chipcommon.h | |||
@@ -528,6 +528,7 @@ struct bcma_sflash { | |||
528 | u32 size; | 528 | u32 size; |
529 | 529 | ||
530 | struct mtd_info *mtd; | 530 | struct mtd_info *mtd; |
531 | void *priv; | ||
531 | }; | 532 | }; |
532 | #endif | 533 | #endif |
533 | 534 | ||
diff --git a/include/linux/btrfs.h b/include/linux/btrfs.h new file mode 100644 index 000000000000..22d799147db2 --- /dev/null +++ b/include/linux/btrfs.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef _LINUX_BTRFS_H | ||
2 | #define _LINUX_BTRFS_H | ||
3 | |||
4 | #include <uapi/linux/btrfs.h> | ||
5 | |||
6 | #endif /* _LINUX_BTRFS_H */ | ||
diff --git a/include/linux/compat.h b/include/linux/compat.h index de095b0462a7..76a87fb57ac2 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
@@ -359,6 +359,7 @@ asmlinkage ssize_t compat_sys_preadv(unsigned long fd, | |||
359 | asmlinkage ssize_t compat_sys_pwritev(unsigned long fd, | 359 | asmlinkage ssize_t compat_sys_pwritev(unsigned long fd, |
360 | const struct compat_iovec __user *vec, | 360 | const struct compat_iovec __user *vec, |
361 | unsigned long vlen, u32 pos_low, u32 pos_high); | 361 | unsigned long vlen, u32 pos_low, u32 pos_high); |
362 | asmlinkage long comat_sys_lseek(unsigned int, compat_off_t, unsigned int); | ||
362 | 363 | ||
363 | asmlinkage long compat_sys_execve(const char __user *filename, const compat_uptr_t __user *argv, | 364 | asmlinkage long compat_sys_execve(const char __user *filename, const compat_uptr_t __user *argv, |
364 | const compat_uptr_t __user *envp); | 365 | const compat_uptr_t __user *envp); |
@@ -535,6 +536,8 @@ asmlinkage long compat_sys_openat(int dfd, const char __user *filename, | |||
535 | asmlinkage long compat_sys_open_by_handle_at(int mountdirfd, | 536 | asmlinkage long compat_sys_open_by_handle_at(int mountdirfd, |
536 | struct file_handle __user *handle, | 537 | struct file_handle __user *handle, |
537 | int flags); | 538 | int flags); |
539 | asmlinkage long compat_sys_truncate(const char __user *, compat_off_t); | ||
540 | asmlinkage long compat_sys_ftruncate(unsigned int, compat_ulong_t); | ||
538 | asmlinkage long compat_sys_pselect6(int n, compat_ulong_t __user *inp, | 541 | asmlinkage long compat_sys_pselect6(int n, compat_ulong_t __user *inp, |
539 | compat_ulong_t __user *outp, | 542 | compat_ulong_t __user *outp, |
540 | compat_ulong_t __user *exp, | 543 | compat_ulong_t __user *exp, |
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index bf6afa2fc432..1e483fa7afb4 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
@@ -68,8 +68,8 @@ typedef void (*dm_postsuspend_fn) (struct dm_target *ti); | |||
68 | typedef int (*dm_preresume_fn) (struct dm_target *ti); | 68 | typedef int (*dm_preresume_fn) (struct dm_target *ti); |
69 | typedef void (*dm_resume_fn) (struct dm_target *ti); | 69 | typedef void (*dm_resume_fn) (struct dm_target *ti); |
70 | 70 | ||
71 | typedef int (*dm_status_fn) (struct dm_target *ti, status_type_t status_type, | 71 | typedef void (*dm_status_fn) (struct dm_target *ti, status_type_t status_type, |
72 | unsigned status_flags, char *result, unsigned maxlen); | 72 | unsigned status_flags, char *result, unsigned maxlen); |
73 | 73 | ||
74 | typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv); | 74 | typedef int (*dm_message_fn) (struct dm_target *ti, unsigned argc, char **argv); |
75 | 75 | ||
@@ -175,6 +175,14 @@ struct target_type { | |||
175 | #define DM_TARGET_IMMUTABLE 0x00000004 | 175 | #define DM_TARGET_IMMUTABLE 0x00000004 |
176 | #define dm_target_is_immutable(type) ((type)->features & DM_TARGET_IMMUTABLE) | 176 | #define dm_target_is_immutable(type) ((type)->features & DM_TARGET_IMMUTABLE) |
177 | 177 | ||
178 | /* | ||
179 | * Some targets need to be sent the same WRITE bio severals times so | ||
180 | * that they can send copies of it to different devices. This function | ||
181 | * examines any supplied bio and returns the number of copies of it the | ||
182 | * target requires. | ||
183 | */ | ||
184 | typedef unsigned (*dm_num_write_bios_fn) (struct dm_target *ti, struct bio *bio); | ||
185 | |||
178 | struct dm_target { | 186 | struct dm_target { |
179 | struct dm_table *table; | 187 | struct dm_table *table; |
180 | struct target_type *type; | 188 | struct target_type *type; |
@@ -187,26 +195,26 @@ struct dm_target { | |||
187 | uint32_t max_io_len; | 195 | uint32_t max_io_len; |
188 | 196 | ||
189 | /* | 197 | /* |
190 | * A number of zero-length barrier requests that will be submitted | 198 | * A number of zero-length barrier bios that will be submitted |
191 | * to the target for the purpose of flushing cache. | 199 | * to the target for the purpose of flushing cache. |
192 | * | 200 | * |
193 | * The request number can be accessed with dm_bio_get_target_request_nr. | 201 | * The bio number can be accessed with dm_bio_get_target_bio_nr. |
194 | * It is a responsibility of the target driver to remap these requests | 202 | * It is a responsibility of the target driver to remap these bios |
195 | * to the real underlying devices. | 203 | * to the real underlying devices. |
196 | */ | 204 | */ |
197 | unsigned num_flush_requests; | 205 | unsigned num_flush_bios; |
198 | 206 | ||
199 | /* | 207 | /* |
200 | * The number of discard requests that will be submitted to the target. | 208 | * The number of discard bios that will be submitted to the target. |
201 | * The request number can be accessed with dm_bio_get_target_request_nr. | 209 | * The bio number can be accessed with dm_bio_get_target_bio_nr. |
202 | */ | 210 | */ |
203 | unsigned num_discard_requests; | 211 | unsigned num_discard_bios; |
204 | 212 | ||
205 | /* | 213 | /* |
206 | * The number of WRITE SAME requests that will be submitted to the target. | 214 | * The number of WRITE SAME bios that will be submitted to the target. |
207 | * The request number can be accessed with dm_bio_get_target_request_nr. | 215 | * The bio number can be accessed with dm_bio_get_target_bio_nr. |
208 | */ | 216 | */ |
209 | unsigned num_write_same_requests; | 217 | unsigned num_write_same_bios; |
210 | 218 | ||
211 | /* | 219 | /* |
212 | * The minimum number of extra bytes allocated in each bio for the | 220 | * The minimum number of extra bytes allocated in each bio for the |
@@ -214,6 +222,13 @@ struct dm_target { | |||
214 | */ | 222 | */ |
215 | unsigned per_bio_data_size; | 223 | unsigned per_bio_data_size; |
216 | 224 | ||
225 | /* | ||
226 | * If defined, this function is called to find out how many | ||
227 | * duplicate bios should be sent to the target when writing | ||
228 | * data. | ||
229 | */ | ||
230 | dm_num_write_bios_fn num_write_bios; | ||
231 | |||
217 | /* target specific data */ | 232 | /* target specific data */ |
218 | void *private; | 233 | void *private; |
219 | 234 | ||
@@ -233,10 +248,10 @@ struct dm_target { | |||
233 | bool discards_supported:1; | 248 | bool discards_supported:1; |
234 | 249 | ||
235 | /* | 250 | /* |
236 | * Set if the target required discard request to be split | 251 | * Set if the target required discard bios to be split |
237 | * on max_io_len boundary. | 252 | * on max_io_len boundary. |
238 | */ | 253 | */ |
239 | bool split_discard_requests:1; | 254 | bool split_discard_bios:1; |
240 | 255 | ||
241 | /* | 256 | /* |
242 | * Set if this target does not return zeroes on discarded blocks. | 257 | * Set if this target does not return zeroes on discarded blocks. |
@@ -261,7 +276,7 @@ struct dm_target_io { | |||
261 | struct dm_io *io; | 276 | struct dm_io *io; |
262 | struct dm_target *ti; | 277 | struct dm_target *ti; |
263 | union map_info info; | 278 | union map_info info; |
264 | unsigned target_request_nr; | 279 | unsigned target_bio_nr; |
265 | struct bio clone; | 280 | struct bio clone; |
266 | }; | 281 | }; |
267 | 282 | ||
@@ -275,9 +290,9 @@ static inline struct bio *dm_bio_from_per_bio_data(void *data, size_t data_size) | |||
275 | return (struct bio *)((char *)data + data_size + offsetof(struct dm_target_io, clone)); | 290 | return (struct bio *)((char *)data + data_size + offsetof(struct dm_target_io, clone)); |
276 | } | 291 | } |
277 | 292 | ||
278 | static inline unsigned dm_bio_get_target_request_nr(const struct bio *bio) | 293 | static inline unsigned dm_bio_get_target_bio_nr(const struct bio *bio) |
279 | { | 294 | { |
280 | return container_of(bio, struct dm_target_io, clone)->target_request_nr; | 295 | return container_of(bio, struct dm_target_io, clone)->target_bio_nr; |
281 | } | 296 | } |
282 | 297 | ||
283 | int dm_register_target(struct target_type *t); | 298 | int dm_register_target(struct target_type *t); |
diff --git a/include/linux/dm-kcopyd.h b/include/linux/dm-kcopyd.h index 47d9d376e4e7..f486d636b82e 100644 --- a/include/linux/dm-kcopyd.h +++ b/include/linux/dm-kcopyd.h | |||
@@ -21,11 +21,34 @@ | |||
21 | 21 | ||
22 | #define DM_KCOPYD_IGNORE_ERROR 1 | 22 | #define DM_KCOPYD_IGNORE_ERROR 1 |
23 | 23 | ||
24 | struct dm_kcopyd_throttle { | ||
25 | unsigned throttle; | ||
26 | unsigned num_io_jobs; | ||
27 | unsigned io_period; | ||
28 | unsigned total_period; | ||
29 | unsigned last_jiffies; | ||
30 | }; | ||
31 | |||
32 | /* | ||
33 | * kcopyd clients that want to support throttling must pass an initialised | ||
34 | * dm_kcopyd_throttle struct into dm_kcopyd_client_create(). | ||
35 | * Two or more clients may share the same instance of this struct between | ||
36 | * them if they wish to be throttled as a group. | ||
37 | * | ||
38 | * This macro also creates a corresponding module parameter to configure | ||
39 | * the amount of throttling. | ||
40 | */ | ||
41 | #define DECLARE_DM_KCOPYD_THROTTLE_WITH_MODULE_PARM(name, description) \ | ||
42 | static struct dm_kcopyd_throttle dm_kcopyd_throttle = { 100, 0, 0, 0, 0 }; \ | ||
43 | module_param_named(name, dm_kcopyd_throttle.throttle, uint, 0644); \ | ||
44 | MODULE_PARM_DESC(name, description) | ||
45 | |||
24 | /* | 46 | /* |
25 | * To use kcopyd you must first create a dm_kcopyd_client object. | 47 | * To use kcopyd you must first create a dm_kcopyd_client object. |
48 | * throttle can be NULL if you don't want any throttling. | ||
26 | */ | 49 | */ |
27 | struct dm_kcopyd_client; | 50 | struct dm_kcopyd_client; |
28 | struct dm_kcopyd_client *dm_kcopyd_client_create(void); | 51 | struct dm_kcopyd_client *dm_kcopyd_client_create(struct dm_kcopyd_throttle *throttle); |
29 | void dm_kcopyd_client_destroy(struct dm_kcopyd_client *kc); | 52 | void dm_kcopyd_client_destroy(struct dm_kcopyd_client *kc); |
30 | 53 | ||
31 | /* | 54 | /* |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index f5939999cb65..91ac8da25020 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
@@ -1001,6 +1001,22 @@ void dma_run_dependencies(struct dma_async_tx_descriptor *tx); | |||
1001 | struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); | 1001 | struct dma_chan *dma_find_channel(enum dma_transaction_type tx_type); |
1002 | struct dma_chan *net_dma_find_channel(void); | 1002 | struct dma_chan *net_dma_find_channel(void); |
1003 | #define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) | 1003 | #define dma_request_channel(mask, x, y) __dma_request_channel(&(mask), x, y) |
1004 | #define dma_request_slave_channel_compat(mask, x, y, dev, name) \ | ||
1005 | __dma_request_slave_channel_compat(&(mask), x, y, dev, name) | ||
1006 | |||
1007 | static inline struct dma_chan | ||
1008 | *__dma_request_slave_channel_compat(dma_cap_mask_t *mask, dma_filter_fn fn, | ||
1009 | void *fn_param, struct device *dev, | ||
1010 | char *name) | ||
1011 | { | ||
1012 | struct dma_chan *chan; | ||
1013 | |||
1014 | chan = dma_request_slave_channel(dev, name); | ||
1015 | if (chan) | ||
1016 | return chan; | ||
1017 | |||
1018 | return __dma_request_channel(mask, fn, fn_param); | ||
1019 | } | ||
1004 | 1020 | ||
1005 | /* --- Helper iov-locking functions --- */ | 1021 | /* --- Helper iov-locking functions --- */ |
1006 | 1022 | ||
diff --git a/include/linux/dw_dmac.h b/include/linux/dw_dmac.h index 41766de66e33..481ab2345d6b 100644 --- a/include/linux/dw_dmac.h +++ b/include/linux/dw_dmac.h | |||
@@ -27,7 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | struct dw_dma_slave { | 28 | struct dw_dma_slave { |
29 | struct device *dma_dev; | 29 | struct device *dma_dev; |
30 | const char *bus_id; | ||
31 | u32 cfg_hi; | 30 | u32 cfg_hi; |
32 | u32 cfg_lo; | 31 | u32 cfg_lo; |
33 | u8 src_master; | 32 | u8 src_master; |
@@ -60,9 +59,6 @@ struct dw_dma_platform_data { | |||
60 | unsigned short block_size; | 59 | unsigned short block_size; |
61 | unsigned char nr_masters; | 60 | unsigned char nr_masters; |
62 | unsigned char data_width[4]; | 61 | unsigned char data_width[4]; |
63 | |||
64 | struct dw_dma_slave *sd; | ||
65 | unsigned int sd_count; | ||
66 | }; | 62 | }; |
67 | 63 | ||
68 | /* bursts size */ | 64 | /* bursts size */ |
@@ -114,6 +110,5 @@ void dw_dma_cyclic_stop(struct dma_chan *chan); | |||
114 | dma_addr_t dw_dma_get_src_addr(struct dma_chan *chan); | 110 | dma_addr_t dw_dma_get_src_addr(struct dma_chan *chan); |
115 | 111 | ||
116 | dma_addr_t dw_dma_get_dst_addr(struct dma_chan *chan); | 112 | dma_addr_t dw_dma_get_dst_addr(struct dma_chan *chan); |
117 | bool dw_dma_generic_filter(struct dma_chan *chan, void *param); | ||
118 | 113 | ||
119 | #endif /* DW_DMAC_H */ | 114 | #endif /* DW_DMAC_H */ |
diff --git a/include/linux/hsi/hsi.h b/include/linux/hsi/hsi.h index 56fae865e272..0dca785288cf 100644 --- a/include/linux/hsi/hsi.h +++ b/include/linux/hsi/hsi.h | |||
@@ -121,9 +121,9 @@ static inline int hsi_register_board_info(struct hsi_board_info const *info, | |||
121 | * @device: Driver model representation of the device | 121 | * @device: Driver model representation of the device |
122 | * @tx_cfg: HSI TX configuration | 122 | * @tx_cfg: HSI TX configuration |
123 | * @rx_cfg: HSI RX configuration | 123 | * @rx_cfg: HSI RX configuration |
124 | * @e_handler: Callback for handling port events (RX Wake High/Low) | 124 | * e_handler: Callback for handling port events (RX Wake High/Low) |
125 | * @pclaimed: Keeps tracks if the clients claimed its associated HSI port | 125 | * pclaimed: Keeps tracks if the clients claimed its associated HSI port |
126 | * @nb: Notifier block for port events | 126 | * nb: Notifier block for port events |
127 | */ | 127 | */ |
128 | struct hsi_client { | 128 | struct hsi_client { |
129 | struct device device; | 129 | struct device device; |
diff --git a/include/linux/irqchip/metag-ext.h b/include/linux/irqchip/metag-ext.h new file mode 100644 index 000000000000..697af0fe7c5a --- /dev/null +++ b/include/linux/irqchip/metag-ext.h | |||
@@ -0,0 +1,33 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Imagination Technologies | ||
3 | */ | ||
4 | |||
5 | #ifndef _LINUX_IRQCHIP_METAG_EXT_H_ | ||
6 | #define _LINUX_IRQCHIP_METAG_EXT_H_ | ||
7 | |||
8 | struct irq_data; | ||
9 | struct platform_device; | ||
10 | |||
11 | /* called from core irq code at init */ | ||
12 | int init_external_IRQ(void); | ||
13 | |||
14 | /* | ||
15 | * called from SoC init_irq() callback to dynamically indicate the lack of | ||
16 | * HWMASKEXT registers. | ||
17 | */ | ||
18 | void meta_intc_no_mask(void); | ||
19 | |||
20 | /* | ||
21 | * These allow SoCs to specialise the interrupt controller from their init_irq | ||
22 | * callbacks. | ||
23 | */ | ||
24 | |||
25 | extern struct irq_chip meta_intc_edge_chip; | ||
26 | extern struct irq_chip meta_intc_level_chip; | ||
27 | |||
28 | /* this should be called in the mask callback */ | ||
29 | void meta_intc_mask_irq_simple(struct irq_data *data); | ||
30 | /* this should be called in the unmask callback */ | ||
31 | void meta_intc_unmask_irq_simple(struct irq_data *data); | ||
32 | |||
33 | #endif /* _LINUX_IRQCHIP_METAG_EXT_H_ */ | ||
diff --git a/include/linux/irqchip/metag.h b/include/linux/irqchip/metag.h new file mode 100644 index 000000000000..4ebdfb3101ab --- /dev/null +++ b/include/linux/irqchip/metag.h | |||
@@ -0,0 +1,24 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Imagination Technologies | ||
3 | */ | ||
4 | |||
5 | #ifndef _LINUX_IRQCHIP_METAG_H_ | ||
6 | #define _LINUX_IRQCHIP_METAG_H_ | ||
7 | |||
8 | #include <linux/errno.h> | ||
9 | |||
10 | #ifdef CONFIG_METAG_PERFCOUNTER_IRQS | ||
11 | extern int init_internal_IRQ(void); | ||
12 | extern int internal_irq_map(unsigned int hw); | ||
13 | #else | ||
14 | static inline int init_internal_IRQ(void) | ||
15 | { | ||
16 | return 0; | ||
17 | } | ||
18 | static inline int internal_irq_map(unsigned int hw) | ||
19 | { | ||
20 | return -EINVAL; | ||
21 | } | ||
22 | #endif | ||
23 | |||
24 | #endif /* _LINUX_IRQCHIP_METAG_H_ */ | ||
diff --git a/include/linux/memblock.h b/include/linux/memblock.h index 3e5ecb2d790e..f388203db7e8 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h | |||
@@ -42,7 +42,6 @@ struct memblock { | |||
42 | 42 | ||
43 | extern struct memblock memblock; | 43 | extern struct memblock memblock; |
44 | extern int memblock_debug; | 44 | extern int memblock_debug; |
45 | extern struct movablemem_map movablemem_map; | ||
46 | 45 | ||
47 | #define memblock_dbg(fmt, ...) \ | 46 | #define memblock_dbg(fmt, ...) \ |
48 | if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) | 47 | if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) |
@@ -61,7 +60,6 @@ int memblock_reserve(phys_addr_t base, phys_addr_t size); | |||
61 | void memblock_trim_memory(phys_addr_t align); | 60 | void memblock_trim_memory(phys_addr_t align); |
62 | 61 | ||
63 | #ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP | 62 | #ifdef CONFIG_HAVE_MEMBLOCK_NODE_MAP |
64 | |||
65 | void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn, | 63 | void __next_mem_pfn_range(int *idx, int nid, unsigned long *out_start_pfn, |
66 | unsigned long *out_end_pfn, int *out_nid); | 64 | unsigned long *out_end_pfn, int *out_nid); |
67 | 65 | ||
diff --git a/include/linux/mm.h b/include/linux/mm.h index e7c3f9a0111a..7acc9dc73c9f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -115,6 +115,8 @@ extern unsigned int kobjsize(const void *objp); | |||
115 | # define VM_SAO VM_ARCH_1 /* Strong Access Ordering (powerpc) */ | 115 | # define VM_SAO VM_ARCH_1 /* Strong Access Ordering (powerpc) */ |
116 | #elif defined(CONFIG_PARISC) | 116 | #elif defined(CONFIG_PARISC) |
117 | # define VM_GROWSUP VM_ARCH_1 | 117 | # define VM_GROWSUP VM_ARCH_1 |
118 | #elif defined(CONFIG_METAG) | ||
119 | # define VM_GROWSUP VM_ARCH_1 | ||
118 | #elif defined(CONFIG_IA64) | 120 | #elif defined(CONFIG_IA64) |
119 | # define VM_GROWSUP VM_ARCH_1 | 121 | # define VM_GROWSUP VM_ARCH_1 |
120 | #elif !defined(CONFIG_MMU) | 122 | #elif !defined(CONFIG_MMU) |
@@ -1333,24 +1335,6 @@ extern void free_bootmem_with_active_regions(int nid, | |||
1333 | unsigned long max_low_pfn); | 1335 | unsigned long max_low_pfn); |
1334 | extern void sparse_memory_present_with_active_regions(int nid); | 1336 | extern void sparse_memory_present_with_active_regions(int nid); |
1335 | 1337 | ||
1336 | #define MOVABLEMEM_MAP_MAX MAX_NUMNODES | ||
1337 | struct movablemem_entry { | ||
1338 | unsigned long start_pfn; /* start pfn of memory segment */ | ||
1339 | unsigned long end_pfn; /* end pfn of memory segment (exclusive) */ | ||
1340 | }; | ||
1341 | |||
1342 | struct movablemem_map { | ||
1343 | bool acpi; /* true if using SRAT info */ | ||
1344 | int nr_map; | ||
1345 | struct movablemem_entry map[MOVABLEMEM_MAP_MAX]; | ||
1346 | nodemask_t numa_nodes_hotplug; /* on which nodes we specify memory */ | ||
1347 | nodemask_t numa_nodes_kernel; /* on which nodes kernel resides in */ | ||
1348 | }; | ||
1349 | |||
1350 | extern void __init insert_movablemem_map(unsigned long start_pfn, | ||
1351 | unsigned long end_pfn); | ||
1352 | extern int __init movablemem_map_overlap(unsigned long start_pfn, | ||
1353 | unsigned long end_pfn); | ||
1354 | #endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */ | 1338 | #endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */ |
1355 | 1339 | ||
1356 | #if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \ | 1340 | #if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \ |
diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h index f6eb4332ac92..4b02512e421c 100644 --- a/include/linux/mtd/map.h +++ b/include/linux/mtd/map.h | |||
@@ -245,6 +245,7 @@ struct map_info { | |||
245 | unsigned long pfow_base; | 245 | unsigned long pfow_base; |
246 | unsigned long map_priv_1; | 246 | unsigned long map_priv_1; |
247 | unsigned long map_priv_2; | 247 | unsigned long map_priv_2; |
248 | struct device_node *device_node; | ||
248 | void *fldrv_priv; | 249 | void *fldrv_priv; |
249 | struct mtd_chip_driver *fldrv; | 250 | struct mtd_chip_driver *fldrv; |
250 | }; | 251 | }; |
@@ -328,7 +329,7 @@ static inline int map_word_bitsset(struct map_info *map, map_word val1, map_word | |||
328 | 329 | ||
329 | static inline map_word map_word_load(struct map_info *map, const void *ptr) | 330 | static inline map_word map_word_load(struct map_info *map, const void *ptr) |
330 | { | 331 | { |
331 | map_word r = {{0} }; | 332 | map_word r; |
332 | 333 | ||
333 | if (map_bankwidth_is_1(map)) | 334 | if (map_bankwidth_is_1(map)) |
334 | r.x[0] = *(unsigned char *)ptr; | 335 | r.x[0] = *(unsigned char *)ptr; |
@@ -342,6 +343,8 @@ static inline map_word map_word_load(struct map_info *map, const void *ptr) | |||
342 | #endif | 343 | #endif |
343 | else if (map_bankwidth_is_large(map)) | 344 | else if (map_bankwidth_is_large(map)) |
344 | memcpy(r.x, ptr, map->bankwidth); | 345 | memcpy(r.x, ptr, map->bankwidth); |
346 | else | ||
347 | BUG(); | ||
345 | 348 | ||
346 | return r; | 349 | return r; |
347 | } | 350 | } |
@@ -391,7 +394,7 @@ static inline map_word map_word_ff(struct map_info *map) | |||
391 | 394 | ||
392 | static inline map_word inline_map_read(struct map_info *map, unsigned long ofs) | 395 | static inline map_word inline_map_read(struct map_info *map, unsigned long ofs) |
393 | { | 396 | { |
394 | map_word uninitialized_var(r); | 397 | map_word r; |
395 | 398 | ||
396 | if (map_bankwidth_is_1(map)) | 399 | if (map_bankwidth_is_1(map)) |
397 | r.x[0] = __raw_readb(map->virt + ofs); | 400 | r.x[0] = __raw_readb(map->virt + ofs); |
@@ -425,6 +428,8 @@ static inline void inline_map_write(struct map_info *map, const map_word datum, | |||
425 | #endif | 428 | #endif |
426 | else if (map_bankwidth_is_large(map)) | 429 | else if (map_bankwidth_is_large(map)) |
427 | memcpy_toio(map->virt+ofs, datum.x, map->bankwidth); | 430 | memcpy_toio(map->virt+ofs, datum.x, map->bankwidth); |
431 | else | ||
432 | BUG(); | ||
428 | mb(); | 433 | mb(); |
429 | } | 434 | } |
430 | 435 | ||
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 13441ddac33d..4b993d358dad 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
@@ -233,6 +233,7 @@ struct nfs4_layoutget_args { | |||
233 | struct inode *inode; | 233 | struct inode *inode; |
234 | struct nfs_open_context *ctx; | 234 | struct nfs_open_context *ctx; |
235 | nfs4_stateid stateid; | 235 | nfs4_stateid stateid; |
236 | unsigned long timestamp; | ||
236 | struct nfs4_layoutdriver_data layout; | 237 | struct nfs4_layoutdriver_data layout; |
237 | }; | 238 | }; |
238 | 239 | ||
diff --git a/include/linux/platform_data/elm.h b/include/linux/platform_data/elm.h new file mode 100644 index 000000000000..1bd5244d1dcd --- /dev/null +++ b/include/linux/platform_data/elm.h | |||
@@ -0,0 +1,54 @@ | |||
1 | /* | ||
2 | * BCH Error Location Module | ||
3 | * | ||
4 | * Copyright (C) 2012 Texas Instruments Incorporated - http://www.ti.com/ | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | */ | ||
17 | |||
18 | #ifndef __ELM_H | ||
19 | #define __ELM_H | ||
20 | |||
21 | enum bch_ecc { | ||
22 | BCH4_ECC = 0, | ||
23 | BCH8_ECC, | ||
24 | }; | ||
25 | |||
26 | /* ELM support 8 error syndrome process */ | ||
27 | #define ERROR_VECTOR_MAX 8 | ||
28 | |||
29 | #define BCH8_ECC_OOB_BYTES 13 | ||
30 | #define BCH4_ECC_OOB_BYTES 7 | ||
31 | /* RBL requires 14 byte even though BCH8 uses only 13 byte */ | ||
32 | #define BCH8_SIZE (BCH8_ECC_OOB_BYTES + 1) | ||
33 | /* Uses 1 extra byte to handle erased pages */ | ||
34 | #define BCH4_SIZE (BCH4_ECC_OOB_BYTES + 1) | ||
35 | |||
36 | /** | ||
37 | * struct elm_errorvec - error vector for elm | ||
38 | * @error_reported: set true for vectors error is reported | ||
39 | * @error_uncorrectable: number of uncorrectable errors | ||
40 | * @error_count: number of correctable errors in the sector | ||
41 | * @error_loc: buffer for error location | ||
42 | * | ||
43 | */ | ||
44 | struct elm_errorvec { | ||
45 | bool error_reported; | ||
46 | bool error_uncorrectable; | ||
47 | int error_count; | ||
48 | int error_loc[ERROR_VECTOR_MAX]; | ||
49 | }; | ||
50 | |||
51 | void elm_decode_bch_error_page(struct device *dev, u8 *ecc_calc, | ||
52 | struct elm_errorvec *err_vec); | ||
53 | void elm_config(struct device *dev, enum bch_ecc bch_type); | ||
54 | #endif /* __ELM_H */ | ||
diff --git a/include/linux/stmp3xxx_rtc_wdt.h b/include/linux/stmp3xxx_rtc_wdt.h new file mode 100644 index 000000000000..1dd12c96231b --- /dev/null +++ b/include/linux/stmp3xxx_rtc_wdt.h | |||
@@ -0,0 +1,15 @@ | |||
1 | /* | ||
2 | * stmp3xxx_rtc_wdt.h | ||
3 | * | ||
4 | * Copyright (C) 2011 Wolfram Sang, Pengutronix e.K. | ||
5 | * | ||
6 | * This file is released under the GPLv2. | ||
7 | */ | ||
8 | #ifndef __LINUX_STMP3XXX_RTC_WDT_H | ||
9 | #define __LINUX_STMP3XXX_RTC_WDT_H | ||
10 | |||
11 | struct stmp3xxx_wdt_pdata { | ||
12 | void (*wdt_set_timeout)(struct device *dev, u32 timeout); | ||
13 | }; | ||
14 | |||
15 | #endif /* __LINUX_STMP3XXX_RTC_WDT_H */ | ||
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index 4a4abde000cb..2cf4ffaa3cd4 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h | |||
@@ -160,6 +160,7 @@ void rpc_setbufsize(struct rpc_clnt *, unsigned int, unsigned int); | |||
160 | int rpc_protocol(struct rpc_clnt *); | 160 | int rpc_protocol(struct rpc_clnt *); |
161 | struct net * rpc_net_ns(struct rpc_clnt *); | 161 | struct net * rpc_net_ns(struct rpc_clnt *); |
162 | size_t rpc_max_payload(struct rpc_clnt *); | 162 | size_t rpc_max_payload(struct rpc_clnt *); |
163 | unsigned long rpc_get_timeout(struct rpc_clnt *clnt); | ||
163 | void rpc_force_rebind(struct rpc_clnt *); | 164 | void rpc_force_rebind(struct rpc_clnt *); |
164 | size_t rpc_peeraddr(struct rpc_clnt *, struct sockaddr *, size_t); | 165 | size_t rpc_peeraddr(struct rpc_clnt *, struct sockaddr *, size_t); |
165 | const char *rpc_peeraddr2str(struct rpc_clnt *, enum rpc_display_format_t); | 166 | const char *rpc_peeraddr2str(struct rpc_clnt *, enum rpc_display_format_t); |
diff --git a/include/linux/watchdog.h b/include/linux/watchdog.h index 3a9df2f43be6..2a3038ee17a3 100644 --- a/include/linux/watchdog.h +++ b/include/linux/watchdog.h | |||
@@ -118,6 +118,13 @@ static inline void watchdog_set_nowayout(struct watchdog_device *wdd, bool noway | |||
118 | set_bit(WDOG_NO_WAY_OUT, &wdd->status); | 118 | set_bit(WDOG_NO_WAY_OUT, &wdd->status); |
119 | } | 119 | } |
120 | 120 | ||
121 | /* Use the following function to check if a timeout value is invalid */ | ||
122 | static inline bool watchdog_timeout_invalid(struct watchdog_device *wdd, unsigned int t) | ||
123 | { | ||
124 | return ((wdd->max_timeout != 0) && | ||
125 | (t < wdd->min_timeout || t > wdd->max_timeout)); | ||
126 | } | ||
127 | |||
121 | /* Use the following functions to manipulate watchdog driver specific data */ | 128 | /* Use the following functions to manipulate watchdog driver specific data */ |
122 | static inline void watchdog_set_drvdata(struct watchdog_device *wdd, void *data) | 129 | static inline void watchdog_set_drvdata(struct watchdog_device *wdd, void *data) |
123 | { | 130 | { |
@@ -130,6 +137,8 @@ static inline void *watchdog_get_drvdata(struct watchdog_device *wdd) | |||
130 | } | 137 | } |
131 | 138 | ||
132 | /* drivers/watchdog/watchdog_core.c */ | 139 | /* drivers/watchdog/watchdog_core.c */ |
140 | extern int watchdog_init_timeout(struct watchdog_device *wdd, | ||
141 | unsigned int timeout_parm, struct device *dev); | ||
133 | extern int watchdog_register_device(struct watchdog_device *); | 142 | extern int watchdog_register_device(struct watchdog_device *); |
134 | extern void watchdog_unregister_device(struct watchdog_device *); | 143 | extern void watchdog_unregister_device(struct watchdog_device *); |
135 | 144 | ||