diff options
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/acpi_dma.h | 116 | ||||
| -rw-r--r-- | include/linux/audit.h | 48 | ||||
| -rw-r--r-- | include/linux/compat.h | 2 | ||||
| -rw-r--r-- | include/linux/cpu_cooling.h | 25 | ||||
| -rw-r--r-- | include/linux/cpuidle.h | 2 | ||||
| -rw-r--r-- | include/linux/device-mapper.h | 15 | ||||
| -rw-r--r-- | include/linux/dmaengine.h | 15 | ||||
| -rw-r--r-- | include/linux/gpio.h | 6 | ||||
| -rw-r--r-- | include/linux/hid.h | 2 | ||||
| -rw-r--r-- | include/linux/mtd/mtd.h | 8 | ||||
| -rw-r--r-- | include/linux/mtd/nand.h | 121 | ||||
| -rw-r--r-- | include/linux/mtd/physmap.h | 2 | ||||
| -rw-r--r-- | include/linux/mtd/plat-ram.h | 4 | ||||
| -rw-r--r-- | include/linux/nfs_xdr.h | 2 | ||||
| -rw-r--r-- | include/linux/nvme.h | 158 | ||||
| -rw-r--r-- | include/linux/of_dma.h | 10 | ||||
| -rw-r--r-- | include/linux/platform_data/elm.h | 2 | ||||
| -rw-r--r-- | include/linux/platform_data/imx-iram.h | 41 | ||||
| -rw-r--r-- | include/linux/sched.h | 1 | ||||
| -rw-r--r-- | include/linux/sudmac.h | 52 | ||||
| -rw-r--r-- | include/linux/thermal.h | 15 | ||||
| -rw-r--r-- | include/linux/tty.h | 6 | ||||
| -rw-r--r-- | include/linux/usb/usbnet.h | 5 |
23 files changed, 491 insertions, 167 deletions
diff --git a/include/linux/acpi_dma.h b/include/linux/acpi_dma.h new file mode 100644 index 000000000000..d09deabc7bf6 --- /dev/null +++ b/include/linux/acpi_dma.h | |||
| @@ -0,0 +1,116 @@ | |||
| 1 | /* | ||
| 2 | * ACPI helpers for DMA request / controller | ||
| 3 | * | ||
| 4 | * Based on of_dma.h | ||
| 5 | * | ||
| 6 | * Copyright (C) 2013, Intel Corporation | ||
| 7 | * Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com> | ||
| 8 | * | ||
| 9 | * This program is free software; you can redistribute it and/or modify | ||
| 10 | * it under the terms of the GNU General Public License version 2 as | ||
| 11 | * published by the Free Software Foundation. | ||
| 12 | */ | ||
| 13 | |||
| 14 | #ifndef __LINUX_ACPI_DMA_H | ||
| 15 | #define __LINUX_ACPI_DMA_H | ||
| 16 | |||
| 17 | #include <linux/list.h> | ||
| 18 | #include <linux/device.h> | ||
| 19 | #include <linux/dmaengine.h> | ||
| 20 | |||
| 21 | /** | ||
| 22 | * struct acpi_dma_spec - slave device DMA resources | ||
| 23 | * @chan_id: channel unique id | ||
| 24 | * @slave_id: request line unique id | ||
| 25 | * @dev: struct device of the DMA controller to be used in the filter | ||
| 26 | * function | ||
| 27 | */ | ||
| 28 | struct acpi_dma_spec { | ||
| 29 | int chan_id; | ||
| 30 | int slave_id; | ||
| 31 | struct device *dev; | ||
| 32 | }; | ||
| 33 | |||
| 34 | /** | ||
| 35 | * struct acpi_dma - representation of the registered DMAC | ||
| 36 | * @dma_controllers: linked list node | ||
| 37 | * @dev: struct device of this controller | ||
| 38 | * @acpi_dma_xlate: callback function to find a suitable channel | ||
| 39 | * @data: private data used by a callback function | ||
| 40 | */ | ||
| 41 | struct acpi_dma { | ||
| 42 | struct list_head dma_controllers; | ||
| 43 | struct device *dev; | ||
| 44 | struct dma_chan *(*acpi_dma_xlate) | ||
| 45 | (struct acpi_dma_spec *, struct acpi_dma *); | ||
| 46 | void *data; | ||
| 47 | }; | ||
| 48 | |||
| 49 | /* Used with acpi_dma_simple_xlate() */ | ||
| 50 | struct acpi_dma_filter_info { | ||
| 51 | dma_cap_mask_t dma_cap; | ||
| 52 | dma_filter_fn filter_fn; | ||
| 53 | }; | ||
| 54 | |||
| 55 | #ifdef CONFIG_DMA_ACPI | ||
| 56 | |||
| 57 | int acpi_dma_controller_register(struct device *dev, | ||
| 58 | struct dma_chan *(*acpi_dma_xlate) | ||
| 59 | (struct acpi_dma_spec *, struct acpi_dma *), | ||
| 60 | void *data); | ||
| 61 | int acpi_dma_controller_free(struct device *dev); | ||
| 62 | int devm_acpi_dma_controller_register(struct device *dev, | ||
| 63 | struct dma_chan *(*acpi_dma_xlate) | ||
| 64 | (struct acpi_dma_spec *, struct acpi_dma *), | ||
| 65 | void *data); | ||
| 66 | void devm_acpi_dma_controller_free(struct device *dev); | ||
| 67 | |||
| 68 | struct dma_chan *acpi_dma_request_slave_chan_by_index(struct device *dev, | ||
| 69 | size_t index); | ||
| 70 | struct dma_chan *acpi_dma_request_slave_chan_by_name(struct device *dev, | ||
| 71 | const char *name); | ||
| 72 | |||
| 73 | struct dma_chan *acpi_dma_simple_xlate(struct acpi_dma_spec *dma_spec, | ||
| 74 | struct acpi_dma *adma); | ||
| 75 | #else | ||
| 76 | |||
| 77 | static inline int acpi_dma_controller_register(struct device *dev, | ||
| 78 | struct dma_chan *(*acpi_dma_xlate) | ||
| 79 | (struct acpi_dma_spec *, struct acpi_dma *), | ||
| 80 | void *data) | ||
| 81 | { | ||
| 82 | return -ENODEV; | ||
| 83 | } | ||
| 84 | static inline int acpi_dma_controller_free(struct device *dev) | ||
| 85 | { | ||
| 86 | return -ENODEV; | ||
| 87 | } | ||
| 88 | static inline int devm_acpi_dma_controller_register(struct device *dev, | ||
| 89 | struct dma_chan *(*acpi_dma_xlate) | ||
| 90 | (struct acpi_dma_spec *, struct acpi_dma *), | ||
| 91 | void *data) | ||
| 92 | { | ||
| 93 | return -ENODEV; | ||
| 94 | } | ||
| 95 | static inline void devm_acpi_dma_controller_free(struct device *dev) | ||
| 96 | { | ||
| 97 | } | ||
| 98 | |||
| 99 | static inline struct dma_chan *acpi_dma_request_slave_chan_by_index( | ||
| 100 | struct device *dev, size_t index) | ||
| 101 | { | ||
| 102 | return NULL; | ||
| 103 | } | ||
| 104 | static inline struct dma_chan *acpi_dma_request_slave_chan_by_name( | ||
| 105 | struct device *dev, const char *name) | ||
| 106 | { | ||
| 107 | return NULL; | ||
| 108 | } | ||
| 109 | |||
| 110 | #define acpi_dma_simple_xlate NULL | ||
| 111 | |||
| 112 | #endif | ||
| 113 | |||
| 114 | #define acpi_dma_request_slave_channel acpi_dma_request_slave_chan_by_index | ||
| 115 | |||
| 116 | #endif /* __LINUX_ACPI_DMA_H */ | ||
diff --git a/include/linux/audit.h b/include/linux/audit.h index 5a6d718adf34..b20b03852f21 100644 --- a/include/linux/audit.h +++ b/include/linux/audit.h | |||
| @@ -84,8 +84,13 @@ extern int audit_classify_arch(int arch); | |||
| 84 | #define AUDIT_TYPE_CHILD_DELETE 3 /* a child being deleted */ | 84 | #define AUDIT_TYPE_CHILD_DELETE 3 /* a child being deleted */ |
| 85 | #define AUDIT_TYPE_CHILD_CREATE 4 /* a child being created */ | 85 | #define AUDIT_TYPE_CHILD_CREATE 4 /* a child being created */ |
| 86 | 86 | ||
| 87 | /* maximized args number that audit_socketcall can process */ | ||
| 88 | #define AUDITSC_ARGS 6 | ||
| 89 | |||
| 87 | struct filename; | 90 | struct filename; |
| 88 | 91 | ||
| 92 | extern void audit_log_session_info(struct audit_buffer *ab); | ||
| 93 | |||
| 89 | #ifdef CONFIG_AUDITSYSCALL | 94 | #ifdef CONFIG_AUDITSYSCALL |
| 90 | /* These are defined in auditsc.c */ | 95 | /* These are defined in auditsc.c */ |
| 91 | /* Public API */ | 96 | /* Public API */ |
| @@ -120,7 +125,7 @@ static inline void audit_syscall_entry(int arch, int major, unsigned long a0, | |||
| 120 | unsigned long a1, unsigned long a2, | 125 | unsigned long a1, unsigned long a2, |
| 121 | unsigned long a3) | 126 | unsigned long a3) |
| 122 | { | 127 | { |
| 123 | if (unlikely(!audit_dummy_context())) | 128 | if (unlikely(current->audit_context)) |
| 124 | __audit_syscall_entry(arch, major, a0, a1, a2, a3); | 129 | __audit_syscall_entry(arch, major, a0, a1, a2, a3); |
| 125 | } | 130 | } |
| 126 | static inline void audit_syscall_exit(void *pt_regs) | 131 | static inline void audit_syscall_exit(void *pt_regs) |
| @@ -185,12 +190,10 @@ static inline int audit_get_sessionid(struct task_struct *tsk) | |||
| 185 | return tsk->sessionid; | 190 | return tsk->sessionid; |
| 186 | } | 191 | } |
| 187 | 192 | ||
| 188 | extern void audit_log_task_context(struct audit_buffer *ab); | ||
| 189 | extern void audit_log_task_info(struct audit_buffer *ab, struct task_struct *tsk); | ||
| 190 | extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); | 193 | extern void __audit_ipc_obj(struct kern_ipc_perm *ipcp); |
| 191 | extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode); | 194 | extern void __audit_ipc_set_perm(unsigned long qbytes, uid_t uid, gid_t gid, umode_t mode); |
| 192 | extern int __audit_bprm(struct linux_binprm *bprm); | 195 | extern int __audit_bprm(struct linux_binprm *bprm); |
| 193 | extern void __audit_socketcall(int nargs, unsigned long *args); | 196 | extern int __audit_socketcall(int nargs, unsigned long *args); |
| 194 | extern int __audit_sockaddr(int len, void *addr); | 197 | extern int __audit_sockaddr(int len, void *addr); |
| 195 | extern void __audit_fd_pair(int fd1, int fd2); | 198 | extern void __audit_fd_pair(int fd1, int fd2); |
| 196 | extern void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr); | 199 | extern void __audit_mq_open(int oflag, umode_t mode, struct mq_attr *attr); |
| @@ -224,10 +227,11 @@ static inline int audit_bprm(struct linux_binprm *bprm) | |||
| 224 | return __audit_bprm(bprm); | 227 | return __audit_bprm(bprm); |
| 225 | return 0; | 228 | return 0; |
| 226 | } | 229 | } |
| 227 | static inline void audit_socketcall(int nargs, unsigned long *args) | 230 | static inline int audit_socketcall(int nargs, unsigned long *args) |
| 228 | { | 231 | { |
| 229 | if (unlikely(!audit_dummy_context())) | 232 | if (unlikely(!audit_dummy_context())) |
| 230 | __audit_socketcall(nargs, args); | 233 | return __audit_socketcall(nargs, args); |
| 234 | return 0; | ||
| 231 | } | 235 | } |
| 232 | static inline int audit_sockaddr(int len, void *addr) | 236 | static inline int audit_sockaddr(int len, void *addr) |
| 233 | { | 237 | { |
| @@ -340,11 +344,6 @@ static inline int audit_get_sessionid(struct task_struct *tsk) | |||
| 340 | { | 344 | { |
| 341 | return -1; | 345 | return -1; |
| 342 | } | 346 | } |
| 343 | static inline void audit_log_task_context(struct audit_buffer *ab) | ||
| 344 | { } | ||
| 345 | static inline void audit_log_task_info(struct audit_buffer *ab, | ||
| 346 | struct task_struct *tsk) | ||
| 347 | { } | ||
| 348 | static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) | 347 | static inline void audit_ipc_obj(struct kern_ipc_perm *ipcp) |
| 349 | { } | 348 | { } |
| 350 | static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, | 349 | static inline void audit_ipc_set_perm(unsigned long qbytes, uid_t uid, |
| @@ -354,8 +353,10 @@ static inline int audit_bprm(struct linux_binprm *bprm) | |||
| 354 | { | 353 | { |
| 355 | return 0; | 354 | return 0; |
| 356 | } | 355 | } |
| 357 | static inline void audit_socketcall(int nargs, unsigned long *args) | 356 | static inline int audit_socketcall(int nargs, unsigned long *args) |
| 358 | { } | 357 | { |
| 358 | return 0; | ||
| 359 | } | ||
| 359 | static inline void audit_fd_pair(int fd1, int fd2) | 360 | static inline void audit_fd_pair(int fd1, int fd2) |
| 360 | { } | 361 | { } |
| 361 | static inline int audit_sockaddr(int len, void *addr) | 362 | static inline int audit_sockaddr(int len, void *addr) |
| @@ -390,6 +391,11 @@ static inline void audit_ptrace(struct task_struct *t) | |||
| 390 | #define audit_signals 0 | 391 | #define audit_signals 0 |
| 391 | #endif /* CONFIG_AUDITSYSCALL */ | 392 | #endif /* CONFIG_AUDITSYSCALL */ |
| 392 | 393 | ||
| 394 | static inline bool audit_loginuid_set(struct task_struct *tsk) | ||
| 395 | { | ||
| 396 | return uid_valid(audit_get_loginuid(tsk)); | ||
| 397 | } | ||
| 398 | |||
| 393 | #ifdef CONFIG_AUDIT | 399 | #ifdef CONFIG_AUDIT |
| 394 | /* These are defined in audit.c */ | 400 | /* These are defined in audit.c */ |
| 395 | /* Public API */ | 401 | /* Public API */ |
| @@ -429,14 +435,17 @@ static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid) | |||
| 429 | { } | 435 | { } |
| 430 | #endif | 436 | #endif |
| 431 | 437 | ||
| 438 | extern int audit_log_task_context(struct audit_buffer *ab); | ||
| 439 | extern void audit_log_task_info(struct audit_buffer *ab, | ||
| 440 | struct task_struct *tsk); | ||
| 441 | |||
| 432 | extern int audit_update_lsm_rules(void); | 442 | extern int audit_update_lsm_rules(void); |
| 433 | 443 | ||
| 434 | /* Private API (for audit.c only) */ | 444 | /* Private API (for audit.c only) */ |
| 435 | extern int audit_filter_user(void); | 445 | extern int audit_filter_user(int type); |
| 436 | extern int audit_filter_type(int type); | 446 | extern int audit_filter_type(int type); |
| 437 | extern int audit_receive_filter(int type, int pid, int seq, | 447 | extern int audit_receive_filter(int type, int pid, int seq, |
| 438 | void *data, size_t datasz, kuid_t loginuid, | 448 | void *data, size_t datasz); |
| 439 | u32 sessionid, u32 sid); | ||
| 440 | extern int audit_enabled; | 449 | extern int audit_enabled; |
| 441 | #else /* CONFIG_AUDIT */ | 450 | #else /* CONFIG_AUDIT */ |
| 442 | static inline __printf(4, 5) | 451 | static inline __printf(4, 5) |
| @@ -476,6 +485,13 @@ static inline void audit_log_link_denied(const char *string, | |||
| 476 | { } | 485 | { } |
| 477 | static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid) | 486 | static inline void audit_log_secctx(struct audit_buffer *ab, u32 secid) |
| 478 | { } | 487 | { } |
| 488 | static inline int audit_log_task_context(struct audit_buffer *ab) | ||
| 489 | { | ||
| 490 | return 0; | ||
| 491 | } | ||
| 492 | static inline void audit_log_task_info(struct audit_buffer *ab, | ||
| 493 | struct task_struct *tsk) | ||
| 494 | { } | ||
| 479 | #define audit_enabled 0 | 495 | #define audit_enabled 0 |
| 480 | #endif /* CONFIG_AUDIT */ | 496 | #endif /* CONFIG_AUDIT */ |
| 481 | static inline void audit_log_string(struct audit_buffer *ab, const char *buf) | 497 | static inline void audit_log_string(struct audit_buffer *ab, const char *buf) |
diff --git a/include/linux/compat.h b/include/linux/compat.h index d53c35352ea9..7f0c1dd09079 100644 --- a/include/linux/compat.h +++ b/include/linux/compat.h | |||
| @@ -673,6 +673,8 @@ int __compat_save_altstack(compat_stack_t __user *, unsigned long); | |||
| 673 | asmlinkage long compat_sys_sched_rr_get_interval(compat_pid_t pid, | 673 | asmlinkage long compat_sys_sched_rr_get_interval(compat_pid_t pid, |
| 674 | struct compat_timespec __user *interval); | 674 | struct compat_timespec __user *interval); |
| 675 | 675 | ||
| 676 | asmlinkage long compat_sys_fanotify_mark(int, unsigned int, __u32, __u32, | ||
| 677 | int, const char __user *); | ||
| 676 | #else | 678 | #else |
| 677 | 679 | ||
| 678 | #define is_compat_task() (0) | 680 | #define is_compat_task() (0) |
diff --git a/include/linux/cpu_cooling.h b/include/linux/cpu_cooling.h index 40b4ef54cc7d..282e27028418 100644 --- a/include/linux/cpu_cooling.h +++ b/include/linux/cpu_cooling.h | |||
| @@ -25,34 +25,39 @@ | |||
| 25 | #define __CPU_COOLING_H__ | 25 | #define __CPU_COOLING_H__ |
| 26 | 26 | ||
| 27 | #include <linux/thermal.h> | 27 | #include <linux/thermal.h> |
| 28 | #include <linux/cpumask.h> | ||
| 28 | 29 | ||
| 29 | #define CPUFREQ_COOLING_START 0 | 30 | #ifdef CONFIG_CPU_THERMAL |
| 30 | #define CPUFREQ_COOLING_STOP 1 | ||
| 31 | |||
| 32 | #if defined(CONFIG_CPU_THERMAL) || defined(CONFIG_CPU_THERMAL_MODULE) | ||
| 33 | /** | 31 | /** |
| 34 | * cpufreq_cooling_register - function to create cpufreq cooling device. | 32 | * cpufreq_cooling_register - function to create cpufreq cooling device. |
| 35 | * @clip_cpus: cpumask of cpus where the frequency constraints will happen | 33 | * @clip_cpus: cpumask of cpus where the frequency constraints will happen |
| 36 | */ | 34 | */ |
| 37 | struct thermal_cooling_device *cpufreq_cooling_register( | 35 | struct thermal_cooling_device * |
| 38 | const struct cpumask *clip_cpus); | 36 | cpufreq_cooling_register(const struct cpumask *clip_cpus); |
| 39 | 37 | ||
| 40 | /** | 38 | /** |
| 41 | * cpufreq_cooling_unregister - function to remove cpufreq cooling device. | 39 | * cpufreq_cooling_unregister - function to remove cpufreq cooling device. |
| 42 | * @cdev: thermal cooling device pointer. | 40 | * @cdev: thermal cooling device pointer. |
| 43 | */ | 41 | */ |
| 44 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev); | 42 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev); |
| 43 | |||
| 44 | unsigned long cpufreq_cooling_get_level(unsigned int, unsigned int); | ||
| 45 | #else /* !CONFIG_CPU_THERMAL */ | 45 | #else /* !CONFIG_CPU_THERMAL */ |
| 46 | static inline struct thermal_cooling_device *cpufreq_cooling_register( | 46 | static inline struct thermal_cooling_device * |
| 47 | const struct cpumask *clip_cpus) | 47 | cpufreq_cooling_register(const struct cpumask *clip_cpus) |
| 48 | { | 48 | { |
| 49 | return NULL; | 49 | return NULL; |
| 50 | } | 50 | } |
| 51 | static inline void cpufreq_cooling_unregister( | 51 | static inline |
| 52 | struct thermal_cooling_device *cdev) | 52 | void cpufreq_cooling_unregister(struct thermal_cooling_device *cdev) |
| 53 | { | 53 | { |
| 54 | return; | 54 | return; |
| 55 | } | 55 | } |
| 56 | static inline | ||
| 57 | unsigned long cpufreq_cooling_get_level(unsigned int, unsigned int) | ||
| 58 | { | ||
| 59 | return THERMAL_CSTATE_INVALID; | ||
| 60 | } | ||
| 56 | #endif /* CONFIG_CPU_THERMAL */ | 61 | #endif /* CONFIG_CPU_THERMAL */ |
| 57 | 62 | ||
| 58 | #endif /* __CPU_COOLING_H__ */ | 63 | #endif /* __CPU_COOLING_H__ */ |
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index 3c86faa59798..8f0406230a0a 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
| @@ -17,7 +17,7 @@ | |||
| 17 | #include <linux/completion.h> | 17 | #include <linux/completion.h> |
| 18 | #include <linux/hrtimer.h> | 18 | #include <linux/hrtimer.h> |
| 19 | 19 | ||
| 20 | #define CPUIDLE_STATE_MAX 8 | 20 | #define CPUIDLE_STATE_MAX 10 |
| 21 | #define CPUIDLE_NAME_LEN 16 | 21 | #define CPUIDLE_NAME_LEN 16 |
| 22 | #define CPUIDLE_DESC_LEN 32 | 22 | #define CPUIDLE_DESC_LEN 32 |
| 23 | 23 | ||
diff --git a/include/linux/device-mapper.h b/include/linux/device-mapper.h index 1e483fa7afb4..3cd32478f2fd 100644 --- a/include/linux/device-mapper.h +++ b/include/linux/device-mapper.h | |||
| @@ -79,11 +79,26 @@ typedef int (*dm_ioctl_fn) (struct dm_target *ti, unsigned int cmd, | |||
| 79 | typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm, | 79 | typedef int (*dm_merge_fn) (struct dm_target *ti, struct bvec_merge_data *bvm, |
| 80 | struct bio_vec *biovec, int max_size); | 80 | struct bio_vec *biovec, int max_size); |
| 81 | 81 | ||
| 82 | /* | ||
| 83 | * These iteration functions are typically used to check (and combine) | ||
| 84 | * properties of underlying devices. | ||
| 85 | * E.g. Does at least one underlying device support flush? | ||
| 86 | * Does any underlying device not support WRITE_SAME? | ||
| 87 | * | ||
| 88 | * The callout function is called once for each contiguous section of | ||
| 89 | * an underlying device. State can be maintained in *data. | ||
| 90 | * Return non-zero to stop iterating through any further devices. | ||
| 91 | */ | ||
| 82 | typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, | 92 | typedef int (*iterate_devices_callout_fn) (struct dm_target *ti, |
| 83 | struct dm_dev *dev, | 93 | struct dm_dev *dev, |
| 84 | sector_t start, sector_t len, | 94 | sector_t start, sector_t len, |
| 85 | void *data); | 95 | void *data); |
| 86 | 96 | ||
| 97 | /* | ||
| 98 | * This function must iterate through each section of device used by the | ||
| 99 | * target until it encounters a non-zero return code, which it then returns. | ||
| 100 | * Returns zero if no callout returned non-zero. | ||
| 101 | */ | ||
| 87 | typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, | 102 | typedef int (*dm_iterate_devices_fn) (struct dm_target *ti, |
| 88 | iterate_devices_callout_fn fn, | 103 | iterate_devices_callout_fn fn, |
| 89 | void *data); | 104 | void *data); |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 91ac8da25020..96d3e4ab11a9 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
| @@ -967,8 +967,9 @@ enum dma_status dma_sync_wait(struct dma_chan *chan, dma_cookie_t cookie); | |||
| 967 | #ifdef CONFIG_DMA_ENGINE | 967 | #ifdef CONFIG_DMA_ENGINE |
| 968 | enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); | 968 | enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx); |
| 969 | void dma_issue_pending_all(void); | 969 | void dma_issue_pending_all(void); |
| 970 | struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, dma_filter_fn fn, void *fn_param); | 970 | struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask, |
| 971 | struct dma_chan *dma_request_slave_channel(struct device *dev, char *name); | 971 | dma_filter_fn fn, void *fn_param); |
| 972 | struct dma_chan *dma_request_slave_channel(struct device *dev, const char *name); | ||
| 972 | void dma_release_channel(struct dma_chan *chan); | 973 | void dma_release_channel(struct dma_chan *chan); |
| 973 | #else | 974 | #else |
| 974 | static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx) | 975 | static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descriptor *tx) |
| @@ -978,13 +979,13 @@ static inline enum dma_status dma_wait_for_async_tx(struct dma_async_tx_descript | |||
| 978 | static inline void dma_issue_pending_all(void) | 979 | static inline void dma_issue_pending_all(void) |
| 979 | { | 980 | { |
| 980 | } | 981 | } |
| 981 | static inline struct dma_chan *__dma_request_channel(dma_cap_mask_t *mask, | 982 | static inline struct dma_chan *__dma_request_channel(const dma_cap_mask_t *mask, |
| 982 | dma_filter_fn fn, void *fn_param) | 983 | dma_filter_fn fn, void *fn_param) |
| 983 | { | 984 | { |
| 984 | return NULL; | 985 | return NULL; |
| 985 | } | 986 | } |
| 986 | static inline struct dma_chan *dma_request_slave_channel(struct device *dev, | 987 | static inline struct dma_chan *dma_request_slave_channel(struct device *dev, |
| 987 | char *name) | 988 | const char *name) |
| 988 | { | 989 | { |
| 989 | return NULL; | 990 | return NULL; |
| 990 | } | 991 | } |
| @@ -1005,9 +1006,9 @@ struct dma_chan *net_dma_find_channel(void); | |||
| 1005 | __dma_request_slave_channel_compat(&(mask), x, y, dev, name) | 1006 | __dma_request_slave_channel_compat(&(mask), x, y, dev, name) |
| 1006 | 1007 | ||
| 1007 | static inline struct dma_chan | 1008 | static inline struct dma_chan |
| 1008 | *__dma_request_slave_channel_compat(dma_cap_mask_t *mask, dma_filter_fn fn, | 1009 | *__dma_request_slave_channel_compat(const dma_cap_mask_t *mask, |
| 1009 | void *fn_param, struct device *dev, | 1010 | dma_filter_fn fn, void *fn_param, |
| 1010 | char *name) | 1011 | struct device *dev, char *name) |
| 1011 | { | 1012 | { |
| 1012 | struct dma_chan *chan; | 1013 | struct dma_chan *chan; |
| 1013 | 1014 | ||
diff --git a/include/linux/gpio.h b/include/linux/gpio.h index f6c7ae3e223b..552e3f46e4a3 100644 --- a/include/linux/gpio.h +++ b/include/linux/gpio.h | |||
| @@ -39,7 +39,7 @@ struct gpio { | |||
| 39 | const char *label; | 39 | const char *label; |
| 40 | }; | 40 | }; |
| 41 | 41 | ||
| 42 | #ifdef CONFIG_GENERIC_GPIO | 42 | #ifdef CONFIG_GPIOLIB |
| 43 | 43 | ||
| 44 | #ifdef CONFIG_ARCH_HAVE_CUSTOM_GPIO_H | 44 | #ifdef CONFIG_ARCH_HAVE_CUSTOM_GPIO_H |
| 45 | #include <asm/gpio.h> | 45 | #include <asm/gpio.h> |
| @@ -74,7 +74,7 @@ static inline int irq_to_gpio(unsigned int irq) | |||
| 74 | 74 | ||
| 75 | #endif /* ! CONFIG_ARCH_HAVE_CUSTOM_GPIO_H */ | 75 | #endif /* ! CONFIG_ARCH_HAVE_CUSTOM_GPIO_H */ |
| 76 | 76 | ||
| 77 | #else /* ! CONFIG_GENERIC_GPIO */ | 77 | #else /* ! CONFIG_GPIOLIB */ |
| 78 | 78 | ||
| 79 | #include <linux/kernel.h> | 79 | #include <linux/kernel.h> |
| 80 | #include <linux/types.h> | 80 | #include <linux/types.h> |
| @@ -226,7 +226,7 @@ gpiochip_remove_pin_ranges(struct gpio_chip *chip) | |||
| 226 | WARN_ON(1); | 226 | WARN_ON(1); |
| 227 | } | 227 | } |
| 228 | 228 | ||
| 229 | #endif /* ! CONFIG_GENERIC_GPIO */ | 229 | #endif /* ! CONFIG_GPIOLIB */ |
| 230 | 230 | ||
| 231 | struct device; | 231 | struct device; |
| 232 | 232 | ||
diff --git a/include/linux/hid.h b/include/linux/hid.h index af1b86d46f6e..0c48991b0402 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
| @@ -515,7 +515,7 @@ struct hid_device { /* device report descriptor */ | |||
| 515 | struct dentry *debug_rdesc; | 515 | struct dentry *debug_rdesc; |
| 516 | struct dentry *debug_events; | 516 | struct dentry *debug_events; |
| 517 | struct list_head debug_list; | 517 | struct list_head debug_list; |
| 518 | struct mutex debug_list_lock; | 518 | spinlock_t debug_list_lock; |
| 519 | wait_queue_head_t debug_wait; | 519 | wait_queue_head_t debug_wait; |
| 520 | }; | 520 | }; |
| 521 | 521 | ||
diff --git a/include/linux/mtd/mtd.h b/include/linux/mtd/mtd.h index f9ac2897b86b..a5cf4e8d6818 100644 --- a/include/linux/mtd/mtd.h +++ b/include/linux/mtd/mtd.h | |||
| @@ -362,10 +362,10 @@ struct mtd_partition; | |||
| 362 | struct mtd_part_parser_data; | 362 | struct mtd_part_parser_data; |
| 363 | 363 | ||
| 364 | extern int mtd_device_parse_register(struct mtd_info *mtd, | 364 | extern int mtd_device_parse_register(struct mtd_info *mtd, |
| 365 | const char **part_probe_types, | 365 | const char * const *part_probe_types, |
| 366 | struct mtd_part_parser_data *parser_data, | 366 | struct mtd_part_parser_data *parser_data, |
| 367 | const struct mtd_partition *defparts, | 367 | const struct mtd_partition *defparts, |
| 368 | int defnr_parts); | 368 | int defnr_parts); |
| 369 | #define mtd_device_register(master, parts, nr_parts) \ | 369 | #define mtd_device_register(master, parts, nr_parts) \ |
| 370 | mtd_device_parse_register(master, NULL, NULL, parts, nr_parts) | 370 | mtd_device_parse_register(master, NULL, NULL, parts, nr_parts) |
| 371 | extern int mtd_device_unregister(struct mtd_info *master); | 371 | extern int mtd_device_unregister(struct mtd_info *master); |
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h index ef52d9c91459..ab6363443ce8 100644 --- a/include/linux/mtd/nand.h +++ b/include/linux/mtd/nand.h | |||
| @@ -86,7 +86,6 @@ extern int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len); | |||
| 86 | #define NAND_CMD_READOOB 0x50 | 86 | #define NAND_CMD_READOOB 0x50 |
| 87 | #define NAND_CMD_ERASE1 0x60 | 87 | #define NAND_CMD_ERASE1 0x60 |
| 88 | #define NAND_CMD_STATUS 0x70 | 88 | #define NAND_CMD_STATUS 0x70 |
| 89 | #define NAND_CMD_STATUS_MULTI 0x71 | ||
| 90 | #define NAND_CMD_SEQIN 0x80 | 89 | #define NAND_CMD_SEQIN 0x80 |
| 91 | #define NAND_CMD_RNDIN 0x85 | 90 | #define NAND_CMD_RNDIN 0x85 |
| 92 | #define NAND_CMD_READID 0x90 | 91 | #define NAND_CMD_READID 0x90 |
| @@ -105,25 +104,6 @@ extern int nand_unlock(struct mtd_info *mtd, loff_t ofs, uint64_t len); | |||
| 105 | #define NAND_CMD_RNDOUTSTART 0xE0 | 104 | #define NAND_CMD_RNDOUTSTART 0xE0 |
| 106 | #define NAND_CMD_CACHEDPROG 0x15 | 105 | #define NAND_CMD_CACHEDPROG 0x15 |
| 107 | 106 | ||
| 108 | /* Extended commands for AG-AND device */ | ||
| 109 | /* | ||
| 110 | * Note: the command for NAND_CMD_DEPLETE1 is really 0x00 but | ||
| 111 | * there is no way to distinguish that from NAND_CMD_READ0 | ||
| 112 | * until the remaining sequence of commands has been completed | ||
| 113 | * so add a high order bit and mask it off in the command. | ||
| 114 | */ | ||
| 115 | #define NAND_CMD_DEPLETE1 0x100 | ||
| 116 | #define NAND_CMD_DEPLETE2 0x38 | ||
| 117 | #define NAND_CMD_STATUS_MULTI 0x71 | ||
| 118 | #define NAND_CMD_STATUS_ERROR 0x72 | ||
| 119 | /* multi-bank error status (banks 0-3) */ | ||
| 120 | #define NAND_CMD_STATUS_ERROR0 0x73 | ||
| 121 | #define NAND_CMD_STATUS_ERROR1 0x74 | ||
| 122 | #define NAND_CMD_STATUS_ERROR2 0x75 | ||
| 123 | #define NAND_CMD_STATUS_ERROR3 0x76 | ||
| 124 | #define NAND_CMD_STATUS_RESET 0x7f | ||
| 125 | #define NAND_CMD_STATUS_CLEAR 0xff | ||
| 126 | |||
| 127 | #define NAND_CMD_NONE -1 | 107 | #define NAND_CMD_NONE -1 |
| 128 | 108 | ||
| 129 | /* Status bits */ | 109 | /* Status bits */ |
| @@ -165,28 +145,8 @@ typedef enum { | |||
| 165 | */ | 145 | */ |
| 166 | /* Buswidth is 16 bit */ | 146 | /* Buswidth is 16 bit */ |
| 167 | #define NAND_BUSWIDTH_16 0x00000002 | 147 | #define NAND_BUSWIDTH_16 0x00000002 |
| 168 | /* Device supports partial programming without padding */ | ||
| 169 | #define NAND_NO_PADDING 0x00000004 | ||
| 170 | /* Chip has cache program function */ | 148 | /* Chip has cache program function */ |
| 171 | #define NAND_CACHEPRG 0x00000008 | 149 | #define NAND_CACHEPRG 0x00000008 |
| 172 | /* Chip has copy back function */ | ||
| 173 | #define NAND_COPYBACK 0x00000010 | ||
| 174 | /* | ||
| 175 | * AND Chip which has 4 banks and a confusing page / block | ||
| 176 | * assignment. See Renesas datasheet for further information. | ||
| 177 | */ | ||
| 178 | #define NAND_IS_AND 0x00000020 | ||
| 179 | /* | ||
| 180 | * Chip has a array of 4 pages which can be read without | ||
| 181 | * additional ready /busy waits. | ||
| 182 | */ | ||
| 183 | #define NAND_4PAGE_ARRAY 0x00000040 | ||
| 184 | /* | ||
| 185 | * Chip requires that BBT is periodically rewritten to prevent | ||
| 186 | * bits from adjacent blocks from 'leaking' in altering data. | ||
| 187 | * This happens with the Renesas AG-AND chips, possibly others. | ||
| 188 | */ | ||
| 189 | #define BBT_AUTO_REFRESH 0x00000080 | ||
| 190 | /* | 150 | /* |
| 191 | * Chip requires ready check on read (for auto-incremented sequential read). | 151 | * Chip requires ready check on read (for auto-incremented sequential read). |
| 192 | * True only for small page devices; large page devices do not support | 152 | * True only for small page devices; large page devices do not support |
| @@ -207,13 +167,10 @@ typedef enum { | |||
| 207 | #define NAND_SUBPAGE_READ 0x00001000 | 167 | #define NAND_SUBPAGE_READ 0x00001000 |
| 208 | 168 | ||
| 209 | /* Options valid for Samsung large page devices */ | 169 | /* Options valid for Samsung large page devices */ |
| 210 | #define NAND_SAMSUNG_LP_OPTIONS \ | 170 | #define NAND_SAMSUNG_LP_OPTIONS NAND_CACHEPRG |
| 211 | (NAND_NO_PADDING | NAND_CACHEPRG | NAND_COPYBACK) | ||
| 212 | 171 | ||
| 213 | /* Macros to identify the above */ | 172 | /* Macros to identify the above */ |
| 214 | #define NAND_MUST_PAD(chip) (!(chip->options & NAND_NO_PADDING)) | ||
| 215 | #define NAND_HAS_CACHEPROG(chip) ((chip->options & NAND_CACHEPRG)) | 173 | #define NAND_HAS_CACHEPROG(chip) ((chip->options & NAND_CACHEPRG)) |
| 216 | #define NAND_HAS_COPYBACK(chip) ((chip->options & NAND_COPYBACK)) | ||
| 217 | #define NAND_HAS_SUBPAGE_READ(chip) ((chip->options & NAND_SUBPAGE_READ)) | 174 | #define NAND_HAS_SUBPAGE_READ(chip) ((chip->options & NAND_SUBPAGE_READ)) |
| 218 | 175 | ||
| 219 | /* Non chip related options */ | 176 | /* Non chip related options */ |
| @@ -361,6 +318,7 @@ struct nand_hw_control { | |||
| 361 | * any single ECC step, 0 if bitflips uncorrectable, -EIO hw error | 318 | * any single ECC step, 0 if bitflips uncorrectable, -EIO hw error |
| 362 | * @read_subpage: function to read parts of the page covered by ECC; | 319 | * @read_subpage: function to read parts of the page covered by ECC; |
| 363 | * returns same as read_page() | 320 | * returns same as read_page() |
| 321 | * @write_subpage: function to write parts of the page covered by ECC. | ||
| 364 | * @write_page: function to write a page according to the ECC generator | 322 | * @write_page: function to write a page according to the ECC generator |
| 365 | * requirements. | 323 | * requirements. |
| 366 | * @write_oob_raw: function to write chip OOB data without ECC | 324 | * @write_oob_raw: function to write chip OOB data without ECC |
| @@ -392,6 +350,9 @@ struct nand_ecc_ctrl { | |||
| 392 | uint8_t *buf, int oob_required, int page); | 350 | uint8_t *buf, int oob_required, int page); |
| 393 | int (*read_subpage)(struct mtd_info *mtd, struct nand_chip *chip, | 351 | int (*read_subpage)(struct mtd_info *mtd, struct nand_chip *chip, |
| 394 | uint32_t offs, uint32_t len, uint8_t *buf); | 352 | uint32_t offs, uint32_t len, uint8_t *buf); |
| 353 | int (*write_subpage)(struct mtd_info *mtd, struct nand_chip *chip, | ||
| 354 | uint32_t offset, uint32_t data_len, | ||
| 355 | const uint8_t *data_buf, int oob_required); | ||
| 395 | int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, | 356 | int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, |
| 396 | const uint8_t *buf, int oob_required); | 357 | const uint8_t *buf, int oob_required); |
| 397 | int (*write_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip, | 358 | int (*write_oob_raw)(struct mtd_info *mtd, struct nand_chip *chip, |
| @@ -527,8 +488,8 @@ struct nand_chip { | |||
| 527 | int (*errstat)(struct mtd_info *mtd, struct nand_chip *this, int state, | 488 | int (*errstat)(struct mtd_info *mtd, struct nand_chip *this, int state, |
| 528 | int status, int page); | 489 | int status, int page); |
| 529 | int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, | 490 | int (*write_page)(struct mtd_info *mtd, struct nand_chip *chip, |
| 530 | const uint8_t *buf, int oob_required, int page, | 491 | uint32_t offset, int data_len, const uint8_t *buf, |
| 531 | int cached, int raw); | 492 | int oob_required, int page, int cached, int raw); |
| 532 | int (*onfi_set_features)(struct mtd_info *mtd, struct nand_chip *chip, | 493 | int (*onfi_set_features)(struct mtd_info *mtd, struct nand_chip *chip, |
| 533 | int feature_addr, uint8_t *subfeature_para); | 494 | int feature_addr, uint8_t *subfeature_para); |
| 534 | int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip, | 495 | int (*onfi_get_features)(struct mtd_info *mtd, struct nand_chip *chip, |
| @@ -589,25 +550,65 @@ struct nand_chip { | |||
| 589 | #define NAND_MFR_MACRONIX 0xc2 | 550 | #define NAND_MFR_MACRONIX 0xc2 |
| 590 | #define NAND_MFR_EON 0x92 | 551 | #define NAND_MFR_EON 0x92 |
| 591 | 552 | ||
| 553 | /* The maximum expected count of bytes in the NAND ID sequence */ | ||
| 554 | #define NAND_MAX_ID_LEN 8 | ||
| 555 | |||
| 556 | /* | ||
| 557 | * A helper for defining older NAND chips where the second ID byte fully | ||
| 558 | * defined the chip, including the geometry (chip size, eraseblock size, page | ||
| 559 | * size). All these chips have 512 bytes NAND page size. | ||
| 560 | */ | ||
| 561 | #define LEGACY_ID_NAND(nm, devid, chipsz, erasesz, opts) \ | ||
| 562 | { .name = (nm), {{ .dev_id = (devid) }}, .pagesize = 512, \ | ||
| 563 | .chipsize = (chipsz), .erasesize = (erasesz), .options = (opts) } | ||
| 564 | |||
| 565 | /* | ||
| 566 | * A helper for defining newer chips which report their page size and | ||
| 567 | * eraseblock size via the extended ID bytes. | ||
| 568 | * | ||
| 569 | * The real difference between LEGACY_ID_NAND and EXTENDED_ID_NAND is that with | ||
| 570 | * EXTENDED_ID_NAND, manufacturers overloaded the same device ID so that the | ||
| 571 | * device ID now only represented a particular total chip size (and voltage, | ||
| 572 | * buswidth), and the page size, eraseblock size, and OOB size could vary while | ||
| 573 | * using the same device ID. | ||
| 574 | */ | ||
| 575 | #define EXTENDED_ID_NAND(nm, devid, chipsz, opts) \ | ||
| 576 | { .name = (nm), {{ .dev_id = (devid) }}, .chipsize = (chipsz), \ | ||
| 577 | .options = (opts) } | ||
| 578 | |||
| 592 | /** | 579 | /** |
| 593 | * struct nand_flash_dev - NAND Flash Device ID Structure | 580 | * struct nand_flash_dev - NAND Flash Device ID Structure |
| 594 | * @name: Identify the device type | 581 | * @name: a human-readable name of the NAND chip |
| 595 | * @id: device ID code | 582 | * @dev_id: the device ID (the second byte of the full chip ID array) |
| 596 | * @pagesize: Pagesize in bytes. Either 256 or 512 or 0 | 583 | * @mfr_id: manufecturer ID part of the full chip ID array (refers the same |
| 597 | * If the pagesize is 0, then the real pagesize | 584 | * memory address as @id[0]) |
| 598 | * and the eraseize are determined from the | 585 | * @dev_id: device ID part of the full chip ID array (refers the same memory |
| 599 | * extended id bytes in the chip | 586 | * address as @id[1]) |
| 600 | * @erasesize: Size of an erase block in the flash device. | 587 | * @id: full device ID array |
| 601 | * @chipsize: Total chipsize in Mega Bytes | 588 | * @pagesize: size of the NAND page in bytes; if 0, then the real page size (as |
| 602 | * @options: Bitfield to store chip relevant options | 589 | * well as the eraseblock size) is determined from the extended NAND |
| 590 | * chip ID array) | ||
| 591 | * @chipsize: total chip size in MiB | ||
| 592 | * @erasesize: eraseblock size in bytes (determined from the extended ID if 0) | ||
| 593 | * @options: stores various chip bit options | ||
| 594 | * @id_len: The valid length of the @id. | ||
| 595 | * @oobsize: OOB size | ||
| 603 | */ | 596 | */ |
| 604 | struct nand_flash_dev { | 597 | struct nand_flash_dev { |
| 605 | char *name; | 598 | char *name; |
| 606 | int id; | 599 | union { |
| 607 | unsigned long pagesize; | 600 | struct { |
| 608 | unsigned long chipsize; | 601 | uint8_t mfr_id; |
| 609 | unsigned long erasesize; | 602 | uint8_t dev_id; |
| 610 | unsigned long options; | 603 | }; |
| 604 | uint8_t id[NAND_MAX_ID_LEN]; | ||
| 605 | }; | ||
| 606 | unsigned int pagesize; | ||
| 607 | unsigned int chipsize; | ||
| 608 | unsigned int erasesize; | ||
| 609 | unsigned int options; | ||
| 610 | uint16_t id_len; | ||
| 611 | uint16_t oobsize; | ||
| 611 | }; | 612 | }; |
| 612 | 613 | ||
| 613 | /** | 614 | /** |
diff --git a/include/linux/mtd/physmap.h b/include/linux/mtd/physmap.h index d2887e76b7f6..aa6a2633c2da 100644 --- a/include/linux/mtd/physmap.h +++ b/include/linux/mtd/physmap.h | |||
| @@ -30,7 +30,7 @@ struct physmap_flash_data { | |||
| 30 | unsigned int pfow_base; | 30 | unsigned int pfow_base; |
| 31 | char *probe_type; | 31 | char *probe_type; |
| 32 | struct mtd_partition *parts; | 32 | struct mtd_partition *parts; |
| 33 | const char **part_probe_types; | 33 | const char * const *part_probe_types; |
| 34 | }; | 34 | }; |
| 35 | 35 | ||
| 36 | #endif /* __LINUX_MTD_PHYSMAP__ */ | 36 | #endif /* __LINUX_MTD_PHYSMAP__ */ |
diff --git a/include/linux/mtd/plat-ram.h b/include/linux/mtd/plat-ram.h index e07890aff1cf..44212d65aa97 100644 --- a/include/linux/mtd/plat-ram.h +++ b/include/linux/mtd/plat-ram.h | |||
| @@ -20,8 +20,8 @@ | |||
| 20 | 20 | ||
| 21 | struct platdata_mtd_ram { | 21 | struct platdata_mtd_ram { |
| 22 | const char *mapname; | 22 | const char *mapname; |
| 23 | const char **map_probes; | 23 | const char * const *map_probes; |
| 24 | const char **probes; | 24 | const char * const *probes; |
| 25 | struct mtd_partition *partitions; | 25 | struct mtd_partition *partitions; |
| 26 | int nr_partitions; | 26 | int nr_partitions; |
| 27 | int bankwidth; | 27 | int bankwidth; |
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h index 766c5bc9d441..104b62f23ee0 100644 --- a/include/linux/nfs_xdr.h +++ b/include/linux/nfs_xdr.h | |||
| @@ -1176,7 +1176,7 @@ struct nfs41_test_stateid_res { | |||
| 1176 | 1176 | ||
| 1177 | struct nfs41_free_stateid_args { | 1177 | struct nfs41_free_stateid_args { |
| 1178 | struct nfs4_sequence_args seq_args; | 1178 | struct nfs4_sequence_args seq_args; |
| 1179 | nfs4_stateid *stateid; | 1179 | nfs4_stateid stateid; |
| 1180 | }; | 1180 | }; |
| 1181 | 1181 | ||
| 1182 | struct nfs41_free_stateid_res { | 1182 | struct nfs41_free_stateid_res { |
diff --git a/include/linux/nvme.h b/include/linux/nvme.h index 4fa3b0b9b071..f451c8d6e231 100644 --- a/include/linux/nvme.h +++ b/include/linux/nvme.h | |||
| @@ -107,6 +107,12 @@ struct nvme_id_ctrl { | |||
| 107 | __u8 vs[1024]; | 107 | __u8 vs[1024]; |
| 108 | }; | 108 | }; |
| 109 | 109 | ||
| 110 | enum { | ||
| 111 | NVME_CTRL_ONCS_COMPARE = 1 << 0, | ||
| 112 | NVME_CTRL_ONCS_WRITE_UNCORRECTABLE = 1 << 1, | ||
| 113 | NVME_CTRL_ONCS_DSM = 1 << 2, | ||
| 114 | }; | ||
| 115 | |||
| 110 | struct nvme_lbaf { | 116 | struct nvme_lbaf { |
| 111 | __le16 ms; | 117 | __le16 ms; |
| 112 | __u8 ds; | 118 | __u8 ds; |
| @@ -201,11 +207,11 @@ struct nvme_common_command { | |||
| 201 | __u8 flags; | 207 | __u8 flags; |
| 202 | __u16 command_id; | 208 | __u16 command_id; |
| 203 | __le32 nsid; | 209 | __le32 nsid; |
| 204 | __u32 cdw2[2]; | 210 | __le32 cdw2[2]; |
| 205 | __le64 metadata; | 211 | __le64 metadata; |
| 206 | __le64 prp1; | 212 | __le64 prp1; |
| 207 | __le64 prp2; | 213 | __le64 prp2; |
| 208 | __u32 cdw10[6]; | 214 | __le32 cdw10[6]; |
| 209 | }; | 215 | }; |
| 210 | 216 | ||
| 211 | struct nvme_rw_command { | 217 | struct nvme_rw_command { |
| @@ -246,6 +252,31 @@ enum { | |||
| 246 | NVME_RW_DSM_COMPRESSED = 1 << 7, | 252 | NVME_RW_DSM_COMPRESSED = 1 << 7, |
| 247 | }; | 253 | }; |
| 248 | 254 | ||
| 255 | struct nvme_dsm_cmd { | ||
| 256 | __u8 opcode; | ||
| 257 | __u8 flags; | ||
| 258 | __u16 command_id; | ||
| 259 | __le32 nsid; | ||
| 260 | __u64 rsvd2[2]; | ||
| 261 | __le64 prp1; | ||
| 262 | __le64 prp2; | ||
| 263 | __le32 nr; | ||
| 264 | __le32 attributes; | ||
| 265 | __u32 rsvd12[4]; | ||
| 266 | }; | ||
| 267 | |||
| 268 | enum { | ||
| 269 | NVME_DSMGMT_IDR = 1 << 0, | ||
| 270 | NVME_DSMGMT_IDW = 1 << 1, | ||
| 271 | NVME_DSMGMT_AD = 1 << 2, | ||
| 272 | }; | ||
| 273 | |||
| 274 | struct nvme_dsm_range { | ||
| 275 | __le32 cattr; | ||
| 276 | __le32 nlb; | ||
| 277 | __le64 slba; | ||
| 278 | }; | ||
| 279 | |||
| 249 | /* Admin commands */ | 280 | /* Admin commands */ |
| 250 | 281 | ||
| 251 | enum nvme_admin_opcode { | 282 | enum nvme_admin_opcode { |
| @@ -285,6 +316,9 @@ enum { | |||
| 285 | NVME_FEAT_WRITE_ATOMIC = 0x0a, | 316 | NVME_FEAT_WRITE_ATOMIC = 0x0a, |
| 286 | NVME_FEAT_ASYNC_EVENT = 0x0b, | 317 | NVME_FEAT_ASYNC_EVENT = 0x0b, |
| 287 | NVME_FEAT_SW_PROGRESS = 0x0c, | 318 | NVME_FEAT_SW_PROGRESS = 0x0c, |
| 319 | NVME_FWACT_REPL = (0 << 3), | ||
| 320 | NVME_FWACT_REPL_ACTV = (1 << 3), | ||
| 321 | NVME_FWACT_ACTV = (2 << 3), | ||
| 288 | }; | 322 | }; |
| 289 | 323 | ||
| 290 | struct nvme_identify { | 324 | struct nvme_identify { |
| @@ -362,6 +396,16 @@ struct nvme_download_firmware { | |||
| 362 | __u32 rsvd12[4]; | 396 | __u32 rsvd12[4]; |
| 363 | }; | 397 | }; |
| 364 | 398 | ||
| 399 | struct nvme_format_cmd { | ||
| 400 | __u8 opcode; | ||
| 401 | __u8 flags; | ||
| 402 | __u16 command_id; | ||
| 403 | __le32 nsid; | ||
| 404 | __u64 rsvd2[4]; | ||
| 405 | __le32 cdw10; | ||
| 406 | __u32 rsvd11[5]; | ||
| 407 | }; | ||
| 408 | |||
| 365 | struct nvme_command { | 409 | struct nvme_command { |
| 366 | union { | 410 | union { |
| 367 | struct nvme_common_command common; | 411 | struct nvme_common_command common; |
| @@ -372,6 +416,8 @@ struct nvme_command { | |||
| 372 | struct nvme_create_sq create_sq; | 416 | struct nvme_create_sq create_sq; |
| 373 | struct nvme_delete_queue delete_queue; | 417 | struct nvme_delete_queue delete_queue; |
| 374 | struct nvme_download_firmware dlfw; | 418 | struct nvme_download_firmware dlfw; |
| 419 | struct nvme_format_cmd format; | ||
| 420 | struct nvme_dsm_cmd dsm; | ||
| 375 | }; | 421 | }; |
| 376 | }; | 422 | }; |
| 377 | 423 | ||
| @@ -388,6 +434,7 @@ enum { | |||
| 388 | NVME_SC_FUSED_FAIL = 0x9, | 434 | NVME_SC_FUSED_FAIL = 0x9, |
| 389 | NVME_SC_FUSED_MISSING = 0xa, | 435 | NVME_SC_FUSED_MISSING = 0xa, |
| 390 | NVME_SC_INVALID_NS = 0xb, | 436 | NVME_SC_INVALID_NS = 0xb, |
| 437 | NVME_SC_CMD_SEQ_ERROR = 0xc, | ||
| 391 | NVME_SC_LBA_RANGE = 0x80, | 438 | NVME_SC_LBA_RANGE = 0x80, |
| 392 | NVME_SC_CAP_EXCEEDED = 0x81, | 439 | NVME_SC_CAP_EXCEEDED = 0x81, |
| 393 | NVME_SC_NS_NOT_READY = 0x82, | 440 | NVME_SC_NS_NOT_READY = 0x82, |
| @@ -461,4 +508,111 @@ struct nvme_admin_cmd { | |||
| 461 | #define NVME_IOCTL_ADMIN_CMD _IOWR('N', 0x41, struct nvme_admin_cmd) | 508 | #define NVME_IOCTL_ADMIN_CMD _IOWR('N', 0x41, struct nvme_admin_cmd) |
| 462 | #define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io) | 509 | #define NVME_IOCTL_SUBMIT_IO _IOW('N', 0x42, struct nvme_user_io) |
| 463 | 510 | ||
| 511 | #ifdef __KERNEL__ | ||
| 512 | #include <linux/pci.h> | ||
| 513 | #include <linux/miscdevice.h> | ||
| 514 | #include <linux/kref.h> | ||
| 515 | |||
| 516 | #define NVME_IO_TIMEOUT (5 * HZ) | ||
| 517 | |||
| 518 | /* | ||
| 519 | * Represents an NVM Express device. Each nvme_dev is a PCI function. | ||
| 520 | */ | ||
| 521 | struct nvme_dev { | ||
| 522 | struct list_head node; | ||
| 523 | struct nvme_queue **queues; | ||
| 524 | u32 __iomem *dbs; | ||
| 525 | struct pci_dev *pci_dev; | ||
| 526 | struct dma_pool *prp_page_pool; | ||
| 527 | struct dma_pool *prp_small_pool; | ||
| 528 | int instance; | ||
| 529 | int queue_count; | ||
| 530 | int db_stride; | ||
| 531 | u32 ctrl_config; | ||
| 532 | struct msix_entry *entry; | ||
| 533 | struct nvme_bar __iomem *bar; | ||
| 534 | struct list_head namespaces; | ||
| 535 | struct kref kref; | ||
| 536 | struct miscdevice miscdev; | ||
| 537 | char name[12]; | ||
| 538 | char serial[20]; | ||
| 539 | char model[40]; | ||
| 540 | char firmware_rev[8]; | ||
| 541 | u32 max_hw_sectors; | ||
| 542 | u32 stripe_size; | ||
| 543 | u16 oncs; | ||
| 544 | }; | ||
| 545 | |||
| 546 | /* | ||
| 547 | * An NVM Express namespace is equivalent to a SCSI LUN | ||
| 548 | */ | ||
| 549 | struct nvme_ns { | ||
| 550 | struct list_head list; | ||
| 551 | |||
| 552 | struct nvme_dev *dev; | ||
| 553 | struct request_queue *queue; | ||
| 554 | struct gendisk *disk; | ||
| 555 | |||
| 556 | int ns_id; | ||
| 557 | int lba_shift; | ||
| 558 | int ms; | ||
| 559 | u64 mode_select_num_blocks; | ||
| 560 | u32 mode_select_block_len; | ||
| 561 | }; | ||
| 562 | |||
| 563 | /* | ||
| 564 | * The nvme_iod describes the data in an I/O, including the list of PRP | ||
| 565 | * entries. You can't see it in this data structure because C doesn't let | ||
| 566 | * me express that. Use nvme_alloc_iod to ensure there's enough space | ||
| 567 | * allocated to store the PRP list. | ||
| 568 | */ | ||
| 569 | struct nvme_iod { | ||
| 570 | void *private; /* For the use of the submitter of the I/O */ | ||
| 571 | int npages; /* In the PRP list. 0 means small pool in use */ | ||
| 572 | int offset; /* Of PRP list */ | ||
| 573 | int nents; /* Used in scatterlist */ | ||
| 574 | int length; /* Of data, in bytes */ | ||
| 575 | dma_addr_t first_dma; | ||
| 576 | struct scatterlist sg[0]; | ||
| 577 | }; | ||
| 578 | |||
| 579 | static inline u64 nvme_block_nr(struct nvme_ns *ns, sector_t sector) | ||
| 580 | { | ||
| 581 | return (sector >> (ns->lba_shift - 9)); | ||
| 582 | } | ||
| 583 | |||
| 584 | /** | ||
| 585 | * nvme_free_iod - frees an nvme_iod | ||
| 586 | * @dev: The device that the I/O was submitted to | ||
| 587 | * @iod: The memory to free | ||
| 588 | */ | ||
| 589 | void nvme_free_iod(struct nvme_dev *dev, struct nvme_iod *iod); | ||
| 590 | |||
| 591 | int nvme_setup_prps(struct nvme_dev *dev, struct nvme_common_command *cmd, | ||
| 592 | struct nvme_iod *iod, int total_len, gfp_t gfp); | ||
| 593 | struct nvme_iod *nvme_map_user_pages(struct nvme_dev *dev, int write, | ||
| 594 | unsigned long addr, unsigned length); | ||
| 595 | void nvme_unmap_user_pages(struct nvme_dev *dev, int write, | ||
| 596 | struct nvme_iod *iod); | ||
| 597 | struct nvme_queue *get_nvmeq(struct nvme_dev *dev); | ||
| 598 | void put_nvmeq(struct nvme_queue *nvmeq); | ||
| 599 | int nvme_submit_sync_cmd(struct nvme_queue *nvmeq, struct nvme_command *cmd, | ||
| 600 | u32 *result, unsigned timeout); | ||
| 601 | int nvme_submit_flush_data(struct nvme_queue *nvmeq, struct nvme_ns *ns); | ||
| 602 | int nvme_submit_admin_cmd(struct nvme_dev *, struct nvme_command *, | ||
| 603 | u32 *result); | ||
| 604 | int nvme_identify(struct nvme_dev *, unsigned nsid, unsigned cns, | ||
| 605 | dma_addr_t dma_addr); | ||
| 606 | int nvme_get_features(struct nvme_dev *dev, unsigned fid, unsigned nsid, | ||
| 607 | dma_addr_t dma_addr, u32 *result); | ||
| 608 | int nvme_set_features(struct nvme_dev *dev, unsigned fid, unsigned dword11, | ||
| 609 | dma_addr_t dma_addr, u32 *result); | ||
| 610 | |||
| 611 | struct sg_io_hdr; | ||
| 612 | |||
| 613 | int nvme_sg_io(struct nvme_ns *ns, struct sg_io_hdr __user *u_hdr); | ||
| 614 | int nvme_sg_get_version_num(int __user *ip); | ||
| 615 | |||
| 616 | #endif | ||
| 617 | |||
| 464 | #endif /* _LINUX_NVME_H */ | 618 | #endif /* _LINUX_NVME_H */ |
diff --git a/include/linux/of_dma.h b/include/linux/of_dma.h index d15073e080dd..364dda734877 100644 --- a/include/linux/of_dma.h +++ b/include/linux/of_dma.h | |||
| @@ -25,7 +25,6 @@ struct of_dma { | |||
| 25 | struct dma_chan *(*of_dma_xlate) | 25 | struct dma_chan *(*of_dma_xlate) |
| 26 | (struct of_phandle_args *, struct of_dma *); | 26 | (struct of_phandle_args *, struct of_dma *); |
| 27 | void *of_dma_data; | 27 | void *of_dma_data; |
| 28 | int use_count; | ||
| 29 | }; | 28 | }; |
| 30 | 29 | ||
| 31 | struct of_dma_filter_info { | 30 | struct of_dma_filter_info { |
| @@ -38,9 +37,9 @@ extern int of_dma_controller_register(struct device_node *np, | |||
| 38 | struct dma_chan *(*of_dma_xlate) | 37 | struct dma_chan *(*of_dma_xlate) |
| 39 | (struct of_phandle_args *, struct of_dma *), | 38 | (struct of_phandle_args *, struct of_dma *), |
| 40 | void *data); | 39 | void *data); |
| 41 | extern int of_dma_controller_free(struct device_node *np); | 40 | extern void of_dma_controller_free(struct device_node *np); |
| 42 | extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np, | 41 | extern struct dma_chan *of_dma_request_slave_channel(struct device_node *np, |
| 43 | char *name); | 42 | const char *name); |
| 44 | extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec, | 43 | extern struct dma_chan *of_dma_simple_xlate(struct of_phandle_args *dma_spec, |
| 45 | struct of_dma *ofdma); | 44 | struct of_dma *ofdma); |
| 46 | #else | 45 | #else |
| @@ -52,13 +51,12 @@ static inline int of_dma_controller_register(struct device_node *np, | |||
| 52 | return -ENODEV; | 51 | return -ENODEV; |
| 53 | } | 52 | } |
| 54 | 53 | ||
| 55 | static inline int of_dma_controller_free(struct device_node *np) | 54 | static inline void of_dma_controller_free(struct device_node *np) |
| 56 | { | 55 | { |
| 57 | return -ENODEV; | ||
| 58 | } | 56 | } |
| 59 | 57 | ||
| 60 | static inline struct dma_chan *of_dma_request_slave_channel(struct device_node *np, | 58 | static inline struct dma_chan *of_dma_request_slave_channel(struct device_node *np, |
| 61 | char *name) | 59 | const char *name) |
| 62 | { | 60 | { |
| 63 | return NULL; | 61 | return NULL; |
| 64 | } | 62 | } |
diff --git a/include/linux/platform_data/elm.h b/include/linux/platform_data/elm.h index 1bd5244d1dcd..bf0a83b7ed9d 100644 --- a/include/linux/platform_data/elm.h +++ b/include/linux/platform_data/elm.h | |||
| @@ -50,5 +50,5 @@ struct elm_errorvec { | |||
| 50 | 50 | ||
| 51 | void elm_decode_bch_error_page(struct device *dev, u8 *ecc_calc, | 51 | void elm_decode_bch_error_page(struct device *dev, u8 *ecc_calc, |
| 52 | struct elm_errorvec *err_vec); | 52 | struct elm_errorvec *err_vec); |
| 53 | void elm_config(struct device *dev, enum bch_ecc bch_type); | 53 | int elm_config(struct device *dev, enum bch_ecc bch_type); |
| 54 | #endif /* __ELM_H */ | 54 | #endif /* __ELM_H */ |
diff --git a/include/linux/platform_data/imx-iram.h b/include/linux/platform_data/imx-iram.h deleted file mode 100644 index 022690c33702..000000000000 --- a/include/linux/platform_data/imx-iram.h +++ /dev/null | |||
| @@ -1,41 +0,0 @@ | |||
| 1 | /* | ||
| 2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
| 3 | * | ||
| 4 | * This program is free software; you can redistribute it and/or | ||
| 5 | * modify it under the terms of the GNU General Public License | ||
| 6 | * as published by the Free Software Foundation; either version 2 | ||
| 7 | * of the License, or (at your option) any later version. | ||
| 8 | * | ||
| 9 | * This program is distributed in the hope that it will be useful, | ||
| 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 12 | * GNU General Public License for more details. | ||
| 13 | * | ||
| 14 | * You should have received a copy of the GNU General Public License | ||
| 15 | * along with this program; if not, write to the Free Software | ||
| 16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
| 17 | * MA 02110-1301, USA. | ||
| 18 | */ | ||
| 19 | #include <linux/errno.h> | ||
| 20 | |||
| 21 | #ifdef CONFIG_IRAM_ALLOC | ||
| 22 | |||
| 23 | int __init iram_init(unsigned long base, unsigned long size); | ||
| 24 | void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr); | ||
| 25 | void iram_free(unsigned long dma_addr, unsigned int size); | ||
| 26 | |||
| 27 | #else | ||
| 28 | |||
| 29 | static inline int __init iram_init(unsigned long base, unsigned long size) | ||
| 30 | { | ||
| 31 | return -ENOMEM; | ||
| 32 | } | ||
| 33 | |||
| 34 | static inline void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr) | ||
| 35 | { | ||
| 36 | return NULL; | ||
| 37 | } | ||
| 38 | |||
| 39 | static inline void iram_free(unsigned long base, unsigned long size) {} | ||
| 40 | |||
| 41 | #endif | ||
diff --git a/include/linux/sched.h b/include/linux/sched.h index caa8f4d0186b..178a8d909f14 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
| @@ -593,6 +593,7 @@ struct signal_struct { | |||
| 593 | #endif | 593 | #endif |
| 594 | #ifdef CONFIG_AUDIT | 594 | #ifdef CONFIG_AUDIT |
| 595 | unsigned audit_tty; | 595 | unsigned audit_tty; |
| 596 | unsigned audit_tty_log_passwd; | ||
| 596 | struct tty_audit_buf *tty_audit_buf; | 597 | struct tty_audit_buf *tty_audit_buf; |
| 597 | #endif | 598 | #endif |
| 598 | #ifdef CONFIG_CGROUPS | 599 | #ifdef CONFIG_CGROUPS |
diff --git a/include/linux/sudmac.h b/include/linux/sudmac.h new file mode 100644 index 000000000000..377b8a5788fa --- /dev/null +++ b/include/linux/sudmac.h | |||
| @@ -0,0 +1,52 @@ | |||
| 1 | /* | ||
| 2 | * Header for the SUDMAC driver | ||
| 3 | * | ||
| 4 | * Copyright (C) 2013 Renesas Solutions Corp. | ||
| 5 | * | ||
| 6 | * This is free software; you can redistribute it and/or modify | ||
| 7 | * it under the terms of version 2 of the GNU General Public License as | ||
| 8 | * published by the Free Software Foundation. | ||
| 9 | */ | ||
| 10 | #ifndef SUDMAC_H | ||
| 11 | #define SUDMAC_H | ||
| 12 | |||
| 13 | #include <linux/dmaengine.h> | ||
| 14 | #include <linux/shdma-base.h> | ||
| 15 | #include <linux/types.h> | ||
| 16 | |||
| 17 | /* Used by slave DMA clients to request DMA to/from a specific peripheral */ | ||
| 18 | struct sudmac_slave { | ||
| 19 | struct shdma_slave shdma_slave; /* Set by the platform */ | ||
| 20 | }; | ||
| 21 | |||
| 22 | /* | ||
| 23 | * Supplied by platforms to specify, how a DMA channel has to be configured for | ||
| 24 | * a certain peripheral | ||
| 25 | */ | ||
| 26 | struct sudmac_slave_config { | ||
| 27 | int slave_id; | ||
| 28 | }; | ||
| 29 | |||
| 30 | struct sudmac_channel { | ||
| 31 | unsigned long offset; | ||
| 32 | unsigned long config; | ||
| 33 | unsigned long wait; /* The configuable range is 0 to 3 */ | ||
| 34 | unsigned long dint_end_bit; | ||
| 35 | }; | ||
| 36 | |||
| 37 | struct sudmac_pdata { | ||
| 38 | const struct sudmac_slave_config *slave; | ||
| 39 | int slave_num; | ||
| 40 | const struct sudmac_channel *channel; | ||
| 41 | int channel_num; | ||
| 42 | }; | ||
| 43 | |||
| 44 | /* Definitions for the sudmac_channel.config */ | ||
| 45 | #define SUDMAC_TX_BUFFER_MODE BIT(0) | ||
| 46 | #define SUDMAC_RX_END_MODE BIT(1) | ||
| 47 | |||
| 48 | /* Definitions for the sudmac_channel.dint_end_bit */ | ||
| 49 | #define SUDMAC_DMA_BIT_CH0 BIT(0) | ||
| 50 | #define SUDMAC_DMA_BIT_CH1 BIT(1) | ||
| 51 | |||
| 52 | #endif | ||
diff --git a/include/linux/thermal.h b/include/linux/thermal.h index e3c0ae9bb1fa..a386a1cbb6e1 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h | |||
| @@ -33,8 +33,11 @@ | |||
| 33 | #define THERMAL_MAX_TRIPS 12 | 33 | #define THERMAL_MAX_TRIPS 12 |
| 34 | #define THERMAL_NAME_LENGTH 20 | 34 | #define THERMAL_NAME_LENGTH 20 |
| 35 | 35 | ||
| 36 | /* invalid cooling state */ | ||
| 37 | #define THERMAL_CSTATE_INVALID -1UL | ||
| 38 | |||
| 36 | /* No upper/lower limit requirement */ | 39 | /* No upper/lower limit requirement */ |
| 37 | #define THERMAL_NO_LIMIT -1UL | 40 | #define THERMAL_NO_LIMIT THERMAL_CSTATE_INVALID |
| 38 | 41 | ||
| 39 | /* Unit conversion macros */ | 42 | /* Unit conversion macros */ |
| 40 | #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ | 43 | #define KELVIN_TO_CELSIUS(t) (long)(((long)t-2732 >= 0) ? \ |
| @@ -184,7 +187,6 @@ struct thermal_governor { | |||
| 184 | char name[THERMAL_NAME_LENGTH]; | 187 | char name[THERMAL_NAME_LENGTH]; |
| 185 | int (*throttle)(struct thermal_zone_device *tz, int trip); | 188 | int (*throttle)(struct thermal_zone_device *tz, int trip); |
| 186 | struct list_head governor_list; | 189 | struct list_head governor_list; |
| 187 | struct module *owner; | ||
| 188 | }; | 190 | }; |
| 189 | 191 | ||
| 190 | /* Structure that holds binding parameters for a zone */ | 192 | /* Structure that holds binding parameters for a zone */ |
| @@ -237,21 +239,20 @@ void thermal_zone_device_update(struct thermal_zone_device *); | |||
| 237 | struct thermal_cooling_device *thermal_cooling_device_register(char *, void *, | 239 | struct thermal_cooling_device *thermal_cooling_device_register(char *, void *, |
| 238 | const struct thermal_cooling_device_ops *); | 240 | const struct thermal_cooling_device_ops *); |
| 239 | void thermal_cooling_device_unregister(struct thermal_cooling_device *); | 241 | void thermal_cooling_device_unregister(struct thermal_cooling_device *); |
| 242 | struct thermal_zone_device *thermal_zone_get_zone_by_name(const char *name); | ||
| 243 | int thermal_zone_get_temp(struct thermal_zone_device *tz, unsigned long *temp); | ||
| 240 | 244 | ||
| 241 | int get_tz_trend(struct thermal_zone_device *, int); | 245 | int get_tz_trend(struct thermal_zone_device *, int); |
| 242 | struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, | 246 | struct thermal_instance *get_thermal_instance(struct thermal_zone_device *, |
| 243 | struct thermal_cooling_device *, int); | 247 | struct thermal_cooling_device *, int); |
| 244 | void thermal_cdev_update(struct thermal_cooling_device *); | 248 | void thermal_cdev_update(struct thermal_cooling_device *); |
| 245 | void notify_thermal_framework(struct thermal_zone_device *, int); | 249 | void thermal_notify_framework(struct thermal_zone_device *, int); |
| 246 | |||
| 247 | int thermal_register_governor(struct thermal_governor *); | ||
| 248 | void thermal_unregister_governor(struct thermal_governor *); | ||
| 249 | 250 | ||
| 250 | #ifdef CONFIG_NET | 251 | #ifdef CONFIG_NET |
| 251 | extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, | 252 | extern int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
| 252 | enum events event); | 253 | enum events event); |
| 253 | #else | 254 | #else |
| 254 | static int thermal_generate_netlink_event(struct thermal_zone_device *tz, | 255 | static inline int thermal_generate_netlink_event(struct thermal_zone_device *tz, |
| 255 | enum events event) | 256 | enum events event) |
| 256 | { | 257 | { |
| 257 | return 0; | 258 | return 0; |
diff --git a/include/linux/tty.h b/include/linux/tty.h index 7e92bd86a808..8780bd2a272a 100644 --- a/include/linux/tty.h +++ b/include/linux/tty.h | |||
| @@ -575,8 +575,7 @@ extern void tty_audit_exit(void); | |||
| 575 | extern void tty_audit_fork(struct signal_struct *sig); | 575 | extern void tty_audit_fork(struct signal_struct *sig); |
| 576 | extern void tty_audit_tiocsti(struct tty_struct *tty, char ch); | 576 | extern void tty_audit_tiocsti(struct tty_struct *tty, char ch); |
| 577 | extern void tty_audit_push(struct tty_struct *tty); | 577 | extern void tty_audit_push(struct tty_struct *tty); |
| 578 | extern int tty_audit_push_task(struct task_struct *tsk, | 578 | extern int tty_audit_push_current(void); |
| 579 | kuid_t loginuid, u32 sessionid); | ||
| 580 | #else | 579 | #else |
| 581 | static inline void tty_audit_add_data(struct tty_struct *tty, | 580 | static inline void tty_audit_add_data(struct tty_struct *tty, |
| 582 | unsigned char *data, size_t size, unsigned icanon) | 581 | unsigned char *data, size_t size, unsigned icanon) |
| @@ -594,8 +593,7 @@ static inline void tty_audit_fork(struct signal_struct *sig) | |||
| 594 | static inline void tty_audit_push(struct tty_struct *tty) | 593 | static inline void tty_audit_push(struct tty_struct *tty) |
| 595 | { | 594 | { |
| 596 | } | 595 | } |
| 597 | static inline int tty_audit_push_task(struct task_struct *tsk, | 596 | static inline int tty_audit_push_current(void) |
| 598 | kuid_t loginuid, u32 sessionid) | ||
| 599 | { | 597 | { |
| 600 | return 0; | 598 | return 0; |
| 601 | } | 599 | } |
diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h index da46327fca17..f18d64129f99 100644 --- a/include/linux/usb/usbnet.h +++ b/include/linux/usb/usbnet.h | |||
| @@ -56,6 +56,8 @@ struct usbnet { | |||
| 56 | struct sk_buff_head done; | 56 | struct sk_buff_head done; |
| 57 | struct sk_buff_head rxq_pause; | 57 | struct sk_buff_head rxq_pause; |
| 58 | struct urb *interrupt; | 58 | struct urb *interrupt; |
| 59 | unsigned interrupt_count; | ||
| 60 | struct mutex interrupt_mutex; | ||
| 59 | struct usb_anchor deferred; | 61 | struct usb_anchor deferred; |
| 60 | struct tasklet_struct bh; | 62 | struct tasklet_struct bh; |
| 61 | 63 | ||
| @@ -248,4 +250,7 @@ extern int usbnet_nway_reset(struct net_device *net); | |||
| 248 | extern int usbnet_manage_power(struct usbnet *, int); | 250 | extern int usbnet_manage_power(struct usbnet *, int); |
| 249 | extern void usbnet_link_change(struct usbnet *, bool, bool); | 251 | extern void usbnet_link_change(struct usbnet *, bool, bool); |
| 250 | 252 | ||
| 253 | extern int usbnet_status_start(struct usbnet *dev, gfp_t mem_flags); | ||
| 254 | extern void usbnet_status_stop(struct usbnet *dev); | ||
| 255 | |||
| 251 | #endif /* __LINUX_USB_USBNET_H */ | 256 | #endif /* __LINUX_USB_USBNET_H */ |
