diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/amba/bus.h | 10 | ||||
-rw-r--r-- | include/linux/cgroup.h | 4 | ||||
-rw-r--r-- | include/linux/cpuset.h | 37 | ||||
-rw-r--r-- | include/linux/device.h | 5 | ||||
-rw-r--r-- | include/linux/dmaengine.h | 3 | ||||
-rw-r--r-- | include/linux/dmar.h | 50 | ||||
-rw-r--r-- | include/linux/elf.h | 5 | ||||
-rw-r--r-- | include/linux/fence.h | 4 | ||||
-rw-r--r-- | include/linux/hid.h | 43 | ||||
-rw-r--r-- | include/linux/hugetlb.h | 46 | ||||
-rw-r--r-- | include/linux/i2c.h | 2 | ||||
-rw-r--r-- | include/linux/iommu.h | 3 | ||||
-rw-r--r-- | include/linux/ipmi.h | 6 | ||||
-rw-r--r-- | include/linux/ipmi_smi.h | 10 | ||||
-rw-r--r-- | include/linux/irqchip/mips-gic.h | 249 | ||||
-rw-r--r-- | include/linux/kprobes.h | 1 | ||||
-rw-r--r-- | include/linux/libata.h | 6 | ||||
-rw-r--r-- | include/linux/list.h | 34 | ||||
-rw-r--r-- | include/linux/mm.h | 11 | ||||
-rw-r--r-- | include/linux/mod_devicetable.h | 2 | ||||
-rw-r--r-- | include/linux/pci.h | 2 | ||||
-rw-r--r-- | include/linux/percpu-refcount.h | 4 | ||||
-rw-r--r-- | include/linux/platform_data/dma-imx.h | 1 | ||||
-rw-r--r-- | include/linux/plist.h | 10 | ||||
-rw-r--r-- | include/linux/pm_runtime.h | 6 | ||||
-rw-r--r-- | include/linux/pstore_ram.h | 4 | ||||
-rw-r--r-- | include/linux/rculist.h | 8 |
27 files changed, 481 insertions, 85 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index c324f5700d1a..ac02f9bd63dc 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
@@ -97,6 +97,16 @@ void amba_release_regions(struct amba_device *); | |||
97 | #define amba_pclk_disable(d) \ | 97 | #define amba_pclk_disable(d) \ |
98 | do { if (!IS_ERR((d)->pclk)) clk_disable((d)->pclk); } while (0) | 98 | do { if (!IS_ERR((d)->pclk)) clk_disable((d)->pclk); } while (0) |
99 | 99 | ||
100 | static inline int amba_pclk_prepare(struct amba_device *dev) | ||
101 | { | ||
102 | return clk_prepare(dev->pclk); | ||
103 | } | ||
104 | |||
105 | static inline void amba_pclk_unprepare(struct amba_device *dev) | ||
106 | { | ||
107 | clk_unprepare(dev->pclk); | ||
108 | } | ||
109 | |||
100 | /* Some drivers don't use the struct amba_device */ | 110 | /* Some drivers don't use the struct amba_device */ |
101 | #define AMBA_CONFIG_BITS(a) (((a) >> 24) & 0xff) | 111 | #define AMBA_CONFIG_BITS(a) (((a) >> 24) & 0xff) |
102 | #define AMBA_REV_BITS(a) (((a) >> 20) & 0x0f) | 112 | #define AMBA_REV_BITS(a) (((a) >> 20) & 0x0f) |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 641e56494a92..da0dae0600e6 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
@@ -638,8 +638,10 @@ struct cgroup_subsys { | |||
638 | struct cgroup_subsys_state *(*css_alloc)(struct cgroup_subsys_state *parent_css); | 638 | struct cgroup_subsys_state *(*css_alloc)(struct cgroup_subsys_state *parent_css); |
639 | int (*css_online)(struct cgroup_subsys_state *css); | 639 | int (*css_online)(struct cgroup_subsys_state *css); |
640 | void (*css_offline)(struct cgroup_subsys_state *css); | 640 | void (*css_offline)(struct cgroup_subsys_state *css); |
641 | void (*css_released)(struct cgroup_subsys_state *css); | ||
641 | void (*css_free)(struct cgroup_subsys_state *css); | 642 | void (*css_free)(struct cgroup_subsys_state *css); |
642 | void (*css_reset)(struct cgroup_subsys_state *css); | 643 | void (*css_reset)(struct cgroup_subsys_state *css); |
644 | void (*css_e_css_changed)(struct cgroup_subsys_state *css); | ||
643 | 645 | ||
644 | int (*can_attach)(struct cgroup_subsys_state *css, | 646 | int (*can_attach)(struct cgroup_subsys_state *css, |
645 | struct cgroup_taskset *tset); | 647 | struct cgroup_taskset *tset); |
@@ -934,6 +936,8 @@ void css_task_iter_end(struct css_task_iter *it); | |||
934 | int cgroup_attach_task_all(struct task_struct *from, struct task_struct *); | 936 | int cgroup_attach_task_all(struct task_struct *from, struct task_struct *); |
935 | int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from); | 937 | int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from); |
936 | 938 | ||
939 | struct cgroup_subsys_state *cgroup_get_e_css(struct cgroup *cgroup, | ||
940 | struct cgroup_subsys *ss); | ||
937 | struct cgroup_subsys_state *css_tryget_online_from_dir(struct dentry *dentry, | 941 | struct cgroup_subsys_state *css_tryget_online_from_dir(struct dentry *dentry, |
938 | struct cgroup_subsys *ss); | 942 | struct cgroup_subsys *ss); |
939 | 943 | ||
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h index 2f073db7392e..1b357997cac5 100644 --- a/include/linux/cpuset.h +++ b/include/linux/cpuset.h | |||
@@ -48,29 +48,16 @@ extern nodemask_t cpuset_mems_allowed(struct task_struct *p); | |||
48 | void cpuset_init_current_mems_allowed(void); | 48 | void cpuset_init_current_mems_allowed(void); |
49 | int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask); | 49 | int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask); |
50 | 50 | ||
51 | extern int __cpuset_node_allowed_softwall(int node, gfp_t gfp_mask); | 51 | extern int __cpuset_node_allowed(int node, gfp_t gfp_mask); |
52 | extern int __cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask); | ||
53 | 52 | ||
54 | static inline int cpuset_node_allowed_softwall(int node, gfp_t gfp_mask) | 53 | static inline int cpuset_node_allowed(int node, gfp_t gfp_mask) |
55 | { | 54 | { |
56 | return nr_cpusets() <= 1 || | 55 | return nr_cpusets() <= 1 || __cpuset_node_allowed(node, gfp_mask); |
57 | __cpuset_node_allowed_softwall(node, gfp_mask); | ||
58 | } | 56 | } |
59 | 57 | ||
60 | static inline int cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask) | 58 | static inline int cpuset_zone_allowed(struct zone *z, gfp_t gfp_mask) |
61 | { | 59 | { |
62 | return nr_cpusets() <= 1 || | 60 | return cpuset_node_allowed(zone_to_nid(z), gfp_mask); |
63 | __cpuset_node_allowed_hardwall(node, gfp_mask); | ||
64 | } | ||
65 | |||
66 | static inline int cpuset_zone_allowed_softwall(struct zone *z, gfp_t gfp_mask) | ||
67 | { | ||
68 | return cpuset_node_allowed_softwall(zone_to_nid(z), gfp_mask); | ||
69 | } | ||
70 | |||
71 | static inline int cpuset_zone_allowed_hardwall(struct zone *z, gfp_t gfp_mask) | ||
72 | { | ||
73 | return cpuset_node_allowed_hardwall(zone_to_nid(z), gfp_mask); | ||
74 | } | 61 | } |
75 | 62 | ||
76 | extern int cpuset_mems_allowed_intersects(const struct task_struct *tsk1, | 63 | extern int cpuset_mems_allowed_intersects(const struct task_struct *tsk1, |
@@ -179,22 +166,12 @@ static inline int cpuset_nodemask_valid_mems_allowed(nodemask_t *nodemask) | |||
179 | return 1; | 166 | return 1; |
180 | } | 167 | } |
181 | 168 | ||
182 | static inline int cpuset_node_allowed_softwall(int node, gfp_t gfp_mask) | 169 | static inline int cpuset_node_allowed(int node, gfp_t gfp_mask) |
183 | { | ||
184 | return 1; | ||
185 | } | ||
186 | |||
187 | static inline int cpuset_node_allowed_hardwall(int node, gfp_t gfp_mask) | ||
188 | { | ||
189 | return 1; | ||
190 | } | ||
191 | |||
192 | static inline int cpuset_zone_allowed_softwall(struct zone *z, gfp_t gfp_mask) | ||
193 | { | 170 | { |
194 | return 1; | 171 | return 1; |
195 | } | 172 | } |
196 | 173 | ||
197 | static inline int cpuset_zone_allowed_hardwall(struct zone *z, gfp_t gfp_mask) | 174 | static inline int cpuset_zone_allowed(struct zone *z, gfp_t gfp_mask) |
198 | { | 175 | { |
199 | return 1; | 176 | return 1; |
200 | } | 177 | } |
diff --git a/include/linux/device.h b/include/linux/device.h index ce1f21608b16..41d6a7555c6b 100644 --- a/include/linux/device.h +++ b/include/linux/device.h | |||
@@ -911,6 +911,11 @@ static inline void device_unlock(struct device *dev) | |||
911 | mutex_unlock(&dev->mutex); | 911 | mutex_unlock(&dev->mutex); |
912 | } | 912 | } |
913 | 913 | ||
914 | static inline void device_lock_assert(struct device *dev) | ||
915 | { | ||
916 | lockdep_assert_held(&dev->mutex); | ||
917 | } | ||
918 | |||
914 | void driver_init(void); | 919 | void driver_init(void); |
915 | 920 | ||
916 | /* | 921 | /* |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 653a1fd07ae8..40cd75e21ea2 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
@@ -447,7 +447,8 @@ struct dmaengine_unmap_data { | |||
447 | * communicate status | 447 | * communicate status |
448 | * @phys: physical address of the descriptor | 448 | * @phys: physical address of the descriptor |
449 | * @chan: target channel for this operation | 449 | * @chan: target channel for this operation |
450 | * @tx_submit: set the prepared descriptor(s) to be executed by the engine | 450 | * @tx_submit: accept the descriptor, assign ordered cookie and mark the |
451 | * descriptor pending. To be pushed on .issue_pending() call | ||
451 | * @callback: routine to call after this operation is complete | 452 | * @callback: routine to call after this operation is complete |
452 | * @callback_param: general parameter to pass to the callback routine | 453 | * @callback_param: general parameter to pass to the callback routine |
453 | * ---async_tx api specific fields--- | 454 | * ---async_tx api specific fields--- |
diff --git a/include/linux/dmar.h b/include/linux/dmar.h index 593fff99e6bf..30624954dec5 100644 --- a/include/linux/dmar.h +++ b/include/linux/dmar.h | |||
@@ -30,6 +30,12 @@ | |||
30 | 30 | ||
31 | struct acpi_dmar_header; | 31 | struct acpi_dmar_header; |
32 | 32 | ||
33 | #ifdef CONFIG_X86 | ||
34 | # define DMAR_UNITS_SUPPORTED MAX_IO_APICS | ||
35 | #else | ||
36 | # define DMAR_UNITS_SUPPORTED 64 | ||
37 | #endif | ||
38 | |||
33 | /* DMAR Flags */ | 39 | /* DMAR Flags */ |
34 | #define DMAR_INTR_REMAP 0x1 | 40 | #define DMAR_INTR_REMAP 0x1 |
35 | #define DMAR_X2APIC_OPT_OUT 0x2 | 41 | #define DMAR_X2APIC_OPT_OUT 0x2 |
@@ -120,28 +126,60 @@ extern int dmar_remove_dev_scope(struct dmar_pci_notify_info *info, | |||
120 | /* Intel IOMMU detection */ | 126 | /* Intel IOMMU detection */ |
121 | extern int detect_intel_iommu(void); | 127 | extern int detect_intel_iommu(void); |
122 | extern int enable_drhd_fault_handling(void); | 128 | extern int enable_drhd_fault_handling(void); |
129 | extern int dmar_device_add(acpi_handle handle); | ||
130 | extern int dmar_device_remove(acpi_handle handle); | ||
131 | |||
132 | static inline int dmar_res_noop(struct acpi_dmar_header *hdr, void *arg) | ||
133 | { | ||
134 | return 0; | ||
135 | } | ||
123 | 136 | ||
124 | #ifdef CONFIG_INTEL_IOMMU | 137 | #ifdef CONFIG_INTEL_IOMMU |
125 | extern int iommu_detected, no_iommu; | 138 | extern int iommu_detected, no_iommu; |
126 | extern int intel_iommu_init(void); | 139 | extern int intel_iommu_init(void); |
127 | extern int dmar_parse_one_rmrr(struct acpi_dmar_header *header); | 140 | extern int dmar_parse_one_rmrr(struct acpi_dmar_header *header, void *arg); |
128 | extern int dmar_parse_one_atsr(struct acpi_dmar_header *header); | 141 | extern int dmar_parse_one_atsr(struct acpi_dmar_header *header, void *arg); |
142 | extern int dmar_check_one_atsr(struct acpi_dmar_header *hdr, void *arg); | ||
143 | extern int dmar_release_one_atsr(struct acpi_dmar_header *hdr, void *arg); | ||
144 | extern int dmar_iommu_hotplug(struct dmar_drhd_unit *dmaru, bool insert); | ||
129 | extern int dmar_iommu_notify_scope_dev(struct dmar_pci_notify_info *info); | 145 | extern int dmar_iommu_notify_scope_dev(struct dmar_pci_notify_info *info); |
130 | #else /* !CONFIG_INTEL_IOMMU: */ | 146 | #else /* !CONFIG_INTEL_IOMMU: */ |
131 | static inline int intel_iommu_init(void) { return -ENODEV; } | 147 | static inline int intel_iommu_init(void) { return -ENODEV; } |
132 | static inline int dmar_parse_one_rmrr(struct acpi_dmar_header *header) | 148 | |
149 | #define dmar_parse_one_rmrr dmar_res_noop | ||
150 | #define dmar_parse_one_atsr dmar_res_noop | ||
151 | #define dmar_check_one_atsr dmar_res_noop | ||
152 | #define dmar_release_one_atsr dmar_res_noop | ||
153 | |||
154 | static inline int dmar_iommu_notify_scope_dev(struct dmar_pci_notify_info *info) | ||
133 | { | 155 | { |
134 | return 0; | 156 | return 0; |
135 | } | 157 | } |
136 | static inline int dmar_parse_one_atsr(struct acpi_dmar_header *header) | 158 | |
159 | static inline int dmar_iommu_hotplug(struct dmar_drhd_unit *dmaru, bool insert) | ||
137 | { | 160 | { |
138 | return 0; | 161 | return 0; |
139 | } | 162 | } |
140 | static inline int dmar_iommu_notify_scope_dev(struct dmar_pci_notify_info *info) | 163 | #endif /* CONFIG_INTEL_IOMMU */ |
164 | |||
165 | #ifdef CONFIG_IRQ_REMAP | ||
166 | extern int dmar_ir_hotplug(struct dmar_drhd_unit *dmaru, bool insert); | ||
167 | #else /* CONFIG_IRQ_REMAP */ | ||
168 | static inline int dmar_ir_hotplug(struct dmar_drhd_unit *dmaru, bool insert) | ||
169 | { return 0; } | ||
170 | #endif /* CONFIG_IRQ_REMAP */ | ||
171 | |||
172 | #else /* CONFIG_DMAR_TABLE */ | ||
173 | |||
174 | static inline int dmar_device_add(void *handle) | ||
175 | { | ||
176 | return 0; | ||
177 | } | ||
178 | |||
179 | static inline int dmar_device_remove(void *handle) | ||
141 | { | 180 | { |
142 | return 0; | 181 | return 0; |
143 | } | 182 | } |
144 | #endif /* CONFIG_INTEL_IOMMU */ | ||
145 | 183 | ||
146 | #endif /* CONFIG_DMAR_TABLE */ | 184 | #endif /* CONFIG_DMAR_TABLE */ |
147 | 185 | ||
diff --git a/include/linux/elf.h b/include/linux/elf.h index 67a5fa7830c4..20fa8d8ae313 100644 --- a/include/linux/elf.h +++ b/include/linux/elf.h | |||
@@ -15,6 +15,11 @@ | |||
15 | set_personality(PER_LINUX | (current->personality & (~PER_MASK))) | 15 | set_personality(PER_LINUX | (current->personality & (~PER_MASK))) |
16 | #endif | 16 | #endif |
17 | 17 | ||
18 | #ifndef SET_PERSONALITY2 | ||
19 | #define SET_PERSONALITY2(ex, state) \ | ||
20 | SET_PERSONALITY(ex) | ||
21 | #endif | ||
22 | |||
18 | #if ELF_CLASS == ELFCLASS32 | 23 | #if ELF_CLASS == ELFCLASS32 |
19 | 24 | ||
20 | extern Elf32_Dyn _DYNAMIC []; | 25 | extern Elf32_Dyn _DYNAMIC []; |
diff --git a/include/linux/fence.h b/include/linux/fence.h index d174585b874b..39efee130d2b 100644 --- a/include/linux/fence.h +++ b/include/linux/fence.h | |||
@@ -128,8 +128,8 @@ struct fence_cb { | |||
128 | * from irq context, so normal spinlocks can be used. | 128 | * from irq context, so normal spinlocks can be used. |
129 | * | 129 | * |
130 | * A return value of false indicates the fence already passed, | 130 | * A return value of false indicates the fence already passed, |
131 | * or some failure occured that made it impossible to enable | 131 | * or some failure occurred that made it impossible to enable |
132 | * signaling. True indicates succesful enabling. | 132 | * signaling. True indicates successful enabling. |
133 | * | 133 | * |
134 | * fence->status may be set in enable_signaling, but only when false is | 134 | * fence->status may be set in enable_signaling, but only when false is |
135 | * returned. | 135 | * returned. |
diff --git a/include/linux/hid.h b/include/linux/hid.h index 78ea9bf941cd..06c4607744f6 100644 --- a/include/linux/hid.h +++ b/include/linux/hid.h | |||
@@ -234,6 +234,33 @@ struct hid_item { | |||
234 | #define HID_DG_BARRELSWITCH 0x000d0044 | 234 | #define HID_DG_BARRELSWITCH 0x000d0044 |
235 | #define HID_DG_ERASER 0x000d0045 | 235 | #define HID_DG_ERASER 0x000d0045 |
236 | #define HID_DG_TABLETPICK 0x000d0046 | 236 | #define HID_DG_TABLETPICK 0x000d0046 |
237 | |||
238 | #define HID_CP_CONSUMERCONTROL 0x000c0001 | ||
239 | #define HID_CP_NUMERICKEYPAD 0x000c0002 | ||
240 | #define HID_CP_PROGRAMMABLEBUTTONS 0x000c0003 | ||
241 | #define HID_CP_MICROPHONE 0x000c0004 | ||
242 | #define HID_CP_HEADPHONE 0x000c0005 | ||
243 | #define HID_CP_GRAPHICEQUALIZER 0x000c0006 | ||
244 | #define HID_CP_FUNCTIONBUTTONS 0x000c0036 | ||
245 | #define HID_CP_SELECTION 0x000c0080 | ||
246 | #define HID_CP_MEDIASELECTION 0x000c0087 | ||
247 | #define HID_CP_SELECTDISC 0x000c00ba | ||
248 | #define HID_CP_PLAYBACKSPEED 0x000c00f1 | ||
249 | #define HID_CP_PROXIMITY 0x000c0109 | ||
250 | #define HID_CP_SPEAKERSYSTEM 0x000c0160 | ||
251 | #define HID_CP_CHANNELLEFT 0x000c0161 | ||
252 | #define HID_CP_CHANNELRIGHT 0x000c0162 | ||
253 | #define HID_CP_CHANNELCENTER 0x000c0163 | ||
254 | #define HID_CP_CHANNELFRONT 0x000c0164 | ||
255 | #define HID_CP_CHANNELCENTERFRONT 0x000c0165 | ||
256 | #define HID_CP_CHANNELSIDE 0x000c0166 | ||
257 | #define HID_CP_CHANNELSURROUND 0x000c0167 | ||
258 | #define HID_CP_CHANNELLOWFREQUENCYENHANCEMENT 0x000c0168 | ||
259 | #define HID_CP_CHANNELTOP 0x000c0169 | ||
260 | #define HID_CP_CHANNELUNKNOWN 0x000c016a | ||
261 | #define HID_CP_APPLICATIONLAUNCHBUTTONS 0x000c0180 | ||
262 | #define HID_CP_GENERICGUIAPPLICATIONCONTROLS 0x000c0200 | ||
263 | |||
237 | #define HID_DG_CONFIDENCE 0x000d0047 | 264 | #define HID_DG_CONFIDENCE 0x000d0047 |
238 | #define HID_DG_WIDTH 0x000d0048 | 265 | #define HID_DG_WIDTH 0x000d0048 |
239 | #define HID_DG_HEIGHT 0x000d0049 | 266 | #define HID_DG_HEIGHT 0x000d0049 |
@@ -312,11 +339,8 @@ struct hid_item { | |||
312 | * Vendor specific HID device groups | 339 | * Vendor specific HID device groups |
313 | */ | 340 | */ |
314 | #define HID_GROUP_RMI 0x0100 | 341 | #define HID_GROUP_RMI 0x0100 |
315 | |||
316 | /* | ||
317 | * Vendor specific HID device groups | ||
318 | */ | ||
319 | #define HID_GROUP_WACOM 0x0101 | 342 | #define HID_GROUP_WACOM 0x0101 |
343 | #define HID_GROUP_LOGITECH_DJ_DEVICE 0x0102 | ||
320 | 344 | ||
321 | /* | 345 | /* |
322 | * This is the global environment of the parser. This information is | 346 | * This is the global environment of the parser. This information is |
@@ -1063,6 +1087,17 @@ static inline void hid_hw_wait(struct hid_device *hdev) | |||
1063 | hdev->ll_driver->wait(hdev); | 1087 | hdev->ll_driver->wait(hdev); |
1064 | } | 1088 | } |
1065 | 1089 | ||
1090 | /** | ||
1091 | * hid_report_len - calculate the report length | ||
1092 | * | ||
1093 | * @report: the report we want to know the length | ||
1094 | */ | ||
1095 | static inline int hid_report_len(struct hid_report *report) | ||
1096 | { | ||
1097 | /* equivalent to DIV_ROUND_UP(report->size, 8) + !!(report->id > 0) */ | ||
1098 | return ((report->size - 1) >> 3) + 1 + (report->id > 0); | ||
1099 | } | ||
1100 | |||
1066 | int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, | 1101 | int hid_report_raw_event(struct hid_device *hid, int type, u8 *data, int size, |
1067 | int interrupt); | 1102 | int interrupt); |
1068 | 1103 | ||
diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index cdd149ca5cc0..431b7fc605c9 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h | |||
@@ -175,6 +175,52 @@ static inline void __unmap_hugepage_range(struct mmu_gather *tlb, | |||
175 | } | 175 | } |
176 | 176 | ||
177 | #endif /* !CONFIG_HUGETLB_PAGE */ | 177 | #endif /* !CONFIG_HUGETLB_PAGE */ |
178 | /* | ||
179 | * hugepages at page global directory. If arch support | ||
180 | * hugepages at pgd level, they need to define this. | ||
181 | */ | ||
182 | #ifndef pgd_huge | ||
183 | #define pgd_huge(x) 0 | ||
184 | #endif | ||
185 | |||
186 | #ifndef pgd_write | ||
187 | static inline int pgd_write(pgd_t pgd) | ||
188 | { | ||
189 | BUG(); | ||
190 | return 0; | ||
191 | } | ||
192 | #endif | ||
193 | |||
194 | #ifndef pud_write | ||
195 | static inline int pud_write(pud_t pud) | ||
196 | { | ||
197 | BUG(); | ||
198 | return 0; | ||
199 | } | ||
200 | #endif | ||
201 | |||
202 | #ifndef is_hugepd | ||
203 | /* | ||
204 | * Some architectures requires a hugepage directory format that is | ||
205 | * required to support multiple hugepage sizes. For example | ||
206 | * a4fe3ce76 "powerpc/mm: Allow more flexible layouts for hugepage pagetables" | ||
207 | * introduced the same on powerpc. This allows for a more flexible hugepage | ||
208 | * pagetable layout. | ||
209 | */ | ||
210 | typedef struct { unsigned long pd; } hugepd_t; | ||
211 | #define is_hugepd(hugepd) (0) | ||
212 | #define __hugepd(x) ((hugepd_t) { (x) }) | ||
213 | static inline int gup_huge_pd(hugepd_t hugepd, unsigned long addr, | ||
214 | unsigned pdshift, unsigned long end, | ||
215 | int write, struct page **pages, int *nr) | ||
216 | { | ||
217 | return 0; | ||
218 | } | ||
219 | #else | ||
220 | extern int gup_huge_pd(hugepd_t hugepd, unsigned long addr, | ||
221 | unsigned pdshift, unsigned long end, | ||
222 | int write, struct page **pages, int *nr); | ||
223 | #endif | ||
178 | 224 | ||
179 | #define HUGETLB_ANON_FILE "anon_hugepage" | 225 | #define HUGETLB_ANON_FILE "anon_hugepage" |
180 | 226 | ||
diff --git a/include/linux/i2c.h b/include/linux/i2c.h index b556e0ab946f..70ee0d3a2be3 100644 --- a/include/linux/i2c.h +++ b/include/linux/i2c.h | |||
@@ -359,7 +359,7 @@ i2c_register_board_info(int busnum, struct i2c_board_info const *info, | |||
359 | * to name two of the most common. | 359 | * to name two of the most common. |
360 | * | 360 | * |
361 | * The return codes from the @master_xfer field should indicate the type of | 361 | * The return codes from the @master_xfer field should indicate the type of |
362 | * error code that occured during the transfer, as documented in the kernel | 362 | * error code that occurred during the transfer, as documented in the kernel |
363 | * Documentation file Documentation/i2c/fault-codes. | 363 | * Documentation file Documentation/i2c/fault-codes. |
364 | */ | 364 | */ |
365 | struct i2c_algorithm { | 365 | struct i2c_algorithm { |
diff --git a/include/linux/iommu.h b/include/linux/iommu.h index b29a5982e1c3..7a7bd15e54f1 100644 --- a/include/linux/iommu.h +++ b/include/linux/iommu.h | |||
@@ -28,7 +28,7 @@ | |||
28 | #define IOMMU_READ (1 << 0) | 28 | #define IOMMU_READ (1 << 0) |
29 | #define IOMMU_WRITE (1 << 1) | 29 | #define IOMMU_WRITE (1 << 1) |
30 | #define IOMMU_CACHE (1 << 2) /* DMA cache coherency */ | 30 | #define IOMMU_CACHE (1 << 2) /* DMA cache coherency */ |
31 | #define IOMMU_EXEC (1 << 3) | 31 | #define IOMMU_NOEXEC (1 << 3) |
32 | 32 | ||
33 | struct iommu_ops; | 33 | struct iommu_ops; |
34 | struct iommu_group; | 34 | struct iommu_group; |
@@ -62,6 +62,7 @@ enum iommu_cap { | |||
62 | IOMMU_CAP_CACHE_COHERENCY, /* IOMMU can enforce cache coherent DMA | 62 | IOMMU_CAP_CACHE_COHERENCY, /* IOMMU can enforce cache coherent DMA |
63 | transactions */ | 63 | transactions */ |
64 | IOMMU_CAP_INTR_REMAP, /* IOMMU supports interrupt isolation */ | 64 | IOMMU_CAP_INTR_REMAP, /* IOMMU supports interrupt isolation */ |
65 | IOMMU_CAP_NOEXEC, /* IOMMU_NOEXEC flag */ | ||
65 | }; | 66 | }; |
66 | 67 | ||
67 | /* | 68 | /* |
diff --git a/include/linux/ipmi.h b/include/linux/ipmi.h index 76d2acbfa7c6..838dbfa3c331 100644 --- a/include/linux/ipmi.h +++ b/include/linux/ipmi.h | |||
@@ -37,6 +37,7 @@ | |||
37 | 37 | ||
38 | #include <linux/list.h> | 38 | #include <linux/list.h> |
39 | #include <linux/proc_fs.h> | 39 | #include <linux/proc_fs.h> |
40 | #include <linux/acpi.h> /* For acpi_handle */ | ||
40 | 41 | ||
41 | struct module; | 42 | struct module; |
42 | struct device; | 43 | struct device; |
@@ -278,15 +279,18 @@ enum ipmi_addr_src { | |||
278 | SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS, | 279 | SI_INVALID = 0, SI_HOTMOD, SI_HARDCODED, SI_SPMI, SI_ACPI, SI_SMBIOS, |
279 | SI_PCI, SI_DEVICETREE, SI_DEFAULT | 280 | SI_PCI, SI_DEVICETREE, SI_DEFAULT |
280 | }; | 281 | }; |
282 | const char *ipmi_addr_src_to_str(enum ipmi_addr_src src); | ||
281 | 283 | ||
282 | union ipmi_smi_info_union { | 284 | union ipmi_smi_info_union { |
285 | #ifdef CONFIG_ACPI | ||
283 | /* | 286 | /* |
284 | * the acpi_info element is defined for the SI_ACPI | 287 | * the acpi_info element is defined for the SI_ACPI |
285 | * address type | 288 | * address type |
286 | */ | 289 | */ |
287 | struct { | 290 | struct { |
288 | void *acpi_handle; | 291 | acpi_handle acpi_handle; |
289 | } acpi_info; | 292 | } acpi_info; |
293 | #endif | ||
290 | }; | 294 | }; |
291 | 295 | ||
292 | struct ipmi_smi_info { | 296 | struct ipmi_smi_info { |
diff --git a/include/linux/ipmi_smi.h b/include/linux/ipmi_smi.h index bd349240d50e..0b1e569f5ff5 100644 --- a/include/linux/ipmi_smi.h +++ b/include/linux/ipmi_smi.h | |||
@@ -98,12 +98,11 @@ struct ipmi_smi_handlers { | |||
98 | operation is not allowed to fail. If an error occurs, it | 98 | operation is not allowed to fail. If an error occurs, it |
99 | should report back the error in a received message. It may | 99 | should report back the error in a received message. It may |
100 | do this in the current call context, since no write locks | 100 | do this in the current call context, since no write locks |
101 | are held when this is run. If the priority is > 0, the | 101 | are held when this is run. Message are delivered one at |
102 | message will go into a high-priority queue and be sent | 102 | a time by the message handler, a new message will not be |
103 | first. Otherwise, it goes into a normal-priority queue. */ | 103 | delivered until the previous message is returned. */ |
104 | void (*sender)(void *send_info, | 104 | void (*sender)(void *send_info, |
105 | struct ipmi_smi_msg *msg, | 105 | struct ipmi_smi_msg *msg); |
106 | int priority); | ||
107 | 106 | ||
108 | /* Called by the upper layer to request that we try to get | 107 | /* Called by the upper layer to request that we try to get |
109 | events from the BMC we are attached to. */ | 108 | events from the BMC we are attached to. */ |
@@ -212,7 +211,6 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers, | |||
212 | void *send_info, | 211 | void *send_info, |
213 | struct ipmi_device_id *device_id, | 212 | struct ipmi_device_id *device_id, |
214 | struct device *dev, | 213 | struct device *dev, |
215 | const char *sysfs_name, | ||
216 | unsigned char slave_addr); | 214 | unsigned char slave_addr); |
217 | 215 | ||
218 | /* | 216 | /* |
diff --git a/include/linux/irqchip/mips-gic.h b/include/linux/irqchip/mips-gic.h new file mode 100644 index 000000000000..420f77b34d02 --- /dev/null +++ b/include/linux/irqchip/mips-gic.h | |||
@@ -0,0 +1,249 @@ | |||
1 | /* | ||
2 | * This file is subject to the terms and conditions of the GNU General Public | ||
3 | * License. See the file "COPYING" in the main directory of this archive | ||
4 | * for more details. | ||
5 | * | ||
6 | * Copyright (C) 2000, 07 MIPS Technologies, Inc. | ||
7 | */ | ||
8 | #ifndef __LINUX_IRQCHIP_MIPS_GIC_H | ||
9 | #define __LINUX_IRQCHIP_MIPS_GIC_H | ||
10 | |||
11 | #include <linux/clocksource.h> | ||
12 | |||
13 | #define GIC_MAX_INTRS 256 | ||
14 | |||
15 | /* Constants */ | ||
16 | #define GIC_POL_POS 1 | ||
17 | #define GIC_POL_NEG 0 | ||
18 | #define GIC_TRIG_EDGE 1 | ||
19 | #define GIC_TRIG_LEVEL 0 | ||
20 | #define GIC_TRIG_DUAL_ENABLE 1 | ||
21 | #define GIC_TRIG_DUAL_DISABLE 0 | ||
22 | |||
23 | #define MSK(n) ((1 << (n)) - 1) | ||
24 | |||
25 | /* Accessors */ | ||
26 | #define GIC_REG(segment, offset) (segment##_##SECTION_OFS + offset##_##OFS) | ||
27 | |||
28 | /* GIC Address Space */ | ||
29 | #define SHARED_SECTION_OFS 0x0000 | ||
30 | #define SHARED_SECTION_SIZE 0x8000 | ||
31 | #define VPE_LOCAL_SECTION_OFS 0x8000 | ||
32 | #define VPE_LOCAL_SECTION_SIZE 0x4000 | ||
33 | #define VPE_OTHER_SECTION_OFS 0xc000 | ||
34 | #define VPE_OTHER_SECTION_SIZE 0x4000 | ||
35 | #define USM_VISIBLE_SECTION_OFS 0x10000 | ||
36 | #define USM_VISIBLE_SECTION_SIZE 0x10000 | ||
37 | |||
38 | /* Register Map for Shared Section */ | ||
39 | |||
40 | #define GIC_SH_CONFIG_OFS 0x0000 | ||
41 | |||
42 | /* Shared Global Counter */ | ||
43 | #define GIC_SH_COUNTER_31_00_OFS 0x0010 | ||
44 | #define GIC_SH_COUNTER_63_32_OFS 0x0014 | ||
45 | #define GIC_SH_REVISIONID_OFS 0x0020 | ||
46 | |||
47 | /* Convert an interrupt number to a byte offset/bit for multi-word registers */ | ||
48 | #define GIC_INTR_OFS(intr) (((intr) / 32) * 4) | ||
49 | #define GIC_INTR_BIT(intr) ((intr) % 32) | ||
50 | |||
51 | /* Polarity : Reset Value is always 0 */ | ||
52 | #define GIC_SH_SET_POLARITY_OFS 0x0100 | ||
53 | |||
54 | /* Triggering : Reset Value is always 0 */ | ||
55 | #define GIC_SH_SET_TRIGGER_OFS 0x0180 | ||
56 | |||
57 | /* Dual edge triggering : Reset Value is always 0 */ | ||
58 | #define GIC_SH_SET_DUAL_OFS 0x0200 | ||
59 | |||
60 | /* Set/Clear corresponding bit in Edge Detect Register */ | ||
61 | #define GIC_SH_WEDGE_OFS 0x0280 | ||
62 | |||
63 | /* Mask manipulation */ | ||
64 | #define GIC_SH_RMASK_OFS 0x0300 | ||
65 | #define GIC_SH_SMASK_OFS 0x0380 | ||
66 | |||
67 | /* Global Interrupt Mask Register (RO) - Bit Set == Interrupt enabled */ | ||
68 | #define GIC_SH_MASK_OFS 0x0400 | ||
69 | |||
70 | /* Pending Global Interrupts (RO) */ | ||
71 | #define GIC_SH_PEND_OFS 0x0480 | ||
72 | |||
73 | /* Maps Interrupt X to a Pin */ | ||
74 | #define GIC_SH_INTR_MAP_TO_PIN_BASE_OFS 0x0500 | ||
75 | #define GIC_SH_MAP_TO_PIN(intr) (4 * (intr)) | ||
76 | |||
77 | /* Maps Interrupt X to a VPE */ | ||
78 | #define GIC_SH_INTR_MAP_TO_VPE_BASE_OFS 0x2000 | ||
79 | #define GIC_SH_MAP_TO_VPE_REG_OFF(intr, vpe) \ | ||
80 | ((32 * (intr)) + (((vpe) / 32) * 4)) | ||
81 | #define GIC_SH_MAP_TO_VPE_REG_BIT(vpe) (1 << ((vpe) % 32)) | ||
82 | |||
83 | /* Register Map for Local Section */ | ||
84 | #define GIC_VPE_CTL_OFS 0x0000 | ||
85 | #define GIC_VPE_PEND_OFS 0x0004 | ||
86 | #define GIC_VPE_MASK_OFS 0x0008 | ||
87 | #define GIC_VPE_RMASK_OFS 0x000c | ||
88 | #define GIC_VPE_SMASK_OFS 0x0010 | ||
89 | #define GIC_VPE_WD_MAP_OFS 0x0040 | ||
90 | #define GIC_VPE_COMPARE_MAP_OFS 0x0044 | ||
91 | #define GIC_VPE_TIMER_MAP_OFS 0x0048 | ||
92 | #define GIC_VPE_FDC_MAP_OFS 0x004c | ||
93 | #define GIC_VPE_PERFCTR_MAP_OFS 0x0050 | ||
94 | #define GIC_VPE_SWINT0_MAP_OFS 0x0054 | ||
95 | #define GIC_VPE_SWINT1_MAP_OFS 0x0058 | ||
96 | #define GIC_VPE_OTHER_ADDR_OFS 0x0080 | ||
97 | #define GIC_VPE_WD_CONFIG0_OFS 0x0090 | ||
98 | #define GIC_VPE_WD_COUNT0_OFS 0x0094 | ||
99 | #define GIC_VPE_WD_INITIAL0_OFS 0x0098 | ||
100 | #define GIC_VPE_COMPARE_LO_OFS 0x00a0 | ||
101 | #define GIC_VPE_COMPARE_HI_OFS 0x00a4 | ||
102 | |||
103 | #define GIC_VPE_EIC_SHADOW_SET_BASE_OFS 0x0100 | ||
104 | #define GIC_VPE_EIC_SS(intr) (4 * (intr)) | ||
105 | |||
106 | #define GIC_VPE_EIC_VEC_BASE_OFS 0x0800 | ||
107 | #define GIC_VPE_EIC_VEC(intr) (4 * (intr)) | ||
108 | |||
109 | #define GIC_VPE_TENABLE_NMI_OFS 0x1000 | ||
110 | #define GIC_VPE_TENABLE_YQ_OFS 0x1004 | ||
111 | #define GIC_VPE_TENABLE_INT_31_0_OFS 0x1080 | ||
112 | #define GIC_VPE_TENABLE_INT_63_32_OFS 0x1084 | ||
113 | |||
114 | /* User Mode Visible Section Register Map */ | ||
115 | #define GIC_UMV_SH_COUNTER_31_00_OFS 0x0000 | ||
116 | #define GIC_UMV_SH_COUNTER_63_32_OFS 0x0004 | ||
117 | |||
118 | /* Masks */ | ||
119 | #define GIC_SH_CONFIG_COUNTSTOP_SHF 28 | ||
120 | #define GIC_SH_CONFIG_COUNTSTOP_MSK (MSK(1) << GIC_SH_CONFIG_COUNTSTOP_SHF) | ||
121 | |||
122 | #define GIC_SH_CONFIG_COUNTBITS_SHF 24 | ||
123 | #define GIC_SH_CONFIG_COUNTBITS_MSK (MSK(4) << GIC_SH_CONFIG_COUNTBITS_SHF) | ||
124 | |||
125 | #define GIC_SH_CONFIG_NUMINTRS_SHF 16 | ||
126 | #define GIC_SH_CONFIG_NUMINTRS_MSK (MSK(8) << GIC_SH_CONFIG_NUMINTRS_SHF) | ||
127 | |||
128 | #define GIC_SH_CONFIG_NUMVPES_SHF 0 | ||
129 | #define GIC_SH_CONFIG_NUMVPES_MSK (MSK(8) << GIC_SH_CONFIG_NUMVPES_SHF) | ||
130 | |||
131 | #define GIC_SH_WEDGE_SET(intr) ((intr) | (0x1 << 31)) | ||
132 | #define GIC_SH_WEDGE_CLR(intr) ((intr) & ~(0x1 << 31)) | ||
133 | |||
134 | #define GIC_MAP_TO_PIN_SHF 31 | ||
135 | #define GIC_MAP_TO_PIN_MSK (MSK(1) << GIC_MAP_TO_PIN_SHF) | ||
136 | #define GIC_MAP_TO_NMI_SHF 30 | ||
137 | #define GIC_MAP_TO_NMI_MSK (MSK(1) << GIC_MAP_TO_NMI_SHF) | ||
138 | #define GIC_MAP_TO_YQ_SHF 29 | ||
139 | #define GIC_MAP_TO_YQ_MSK (MSK(1) << GIC_MAP_TO_YQ_SHF) | ||
140 | #define GIC_MAP_SHF 0 | ||
141 | #define GIC_MAP_MSK (MSK(6) << GIC_MAP_SHF) | ||
142 | |||
143 | /* GIC_VPE_CTL Masks */ | ||
144 | #define GIC_VPE_CTL_FDC_RTBL_SHF 4 | ||
145 | #define GIC_VPE_CTL_FDC_RTBL_MSK (MSK(1) << GIC_VPE_CTL_FDC_RTBL_SHF) | ||
146 | #define GIC_VPE_CTL_SWINT_RTBL_SHF 3 | ||
147 | #define GIC_VPE_CTL_SWINT_RTBL_MSK (MSK(1) << GIC_VPE_CTL_SWINT_RTBL_SHF) | ||
148 | #define GIC_VPE_CTL_PERFCNT_RTBL_SHF 2 | ||
149 | #define GIC_VPE_CTL_PERFCNT_RTBL_MSK (MSK(1) << GIC_VPE_CTL_PERFCNT_RTBL_SHF) | ||
150 | #define GIC_VPE_CTL_TIMER_RTBL_SHF 1 | ||
151 | #define GIC_VPE_CTL_TIMER_RTBL_MSK (MSK(1) << GIC_VPE_CTL_TIMER_RTBL_SHF) | ||
152 | #define GIC_VPE_CTL_EIC_MODE_SHF 0 | ||
153 | #define GIC_VPE_CTL_EIC_MODE_MSK (MSK(1) << GIC_VPE_CTL_EIC_MODE_SHF) | ||
154 | |||
155 | /* GIC_VPE_PEND Masks */ | ||
156 | #define GIC_VPE_PEND_WD_SHF 0 | ||
157 | #define GIC_VPE_PEND_WD_MSK (MSK(1) << GIC_VPE_PEND_WD_SHF) | ||
158 | #define GIC_VPE_PEND_CMP_SHF 1 | ||
159 | #define GIC_VPE_PEND_CMP_MSK (MSK(1) << GIC_VPE_PEND_CMP_SHF) | ||
160 | #define GIC_VPE_PEND_TIMER_SHF 2 | ||
161 | #define GIC_VPE_PEND_TIMER_MSK (MSK(1) << GIC_VPE_PEND_TIMER_SHF) | ||
162 | #define GIC_VPE_PEND_PERFCOUNT_SHF 3 | ||
163 | #define GIC_VPE_PEND_PERFCOUNT_MSK (MSK(1) << GIC_VPE_PEND_PERFCOUNT_SHF) | ||
164 | #define GIC_VPE_PEND_SWINT0_SHF 4 | ||
165 | #define GIC_VPE_PEND_SWINT0_MSK (MSK(1) << GIC_VPE_PEND_SWINT0_SHF) | ||
166 | #define GIC_VPE_PEND_SWINT1_SHF 5 | ||
167 | #define GIC_VPE_PEND_SWINT1_MSK (MSK(1) << GIC_VPE_PEND_SWINT1_SHF) | ||
168 | |||
169 | /* GIC_VPE_RMASK Masks */ | ||
170 | #define GIC_VPE_RMASK_WD_SHF 0 | ||
171 | #define GIC_VPE_RMASK_WD_MSK (MSK(1) << GIC_VPE_RMASK_WD_SHF) | ||
172 | #define GIC_VPE_RMASK_CMP_SHF 1 | ||
173 | #define GIC_VPE_RMASK_CMP_MSK (MSK(1) << GIC_VPE_RMASK_CMP_SHF) | ||
174 | #define GIC_VPE_RMASK_TIMER_SHF 2 | ||
175 | #define GIC_VPE_RMASK_TIMER_MSK (MSK(1) << GIC_VPE_RMASK_TIMER_SHF) | ||
176 | #define GIC_VPE_RMASK_PERFCNT_SHF 3 | ||
177 | #define GIC_VPE_RMASK_PERFCNT_MSK (MSK(1) << GIC_VPE_RMASK_PERFCNT_SHF) | ||
178 | #define GIC_VPE_RMASK_SWINT0_SHF 4 | ||
179 | #define GIC_VPE_RMASK_SWINT0_MSK (MSK(1) << GIC_VPE_RMASK_SWINT0_SHF) | ||
180 | #define GIC_VPE_RMASK_SWINT1_SHF 5 | ||
181 | #define GIC_VPE_RMASK_SWINT1_MSK (MSK(1) << GIC_VPE_RMASK_SWINT1_SHF) | ||
182 | |||
183 | /* GIC_VPE_SMASK Masks */ | ||
184 | #define GIC_VPE_SMASK_WD_SHF 0 | ||
185 | #define GIC_VPE_SMASK_WD_MSK (MSK(1) << GIC_VPE_SMASK_WD_SHF) | ||
186 | #define GIC_VPE_SMASK_CMP_SHF 1 | ||
187 | #define GIC_VPE_SMASK_CMP_MSK (MSK(1) << GIC_VPE_SMASK_CMP_SHF) | ||
188 | #define GIC_VPE_SMASK_TIMER_SHF 2 | ||
189 | #define GIC_VPE_SMASK_TIMER_MSK (MSK(1) << GIC_VPE_SMASK_TIMER_SHF) | ||
190 | #define GIC_VPE_SMASK_PERFCNT_SHF 3 | ||
191 | #define GIC_VPE_SMASK_PERFCNT_MSK (MSK(1) << GIC_VPE_SMASK_PERFCNT_SHF) | ||
192 | #define GIC_VPE_SMASK_SWINT0_SHF 4 | ||
193 | #define GIC_VPE_SMASK_SWINT0_MSK (MSK(1) << GIC_VPE_SMASK_SWINT0_SHF) | ||
194 | #define GIC_VPE_SMASK_SWINT1_SHF 5 | ||
195 | #define GIC_VPE_SMASK_SWINT1_MSK (MSK(1) << GIC_VPE_SMASK_SWINT1_SHF) | ||
196 | |||
197 | /* GIC nomenclature for Core Interrupt Pins. */ | ||
198 | #define GIC_CPU_INT0 0 /* Core Interrupt 2 */ | ||
199 | #define GIC_CPU_INT1 1 /* . */ | ||
200 | #define GIC_CPU_INT2 2 /* . */ | ||
201 | #define GIC_CPU_INT3 3 /* . */ | ||
202 | #define GIC_CPU_INT4 4 /* . */ | ||
203 | #define GIC_CPU_INT5 5 /* Core Interrupt 7 */ | ||
204 | |||
205 | /* Add 2 to convert GIC CPU pin to core interrupt */ | ||
206 | #define GIC_CPU_PIN_OFFSET 2 | ||
207 | |||
208 | /* Add 2 to convert non-EIC hardware interrupt to EIC vector number. */ | ||
209 | #define GIC_CPU_TO_VEC_OFFSET 2 | ||
210 | |||
211 | /* Mapped interrupt to pin X, then GIC will generate the vector (X+1). */ | ||
212 | #define GIC_PIN_TO_VEC_OFFSET 1 | ||
213 | |||
214 | /* Local GIC interrupts. */ | ||
215 | #define GIC_LOCAL_INT_WD 0 /* GIC watchdog */ | ||
216 | #define GIC_LOCAL_INT_COMPARE 1 /* GIC count and compare timer */ | ||
217 | #define GIC_LOCAL_INT_TIMER 2 /* CPU timer interrupt */ | ||
218 | #define GIC_LOCAL_INT_PERFCTR 3 /* CPU performance counter */ | ||
219 | #define GIC_LOCAL_INT_SWINT0 4 /* CPU software interrupt 0 */ | ||
220 | #define GIC_LOCAL_INT_SWINT1 5 /* CPU software interrupt 1 */ | ||
221 | #define GIC_LOCAL_INT_FDC 6 /* CPU fast debug channel */ | ||
222 | #define GIC_NUM_LOCAL_INTRS 7 | ||
223 | |||
224 | /* Convert between local/shared IRQ number and GIC HW IRQ number. */ | ||
225 | #define GIC_LOCAL_HWIRQ_BASE 0 | ||
226 | #define GIC_LOCAL_TO_HWIRQ(x) (GIC_LOCAL_HWIRQ_BASE + (x)) | ||
227 | #define GIC_HWIRQ_TO_LOCAL(x) ((x) - GIC_LOCAL_HWIRQ_BASE) | ||
228 | #define GIC_SHARED_HWIRQ_BASE GIC_NUM_LOCAL_INTRS | ||
229 | #define GIC_SHARED_TO_HWIRQ(x) (GIC_SHARED_HWIRQ_BASE + (x)) | ||
230 | #define GIC_HWIRQ_TO_SHARED(x) ((x) - GIC_SHARED_HWIRQ_BASE) | ||
231 | |||
232 | extern unsigned int gic_present; | ||
233 | |||
234 | extern void gic_init(unsigned long gic_base_addr, | ||
235 | unsigned long gic_addrspace_size, unsigned int cpu_vec, | ||
236 | unsigned int irqbase); | ||
237 | extern void gic_clocksource_init(unsigned int); | ||
238 | extern cycle_t gic_read_count(void); | ||
239 | extern unsigned int gic_get_count_width(void); | ||
240 | extern cycle_t gic_read_compare(void); | ||
241 | extern void gic_write_compare(cycle_t cnt); | ||
242 | extern void gic_write_cpu_compare(cycle_t cnt, int cpu); | ||
243 | extern void gic_send_ipi(unsigned int intr); | ||
244 | extern unsigned int plat_ipi_call_int_xlate(unsigned int); | ||
245 | extern unsigned int plat_ipi_resched_int_xlate(unsigned int); | ||
246 | extern unsigned int gic_get_timer_pending(void); | ||
247 | extern int gic_get_c0_compare_int(void); | ||
248 | extern int gic_get_c0_perfcount_int(void); | ||
249 | #endif /* __LINUX_IRQCHIP_MIPS_GIC_H */ | ||
diff --git a/include/linux/kprobes.h b/include/linux/kprobes.h index f7296e57d614..5297f9fa0ef2 100644 --- a/include/linux/kprobes.h +++ b/include/linux/kprobes.h | |||
@@ -335,6 +335,7 @@ extern void kprobe_ftrace_handler(unsigned long ip, unsigned long parent_ip, | |||
335 | extern int arch_prepare_kprobe_ftrace(struct kprobe *p); | 335 | extern int arch_prepare_kprobe_ftrace(struct kprobe *p); |
336 | #endif | 336 | #endif |
337 | 337 | ||
338 | int arch_check_ftrace_location(struct kprobe *p); | ||
338 | 339 | ||
339 | /* Get the kprobe at this addr (if any) - called with preemption disabled */ | 340 | /* Get the kprobe at this addr (if any) - called with preemption disabled */ |
340 | struct kprobe *get_kprobe(void *addr); | 341 | struct kprobe *get_kprobe(void *addr); |
diff --git a/include/linux/libata.h b/include/linux/libata.h index bfbc817c34ee..2d182413b1db 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -191,7 +191,8 @@ enum { | |||
191 | ATA_DEV_PMP_UNSUP = 6, /* SATA port multiplier (unsupported) */ | 191 | ATA_DEV_PMP_UNSUP = 6, /* SATA port multiplier (unsupported) */ |
192 | ATA_DEV_SEMB = 7, /* SEMB */ | 192 | ATA_DEV_SEMB = 7, /* SEMB */ |
193 | ATA_DEV_SEMB_UNSUP = 8, /* SEMB (unsupported) */ | 193 | ATA_DEV_SEMB_UNSUP = 8, /* SEMB (unsupported) */ |
194 | ATA_DEV_NONE = 9, /* no device */ | 194 | ATA_DEV_ZAC = 9, /* ZAC device */ |
195 | ATA_DEV_NONE = 10, /* no device */ | ||
195 | 196 | ||
196 | /* struct ata_link flags */ | 197 | /* struct ata_link flags */ |
197 | ATA_LFLAG_NO_HRST = (1 << 1), /* avoid hardreset */ | 198 | ATA_LFLAG_NO_HRST = (1 << 1), /* avoid hardreset */ |
@@ -1491,7 +1492,8 @@ static inline unsigned int ata_tag_internal(unsigned int tag) | |||
1491 | static inline unsigned int ata_class_enabled(unsigned int class) | 1492 | static inline unsigned int ata_class_enabled(unsigned int class) |
1492 | { | 1493 | { |
1493 | return class == ATA_DEV_ATA || class == ATA_DEV_ATAPI || | 1494 | return class == ATA_DEV_ATA || class == ATA_DEV_ATAPI || |
1494 | class == ATA_DEV_PMP || class == ATA_DEV_SEMB; | 1495 | class == ATA_DEV_PMP || class == ATA_DEV_SEMB || |
1496 | class == ATA_DEV_ZAC; | ||
1495 | } | 1497 | } |
1496 | 1498 | ||
1497 | static inline unsigned int ata_class_disabled(unsigned int class) | 1499 | static inline unsigned int ata_class_disabled(unsigned int class) |
diff --git a/include/linux/list.h b/include/linux/list.h index f33f831eb3c8..feb773c76ee0 100644 --- a/include/linux/list.h +++ b/include/linux/list.h | |||
@@ -346,7 +346,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
346 | * list_entry - get the struct for this entry | 346 | * list_entry - get the struct for this entry |
347 | * @ptr: the &struct list_head pointer. | 347 | * @ptr: the &struct list_head pointer. |
348 | * @type: the type of the struct this is embedded in. | 348 | * @type: the type of the struct this is embedded in. |
349 | * @member: the name of the list_struct within the struct. | 349 | * @member: the name of the list_head within the struct. |
350 | */ | 350 | */ |
351 | #define list_entry(ptr, type, member) \ | 351 | #define list_entry(ptr, type, member) \ |
352 | container_of(ptr, type, member) | 352 | container_of(ptr, type, member) |
@@ -355,7 +355,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
355 | * list_first_entry - get the first element from a list | 355 | * list_first_entry - get the first element from a list |
356 | * @ptr: the list head to take the element from. | 356 | * @ptr: the list head to take the element from. |
357 | * @type: the type of the struct this is embedded in. | 357 | * @type: the type of the struct this is embedded in. |
358 | * @member: the name of the list_struct within the struct. | 358 | * @member: the name of the list_head within the struct. |
359 | * | 359 | * |
360 | * Note, that list is expected to be not empty. | 360 | * Note, that list is expected to be not empty. |
361 | */ | 361 | */ |
@@ -366,7 +366,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
366 | * list_last_entry - get the last element from a list | 366 | * list_last_entry - get the last element from a list |
367 | * @ptr: the list head to take the element from. | 367 | * @ptr: the list head to take the element from. |
368 | * @type: the type of the struct this is embedded in. | 368 | * @type: the type of the struct this is embedded in. |
369 | * @member: the name of the list_struct within the struct. | 369 | * @member: the name of the list_head within the struct. |
370 | * | 370 | * |
371 | * Note, that list is expected to be not empty. | 371 | * Note, that list is expected to be not empty. |
372 | */ | 372 | */ |
@@ -377,7 +377,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
377 | * list_first_entry_or_null - get the first element from a list | 377 | * list_first_entry_or_null - get the first element from a list |
378 | * @ptr: the list head to take the element from. | 378 | * @ptr: the list head to take the element from. |
379 | * @type: the type of the struct this is embedded in. | 379 | * @type: the type of the struct this is embedded in. |
380 | * @member: the name of the list_struct within the struct. | 380 | * @member: the name of the list_head within the struct. |
381 | * | 381 | * |
382 | * Note that if the list is empty, it returns NULL. | 382 | * Note that if the list is empty, it returns NULL. |
383 | */ | 383 | */ |
@@ -387,7 +387,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
387 | /** | 387 | /** |
388 | * list_next_entry - get the next element in list | 388 | * list_next_entry - get the next element in list |
389 | * @pos: the type * to cursor | 389 | * @pos: the type * to cursor |
390 | * @member: the name of the list_struct within the struct. | 390 | * @member: the name of the list_head within the struct. |
391 | */ | 391 | */ |
392 | #define list_next_entry(pos, member) \ | 392 | #define list_next_entry(pos, member) \ |
393 | list_entry((pos)->member.next, typeof(*(pos)), member) | 393 | list_entry((pos)->member.next, typeof(*(pos)), member) |
@@ -395,7 +395,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
395 | /** | 395 | /** |
396 | * list_prev_entry - get the prev element in list | 396 | * list_prev_entry - get the prev element in list |
397 | * @pos: the type * to cursor | 397 | * @pos: the type * to cursor |
398 | * @member: the name of the list_struct within the struct. | 398 | * @member: the name of the list_head within the struct. |
399 | */ | 399 | */ |
400 | #define list_prev_entry(pos, member) \ | 400 | #define list_prev_entry(pos, member) \ |
401 | list_entry((pos)->member.prev, typeof(*(pos)), member) | 401 | list_entry((pos)->member.prev, typeof(*(pos)), member) |
@@ -441,7 +441,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
441 | * list_for_each_entry - iterate over list of given type | 441 | * list_for_each_entry - iterate over list of given type |
442 | * @pos: the type * to use as a loop cursor. | 442 | * @pos: the type * to use as a loop cursor. |
443 | * @head: the head for your list. | 443 | * @head: the head for your list. |
444 | * @member: the name of the list_struct within the struct. | 444 | * @member: the name of the list_head within the struct. |
445 | */ | 445 | */ |
446 | #define list_for_each_entry(pos, head, member) \ | 446 | #define list_for_each_entry(pos, head, member) \ |
447 | for (pos = list_first_entry(head, typeof(*pos), member); \ | 447 | for (pos = list_first_entry(head, typeof(*pos), member); \ |
@@ -452,7 +452,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
452 | * list_for_each_entry_reverse - iterate backwards over list of given type. | 452 | * list_for_each_entry_reverse - iterate backwards over list of given type. |
453 | * @pos: the type * to use as a loop cursor. | 453 | * @pos: the type * to use as a loop cursor. |
454 | * @head: the head for your list. | 454 | * @head: the head for your list. |
455 | * @member: the name of the list_struct within the struct. | 455 | * @member: the name of the list_head within the struct. |
456 | */ | 456 | */ |
457 | #define list_for_each_entry_reverse(pos, head, member) \ | 457 | #define list_for_each_entry_reverse(pos, head, member) \ |
458 | for (pos = list_last_entry(head, typeof(*pos), member); \ | 458 | for (pos = list_last_entry(head, typeof(*pos), member); \ |
@@ -463,7 +463,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
463 | * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue() | 463 | * list_prepare_entry - prepare a pos entry for use in list_for_each_entry_continue() |
464 | * @pos: the type * to use as a start point | 464 | * @pos: the type * to use as a start point |
465 | * @head: the head of the list | 465 | * @head: the head of the list |
466 | * @member: the name of the list_struct within the struct. | 466 | * @member: the name of the list_head within the struct. |
467 | * | 467 | * |
468 | * Prepares a pos entry for use as a start point in list_for_each_entry_continue(). | 468 | * Prepares a pos entry for use as a start point in list_for_each_entry_continue(). |
469 | */ | 469 | */ |
@@ -474,7 +474,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
474 | * list_for_each_entry_continue - continue iteration over list of given type | 474 | * list_for_each_entry_continue - continue iteration over list of given type |
475 | * @pos: the type * to use as a loop cursor. | 475 | * @pos: the type * to use as a loop cursor. |
476 | * @head: the head for your list. | 476 | * @head: the head for your list. |
477 | * @member: the name of the list_struct within the struct. | 477 | * @member: the name of the list_head within the struct. |
478 | * | 478 | * |
479 | * Continue to iterate over list of given type, continuing after | 479 | * Continue to iterate over list of given type, continuing after |
480 | * the current position. | 480 | * the current position. |
@@ -488,7 +488,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
488 | * list_for_each_entry_continue_reverse - iterate backwards from the given point | 488 | * list_for_each_entry_continue_reverse - iterate backwards from the given point |
489 | * @pos: the type * to use as a loop cursor. | 489 | * @pos: the type * to use as a loop cursor. |
490 | * @head: the head for your list. | 490 | * @head: the head for your list. |
491 | * @member: the name of the list_struct within the struct. | 491 | * @member: the name of the list_head within the struct. |
492 | * | 492 | * |
493 | * Start to iterate over list of given type backwards, continuing after | 493 | * Start to iterate over list of given type backwards, continuing after |
494 | * the current position. | 494 | * the current position. |
@@ -502,7 +502,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
502 | * list_for_each_entry_from - iterate over list of given type from the current point | 502 | * list_for_each_entry_from - iterate over list of given type from the current point |
503 | * @pos: the type * to use as a loop cursor. | 503 | * @pos: the type * to use as a loop cursor. |
504 | * @head: the head for your list. | 504 | * @head: the head for your list. |
505 | * @member: the name of the list_struct within the struct. | 505 | * @member: the name of the list_head within the struct. |
506 | * | 506 | * |
507 | * Iterate over list of given type, continuing from current position. | 507 | * Iterate over list of given type, continuing from current position. |
508 | */ | 508 | */ |
@@ -515,7 +515,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
515 | * @pos: the type * to use as a loop cursor. | 515 | * @pos: the type * to use as a loop cursor. |
516 | * @n: another type * to use as temporary storage | 516 | * @n: another type * to use as temporary storage |
517 | * @head: the head for your list. | 517 | * @head: the head for your list. |
518 | * @member: the name of the list_struct within the struct. | 518 | * @member: the name of the list_head within the struct. |
519 | */ | 519 | */ |
520 | #define list_for_each_entry_safe(pos, n, head, member) \ | 520 | #define list_for_each_entry_safe(pos, n, head, member) \ |
521 | for (pos = list_first_entry(head, typeof(*pos), member), \ | 521 | for (pos = list_first_entry(head, typeof(*pos), member), \ |
@@ -528,7 +528,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
528 | * @pos: the type * to use as a loop cursor. | 528 | * @pos: the type * to use as a loop cursor. |
529 | * @n: another type * to use as temporary storage | 529 | * @n: another type * to use as temporary storage |
530 | * @head: the head for your list. | 530 | * @head: the head for your list. |
531 | * @member: the name of the list_struct within the struct. | 531 | * @member: the name of the list_head within the struct. |
532 | * | 532 | * |
533 | * Iterate over list of given type, continuing after current point, | 533 | * Iterate over list of given type, continuing after current point, |
534 | * safe against removal of list entry. | 534 | * safe against removal of list entry. |
@@ -544,7 +544,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
544 | * @pos: the type * to use as a loop cursor. | 544 | * @pos: the type * to use as a loop cursor. |
545 | * @n: another type * to use as temporary storage | 545 | * @n: another type * to use as temporary storage |
546 | * @head: the head for your list. | 546 | * @head: the head for your list. |
547 | * @member: the name of the list_struct within the struct. | 547 | * @member: the name of the list_head within the struct. |
548 | * | 548 | * |
549 | * Iterate over list of given type from current point, safe against | 549 | * Iterate over list of given type from current point, safe against |
550 | * removal of list entry. | 550 | * removal of list entry. |
@@ -559,7 +559,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
559 | * @pos: the type * to use as a loop cursor. | 559 | * @pos: the type * to use as a loop cursor. |
560 | * @n: another type * to use as temporary storage | 560 | * @n: another type * to use as temporary storage |
561 | * @head: the head for your list. | 561 | * @head: the head for your list. |
562 | * @member: the name of the list_struct within the struct. | 562 | * @member: the name of the list_head within the struct. |
563 | * | 563 | * |
564 | * Iterate backwards over list of given type, safe against removal | 564 | * Iterate backwards over list of given type, safe against removal |
565 | * of list entry. | 565 | * of list entry. |
@@ -574,7 +574,7 @@ static inline void list_splice_tail_init(struct list_head *list, | |||
574 | * list_safe_reset_next - reset a stale list_for_each_entry_safe loop | 574 | * list_safe_reset_next - reset a stale list_for_each_entry_safe loop |
575 | * @pos: the loop cursor used in the list_for_each_entry_safe loop | 575 | * @pos: the loop cursor used in the list_for_each_entry_safe loop |
576 | * @n: temporary storage used in list_for_each_entry_safe | 576 | * @n: temporary storage used in list_for_each_entry_safe |
577 | * @member: the name of the list_struct within the struct. | 577 | * @member: the name of the list_head within the struct. |
578 | * | 578 | * |
579 | * list_safe_reset_next is not safe to use in general if the list may be | 579 | * list_safe_reset_next is not safe to use in general if the list may be |
580 | * modified concurrently (eg. the lock is dropped in the loop body). An | 580 | * modified concurrently (eg. the lock is dropped in the loop body). An |
diff --git a/include/linux/mm.h b/include/linux/mm.h index f7606d3a0915..3b337efbe533 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -56,6 +56,17 @@ extern int sysctl_legacy_va_layout; | |||
56 | #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0)) | 56 | #define __pa_symbol(x) __pa(RELOC_HIDE((unsigned long)(x), 0)) |
57 | #endif | 57 | #endif |
58 | 58 | ||
59 | /* | ||
60 | * To prevent common memory management code establishing | ||
61 | * a zero page mapping on a read fault. | ||
62 | * This macro should be defined within <asm/pgtable.h>. | ||
63 | * s390 does this to prevent multiplexing of hardware bits | ||
64 | * related to the physical page in case of virtualization. | ||
65 | */ | ||
66 | #ifndef mm_forbids_zeropage | ||
67 | #define mm_forbids_zeropage(X) (0) | ||
68 | #endif | ||
69 | |||
59 | extern unsigned long sysctl_user_reserve_kbytes; | 70 | extern unsigned long sysctl_user_reserve_kbytes; |
60 | extern unsigned long sysctl_admin_reserve_kbytes; | 71 | extern unsigned long sysctl_admin_reserve_kbytes; |
61 | 72 | ||
diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h index 44eeef0da186..745def862580 100644 --- a/include/linux/mod_devicetable.h +++ b/include/linux/mod_devicetable.h | |||
@@ -69,7 +69,7 @@ struct ieee1394_device_id { | |||
69 | * @bDeviceClass: Class of device; numbers are assigned | 69 | * @bDeviceClass: Class of device; numbers are assigned |
70 | * by the USB forum. Products may choose to implement classes, | 70 | * by the USB forum. Products may choose to implement classes, |
71 | * or be vendor-specific. Device classes specify behavior of all | 71 | * or be vendor-specific. Device classes specify behavior of all |
72 | * the interfaces on a devices. | 72 | * the interfaces on a device. |
73 | * @bDeviceSubClass: Subclass of device; associated with bDeviceClass. | 73 | * @bDeviceSubClass: Subclass of device; associated with bDeviceClass. |
74 | * @bDeviceProtocol: Protocol of device; associated with bDeviceClass. | 74 | * @bDeviceProtocol: Protocol of device; associated with bDeviceClass. |
75 | * @bInterfaceClass: Class of interface; numbers are assigned | 75 | * @bInterfaceClass: Class of interface; numbers are assigned |
diff --git a/include/linux/pci.h b/include/linux/pci.h index a523cee3abb5..44a27696ab6c 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -1004,6 +1004,8 @@ void __iomem __must_check *pci_platform_rom(struct pci_dev *pdev, size_t *size); | |||
1004 | int pci_save_state(struct pci_dev *dev); | 1004 | int pci_save_state(struct pci_dev *dev); |
1005 | void pci_restore_state(struct pci_dev *dev); | 1005 | void pci_restore_state(struct pci_dev *dev); |
1006 | struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev); | 1006 | struct pci_saved_state *pci_store_saved_state(struct pci_dev *dev); |
1007 | int pci_load_saved_state(struct pci_dev *dev, | ||
1008 | struct pci_saved_state *state); | ||
1007 | int pci_load_and_free_saved_state(struct pci_dev *dev, | 1009 | int pci_load_and_free_saved_state(struct pci_dev *dev, |
1008 | struct pci_saved_state **state); | 1010 | struct pci_saved_state **state); |
1009 | struct pci_cap_saved_state *pci_find_saved_cap(struct pci_dev *dev, char cap); | 1011 | struct pci_cap_saved_state *pci_find_saved_cap(struct pci_dev *dev, char cap); |
diff --git a/include/linux/percpu-refcount.h b/include/linux/percpu-refcount.h index 530b249f7ea4..b4337646388b 100644 --- a/include/linux/percpu-refcount.h +++ b/include/linux/percpu-refcount.h | |||
@@ -128,10 +128,8 @@ static inline void percpu_ref_kill(struct percpu_ref *ref) | |||
128 | static inline bool __ref_is_percpu(struct percpu_ref *ref, | 128 | static inline bool __ref_is_percpu(struct percpu_ref *ref, |
129 | unsigned long __percpu **percpu_countp) | 129 | unsigned long __percpu **percpu_countp) |
130 | { | 130 | { |
131 | unsigned long percpu_ptr = ACCESS_ONCE(ref->percpu_count_ptr); | ||
132 | |||
133 | /* paired with smp_store_release() in percpu_ref_reinit() */ | 131 | /* paired with smp_store_release() in percpu_ref_reinit() */ |
134 | smp_read_barrier_depends(); | 132 | unsigned long percpu_ptr = lockless_dereference(ref->percpu_count_ptr); |
135 | 133 | ||
136 | /* | 134 | /* |
137 | * Theoretically, the following could test just ATOMIC; however, | 135 | * Theoretically, the following could test just ATOMIC; however, |
diff --git a/include/linux/platform_data/dma-imx.h b/include/linux/platform_data/dma-imx.h index 6a1357d31871..7d964e787299 100644 --- a/include/linux/platform_data/dma-imx.h +++ b/include/linux/platform_data/dma-imx.h | |||
@@ -41,6 +41,7 @@ enum sdma_peripheral_type { | |||
41 | IMX_DMATYPE_ESAI, /* ESAI */ | 41 | IMX_DMATYPE_ESAI, /* ESAI */ |
42 | IMX_DMATYPE_SSI_DUAL, /* SSI Dual FIFO */ | 42 | IMX_DMATYPE_SSI_DUAL, /* SSI Dual FIFO */ |
43 | IMX_DMATYPE_ASRC_SP, /* Shared ASRC */ | 43 | IMX_DMATYPE_ASRC_SP, /* Shared ASRC */ |
44 | IMX_DMATYPE_SAI, /* SAI */ | ||
44 | }; | 45 | }; |
45 | 46 | ||
46 | enum imx_dma_prio { | 47 | enum imx_dma_prio { |
diff --git a/include/linux/plist.h b/include/linux/plist.h index 8b6c970cff6c..97883604a3c5 100644 --- a/include/linux/plist.h +++ b/include/linux/plist.h | |||
@@ -176,7 +176,7 @@ extern void plist_requeue(struct plist_node *node, struct plist_head *head); | |||
176 | * plist_for_each_entry - iterate over list of given type | 176 | * plist_for_each_entry - iterate over list of given type |
177 | * @pos: the type * to use as a loop counter | 177 | * @pos: the type * to use as a loop counter |
178 | * @head: the head for your list | 178 | * @head: the head for your list |
179 | * @mem: the name of the list_struct within the struct | 179 | * @mem: the name of the list_head within the struct |
180 | */ | 180 | */ |
181 | #define plist_for_each_entry(pos, head, mem) \ | 181 | #define plist_for_each_entry(pos, head, mem) \ |
182 | list_for_each_entry(pos, &(head)->node_list, mem.node_list) | 182 | list_for_each_entry(pos, &(head)->node_list, mem.node_list) |
@@ -185,7 +185,7 @@ extern void plist_requeue(struct plist_node *node, struct plist_head *head); | |||
185 | * plist_for_each_entry_continue - continue iteration over list of given type | 185 | * plist_for_each_entry_continue - continue iteration over list of given type |
186 | * @pos: the type * to use as a loop cursor | 186 | * @pos: the type * to use as a loop cursor |
187 | * @head: the head for your list | 187 | * @head: the head for your list |
188 | * @m: the name of the list_struct within the struct | 188 | * @m: the name of the list_head within the struct |
189 | * | 189 | * |
190 | * Continue to iterate over list of given type, continuing after | 190 | * Continue to iterate over list of given type, continuing after |
191 | * the current position. | 191 | * the current position. |
@@ -198,7 +198,7 @@ extern void plist_requeue(struct plist_node *node, struct plist_head *head); | |||
198 | * @pos: the type * to use as a loop counter | 198 | * @pos: the type * to use as a loop counter |
199 | * @n: another type * to use as temporary storage | 199 | * @n: another type * to use as temporary storage |
200 | * @head: the head for your list | 200 | * @head: the head for your list |
201 | * @m: the name of the list_struct within the struct | 201 | * @m: the name of the list_head within the struct |
202 | * | 202 | * |
203 | * Iterate over list of given type, safe against removal of list entry. | 203 | * Iterate over list of given type, safe against removal of list entry. |
204 | */ | 204 | */ |
@@ -229,7 +229,7 @@ static inline int plist_node_empty(const struct plist_node *node) | |||
229 | * plist_first_entry - get the struct for the first entry | 229 | * plist_first_entry - get the struct for the first entry |
230 | * @head: the &struct plist_head pointer | 230 | * @head: the &struct plist_head pointer |
231 | * @type: the type of the struct this is embedded in | 231 | * @type: the type of the struct this is embedded in |
232 | * @member: the name of the list_struct within the struct | 232 | * @member: the name of the list_head within the struct |
233 | */ | 233 | */ |
234 | #ifdef CONFIG_DEBUG_PI_LIST | 234 | #ifdef CONFIG_DEBUG_PI_LIST |
235 | # define plist_first_entry(head, type, member) \ | 235 | # define plist_first_entry(head, type, member) \ |
@@ -246,7 +246,7 @@ static inline int plist_node_empty(const struct plist_node *node) | |||
246 | * plist_last_entry - get the struct for the last entry | 246 | * plist_last_entry - get the struct for the last entry |
247 | * @head: the &struct plist_head pointer | 247 | * @head: the &struct plist_head pointer |
248 | * @type: the type of the struct this is embedded in | 248 | * @type: the type of the struct this is embedded in |
249 | * @member: the name of the list_struct within the struct | 249 | * @member: the name of the list_head within the struct |
250 | */ | 250 | */ |
251 | #ifdef CONFIG_DEBUG_PI_LIST | 251 | #ifdef CONFIG_DEBUG_PI_LIST |
252 | # define plist_last_entry(head, type, member) \ | 252 | # define plist_last_entry(head, type, member) \ |
diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h index eda4feede048..30e84d48bfea 100644 --- a/include/linux/pm_runtime.h +++ b/include/linux/pm_runtime.h | |||
@@ -118,6 +118,11 @@ static inline void pm_runtime_mark_last_busy(struct device *dev) | |||
118 | ACCESS_ONCE(dev->power.last_busy) = jiffies; | 118 | ACCESS_ONCE(dev->power.last_busy) = jiffies; |
119 | } | 119 | } |
120 | 120 | ||
121 | static inline bool pm_runtime_is_irq_safe(struct device *dev) | ||
122 | { | ||
123 | return dev->power.irq_safe; | ||
124 | } | ||
125 | |||
121 | #else /* !CONFIG_PM */ | 126 | #else /* !CONFIG_PM */ |
122 | 127 | ||
123 | static inline bool queue_pm_work(struct work_struct *work) { return false; } | 128 | static inline bool queue_pm_work(struct work_struct *work) { return false; } |
@@ -164,6 +169,7 @@ static inline bool pm_runtime_enabled(struct device *dev) { return false; } | |||
164 | 169 | ||
165 | static inline void pm_runtime_no_callbacks(struct device *dev) {} | 170 | static inline void pm_runtime_no_callbacks(struct device *dev) {} |
166 | static inline void pm_runtime_irq_safe(struct device *dev) {} | 171 | static inline void pm_runtime_irq_safe(struct device *dev) {} |
172 | static inline bool pm_runtime_is_irq_safe(struct device *dev) { return false; } | ||
167 | 173 | ||
168 | static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; } | 174 | static inline bool pm_runtime_callbacks_present(struct device *dev) { return false; } |
169 | static inline void pm_runtime_mark_last_busy(struct device *dev) {} | 175 | static inline void pm_runtime_mark_last_busy(struct device *dev) {} |
diff --git a/include/linux/pstore_ram.h b/include/linux/pstore_ram.h index 9974975d40db..4af3fdc85b01 100644 --- a/include/linux/pstore_ram.h +++ b/include/linux/pstore_ram.h | |||
@@ -53,7 +53,8 @@ struct persistent_ram_zone { | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | struct persistent_ram_zone *persistent_ram_new(phys_addr_t start, size_t size, | 55 | struct persistent_ram_zone *persistent_ram_new(phys_addr_t start, size_t size, |
56 | u32 sig, struct persistent_ram_ecc_info *ecc_info); | 56 | u32 sig, struct persistent_ram_ecc_info *ecc_info, |
57 | unsigned int memtype); | ||
57 | void persistent_ram_free(struct persistent_ram_zone *prz); | 58 | void persistent_ram_free(struct persistent_ram_zone *prz); |
58 | void persistent_ram_zap(struct persistent_ram_zone *prz); | 59 | void persistent_ram_zap(struct persistent_ram_zone *prz); |
59 | 60 | ||
@@ -76,6 +77,7 @@ ssize_t persistent_ram_ecc_string(struct persistent_ram_zone *prz, | |||
76 | struct ramoops_platform_data { | 77 | struct ramoops_platform_data { |
77 | unsigned long mem_size; | 78 | unsigned long mem_size; |
78 | unsigned long mem_address; | 79 | unsigned long mem_address; |
80 | unsigned int mem_type; | ||
79 | unsigned long record_size; | 81 | unsigned long record_size; |
80 | unsigned long console_size; | 82 | unsigned long console_size; |
81 | unsigned long ftrace_size; | 83 | unsigned long ftrace_size; |
diff --git a/include/linux/rculist.h b/include/linux/rculist.h index aa79b3c24f66..529bc946f450 100644 --- a/include/linux/rculist.h +++ b/include/linux/rculist.h | |||
@@ -241,7 +241,7 @@ static inline void list_splice_init_rcu(struct list_head *list, | |||
241 | * list_entry_rcu - get the struct for this entry | 241 | * list_entry_rcu - get the struct for this entry |
242 | * @ptr: the &struct list_head pointer. | 242 | * @ptr: the &struct list_head pointer. |
243 | * @type: the type of the struct this is embedded in. | 243 | * @type: the type of the struct this is embedded in. |
244 | * @member: the name of the list_struct within the struct. | 244 | * @member: the name of the list_head within the struct. |
245 | * | 245 | * |
246 | * This primitive may safely run concurrently with the _rcu list-mutation | 246 | * This primitive may safely run concurrently with the _rcu list-mutation |
247 | * primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock(). | 247 | * primitives such as list_add_rcu() as long as it's guarded by rcu_read_lock(). |
@@ -278,7 +278,7 @@ static inline void list_splice_init_rcu(struct list_head *list, | |||
278 | * list_first_or_null_rcu - get the first element from a list | 278 | * list_first_or_null_rcu - get the first element from a list |
279 | * @ptr: the list head to take the element from. | 279 | * @ptr: the list head to take the element from. |
280 | * @type: the type of the struct this is embedded in. | 280 | * @type: the type of the struct this is embedded in. |
281 | * @member: the name of the list_struct within the struct. | 281 | * @member: the name of the list_head within the struct. |
282 | * | 282 | * |
283 | * Note that if the list is empty, it returns NULL. | 283 | * Note that if the list is empty, it returns NULL. |
284 | * | 284 | * |
@@ -296,7 +296,7 @@ static inline void list_splice_init_rcu(struct list_head *list, | |||
296 | * list_for_each_entry_rcu - iterate over rcu list of given type | 296 | * list_for_each_entry_rcu - iterate over rcu list of given type |
297 | * @pos: the type * to use as a loop cursor. | 297 | * @pos: the type * to use as a loop cursor. |
298 | * @head: the head for your list. | 298 | * @head: the head for your list. |
299 | * @member: the name of the list_struct within the struct. | 299 | * @member: the name of the list_head within the struct. |
300 | * | 300 | * |
301 | * This list-traversal primitive may safely run concurrently with | 301 | * This list-traversal primitive may safely run concurrently with |
302 | * the _rcu list-mutation primitives such as list_add_rcu() | 302 | * the _rcu list-mutation primitives such as list_add_rcu() |
@@ -311,7 +311,7 @@ static inline void list_splice_init_rcu(struct list_head *list, | |||
311 | * list_for_each_entry_continue_rcu - continue iteration over list of given type | 311 | * list_for_each_entry_continue_rcu - continue iteration over list of given type |
312 | * @pos: the type * to use as a loop cursor. | 312 | * @pos: the type * to use as a loop cursor. |
313 | * @head: the head for your list. | 313 | * @head: the head for your list. |
314 | * @member: the name of the list_struct within the struct. | 314 | * @member: the name of the list_head within the struct. |
315 | * | 315 | * |
316 | * Continue to iterate over list of given type, continuing after | 316 | * Continue to iterate over list of given type, continuing after |
317 | * the current position. | 317 | * the current position. |