diff options
Diffstat (limited to 'include')
30 files changed, 297 insertions, 60 deletions
diff --git a/include/acpi/ghes.h b/include/acpi/ghes.h new file mode 100644 index 000000000000..720446cb243e --- /dev/null +++ b/include/acpi/ghes.h | |||
@@ -0,0 +1,72 @@ | |||
1 | #include <acpi/apei.h> | ||
2 | #include <acpi/hed.h> | ||
3 | |||
4 | /* | ||
5 | * One struct ghes is created for each generic hardware error source. | ||
6 | * It provides the context for APEI hardware error timer/IRQ/SCI/NMI | ||
7 | * handler. | ||
8 | * | ||
9 | * estatus: memory buffer for error status block, allocated during | ||
10 | * HEST parsing. | ||
11 | */ | ||
12 | #define GHES_TO_CLEAR 0x0001 | ||
13 | #define GHES_EXITING 0x0002 | ||
14 | |||
15 | struct ghes { | ||
16 | struct acpi_hest_generic *generic; | ||
17 | struct acpi_hest_generic_status *estatus; | ||
18 | u64 buffer_paddr; | ||
19 | unsigned long flags; | ||
20 | union { | ||
21 | struct list_head list; | ||
22 | struct timer_list timer; | ||
23 | unsigned int irq; | ||
24 | }; | ||
25 | }; | ||
26 | |||
27 | struct ghes_estatus_node { | ||
28 | struct llist_node llnode; | ||
29 | struct acpi_hest_generic *generic; | ||
30 | struct ghes *ghes; | ||
31 | }; | ||
32 | |||
33 | struct ghes_estatus_cache { | ||
34 | u32 estatus_len; | ||
35 | atomic_t count; | ||
36 | struct acpi_hest_generic *generic; | ||
37 | unsigned long long time_in; | ||
38 | struct rcu_head rcu; | ||
39 | }; | ||
40 | |||
41 | enum { | ||
42 | GHES_SEV_NO = 0x0, | ||
43 | GHES_SEV_CORRECTED = 0x1, | ||
44 | GHES_SEV_RECOVERABLE = 0x2, | ||
45 | GHES_SEV_PANIC = 0x3, | ||
46 | }; | ||
47 | |||
48 | /* From drivers/edac/ghes_edac.c */ | ||
49 | |||
50 | #ifdef CONFIG_EDAC_GHES | ||
51 | void ghes_edac_report_mem_error(struct ghes *ghes, int sev, | ||
52 | struct cper_sec_mem_err *mem_err); | ||
53 | |||
54 | int ghes_edac_register(struct ghes *ghes, struct device *dev); | ||
55 | |||
56 | void ghes_edac_unregister(struct ghes *ghes); | ||
57 | |||
58 | #else | ||
59 | static inline void ghes_edac_report_mem_error(struct ghes *ghes, int sev, | ||
60 | struct cper_sec_mem_err *mem_err) | ||
61 | { | ||
62 | } | ||
63 | |||
64 | static inline int ghes_edac_register(struct ghes *ghes, struct device *dev) | ||
65 | { | ||
66 | return 0; | ||
67 | } | ||
68 | |||
69 | static inline void ghes_edac_unregister(struct ghes *ghes) | ||
70 | { | ||
71 | } | ||
72 | #endif | ||
diff --git a/include/asm-generic/checksum.h b/include/asm-generic/checksum.h index c084767c88bc..59811df58c5b 100644 --- a/include/asm-generic/checksum.h +++ b/include/asm-generic/checksum.h | |||
@@ -38,12 +38,15 @@ extern __wsum csum_partial_copy_from_user(const void __user *src, void *dst, | |||
38 | csum_partial_copy((src), (dst), (len), (sum)) | 38 | csum_partial_copy((src), (dst), (len), (sum)) |
39 | #endif | 39 | #endif |
40 | 40 | ||
41 | #ifndef ip_fast_csum | ||
41 | /* | 42 | /* |
42 | * This is a version of ip_compute_csum() optimized for IP headers, | 43 | * This is a version of ip_compute_csum() optimized for IP headers, |
43 | * which always checksum on 4 octet boundaries. | 44 | * which always checksum on 4 octet boundaries. |
44 | */ | 45 | */ |
45 | extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl); | 46 | extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl); |
47 | #endif | ||
46 | 48 | ||
49 | #ifndef csum_fold | ||
47 | /* | 50 | /* |
48 | * Fold a partial checksum | 51 | * Fold a partial checksum |
49 | */ | 52 | */ |
@@ -54,6 +57,7 @@ static inline __sum16 csum_fold(__wsum csum) | |||
54 | sum = (sum & 0xffff) + (sum >> 16); | 57 | sum = (sum & 0xffff) + (sum >> 16); |
55 | return (__force __sum16)~sum; | 58 | return (__force __sum16)~sum; |
56 | } | 59 | } |
60 | #endif | ||
57 | 61 | ||
58 | #ifndef csum_tcpudp_nofold | 62 | #ifndef csum_tcpudp_nofold |
59 | /* | 63 | /* |
diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h index 9788568f7978..c184aa8ec8cd 100644 --- a/include/asm-generic/uaccess.h +++ b/include/asm-generic/uaccess.h | |||
@@ -7,7 +7,6 @@ | |||
7 | * address space, e.g. all NOMMU machines. | 7 | * address space, e.g. all NOMMU machines. |
8 | */ | 8 | */ |
9 | #include <linux/sched.h> | 9 | #include <linux/sched.h> |
10 | #include <linux/mm.h> | ||
11 | #include <linux/string.h> | 10 | #include <linux/string.h> |
12 | 11 | ||
13 | #include <asm/segment.h> | 12 | #include <asm/segment.h> |
@@ -32,7 +31,9 @@ static inline void set_fs(mm_segment_t fs) | |||
32 | } | 31 | } |
33 | #endif | 32 | #endif |
34 | 33 | ||
34 | #ifndef segment_eq | ||
35 | #define segment_eq(a, b) ((a).seg == (b).seg) | 35 | #define segment_eq(a, b) ((a).seg == (b).seg) |
36 | #endif | ||
36 | 37 | ||
37 | #define VERIFY_READ 0 | 38 | #define VERIFY_READ 0 |
38 | #define VERIFY_WRITE 1 | 39 | #define VERIFY_WRITE 1 |
@@ -168,12 +169,18 @@ static inline __must_check long __copy_to_user(void __user *to, | |||
168 | -EFAULT; \ | 169 | -EFAULT; \ |
169 | }) | 170 | }) |
170 | 171 | ||
172 | #ifndef __put_user_fn | ||
173 | |||
171 | static inline int __put_user_fn(size_t size, void __user *ptr, void *x) | 174 | static inline int __put_user_fn(size_t size, void __user *ptr, void *x) |
172 | { | 175 | { |
173 | size = __copy_to_user(ptr, x, size); | 176 | size = __copy_to_user(ptr, x, size); |
174 | return size ? -EFAULT : size; | 177 | return size ? -EFAULT : size; |
175 | } | 178 | } |
176 | 179 | ||
180 | #define __put_user_fn(sz, u, k) __put_user_fn(sz, u, k) | ||
181 | |||
182 | #endif | ||
183 | |||
177 | extern int __put_user_bad(void) __attribute__((noreturn)); | 184 | extern int __put_user_bad(void) __attribute__((noreturn)); |
178 | 185 | ||
179 | #define __get_user(x, ptr) \ | 186 | #define __get_user(x, ptr) \ |
@@ -224,12 +231,17 @@ extern int __put_user_bad(void) __attribute__((noreturn)); | |||
224 | -EFAULT; \ | 231 | -EFAULT; \ |
225 | }) | 232 | }) |
226 | 233 | ||
234 | #ifndef __get_user_fn | ||
227 | static inline int __get_user_fn(size_t size, const void __user *ptr, void *x) | 235 | static inline int __get_user_fn(size_t size, const void __user *ptr, void *x) |
228 | { | 236 | { |
229 | size = __copy_from_user(x, ptr, size); | 237 | size = __copy_from_user(x, ptr, size); |
230 | return size ? -EFAULT : size; | 238 | return size ? -EFAULT : size; |
231 | } | 239 | } |
232 | 240 | ||
241 | #define __get_user_fn(sz, u, k) __get_user_fn(sz, u, k) | ||
242 | |||
243 | #endif | ||
244 | |||
233 | extern int __get_user_bad(void) __attribute__((noreturn)); | 245 | extern int __get_user_bad(void) __attribute__((noreturn)); |
234 | 246 | ||
235 | #ifndef __copy_from_user_inatomic | 247 | #ifndef __copy_from_user_inatomic |
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/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/dma-buf.h b/include/linux/dma-buf.h index 3d754a394e92..9978b614a1aa 100644 --- a/include/linux/dma-buf.h +++ b/include/linux/dma-buf.h | |||
@@ -119,8 +119,10 @@ struct dma_buf { | |||
119 | struct file *file; | 119 | struct file *file; |
120 | struct list_head attachments; | 120 | struct list_head attachments; |
121 | const struct dma_buf_ops *ops; | 121 | const struct dma_buf_ops *ops; |
122 | /* mutex to serialize list manipulation and attach/detach */ | 122 | /* mutex to serialize list manipulation, attach/detach and vmap/unmap */ |
123 | struct mutex lock; | 123 | struct mutex lock; |
124 | unsigned vmapping_counter; | ||
125 | void *vmap_ptr; | ||
124 | void *priv; | 126 | void *priv; |
125 | }; | 127 | }; |
126 | 128 | ||
diff --git a/include/linux/edac.h b/include/linux/edac.h index 1b8c02b36f76..4fd4999ccb5b 100644 --- a/include/linux/edac.h +++ b/include/linux/edac.h | |||
@@ -14,7 +14,6 @@ | |||
14 | 14 | ||
15 | #include <linux/atomic.h> | 15 | #include <linux/atomic.h> |
16 | #include <linux/device.h> | 16 | #include <linux/device.h> |
17 | #include <linux/kobject.h> | ||
18 | #include <linux/completion.h> | 17 | #include <linux/completion.h> |
19 | #include <linux/workqueue.h> | 18 | #include <linux/workqueue.h> |
20 | #include <linux/debugfs.h> | 19 | #include <linux/debugfs.h> |
@@ -48,8 +47,17 @@ static inline void opstate_init(void) | |||
48 | return; | 47 | return; |
49 | } | 48 | } |
50 | 49 | ||
50 | /* Max length of a DIMM label*/ | ||
51 | #define EDAC_MC_LABEL_LEN 31 | 51 | #define EDAC_MC_LABEL_LEN 31 |
52 | #define MC_PROC_NAME_MAX_LEN 7 | 52 | |
53 | /* Maximum size of the location string */ | ||
54 | #define LOCATION_SIZE 80 | ||
55 | |||
56 | /* Defines the maximum number of labels that can be reported */ | ||
57 | #define EDAC_MAX_LABELS 8 | ||
58 | |||
59 | /* String used to join two or more labels */ | ||
60 | #define OTHER_LABEL " or " | ||
53 | 61 | ||
54 | /** | 62 | /** |
55 | * enum dev_type - describe the type of memory DRAM chips used at the stick | 63 | * enum dev_type - describe the type of memory DRAM chips used at the stick |
@@ -101,8 +109,24 @@ enum hw_event_mc_err_type { | |||
101 | HW_EVENT_ERR_CORRECTED, | 109 | HW_EVENT_ERR_CORRECTED, |
102 | HW_EVENT_ERR_UNCORRECTED, | 110 | HW_EVENT_ERR_UNCORRECTED, |
103 | HW_EVENT_ERR_FATAL, | 111 | HW_EVENT_ERR_FATAL, |
112 | HW_EVENT_ERR_INFO, | ||
104 | }; | 113 | }; |
105 | 114 | ||
115 | static inline char *mc_event_error_type(const unsigned int err_type) | ||
116 | { | ||
117 | switch (err_type) { | ||
118 | case HW_EVENT_ERR_CORRECTED: | ||
119 | return "Corrected"; | ||
120 | case HW_EVENT_ERR_UNCORRECTED: | ||
121 | return "Uncorrected"; | ||
122 | case HW_EVENT_ERR_FATAL: | ||
123 | return "Fatal"; | ||
124 | default: | ||
125 | case HW_EVENT_ERR_INFO: | ||
126 | return "Info"; | ||
127 | } | ||
128 | } | ||
129 | |||
106 | /** | 130 | /** |
107 | * enum mem_type - memory types. For a more detailed reference, please see | 131 | * enum mem_type - memory types. For a more detailed reference, please see |
108 | * http://en.wikipedia.org/wiki/DRAM | 132 | * http://en.wikipedia.org/wiki/DRAM |
@@ -376,6 +400,9 @@ enum scrub_type { | |||
376 | * @EDAC_MC_LAYER_CHANNEL: memory layer is named "channel" | 400 | * @EDAC_MC_LAYER_CHANNEL: memory layer is named "channel" |
377 | * @EDAC_MC_LAYER_SLOT: memory layer is named "slot" | 401 | * @EDAC_MC_LAYER_SLOT: memory layer is named "slot" |
378 | * @EDAC_MC_LAYER_CHIP_SELECT: memory layer is named "chip select" | 402 | * @EDAC_MC_LAYER_CHIP_SELECT: memory layer is named "chip select" |
403 | * @EDAC_MC_LAYER_ALL_MEM: memory layout is unknown. All memory is mapped | ||
404 | * as a single memory area. This is used when | ||
405 | * retrieving errors from a firmware driven driver. | ||
379 | * | 406 | * |
380 | * This enum is used by the drivers to tell edac_mc_sysfs what name should | 407 | * This enum is used by the drivers to tell edac_mc_sysfs what name should |
381 | * be used when describing a memory stick location. | 408 | * be used when describing a memory stick location. |
@@ -385,6 +412,7 @@ enum edac_mc_layer_type { | |||
385 | EDAC_MC_LAYER_CHANNEL, | 412 | EDAC_MC_LAYER_CHANNEL, |
386 | EDAC_MC_LAYER_SLOT, | 413 | EDAC_MC_LAYER_SLOT, |
387 | EDAC_MC_LAYER_CHIP_SELECT, | 414 | EDAC_MC_LAYER_CHIP_SELECT, |
415 | EDAC_MC_LAYER_ALL_MEM, | ||
388 | }; | 416 | }; |
389 | 417 | ||
390 | /** | 418 | /** |
@@ -551,6 +579,46 @@ struct errcount_attribute_data { | |||
551 | int layer0, layer1, layer2; | 579 | int layer0, layer1, layer2; |
552 | }; | 580 | }; |
553 | 581 | ||
582 | /** | ||
583 | * edac_raw_error_desc - Raw error report structure | ||
584 | * @grain: minimum granularity for an error report, in bytes | ||
585 | * @error_count: number of errors of the same type | ||
586 | * @top_layer: top layer of the error (layer[0]) | ||
587 | * @mid_layer: middle layer of the error (layer[1]) | ||
588 | * @low_layer: low layer of the error (layer[2]) | ||
589 | * @page_frame_number: page where the error happened | ||
590 | * @offset_in_page: page offset | ||
591 | * @syndrome: syndrome of the error (or 0 if unknown or if | ||
592 | * the syndrome is not applicable) | ||
593 | * @msg: error message | ||
594 | * @location: location of the error | ||
595 | * @label: label of the affected DIMM(s) | ||
596 | * @other_detail: other driver-specific detail about the error | ||
597 | * @enable_per_layer_report: if false, the error affects all layers | ||
598 | * (typically, a memory controller error) | ||
599 | */ | ||
600 | struct edac_raw_error_desc { | ||
601 | /* | ||
602 | * NOTE: everything before grain won't be cleaned by | ||
603 | * edac_raw_error_desc_clean() | ||
604 | */ | ||
605 | char location[LOCATION_SIZE]; | ||
606 | char label[(EDAC_MC_LABEL_LEN + 1 + sizeof(OTHER_LABEL)) * EDAC_MAX_LABELS]; | ||
607 | long grain; | ||
608 | |||
609 | /* the vars below and grain will be cleaned on every new error report */ | ||
610 | u16 error_count; | ||
611 | int top_layer; | ||
612 | int mid_layer; | ||
613 | int low_layer; | ||
614 | unsigned long page_frame_number; | ||
615 | unsigned long offset_in_page; | ||
616 | unsigned long syndrome; | ||
617 | const char *msg; | ||
618 | const char *other_detail; | ||
619 | bool enable_per_layer_report; | ||
620 | }; | ||
621 | |||
554 | /* MEMORY controller information structure | 622 | /* MEMORY controller information structure |
555 | */ | 623 | */ |
556 | struct mem_ctl_info { | 624 | struct mem_ctl_info { |
@@ -630,7 +698,6 @@ struct mem_ctl_info { | |||
630 | const char *mod_ver; | 698 | const char *mod_ver; |
631 | const char *ctl_name; | 699 | const char *ctl_name; |
632 | const char *dev_name; | 700 | const char *dev_name; |
633 | char proc_name[MC_PROC_NAME_MAX_LEN + 1]; | ||
634 | void *pvt_info; | 701 | void *pvt_info; |
635 | unsigned long start_time; /* mci load start time (in jiffies) */ | 702 | unsigned long start_time; /* mci load start time (in jiffies) */ |
636 | 703 | ||
@@ -659,6 +726,12 @@ struct mem_ctl_info { | |||
659 | /* work struct for this MC */ | 726 | /* work struct for this MC */ |
660 | struct delayed_work work; | 727 | struct delayed_work work; |
661 | 728 | ||
729 | /* | ||
730 | * Used to report an error - by being at the global struct | ||
731 | * makes the memory allocated by the EDAC core | ||
732 | */ | ||
733 | struct edac_raw_error_desc error_desc; | ||
734 | |||
662 | /* the internal state of this controller instance */ | 735 | /* the internal state of this controller instance */ |
663 | int op_state; | 736 | int op_state; |
664 | 737 | ||
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/lzo.h b/include/linux/lzo.h index d793497ec1ca..a0848d9377e5 100644 --- a/include/linux/lzo.h +++ b/include/linux/lzo.h | |||
@@ -4,28 +4,28 @@ | |||
4 | * LZO Public Kernel Interface | 4 | * LZO Public Kernel Interface |
5 | * A mini subset of the LZO real-time data compression library | 5 | * A mini subset of the LZO real-time data compression library |
6 | * | 6 | * |
7 | * Copyright (C) 1996-2005 Markus F.X.J. Oberhumer <markus@oberhumer.com> | 7 | * Copyright (C) 1996-2012 Markus F.X.J. Oberhumer <markus@oberhumer.com> |
8 | * | 8 | * |
9 | * The full LZO package can be found at: | 9 | * The full LZO package can be found at: |
10 | * http://www.oberhumer.com/opensource/lzo/ | 10 | * http://www.oberhumer.com/opensource/lzo/ |
11 | * | 11 | * |
12 | * Changed for kernel use by: | 12 | * Changed for Linux kernel use by: |
13 | * Nitin Gupta <nitingupta910@gmail.com> | 13 | * Nitin Gupta <nitingupta910@gmail.com> |
14 | * Richard Purdie <rpurdie@openedhand.com> | 14 | * Richard Purdie <rpurdie@openedhand.com> |
15 | */ | 15 | */ |
16 | 16 | ||
17 | #define LZO1X_MEM_COMPRESS (16384 * sizeof(unsigned char *)) | 17 | #define LZO1X_1_MEM_COMPRESS (8192 * sizeof(unsigned short)) |
18 | #define LZO1X_1_MEM_COMPRESS LZO1X_MEM_COMPRESS | 18 | #define LZO1X_MEM_COMPRESS LZO1X_1_MEM_COMPRESS |
19 | 19 | ||
20 | #define lzo1x_worst_compress(x) ((x) + ((x) / 16) + 64 + 3) | 20 | #define lzo1x_worst_compress(x) ((x) + ((x) / 16) + 64 + 3) |
21 | 21 | ||
22 | /* This requires 'workmem' of size LZO1X_1_MEM_COMPRESS */ | 22 | /* This requires 'wrkmem' of size LZO1X_1_MEM_COMPRESS */ |
23 | int lzo1x_1_compress(const unsigned char *src, size_t src_len, | 23 | int lzo1x_1_compress(const unsigned char *src, size_t src_len, |
24 | unsigned char *dst, size_t *dst_len, void *wrkmem); | 24 | unsigned char *dst, size_t *dst_len, void *wrkmem); |
25 | 25 | ||
26 | /* safe decompression with overrun testing */ | 26 | /* safe decompression with overrun testing */ |
27 | int lzo1x_decompress_safe(const unsigned char *src, size_t src_len, | 27 | int lzo1x_decompress_safe(const unsigned char *src, size_t src_len, |
28 | unsigned char *dst, size_t *dst_len); | 28 | unsigned char *dst, size_t *dst_len); |
29 | 29 | ||
30 | /* | 30 | /* |
31 | * Return values (< 0 = Error) | 31 | * Return values (< 0 = Error) |
@@ -40,5 +40,6 @@ int lzo1x_decompress_safe(const unsigned char *src, size_t src_len, | |||
40 | #define LZO_E_EOF_NOT_FOUND (-7) | 40 | #define LZO_E_EOF_NOT_FOUND (-7) |
41 | #define LZO_E_INPUT_NOT_CONSUMED (-8) | 41 | #define LZO_E_INPUT_NOT_CONSUMED (-8) |
42 | #define LZO_E_NOT_YET_IMPLEMENTED (-9) | 42 | #define LZO_E_NOT_YET_IMPLEMENTED (-9) |
43 | #define LZO_E_INVALID_ARGUMENT (-10) | ||
43 | 44 | ||
44 | #endif | 45 | #endif |
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..1ede55f292c2 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -1333,24 +1333,6 @@ extern void free_bootmem_with_active_regions(int nid, | |||
1333 | unsigned long max_low_pfn); | 1333 | unsigned long max_low_pfn); |
1334 | extern void sparse_memory_present_with_active_regions(int nid); | 1334 | extern void sparse_memory_present_with_active_regions(int nid); |
1335 | 1335 | ||
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 */ | 1336 | #endif /* CONFIG_HAVE_MEMBLOCK_NODE_MAP */ |
1355 | 1337 | ||
1356 | #if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \ | 1338 | #if !defined(CONFIG_HAVE_MEMBLOCK_NODE_MAP) && \ |
diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h index 31717bd287fd..f11c1c2609d5 100644 --- a/include/linux/pci_ids.h +++ b/include/linux/pci_ids.h | |||
@@ -2802,6 +2802,7 @@ | |||
2802 | #define PCI_DEVICE_ID_INTEL_JAKETOWN_UBOX 0x3ce0 | 2802 | #define PCI_DEVICE_ID_INTEL_JAKETOWN_UBOX 0x3ce0 |
2803 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f | 2803 | #define PCI_DEVICE_ID_INTEL_IOAT_SNB 0x402f |
2804 | #define PCI_DEVICE_ID_INTEL_5100_16 0x65f0 | 2804 | #define PCI_DEVICE_ID_INTEL_5100_16 0x65f0 |
2805 | #define PCI_DEVICE_ID_INTEL_5100_19 0x65f3 | ||
2805 | #define PCI_DEVICE_ID_INTEL_5100_21 0x65f5 | 2806 | #define PCI_DEVICE_ID_INTEL_5100_21 0x65f5 |
2806 | #define PCI_DEVICE_ID_INTEL_5100_22 0x65f6 | 2807 | #define PCI_DEVICE_ID_INTEL_5100_22 0x65f6 |
2807 | #define PCI_DEVICE_ID_INTEL_5400_ERR 0x4030 | 2808 | #define PCI_DEVICE_ID_INTEL_5400_ERR 0x4030 |
diff --git a/include/linux/platform_data/exynos_thermal.h b/include/linux/platform_data/exynos_thermal.h index a7bdb2f63b73..da7e6274b175 100644 --- a/include/linux/platform_data/exynos_thermal.h +++ b/include/linux/platform_data/exynos_thermal.h | |||
@@ -53,6 +53,8 @@ struct freq_clip_table { | |||
53 | * struct exynos_tmu_platform_data | 53 | * struct exynos_tmu_platform_data |
54 | * @threshold: basic temperature for generating interrupt | 54 | * @threshold: basic temperature for generating interrupt |
55 | * 25 <= threshold <= 125 [unit: degree Celsius] | 55 | * 25 <= threshold <= 125 [unit: degree Celsius] |
56 | * @threshold_falling: differntial value for setting threshold | ||
57 | * of temperature falling interrupt. | ||
56 | * @trigger_levels: array for each interrupt levels | 58 | * @trigger_levels: array for each interrupt levels |
57 | * [unit: degree Celsius] | 59 | * [unit: degree Celsius] |
58 | * 0: temperature for trigger_level0 interrupt | 60 | * 0: temperature for trigger_level0 interrupt |
@@ -97,6 +99,7 @@ struct freq_clip_table { | |||
97 | */ | 99 | */ |
98 | struct exynos_tmu_platform_data { | 100 | struct exynos_tmu_platform_data { |
99 | u8 threshold; | 101 | u8 threshold; |
102 | u8 threshold_falling; | ||
100 | u8 trigger_levels[4]; | 103 | u8 trigger_levels[4]; |
101 | bool trigger_level0_en; | 104 | bool trigger_level0_en; |
102 | bool trigger_level1_en; | 105 | bool trigger_level1_en; |
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index fe82022478e7..f0bd7f90a90d 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
@@ -74,6 +74,8 @@ enum thermal_trend { | |||
74 | THERMAL_TREND_STABLE, /* temperature is stable */ | 74 | THERMAL_TREND_STABLE, /* temperature is stable */ |
75 | THERMAL_TREND_RAISING, /* temperature is raising */ | 75 | THERMAL_TREND_RAISING, /* temperature is raising */ |
76 | THERMAL_TREND_DROPPING, /* temperature is dropping */ | 76 | THERMAL_TREND_DROPPING, /* temperature is dropping */ |
77 | THERMAL_TREND_RAISE_FULL, /* apply highest cooling action */ | ||
78 | THERMAL_TREND_DROP_FULL, /* apply lowest cooling action */ | ||
77 | }; | 79 | }; |
78 | 80 | ||
79 | /* Events supported by Thermal Netlink */ | 81 | /* Events supported by Thermal Netlink */ |
@@ -121,6 +123,7 @@ struct thermal_zone_device_ops { | |||
121 | int (*set_trip_hyst) (struct thermal_zone_device *, int, | 123 | int (*set_trip_hyst) (struct thermal_zone_device *, int, |
122 | unsigned long); | 124 | unsigned long); |
123 | int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *); | 125 | int (*get_crit_temp) (struct thermal_zone_device *, unsigned long *); |
126 | int (*set_emul_temp) (struct thermal_zone_device *, unsigned long); | ||
124 | int (*get_trend) (struct thermal_zone_device *, int, | 127 | int (*get_trend) (struct thermal_zone_device *, int, |
125 | enum thermal_trend *); | 128 | enum thermal_trend *); |
126 | int (*notify) (struct thermal_zone_device *, int, | 129 | int (*notify) (struct thermal_zone_device *, int, |
@@ -163,6 +166,7 @@ struct thermal_zone_device { | |||
163 | int polling_delay; | 166 | int polling_delay; |
164 | int temperature; | 167 | int temperature; |
165 | int last_temperature; | 168 | int last_temperature; |
169 | int emul_temperature; | ||
166 | int passive; | 170 | int passive; |
167 | unsigned int forced_passive; | 171 | unsigned int forced_passive; |
168 | const struct thermal_zone_device_ops *ops; | 172 | const struct thermal_zone_device_ops *ops; |
@@ -244,9 +248,11 @@ int thermal_register_governor(struct thermal_governor *); | |||
244 | void thermal_unregister_governor(struct thermal_governor *); | 248 | void thermal_unregister_governor(struct thermal_governor *); |
245 | 249 | ||
246 | #ifdef CONFIG_NET | 250 | #ifdef CONFIG_NET |
247 | extern int thermal_generate_netlink_event(u32 orig, enum events event); | 251 | extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
252 | enum events event); | ||
248 | #else | 253 | #else |
249 | static inline int thermal_generate_netlink_event(u32 orig, enum events event) | 254 | static int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
255 | enum events event) | ||
250 | { | 256 | { |
251 | return 0; | 257 | return 0; |
252 | } | 258 | } |
diff --git a/include/ras/ras_event.h b/include/ras/ras_event.h index 260470e72483..21cdb0b7b0fb 100644 --- a/include/ras/ras_event.h +++ b/include/ras/ras_event.h | |||
@@ -78,9 +78,7 @@ TRACE_EVENT(mc_event, | |||
78 | 78 | ||
79 | TP_printk("%d %s error%s:%s%s on %s (mc:%d location:%d:%d:%d address:0x%08lx grain:%d syndrome:0x%08lx%s%s)", | 79 | TP_printk("%d %s error%s:%s%s on %s (mc:%d location:%d:%d:%d address:0x%08lx grain:%d syndrome:0x%08lx%s%s)", |
80 | __entry->error_count, | 80 | __entry->error_count, |
81 | (__entry->error_type == HW_EVENT_ERR_CORRECTED) ? "Corrected" : | 81 | mc_event_error_type(__entry->error_type), |
82 | ((__entry->error_type == HW_EVENT_ERR_FATAL) ? | ||
83 | "Fatal" : "Uncorrected"), | ||
84 | __entry->error_count > 1 ? "s" : "", | 82 | __entry->error_count > 1 ? "s" : "", |
85 | ((char *)__get_str(msg))[0] ? " " : "", | 83 | ((char *)__get_str(msg))[0] ? " " : "", |
86 | __get_str(msg), | 84 | __get_str(msg), |
diff --git a/include/scsi/Kbuild b/include/scsi/Kbuild index f2b94918994d..562ff9d591b8 100644 --- a/include/scsi/Kbuild +++ b/include/scsi/Kbuild | |||
@@ -1,4 +1 @@ | |||
1 | header-y += scsi_netlink.h | ||
2 | header-y += scsi_netlink_fc.h | ||
3 | header-y += scsi_bsg_fc.h | ||
4 | header-y += fc/ | header-y += fc/ | |
diff --git a/include/scsi/fc/Kbuild b/include/scsi/fc/Kbuild index 56603813c6cd..e69de29bb2d1 100644 --- a/include/scsi/fc/Kbuild +++ b/include/scsi/fc/Kbuild | |||
@@ -1,4 +0,0 @@ | |||
1 | header-y += fc_els.h | ||
2 | header-y += fc_fs.h | ||
3 | header-y += fc_gs.h | ||
4 | header-y += fc_ns.h | ||
diff --git a/include/scsi/fcoe_sysfs.h b/include/scsi/fcoe_sysfs.h index 604cb9bb3e76..7e2314870341 100644 --- a/include/scsi/fcoe_sysfs.h +++ b/include/scsi/fcoe_sysfs.h | |||
@@ -34,7 +34,8 @@ struct fcoe_sysfs_function_template { | |||
34 | void (*get_fcoe_ctlr_symb_err)(struct fcoe_ctlr_device *); | 34 | void (*get_fcoe_ctlr_symb_err)(struct fcoe_ctlr_device *); |
35 | void (*get_fcoe_ctlr_err_block)(struct fcoe_ctlr_device *); | 35 | void (*get_fcoe_ctlr_err_block)(struct fcoe_ctlr_device *); |
36 | void (*get_fcoe_ctlr_fcs_error)(struct fcoe_ctlr_device *); | 36 | void (*get_fcoe_ctlr_fcs_error)(struct fcoe_ctlr_device *); |
37 | void (*get_fcoe_ctlr_mode)(struct fcoe_ctlr_device *); | 37 | void (*set_fcoe_ctlr_mode)(struct fcoe_ctlr_device *); |
38 | int (*set_fcoe_ctlr_enabled)(struct fcoe_ctlr_device *); | ||
38 | void (*get_fcoe_fcf_selected)(struct fcoe_fcf_device *); | 39 | void (*get_fcoe_fcf_selected)(struct fcoe_fcf_device *); |
39 | void (*get_fcoe_fcf_vlan_id)(struct fcoe_fcf_device *); | 40 | void (*get_fcoe_fcf_vlan_id)(struct fcoe_fcf_device *); |
40 | }; | 41 | }; |
@@ -48,6 +49,12 @@ enum fip_conn_type { | |||
48 | FIP_CONN_TYPE_VN2VN, | 49 | FIP_CONN_TYPE_VN2VN, |
49 | }; | 50 | }; |
50 | 51 | ||
52 | enum ctlr_enabled_state { | ||
53 | FCOE_CTLR_ENABLED, | ||
54 | FCOE_CTLR_DISABLED, | ||
55 | FCOE_CTLR_UNUSED, | ||
56 | }; | ||
57 | |||
51 | struct fcoe_ctlr_device { | 58 | struct fcoe_ctlr_device { |
52 | u32 id; | 59 | u32 id; |
53 | 60 | ||
@@ -64,6 +71,8 @@ struct fcoe_ctlr_device { | |||
64 | int fcf_dev_loss_tmo; | 71 | int fcf_dev_loss_tmo; |
65 | enum fip_conn_type mode; | 72 | enum fip_conn_type mode; |
66 | 73 | ||
74 | enum ctlr_enabled_state enabled; | ||
75 | |||
67 | /* expected in host order for displaying */ | 76 | /* expected in host order for displaying */ |
68 | struct fcoe_fc_els_lesb lesb; | 77 | struct fcoe_fc_els_lesb lesb; |
69 | }; | 78 | }; |
diff --git a/include/scsi/libfcoe.h b/include/scsi/libfcoe.h index 8742d853a3b8..4427393115ea 100644 --- a/include/scsi/libfcoe.h +++ b/include/scsi/libfcoe.h | |||
@@ -260,6 +260,9 @@ void __fcoe_get_lesb(struct fc_lport *lport, struct fc_els_lesb *fc_lesb, | |||
260 | struct net_device *netdev); | 260 | struct net_device *netdev); |
261 | void fcoe_wwn_to_str(u64 wwn, char *buf, int len); | 261 | void fcoe_wwn_to_str(u64 wwn, char *buf, int len); |
262 | int fcoe_validate_vport_create(struct fc_vport *vport); | 262 | int fcoe_validate_vport_create(struct fc_vport *vport); |
263 | int fcoe_link_speed_update(struct fc_lport *); | ||
264 | void fcoe_get_lesb(struct fc_lport *, struct fc_els_lesb *); | ||
265 | void fcoe_ctlr_get_lesb(struct fcoe_ctlr_device *ctlr_dev); | ||
263 | 266 | ||
264 | /** | 267 | /** |
265 | * is_fip_mode() - returns true if FIP mode selected. | 268 | * is_fip_mode() - returns true if FIP mode selected. |
@@ -289,8 +292,11 @@ static inline bool is_fip_mode(struct fcoe_ctlr *fip) | |||
289 | * @attached: whether this transport is already attached | 292 | * @attached: whether this transport is already attached |
290 | * @list: list linkage to all attached transports | 293 | * @list: list linkage to all attached transports |
291 | * @match: handler to allow the transport driver to match up a given netdev | 294 | * @match: handler to allow the transport driver to match up a given netdev |
295 | * @alloc: handler to allocate per-instance FCoE structures | ||
296 | * (no discovery or login) | ||
292 | * @create: handler to sysfs entry of create for FCoE instances | 297 | * @create: handler to sysfs entry of create for FCoE instances |
293 | * @destroy: handler to sysfs entry of destroy for FCoE instances | 298 | * @destroy: handler to delete per-instance FCoE structures |
299 | * (frees all memory) | ||
294 | * @enable: handler to sysfs entry of enable for FCoE instances | 300 | * @enable: handler to sysfs entry of enable for FCoE instances |
295 | * @disable: handler to sysfs entry of disable for FCoE instances | 301 | * @disable: handler to sysfs entry of disable for FCoE instances |
296 | */ | 302 | */ |
@@ -299,6 +305,7 @@ struct fcoe_transport { | |||
299 | bool attached; | 305 | bool attached; |
300 | struct list_head list; | 306 | struct list_head list; |
301 | bool (*match) (struct net_device *device); | 307 | bool (*match) (struct net_device *device); |
308 | int (*alloc) (struct net_device *device); | ||
302 | int (*create) (struct net_device *device, enum fip_state fip_mode); | 309 | int (*create) (struct net_device *device, enum fip_state fip_mode); |
303 | int (*destroy) (struct net_device *device); | 310 | int (*destroy) (struct net_device *device); |
304 | int (*enable) (struct net_device *device); | 311 | int (*enable) (struct net_device *device); |
@@ -347,7 +354,20 @@ struct fcoe_port { | |||
347 | struct timer_list timer; | 354 | struct timer_list timer; |
348 | struct work_struct destroy_work; | 355 | struct work_struct destroy_work; |
349 | u8 data_src_addr[ETH_ALEN]; | 356 | u8 data_src_addr[ETH_ALEN]; |
357 | struct net_device * (*get_netdev)(const struct fc_lport *lport); | ||
350 | }; | 358 | }; |
359 | |||
360 | /** | ||
361 | * fcoe_get_netdev() - Return the net device associated with a local port | ||
362 | * @lport: The local port to get the net device from | ||
363 | */ | ||
364 | static inline struct net_device *fcoe_get_netdev(const struct fc_lport *lport) | ||
365 | { | ||
366 | struct fcoe_port *port = ((struct fcoe_port *)lport_priv(lport)); | ||
367 | |||
368 | return (port->get_netdev) ? port->get_netdev(lport) : NULL; | ||
369 | } | ||
370 | |||
351 | void fcoe_clean_pending_queue(struct fc_lport *); | 371 | void fcoe_clean_pending_queue(struct fc_lport *); |
352 | void fcoe_check_wait_queue(struct fc_lport *lport, struct sk_buff *skb); | 372 | void fcoe_check_wait_queue(struct fc_lport *lport, struct sk_buff *skb); |
353 | void fcoe_queue_timer(ulong lport); | 373 | void fcoe_queue_timer(ulong lport); |
@@ -356,7 +376,7 @@ int fcoe_get_paged_crc_eof(struct sk_buff *skb, int tlen, | |||
356 | 376 | ||
357 | /* FCoE Sysfs helpers */ | 377 | /* FCoE Sysfs helpers */ |
358 | void fcoe_fcf_get_selected(struct fcoe_fcf_device *); | 378 | void fcoe_fcf_get_selected(struct fcoe_fcf_device *); |
359 | void fcoe_ctlr_get_fip_mode(struct fcoe_ctlr_device *); | 379 | void fcoe_ctlr_set_fip_mode(struct fcoe_ctlr_device *); |
360 | 380 | ||
361 | /** | 381 | /** |
362 | * struct netdev_list | 382 | * struct netdev_list |
@@ -372,4 +392,12 @@ struct fcoe_netdev_mapping { | |||
372 | int fcoe_transport_attach(struct fcoe_transport *ft); | 392 | int fcoe_transport_attach(struct fcoe_transport *ft); |
373 | int fcoe_transport_detach(struct fcoe_transport *ft); | 393 | int fcoe_transport_detach(struct fcoe_transport *ft); |
374 | 394 | ||
395 | /* sysfs store handler for ctrl_control interface */ | ||
396 | ssize_t fcoe_ctlr_create_store(struct bus_type *bus, | ||
397 | const char *buf, size_t count); | ||
398 | ssize_t fcoe_ctlr_destroy_store(struct bus_type *bus, | ||
399 | const char *buf, size_t count); | ||
400 | |||
375 | #endif /* _LIBFCOE_H */ | 401 | #endif /* _LIBFCOE_H */ |
402 | |||
403 | |||
diff --git a/include/scsi/scsi_host.h b/include/scsi/scsi_host.h index 49084807eb6b..2b6956e9853d 100644 --- a/include/scsi/scsi_host.h +++ b/include/scsi/scsi_host.h | |||
@@ -873,7 +873,7 @@ static inline unsigned int scsi_host_dif_capable(struct Scsi_Host *shost, unsign | |||
873 | SHOST_DIF_TYPE2_PROTECTION, | 873 | SHOST_DIF_TYPE2_PROTECTION, |
874 | SHOST_DIF_TYPE3_PROTECTION }; | 874 | SHOST_DIF_TYPE3_PROTECTION }; |
875 | 875 | ||
876 | if (target_type > SHOST_DIF_TYPE3_PROTECTION) | 876 | if (target_type >= ARRAY_SIZE(cap)) |
877 | return 0; | 877 | return 0; |
878 | 878 | ||
879 | return shost->prot_capabilities & cap[target_type] ? target_type : 0; | 879 | return shost->prot_capabilities & cap[target_type] ? target_type : 0; |
@@ -887,7 +887,7 @@ static inline unsigned int scsi_host_dix_capable(struct Scsi_Host *shost, unsign | |||
887 | SHOST_DIX_TYPE2_PROTECTION, | 887 | SHOST_DIX_TYPE2_PROTECTION, |
888 | SHOST_DIX_TYPE3_PROTECTION }; | 888 | SHOST_DIX_TYPE3_PROTECTION }; |
889 | 889 | ||
890 | if (target_type > SHOST_DIX_TYPE3_PROTECTION) | 890 | if (target_type >= ARRAY_SIZE(cap)) |
891 | return 0; | 891 | return 0; |
892 | 892 | ||
893 | return shost->prot_capabilities & cap[target_type]; | 893 | return shost->prot_capabilities & cap[target_type]; |
diff --git a/include/sound/aess.h b/include/sound/aess.h new file mode 100644 index 000000000000..cee0d09fadbd --- /dev/null +++ b/include/sound/aess.h | |||
@@ -0,0 +1,53 @@ | |||
1 | /* | ||
2 | * AESS IP block reset | ||
3 | * | ||
4 | * Copyright (C) 2012 Texas Instruments, Inc. | ||
5 | * Paul Walmsley | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License as | ||
9 | * published by the Free Software Foundation version 2. | ||
10 | * | ||
11 | * This program is distributed "as is" WITHOUT ANY WARRANTY of any | ||
12 | * kind, whether express or implied; without even the implied warranty | ||
13 | * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA | ||
19 | * 02110-1301 USA | ||
20 | */ | ||
21 | #ifndef __SOUND_AESS_H__ | ||
22 | #define __SOUND_AESS_H__ | ||
23 | |||
24 | #include <linux/kernel.h> | ||
25 | #include <linux/io.h> | ||
26 | |||
27 | /* | ||
28 | * AESS_AUTO_GATING_ENABLE_OFFSET: offset in bytes of the AESS IP | ||
29 | * block's AESS_AUTO_GATING_ENABLE__1 register from the IP block's | ||
30 | * base address | ||
31 | */ | ||
32 | #define AESS_AUTO_GATING_ENABLE_OFFSET 0x07c | ||
33 | |||
34 | /* Register bitfields in the AESS_AUTO_GATING_ENABLE__1 register */ | ||
35 | #define AESS_AUTO_GATING_ENABLE_SHIFT 0 | ||
36 | |||
37 | /** | ||
38 | * aess_enable_autogating - enable AESS internal autogating | ||
39 | * @oh: struct omap_hwmod * | ||
40 | * | ||
41 | * Enable internal autogating on the AESS. This allows the AESS to | ||
42 | * indicate that it is idle to the OMAP PRCM. Returns 0. | ||
43 | */ | ||
44 | static inline void aess_enable_autogating(void __iomem *base) | ||
45 | { | ||
46 | u32 v; | ||
47 | |||
48 | /* Set AESS_AUTO_GATING_ENABLE__1.ENABLE to allow idle entry */ | ||
49 | v = 1 << AESS_AUTO_GATING_ENABLE_SHIFT; | ||
50 | writel(v, base + AESS_AUTO_GATING_ENABLE_OFFSET); | ||
51 | } | ||
52 | |||
53 | #endif /* __SOUND_AESS_H__ */ | ||
diff --git a/include/uapi/scsi/Kbuild b/include/uapi/scsi/Kbuild index 29a87dd26cfb..75746d52f208 100644 --- a/include/uapi/scsi/Kbuild +++ b/include/uapi/scsi/Kbuild | |||
@@ -1,2 +1,5 @@ | |||
1 | # UAPI Header export list | 1 | # UAPI Header export list |
2 | header-y += fc/ | 2 | header-y += fc/ |
3 | header-y += scsi_bsg_fc.h | ||
4 | header-y += scsi_netlink.h | ||
5 | header-y += scsi_netlink_fc.h | ||
diff --git a/include/uapi/scsi/fc/Kbuild b/include/uapi/scsi/fc/Kbuild index aafaa5aa54d4..5ead9fac265c 100644 --- a/include/uapi/scsi/fc/Kbuild +++ b/include/uapi/scsi/fc/Kbuild | |||
@@ -1 +1,5 @@ | |||
1 | # UAPI Header export list | 1 | # UAPI Header export list |
2 | header-y += fc_els.h | ||
3 | header-y += fc_fs.h | ||
4 | header-y += fc_gs.h | ||
5 | header-y += fc_ns.h | ||
diff --git a/include/scsi/fc/fc_els.h b/include/uapi/scsi/fc/fc_els.h index 481abbd48e39..481abbd48e39 100644 --- a/include/scsi/fc/fc_els.h +++ b/include/uapi/scsi/fc/fc_els.h | |||
diff --git a/include/scsi/fc/fc_fs.h b/include/uapi/scsi/fc/fc_fs.h index 50f28b143451..50f28b143451 100644 --- a/include/scsi/fc/fc_fs.h +++ b/include/uapi/scsi/fc/fc_fs.h | |||
diff --git a/include/scsi/fc/fc_gs.h b/include/uapi/scsi/fc/fc_gs.h index a37346d47eb1..a37346d47eb1 100644 --- a/include/scsi/fc/fc_gs.h +++ b/include/uapi/scsi/fc/fc_gs.h | |||
diff --git a/include/scsi/fc/fc_ns.h b/include/uapi/scsi/fc/fc_ns.h index f7751d53f1d3..f7751d53f1d3 100644 --- a/include/scsi/fc/fc_ns.h +++ b/include/uapi/scsi/fc/fc_ns.h | |||
diff --git a/include/scsi/scsi_bsg_fc.h b/include/uapi/scsi/scsi_bsg_fc.h index 3031b900b087..3031b900b087 100644 --- a/include/scsi/scsi_bsg_fc.h +++ b/include/uapi/scsi/scsi_bsg_fc.h | |||
diff --git a/include/scsi/scsi_netlink.h b/include/uapi/scsi/scsi_netlink.h index 62b4edab15d3..62b4edab15d3 100644 --- a/include/scsi/scsi_netlink.h +++ b/include/uapi/scsi/scsi_netlink.h | |||
diff --git a/include/scsi/scsi_netlink_fc.h b/include/uapi/scsi/scsi_netlink_fc.h index cbf76e479761..cbf76e479761 100644 --- a/include/scsi/scsi_netlink_fc.h +++ b/include/uapi/scsi/scsi_netlink_fc.h | |||