diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/acpi.h | 1 | ||||
-rw-r--r-- | include/linux/amba/pl330.h | 45 | ||||
-rw-r--r-- | include/linux/bitmap.h | 1 | ||||
-rw-r--r-- | include/linux/buffer_head.h | 11 | ||||
-rw-r--r-- | include/linux/completion.h | 2 | ||||
-rw-r--r-- | include/linux/cper.h | 314 | ||||
-rw-r--r-- | include/linux/cpuidle.h | 8 | ||||
-rw-r--r-- | include/linux/debugfs.h | 2 | ||||
-rw-r--r-- | include/linux/ext3_fs.h | 2 | ||||
-rw-r--r-- | include/linux/fb.h | 5 | ||||
-rw-r--r-- | include/linux/file.h | 1 | ||||
-rw-r--r-- | include/linux/fs.h | 36 | ||||
-rw-r--r-- | include/linux/libata.h | 36 | ||||
-rw-r--r-- | include/linux/nodemask.h | 8 | ||||
-rw-r--r-- | include/linux/pci.h | 3 | ||||
-rw-r--r-- | include/linux/quota.h | 20 | ||||
-rw-r--r-- | include/linux/quotaops.h | 79 | ||||
-rw-r--r-- | include/linux/rio.h | 6 | ||||
-rw-r--r-- | include/linux/usb/audio-v2.h | 16 | ||||
-rw-r--r-- | include/linux/uuid.h | 70 |
20 files changed, 576 insertions, 90 deletions
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index 2c60f1f70b38..224a38c960d4 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -254,7 +254,6 @@ int acpi_resources_are_enforced(void); | |||
254 | void __init acpi_no_s4_hw_signature(void); | 254 | void __init acpi_no_s4_hw_signature(void); |
255 | void __init acpi_old_suspend_ordering(void); | 255 | void __init acpi_old_suspend_ordering(void); |
256 | void __init acpi_s4_no_nvs(void); | 256 | void __init acpi_s4_no_nvs(void); |
257 | void __init acpi_set_sci_en_on_resume(void); | ||
258 | #endif /* CONFIG_PM_SLEEP */ | 257 | #endif /* CONFIG_PM_SLEEP */ |
259 | 258 | ||
260 | struct acpi_osc_context { | 259 | struct acpi_osc_context { |
diff --git a/include/linux/amba/pl330.h b/include/linux/amba/pl330.h new file mode 100644 index 000000000000..cbee7de7dd36 --- /dev/null +++ b/include/linux/amba/pl330.h | |||
@@ -0,0 +1,45 @@ | |||
1 | /* linux/include/linux/amba/pl330.h | ||
2 | * | ||
3 | * Copyright (C) 2010 Samsung Electronics Co. Ltd. | ||
4 | * Jaswinder Singh <jassi.brar@samsung.com> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | */ | ||
11 | |||
12 | #ifndef __AMBA_PL330_H_ | ||
13 | #define __AMBA_PL330_H_ | ||
14 | |||
15 | #include <asm/hardware/pl330.h> | ||
16 | |||
17 | struct dma_pl330_peri { | ||
18 | /* | ||
19 | * Peri_Req i/f of the DMAC that is | ||
20 | * peripheral could be reached from. | ||
21 | */ | ||
22 | u8 peri_id; /* {0, 31} */ | ||
23 | enum pl330_reqtype rqtype; | ||
24 | |||
25 | /* For M->D and D->M Channels */ | ||
26 | int burst_sz; /* in power of 2 */ | ||
27 | dma_addr_t fifo_addr; | ||
28 | }; | ||
29 | |||
30 | struct dma_pl330_platdata { | ||
31 | /* | ||
32 | * Number of valid peripherals connected to DMAC. | ||
33 | * This may be different from the value read from | ||
34 | * CR0, as the PL330 implementation might have 'holes' | ||
35 | * in the peri list or the peri could also be reached | ||
36 | * from another DMAC which the platform prefers. | ||
37 | */ | ||
38 | u8 nr_valid_peri; | ||
39 | /* Array of valid peripherals */ | ||
40 | struct dma_pl330_peri *peri; | ||
41 | /* Bytes to allocate for MC buffer */ | ||
42 | unsigned mcbuf_sz; | ||
43 | }; | ||
44 | |||
45 | #endif /* __AMBA_PL330_H_ */ | ||
diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h index 6fb2720882fc..daf8c480c786 100644 --- a/include/linux/bitmap.h +++ b/include/linux/bitmap.h | |||
@@ -141,7 +141,6 @@ extern int bitmap_find_free_region(unsigned long *bitmap, int bits, int order); | |||
141 | extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); | 141 | extern void bitmap_release_region(unsigned long *bitmap, int pos, int order); |
142 | extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); | 142 | extern int bitmap_allocate_region(unsigned long *bitmap, int pos, int order); |
143 | extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits); | 143 | extern void bitmap_copy_le(void *dst, const unsigned long *src, int nbits); |
144 | extern int bitmap_ord_to_pos(const unsigned long *bitmap, int n, int bits); | ||
145 | 144 | ||
146 | #define BITMAP_LAST_WORD_MASK(nbits) \ | 145 | #define BITMAP_LAST_WORD_MASK(nbits) \ |
147 | ( \ | 146 | ( \ |
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index 16ed0284d780..1b9ba193b789 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h | |||
@@ -203,6 +203,9 @@ int block_write_full_page_endio(struct page *page, get_block_t *get_block, | |||
203 | int block_read_full_page(struct page*, get_block_t*); | 203 | int block_read_full_page(struct page*, get_block_t*); |
204 | int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc, | 204 | int block_is_partially_uptodate(struct page *page, read_descriptor_t *desc, |
205 | unsigned long from); | 205 | unsigned long from); |
206 | int block_write_begin_newtrunc(struct file *, struct address_space *, | ||
207 | loff_t, unsigned, unsigned, | ||
208 | struct page **, void **, get_block_t*); | ||
206 | int block_write_begin(struct file *, struct address_space *, | 209 | int block_write_begin(struct file *, struct address_space *, |
207 | loff_t, unsigned, unsigned, | 210 | loff_t, unsigned, unsigned, |
208 | struct page **, void **, get_block_t*); | 211 | struct page **, void **, get_block_t*); |
@@ -214,6 +217,9 @@ int generic_write_end(struct file *, struct address_space *, | |||
214 | struct page *, void *); | 217 | struct page *, void *); |
215 | void page_zero_new_buffers(struct page *page, unsigned from, unsigned to); | 218 | void page_zero_new_buffers(struct page *page, unsigned from, unsigned to); |
216 | int block_prepare_write(struct page*, unsigned, unsigned, get_block_t*); | 219 | int block_prepare_write(struct page*, unsigned, unsigned, get_block_t*); |
220 | int cont_write_begin_newtrunc(struct file *, struct address_space *, loff_t, | ||
221 | unsigned, unsigned, struct page **, void **, | ||
222 | get_block_t *, loff_t *); | ||
217 | int cont_write_begin(struct file *, struct address_space *, loff_t, | 223 | int cont_write_begin(struct file *, struct address_space *, loff_t, |
218 | unsigned, unsigned, struct page **, void **, | 224 | unsigned, unsigned, struct page **, void **, |
219 | get_block_t *, loff_t *); | 225 | get_block_t *, loff_t *); |
@@ -224,7 +230,10 @@ int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, | |||
224 | void block_sync_page(struct page *); | 230 | void block_sync_page(struct page *); |
225 | sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *); | 231 | sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *); |
226 | int block_truncate_page(struct address_space *, loff_t, get_block_t *); | 232 | int block_truncate_page(struct address_space *, loff_t, get_block_t *); |
227 | int file_fsync(struct file *, struct dentry *, int); | 233 | int file_fsync(struct file *, int); |
234 | int nobh_write_begin_newtrunc(struct file *, struct address_space *, | ||
235 | loff_t, unsigned, unsigned, | ||
236 | struct page **, void **, get_block_t*); | ||
228 | int nobh_write_begin(struct file *, struct address_space *, | 237 | int nobh_write_begin(struct file *, struct address_space *, |
229 | loff_t, unsigned, unsigned, | 238 | loff_t, unsigned, unsigned, |
230 | struct page **, void **, get_block_t*); | 239 | struct page **, void **, get_block_t*); |
diff --git a/include/linux/completion.h b/include/linux/completion.h index 4a6b604ef7e4..51e3145196f6 100644 --- a/include/linux/completion.h +++ b/include/linux/completion.h | |||
@@ -83,6 +83,8 @@ extern unsigned long wait_for_completion_timeout(struct completion *x, | |||
83 | unsigned long timeout); | 83 | unsigned long timeout); |
84 | extern unsigned long wait_for_completion_interruptible_timeout( | 84 | extern unsigned long wait_for_completion_interruptible_timeout( |
85 | struct completion *x, unsigned long timeout); | 85 | struct completion *x, unsigned long timeout); |
86 | extern unsigned long wait_for_completion_killable_timeout( | ||
87 | struct completion *x, unsigned long timeout); | ||
86 | extern bool try_wait_for_completion(struct completion *x); | 88 | extern bool try_wait_for_completion(struct completion *x); |
87 | extern bool completion_done(struct completion *x); | 89 | extern bool completion_done(struct completion *x); |
88 | 90 | ||
diff --git a/include/linux/cper.h b/include/linux/cper.h new file mode 100644 index 000000000000..4b38f905b705 --- /dev/null +++ b/include/linux/cper.h | |||
@@ -0,0 +1,314 @@ | |||
1 | /* | ||
2 | * UEFI Common Platform Error Record | ||
3 | * | ||
4 | * Copyright (C) 2010, Intel Corp. | ||
5 | * Author: Huang Ying <ying.huang@intel.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License version | ||
9 | * 2 as published by the Free Software Foundation. | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | |||
21 | #ifndef LINUX_CPER_H | ||
22 | #define LINUX_CPER_H | ||
23 | |||
24 | #include <linux/uuid.h> | ||
25 | |||
26 | /* CPER record signature and the size */ | ||
27 | #define CPER_SIG_RECORD "CPER" | ||
28 | #define CPER_SIG_SIZE 4 | ||
29 | /* Used in signature_end field in struct cper_record_header */ | ||
30 | #define CPER_SIG_END 0xffffffff | ||
31 | |||
32 | /* | ||
33 | * CPER record header revision, used in revision field in struct | ||
34 | * cper_record_header | ||
35 | */ | ||
36 | #define CPER_RECORD_REV 0x0100 | ||
37 | |||
38 | /* | ||
39 | * Severity difinition for error_severity in struct cper_record_header | ||
40 | * and section_severity in struct cper_section_descriptor | ||
41 | */ | ||
42 | #define CPER_SER_RECOVERABLE 0x0 | ||
43 | #define CPER_SER_FATAL 0x1 | ||
44 | #define CPER_SER_CORRECTED 0x2 | ||
45 | #define CPER_SER_INFORMATIONAL 0x3 | ||
46 | |||
47 | /* | ||
48 | * Validation bits difinition for validation_bits in struct | ||
49 | * cper_record_header. If set, corresponding fields in struct | ||
50 | * cper_record_header contain valid information. | ||
51 | * | ||
52 | * corresponds platform_id | ||
53 | */ | ||
54 | #define CPER_VALID_PLATFORM_ID 0x0001 | ||
55 | /* corresponds timestamp */ | ||
56 | #define CPER_VALID_TIMESTAMP 0x0002 | ||
57 | /* corresponds partition_id */ | ||
58 | #define CPER_VALID_PARTITION_ID 0x0004 | ||
59 | |||
60 | /* | ||
61 | * Notification type used to generate error record, used in | ||
62 | * notification_type in struct cper_record_header | ||
63 | * | ||
64 | * Corrected Machine Check | ||
65 | */ | ||
66 | #define CPER_NOTIFY_CMC \ | ||
67 | UUID_LE(0x2DCE8BB1, 0xBDD7, 0x450e, 0xB9, 0xAD, 0x9C, 0xF4, \ | ||
68 | 0xEB, 0xD4, 0xF8, 0x90) | ||
69 | /* Corrected Platform Error */ | ||
70 | #define CPER_NOTIFY_CPE \ | ||
71 | UUID_LE(0x4E292F96, 0xD843, 0x4a55, 0xA8, 0xC2, 0xD4, 0x81, \ | ||
72 | 0xF2, 0x7E, 0xBE, 0xEE) | ||
73 | /* Machine Check Exception */ | ||
74 | #define CPER_NOTIFY_MCE \ | ||
75 | UUID_LE(0xE8F56FFE, 0x919C, 0x4cc5, 0xBA, 0x88, 0x65, 0xAB, \ | ||
76 | 0xE1, 0x49, 0x13, 0xBB) | ||
77 | /* PCI Express Error */ | ||
78 | #define CPER_NOTIFY_PCIE \ | ||
79 | UUID_LE(0xCF93C01F, 0x1A16, 0x4dfc, 0xB8, 0xBC, 0x9C, 0x4D, \ | ||
80 | 0xAF, 0x67, 0xC1, 0x04) | ||
81 | /* INIT Record (for IPF) */ | ||
82 | #define CPER_NOTIFY_INIT \ | ||
83 | UUID_LE(0xCC5263E8, 0x9308, 0x454a, 0x89, 0xD0, 0x34, 0x0B, \ | ||
84 | 0xD3, 0x9B, 0xC9, 0x8E) | ||
85 | /* Non-Maskable Interrupt */ | ||
86 | #define CPER_NOTIFY_NMI \ | ||
87 | UUID_LE(0x5BAD89FF, 0xB7E6, 0x42c9, 0x81, 0x4A, 0xCF, 0x24, \ | ||
88 | 0x85, 0xD6, 0xE9, 0x8A) | ||
89 | /* BOOT Error Record */ | ||
90 | #define CPER_NOTIFY_BOOT \ | ||
91 | UUID_LE(0x3D61A466, 0xAB40, 0x409a, 0xA6, 0x98, 0xF3, 0x62, \ | ||
92 | 0xD4, 0x64, 0xB3, 0x8F) | ||
93 | /* DMA Remapping Error */ | ||
94 | #define CPER_NOTIFY_DMAR \ | ||
95 | UUID_LE(0x667DD791, 0xC6B3, 0x4c27, 0x8A, 0x6B, 0x0F, 0x8E, \ | ||
96 | 0x72, 0x2D, 0xEB, 0x41) | ||
97 | |||
98 | /* | ||
99 | * Flags bits definitions for flags in struct cper_record_header | ||
100 | * If set, the error has been recovered | ||
101 | */ | ||
102 | #define CPER_HW_ERROR_FLAGS_RECOVERED 0x1 | ||
103 | /* If set, the error is for previous boot */ | ||
104 | #define CPER_HW_ERROR_FLAGS_PREVERR 0x2 | ||
105 | /* If set, the error is injected for testing */ | ||
106 | #define CPER_HW_ERROR_FLAGS_SIMULATED 0x4 | ||
107 | |||
108 | /* | ||
109 | * CPER section header revision, used in revision field in struct | ||
110 | * cper_section_descriptor | ||
111 | */ | ||
112 | #define CPER_SEC_REV 0x0100 | ||
113 | |||
114 | /* | ||
115 | * Validation bits difinition for validation_bits in struct | ||
116 | * cper_section_descriptor. If set, corresponding fields in struct | ||
117 | * cper_section_descriptor contain valid information. | ||
118 | * | ||
119 | * corresponds fru_id | ||
120 | */ | ||
121 | #define CPER_SEC_VALID_FRU_ID 0x1 | ||
122 | /* corresponds fru_text */ | ||
123 | #define CPER_SEC_VALID_FRU_TEXT 0x2 | ||
124 | |||
125 | /* | ||
126 | * Flags bits definitions for flags in struct cper_section_descriptor | ||
127 | * | ||
128 | * If set, the section is associated with the error condition | ||
129 | * directly, and should be focused on | ||
130 | */ | ||
131 | #define CPER_SEC_PRIMARY 0x0001 | ||
132 | /* | ||
133 | * If set, the error was not contained within the processor or memory | ||
134 | * hierarchy and the error may have propagated to persistent storage | ||
135 | * or network | ||
136 | */ | ||
137 | #define CPER_SEC_CONTAINMENT_WARNING 0x0002 | ||
138 | /* If set, the component must be re-initialized or re-enabled prior to use */ | ||
139 | #define CPER_SEC_RESET 0x0004 | ||
140 | /* If set, Linux may choose to discontinue use of the resource */ | ||
141 | #define CPER_SEC_ERROR_THRESHOLD_EXCEEDED 0x0008 | ||
142 | /* | ||
143 | * If set, resource could not be queried for error information due to | ||
144 | * conflicts with other system software or resources. Some fields of | ||
145 | * the section will be invalid | ||
146 | */ | ||
147 | #define CPER_SEC_RESOURCE_NOT_ACCESSIBLE 0x0010 | ||
148 | /* | ||
149 | * If set, action has been taken to ensure error containment (such as | ||
150 | * poisoning data), but the error has not been fully corrected and the | ||
151 | * data has not been consumed. Linux may choose to take further | ||
152 | * corrective action before the data is consumed | ||
153 | */ | ||
154 | #define CPER_SEC_LATENT_ERROR 0x0020 | ||
155 | |||
156 | /* | ||
157 | * Section type definitions, used in section_type field in struct | ||
158 | * cper_section_descriptor | ||
159 | * | ||
160 | * Processor Generic | ||
161 | */ | ||
162 | #define CPER_SEC_PROC_GENERIC \ | ||
163 | UUID_LE(0x9876CCAD, 0x47B4, 0x4bdb, 0xB6, 0x5E, 0x16, 0xF1, \ | ||
164 | 0x93, 0xC4, 0xF3, 0xDB) | ||
165 | /* Processor Specific: X86/X86_64 */ | ||
166 | #define CPER_SEC_PROC_IA \ | ||
167 | UUID_LE(0xDC3EA0B0, 0xA144, 0x4797, 0xB9, 0x5B, 0x53, 0xFA, \ | ||
168 | 0x24, 0x2B, 0x6E, 0x1D) | ||
169 | /* Processor Specific: IA64 */ | ||
170 | #define CPER_SEC_PROC_IPF \ | ||
171 | UUID_LE(0xE429FAF1, 0x3CB7, 0x11D4, 0x0B, 0xCA, 0x07, 0x00, \ | ||
172 | 0x80, 0xC7, 0x3C, 0x88, 0x81) | ||
173 | /* Platform Memory */ | ||
174 | #define CPER_SEC_PLATFORM_MEM \ | ||
175 | UUID_LE(0xA5BC1114, 0x6F64, 0x4EDE, 0xB8, 0x63, 0x3E, 0x83, \ | ||
176 | 0xED, 0x7C, 0x83, 0xB1) | ||
177 | #define CPER_SEC_PCIE \ | ||
178 | UUID_LE(0xD995E954, 0xBBC1, 0x430F, 0xAD, 0x91, 0xB4, 0x4D, \ | ||
179 | 0xCB, 0x3C, 0x6F, 0x35) | ||
180 | /* Firmware Error Record Reference */ | ||
181 | #define CPER_SEC_FW_ERR_REC_REF \ | ||
182 | UUID_LE(0x81212A96, 0x09ED, 0x4996, 0x94, 0x71, 0x8D, 0x72, \ | ||
183 | 0x9C, 0x8E, 0x69, 0xED) | ||
184 | /* PCI/PCI-X Bus */ | ||
185 | #define CPER_SEC_PCI_X_BUS \ | ||
186 | UUID_LE(0xC5753963, 0x3B84, 0x4095, 0xBF, 0x78, 0xED, 0xDA, \ | ||
187 | 0xD3, 0xF9, 0xC9, 0xDD) | ||
188 | /* PCI Component/Device */ | ||
189 | #define CPER_SEC_PCI_DEV \ | ||
190 | UUID_LE(0xEB5E4685, 0xCA66, 0x4769, 0xB6, 0xA2, 0x26, 0x06, \ | ||
191 | 0x8B, 0x00, 0x13, 0x26) | ||
192 | #define CPER_SEC_DMAR_GENERIC \ | ||
193 | UUID_LE(0x5B51FEF7, 0xC79D, 0x4434, 0x8F, 0x1B, 0xAA, 0x62, \ | ||
194 | 0xDE, 0x3E, 0x2C, 0x64) | ||
195 | /* Intel VT for Directed I/O specific DMAr */ | ||
196 | #define CPER_SEC_DMAR_VT \ | ||
197 | UUID_LE(0x71761D37, 0x32B2, 0x45cd, 0xA7, 0xD0, 0xB0, 0xFE, \ | ||
198 | 0xDD, 0x93, 0xE8, 0xCF) | ||
199 | /* IOMMU specific DMAr */ | ||
200 | #define CPER_SEC_DMAR_IOMMU \ | ||
201 | UUID_LE(0x036F84E1, 0x7F37, 0x428c, 0xA7, 0x9E, 0x57, 0x5F, \ | ||
202 | 0xDF, 0xAA, 0x84, 0xEC) | ||
203 | |||
204 | /* | ||
205 | * All tables and structs must be byte-packed to match CPER | ||
206 | * specification, since the tables are provided by the system BIOS | ||
207 | */ | ||
208 | #pragma pack(1) | ||
209 | |||
210 | struct cper_record_header { | ||
211 | char signature[CPER_SIG_SIZE]; /* must be CPER_SIG_RECORD */ | ||
212 | __u16 revision; /* must be CPER_RECORD_REV */ | ||
213 | __u32 signature_end; /* must be CPER_SIG_END */ | ||
214 | __u16 section_count; | ||
215 | __u32 error_severity; | ||
216 | __u32 validation_bits; | ||
217 | __u32 record_length; | ||
218 | __u64 timestamp; | ||
219 | uuid_le platform_id; | ||
220 | uuid_le partition_id; | ||
221 | uuid_le creator_id; | ||
222 | uuid_le notification_type; | ||
223 | __u64 record_id; | ||
224 | __u32 flags; | ||
225 | __u64 persistence_information; | ||
226 | __u8 reserved[12]; /* must be zero */ | ||
227 | }; | ||
228 | |||
229 | struct cper_section_descriptor { | ||
230 | __u32 section_offset; /* Offset in bytes of the | ||
231 | * section body from the base | ||
232 | * of the record header */ | ||
233 | __u32 section_length; | ||
234 | __u16 revision; /* must be CPER_RECORD_REV */ | ||
235 | __u8 validation_bits; | ||
236 | __u8 reserved; /* must be zero */ | ||
237 | __u32 flags; | ||
238 | uuid_le section_type; | ||
239 | uuid_le fru_id; | ||
240 | __u32 section_severity; | ||
241 | __u8 fru_text[20]; | ||
242 | }; | ||
243 | |||
244 | /* Generic Processor Error Section */ | ||
245 | struct cper_sec_proc_generic { | ||
246 | __u64 validation_bits; | ||
247 | __u8 proc_type; | ||
248 | __u8 proc_isa; | ||
249 | __u8 proc_error_type; | ||
250 | __u8 operation; | ||
251 | __u8 flags; | ||
252 | __u8 level; | ||
253 | __u16 reserved; | ||
254 | __u64 cpu_version; | ||
255 | char cpu_brand[128]; | ||
256 | __u64 proc_id; | ||
257 | __u64 target_addr; | ||
258 | __u64 requestor_id; | ||
259 | __u64 responder_id; | ||
260 | __u64 ip; | ||
261 | }; | ||
262 | |||
263 | /* IA32/X64 Processor Error Section */ | ||
264 | struct cper_sec_proc_ia { | ||
265 | __u64 validation_bits; | ||
266 | __u8 lapic_id; | ||
267 | __u8 cpuid[48]; | ||
268 | }; | ||
269 | |||
270 | /* IA32/X64 Processor Error Infomation Structure */ | ||
271 | struct cper_ia_err_info { | ||
272 | uuid_le err_type; | ||
273 | __u64 validation_bits; | ||
274 | __u64 check_info; | ||
275 | __u64 target_id; | ||
276 | __u64 requestor_id; | ||
277 | __u64 responder_id; | ||
278 | __u64 ip; | ||
279 | }; | ||
280 | |||
281 | /* IA32/X64 Processor Context Information Structure */ | ||
282 | struct cper_ia_proc_ctx { | ||
283 | __u16 reg_ctx_type; | ||
284 | __u16 reg_arr_size; | ||
285 | __u32 msr_addr; | ||
286 | __u64 mm_reg_addr; | ||
287 | }; | ||
288 | |||
289 | /* Memory Error Section */ | ||
290 | struct cper_sec_mem_err { | ||
291 | __u64 validation_bits; | ||
292 | __u64 error_status; | ||
293 | __u64 physical_addr; | ||
294 | __u64 physical_addr_mask; | ||
295 | __u16 node; | ||
296 | __u16 card; | ||
297 | __u16 module; | ||
298 | __u16 bank; | ||
299 | __u16 device; | ||
300 | __u16 row; | ||
301 | __u16 column; | ||
302 | __u16 bit_pos; | ||
303 | __u64 requestor_id; | ||
304 | __u64 responder_id; | ||
305 | __u64 target_id; | ||
306 | __u8 error_type; | ||
307 | }; | ||
308 | |||
309 | /* Reset to default packing */ | ||
310 | #pragma pack() | ||
311 | |||
312 | u64 cper_next_record_id(void); | ||
313 | |||
314 | #endif | ||
diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h index dcf77fa826b5..55215cce5005 100644 --- a/include/linux/cpuidle.h +++ b/include/linux/cpuidle.h | |||
@@ -125,6 +125,7 @@ struct cpuidle_driver { | |||
125 | #ifdef CONFIG_CPU_IDLE | 125 | #ifdef CONFIG_CPU_IDLE |
126 | 126 | ||
127 | extern int cpuidle_register_driver(struct cpuidle_driver *drv); | 127 | extern int cpuidle_register_driver(struct cpuidle_driver *drv); |
128 | struct cpuidle_driver *cpuidle_get_driver(void); | ||
128 | extern void cpuidle_unregister_driver(struct cpuidle_driver *drv); | 129 | extern void cpuidle_unregister_driver(struct cpuidle_driver *drv); |
129 | extern int cpuidle_register_device(struct cpuidle_device *dev); | 130 | extern int cpuidle_register_device(struct cpuidle_device *dev); |
130 | extern void cpuidle_unregister_device(struct cpuidle_device *dev); | 131 | extern void cpuidle_unregister_device(struct cpuidle_device *dev); |
@@ -137,16 +138,17 @@ extern void cpuidle_disable_device(struct cpuidle_device *dev); | |||
137 | #else | 138 | #else |
138 | 139 | ||
139 | static inline int cpuidle_register_driver(struct cpuidle_driver *drv) | 140 | static inline int cpuidle_register_driver(struct cpuidle_driver *drv) |
140 | {return 0;} | 141 | {return -ENODEV; } |
142 | static inline struct cpuidle_driver *cpuidle_get_driver(void) {return NULL; } | ||
141 | static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { } | 143 | static inline void cpuidle_unregister_driver(struct cpuidle_driver *drv) { } |
142 | static inline int cpuidle_register_device(struct cpuidle_device *dev) | 144 | static inline int cpuidle_register_device(struct cpuidle_device *dev) |
143 | {return 0;} | 145 | {return -ENODEV; } |
144 | static inline void cpuidle_unregister_device(struct cpuidle_device *dev) { } | 146 | static inline void cpuidle_unregister_device(struct cpuidle_device *dev) { } |
145 | 147 | ||
146 | static inline void cpuidle_pause_and_lock(void) { } | 148 | static inline void cpuidle_pause_and_lock(void) { } |
147 | static inline void cpuidle_resume_and_unlock(void) { } | 149 | static inline void cpuidle_resume_and_unlock(void) { } |
148 | static inline int cpuidle_enable_device(struct cpuidle_device *dev) | 150 | static inline int cpuidle_enable_device(struct cpuidle_device *dev) |
149 | {return 0;} | 151 | {return -ENODEV; } |
150 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } | 152 | static inline void cpuidle_disable_device(struct cpuidle_device *dev) { } |
151 | 153 | ||
152 | #endif | 154 | #endif |
diff --git a/include/linux/debugfs.h b/include/linux/debugfs.h index fc1b930f246c..e7d9b20ddc5b 100644 --- a/include/linux/debugfs.h +++ b/include/linux/debugfs.h | |||
@@ -63,6 +63,8 @@ struct dentry *debugfs_create_x16(const char *name, mode_t mode, | |||
63 | struct dentry *parent, u16 *value); | 63 | struct dentry *parent, u16 *value); |
64 | struct dentry *debugfs_create_x32(const char *name, mode_t mode, | 64 | struct dentry *debugfs_create_x32(const char *name, mode_t mode, |
65 | struct dentry *parent, u32 *value); | 65 | struct dentry *parent, u32 *value); |
66 | struct dentry *debugfs_create_x64(const char *name, mode_t mode, | ||
67 | struct dentry *parent, u64 *value); | ||
66 | struct dentry *debugfs_create_size_t(const char *name, mode_t mode, | 68 | struct dentry *debugfs_create_size_t(const char *name, mode_t mode, |
67 | struct dentry *parent, size_t *value); | 69 | struct dentry *parent, size_t *value); |
68 | struct dentry *debugfs_create_bool(const char *name, mode_t mode, | 70 | struct dentry *debugfs_create_bool(const char *name, mode_t mode, |
diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 5f494b465097..7fc62d4550b2 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h | |||
@@ -868,7 +868,7 @@ extern int ext3_htree_store_dirent(struct file *dir_file, __u32 hash, | |||
868 | extern void ext3_htree_free_dir_info(struct dir_private_info *p); | 868 | extern void ext3_htree_free_dir_info(struct dir_private_info *p); |
869 | 869 | ||
870 | /* fsync.c */ | 870 | /* fsync.c */ |
871 | extern int ext3_sync_file (struct file *, struct dentry *, int); | 871 | extern int ext3_sync_file(struct file *, int); |
872 | 872 | ||
873 | /* hash.c */ | 873 | /* hash.c */ |
874 | extern int ext3fs_dirhash(const char *name, int len, struct | 874 | extern int ext3fs_dirhash(const char *name, int len, struct |
diff --git a/include/linux/fb.h b/include/linux/fb.h index f3793ebc241c..907ace3a64c8 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h | |||
@@ -4,8 +4,6 @@ | |||
4 | #include <linux/types.h> | 4 | #include <linux/types.h> |
5 | #include <linux/i2c.h> | 5 | #include <linux/i2c.h> |
6 | 6 | ||
7 | struct dentry; | ||
8 | |||
9 | /* Definitions of frame buffers */ | 7 | /* Definitions of frame buffers */ |
10 | 8 | ||
11 | #define FB_MAX 32 /* sufficient for now */ | 9 | #define FB_MAX 32 /* sufficient for now */ |
@@ -1017,8 +1015,7 @@ extern void fb_deferred_io_open(struct fb_info *info, | |||
1017 | struct inode *inode, | 1015 | struct inode *inode, |
1018 | struct file *file); | 1016 | struct file *file); |
1019 | extern void fb_deferred_io_cleanup(struct fb_info *info); | 1017 | extern void fb_deferred_io_cleanup(struct fb_info *info); |
1020 | extern int fb_deferred_io_fsync(struct file *file, struct dentry *dentry, | 1018 | extern int fb_deferred_io_fsync(struct file *file, int datasync); |
1021 | int datasync); | ||
1022 | 1019 | ||
1023 | static inline bool fb_be_math(struct fb_info *info) | 1020 | static inline bool fb_be_math(struct fb_info *info) |
1024 | { | 1021 | { |
diff --git a/include/linux/file.h b/include/linux/file.h index 5555508fd517..b1e12970f617 100644 --- a/include/linux/file.h +++ b/include/linux/file.h | |||
@@ -11,7 +11,6 @@ | |||
11 | 11 | ||
12 | struct file; | 12 | struct file; |
13 | 13 | ||
14 | extern void __fput(struct file *); | ||
15 | extern void fput(struct file *); | 14 | extern void fput(struct file *); |
16 | extern void drop_file_write_access(struct file *file); | 15 | extern void drop_file_write_access(struct file *file); |
17 | 16 | ||
diff --git a/include/linux/fs.h b/include/linux/fs.h index 85e823adcd4a..3428393942a6 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -954,6 +954,7 @@ extern spinlock_t files_lock; | |||
954 | #define file_list_unlock() spin_unlock(&files_lock); | 954 | #define file_list_unlock() spin_unlock(&files_lock); |
955 | 955 | ||
956 | #define get_file(x) atomic_long_inc(&(x)->f_count) | 956 | #define get_file(x) atomic_long_inc(&(x)->f_count) |
957 | #define fput_atomic(x) atomic_long_add_unless(&(x)->f_count, -1, 1) | ||
957 | #define file_count(x) atomic_long_read(&(x)->f_count) | 958 | #define file_count(x) atomic_long_read(&(x)->f_count) |
958 | 959 | ||
959 | #ifdef CONFIG_DEBUG_WRITECOUNT | 960 | #ifdef CONFIG_DEBUG_WRITECOUNT |
@@ -1497,7 +1498,7 @@ struct file_operations { | |||
1497 | int (*open) (struct inode *, struct file *); | 1498 | int (*open) (struct inode *, struct file *); |
1498 | int (*flush) (struct file *, fl_owner_t id); | 1499 | int (*flush) (struct file *, fl_owner_t id); |
1499 | int (*release) (struct inode *, struct file *); | 1500 | int (*release) (struct inode *, struct file *); |
1500 | int (*fsync) (struct file *, struct dentry *, int datasync); | 1501 | int (*fsync) (struct file *, int datasync); |
1501 | int (*aio_fsync) (struct kiocb *, int datasync); | 1502 | int (*aio_fsync) (struct kiocb *, int datasync); |
1502 | int (*fasync) (int, struct file *, int); | 1503 | int (*fasync) (int, struct file *, int); |
1503 | int (*lock) (struct file *, int, struct file_lock *); | 1504 | int (*lock) (struct file *, int, struct file_lock *); |
@@ -2212,7 +2213,7 @@ extern int generic_segment_checks(const struct iovec *iov, | |||
2212 | /* fs/block_dev.c */ | 2213 | /* fs/block_dev.c */ |
2213 | extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, | 2214 | extern ssize_t blkdev_aio_write(struct kiocb *iocb, const struct iovec *iov, |
2214 | unsigned long nr_segs, loff_t pos); | 2215 | unsigned long nr_segs, loff_t pos); |
2215 | extern int blkdev_fsync(struct file *filp, struct dentry *dentry, int datasync); | 2216 | extern int blkdev_fsync(struct file *filp, int datasync); |
2216 | 2217 | ||
2217 | /* fs/splice.c */ | 2218 | /* fs/splice.c */ |
2218 | extern ssize_t generic_file_splice_read(struct file *, loff_t *, | 2219 | extern ssize_t generic_file_splice_read(struct file *, loff_t *, |
@@ -2256,6 +2257,10 @@ typedef void (dio_submit_t)(int rw, struct bio *bio, struct inode *inode, | |||
2256 | loff_t file_offset); | 2257 | loff_t file_offset); |
2257 | void dio_end_io(struct bio *bio, int error); | 2258 | void dio_end_io(struct bio *bio, int error); |
2258 | 2259 | ||
2260 | ssize_t __blockdev_direct_IO_newtrunc(int rw, struct kiocb *iocb, struct inode *inode, | ||
2261 | struct block_device *bdev, const struct iovec *iov, loff_t offset, | ||
2262 | unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io, | ||
2263 | dio_submit_t submit_io, int lock_type); | ||
2259 | ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, | 2264 | ssize_t __blockdev_direct_IO(int rw, struct kiocb *iocb, struct inode *inode, |
2260 | struct block_device *bdev, const struct iovec *iov, loff_t offset, | 2265 | struct block_device *bdev, const struct iovec *iov, loff_t offset, |
2261 | unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io, | 2266 | unsigned long nr_segs, get_block_t get_block, dio_iodone_t end_io, |
@@ -2269,6 +2274,24 @@ enum { | |||
2269 | DIO_SKIP_HOLES = 0x02, | 2274 | DIO_SKIP_HOLES = 0x02, |
2270 | }; | 2275 | }; |
2271 | 2276 | ||
2277 | static inline ssize_t blockdev_direct_IO_newtrunc(int rw, struct kiocb *iocb, | ||
2278 | struct inode *inode, struct block_device *bdev, const struct iovec *iov, | ||
2279 | loff_t offset, unsigned long nr_segs, get_block_t get_block, | ||
2280 | dio_iodone_t end_io) | ||
2281 | { | ||
2282 | return __blockdev_direct_IO_newtrunc(rw, iocb, inode, bdev, iov, offset, | ||
2283 | nr_segs, get_block, end_io, NULL, | ||
2284 | DIO_LOCKING | DIO_SKIP_HOLES); | ||
2285 | } | ||
2286 | |||
2287 | static inline ssize_t blockdev_direct_IO_no_locking_newtrunc(int rw, struct kiocb *iocb, | ||
2288 | struct inode *inode, struct block_device *bdev, const struct iovec *iov, | ||
2289 | loff_t offset, unsigned long nr_segs, get_block_t get_block, | ||
2290 | dio_iodone_t end_io) | ||
2291 | { | ||
2292 | return __blockdev_direct_IO_newtrunc(rw, iocb, inode, bdev, iov, offset, | ||
2293 | nr_segs, get_block, end_io, NULL, 0); | ||
2294 | } | ||
2272 | static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, | 2295 | static inline ssize_t blockdev_direct_IO(int rw, struct kiocb *iocb, |
2273 | struct inode *inode, struct block_device *bdev, const struct iovec *iov, | 2296 | struct inode *inode, struct block_device *bdev, const struct iovec *iov, |
2274 | loff_t offset, unsigned long nr_segs, get_block_t get_block, | 2297 | loff_t offset, unsigned long nr_segs, get_block_t get_block, |
@@ -2341,13 +2364,15 @@ extern int dcache_dir_open(struct inode *, struct file *); | |||
2341 | extern int dcache_dir_close(struct inode *, struct file *); | 2364 | extern int dcache_dir_close(struct inode *, struct file *); |
2342 | extern loff_t dcache_dir_lseek(struct file *, loff_t, int); | 2365 | extern loff_t dcache_dir_lseek(struct file *, loff_t, int); |
2343 | extern int dcache_readdir(struct file *, void *, filldir_t); | 2366 | extern int dcache_readdir(struct file *, void *, filldir_t); |
2367 | extern int simple_setattr(struct dentry *, struct iattr *); | ||
2344 | extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); | 2368 | extern int simple_getattr(struct vfsmount *, struct dentry *, struct kstat *); |
2345 | extern int simple_statfs(struct dentry *, struct kstatfs *); | 2369 | extern int simple_statfs(struct dentry *, struct kstatfs *); |
2346 | extern int simple_link(struct dentry *, struct inode *, struct dentry *); | 2370 | extern int simple_link(struct dentry *, struct inode *, struct dentry *); |
2347 | extern int simple_unlink(struct inode *, struct dentry *); | 2371 | extern int simple_unlink(struct inode *, struct dentry *); |
2348 | extern int simple_rmdir(struct inode *, struct dentry *); | 2372 | extern int simple_rmdir(struct inode *, struct dentry *); |
2349 | extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); | 2373 | extern int simple_rename(struct inode *, struct dentry *, struct inode *, struct dentry *); |
2350 | extern int simple_sync_file(struct file *, struct dentry *, int); | 2374 | extern int simple_setsize(struct inode *, loff_t); |
2375 | extern int noop_fsync(struct file *, int); | ||
2351 | extern int simple_empty(struct dentry *); | 2376 | extern int simple_empty(struct dentry *); |
2352 | extern int simple_readpage(struct file *file, struct page *page); | 2377 | extern int simple_readpage(struct file *file, struct page *page); |
2353 | extern int simple_write_begin(struct file *file, struct address_space *mapping, | 2378 | extern int simple_write_begin(struct file *file, struct address_space *mapping, |
@@ -2372,7 +2397,7 @@ extern ssize_t simple_read_from_buffer(void __user *to, size_t count, | |||
2372 | extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos, | 2397 | extern ssize_t simple_write_to_buffer(void *to, size_t available, loff_t *ppos, |
2373 | const void __user *from, size_t count); | 2398 | const void __user *from, size_t count); |
2374 | 2399 | ||
2375 | extern int simple_fsync(struct file *, struct dentry *, int); | 2400 | extern int generic_file_fsync(struct file *, int); |
2376 | 2401 | ||
2377 | #ifdef CONFIG_MIGRATION | 2402 | #ifdef CONFIG_MIGRATION |
2378 | extern int buffer_migrate_page(struct address_space *, | 2403 | extern int buffer_migrate_page(struct address_space *, |
@@ -2383,7 +2408,8 @@ extern int buffer_migrate_page(struct address_space *, | |||
2383 | 2408 | ||
2384 | extern int inode_change_ok(const struct inode *, struct iattr *); | 2409 | extern int inode_change_ok(const struct inode *, struct iattr *); |
2385 | extern int inode_newsize_ok(const struct inode *, loff_t offset); | 2410 | extern int inode_newsize_ok(const struct inode *, loff_t offset); |
2386 | extern int __must_check inode_setattr(struct inode *, struct iattr *); | 2411 | extern int __must_check inode_setattr(struct inode *, const struct iattr *); |
2412 | extern void generic_setattr(struct inode *inode, const struct iattr *attr); | ||
2387 | 2413 | ||
2388 | extern void file_update_time(struct file *file); | 2414 | extern void file_update_time(struct file *file); |
2389 | 2415 | ||
diff --git a/include/linux/libata.h b/include/linux/libata.h index ee84e7e12039..3bad2701bfa6 100644 --- a/include/linux/libata.h +++ b/include/linux/libata.h | |||
@@ -386,6 +386,7 @@ enum { | |||
386 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ | 386 | ATA_HORKAGE_1_5_GBPS = (1 << 13), /* force 1.5 Gbps */ |
387 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ | 387 | ATA_HORKAGE_NOSETXFER = (1 << 14), /* skip SETXFER, SATA only */ |
388 | ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ | 388 | ATA_HORKAGE_BROKEN_FPDMA_AA = (1 << 15), /* skip AA */ |
389 | ATA_HORKAGE_DUMP_ID = (1 << 16), /* dump IDENTIFY data */ | ||
389 | 390 | ||
390 | /* DMA mask for user DMA control: User visible values; DO NOT | 391 | /* DMA mask for user DMA control: User visible values; DO NOT |
391 | renumber */ | 392 | renumber */ |
@@ -513,7 +514,9 @@ struct ata_ioports { | |||
513 | void __iomem *command_addr; | 514 | void __iomem *command_addr; |
514 | void __iomem *altstatus_addr; | 515 | void __iomem *altstatus_addr; |
515 | void __iomem *ctl_addr; | 516 | void __iomem *ctl_addr; |
517 | #ifdef CONFIG_ATA_BMDMA | ||
516 | void __iomem *bmdma_addr; | 518 | void __iomem *bmdma_addr; |
519 | #endif /* CONFIG_ATA_BMDMA */ | ||
517 | void __iomem *scr_addr; | 520 | void __iomem *scr_addr; |
518 | }; | 521 | }; |
519 | #endif /* CONFIG_ATA_SFF */ | 522 | #endif /* CONFIG_ATA_SFF */ |
@@ -721,8 +724,10 @@ struct ata_port { | |||
721 | u8 ctl; /* cache of ATA control register */ | 724 | u8 ctl; /* cache of ATA control register */ |
722 | u8 last_ctl; /* Cache last written value */ | 725 | u8 last_ctl; /* Cache last written value */ |
723 | struct delayed_work sff_pio_task; | 726 | struct delayed_work sff_pio_task; |
727 | #ifdef CONFIG_ATA_BMDMA | ||
724 | struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */ | 728 | struct ata_bmdma_prd *bmdma_prd; /* BMDMA SG list */ |
725 | dma_addr_t bmdma_prd_dma; /* and its DMA mapping */ | 729 | dma_addr_t bmdma_prd_dma; /* and its DMA mapping */ |
730 | #endif /* CONFIG_ATA_BMDMA */ | ||
726 | #endif /* CONFIG_ATA_SFF */ | 731 | #endif /* CONFIG_ATA_SFF */ |
727 | 732 | ||
728 | unsigned int pio_mask; | 733 | unsigned int pio_mask; |
@@ -856,10 +861,12 @@ struct ata_port_operations { | |||
856 | void (*sff_irq_clear)(struct ata_port *); | 861 | void (*sff_irq_clear)(struct ata_port *); |
857 | void (*sff_drain_fifo)(struct ata_queued_cmd *qc); | 862 | void (*sff_drain_fifo)(struct ata_queued_cmd *qc); |
858 | 863 | ||
864 | #ifdef CONFIG_ATA_BMDMA | ||
859 | void (*bmdma_setup)(struct ata_queued_cmd *qc); | 865 | void (*bmdma_setup)(struct ata_queued_cmd *qc); |
860 | void (*bmdma_start)(struct ata_queued_cmd *qc); | 866 | void (*bmdma_start)(struct ata_queued_cmd *qc); |
861 | void (*bmdma_stop)(struct ata_queued_cmd *qc); | 867 | void (*bmdma_stop)(struct ata_queued_cmd *qc); |
862 | u8 (*bmdma_status)(struct ata_port *ap); | 868 | u8 (*bmdma_status)(struct ata_port *ap); |
869 | #endif /* CONFIG_ATA_BMDMA */ | ||
863 | #endif /* CONFIG_ATA_SFF */ | 870 | #endif /* CONFIG_ATA_SFF */ |
864 | 871 | ||
865 | ssize_t (*em_show)(struct ata_port *ap, char *buf); | 872 | ssize_t (*em_show)(struct ata_port *ap, char *buf); |
@@ -1555,7 +1562,6 @@ extern void sata_pmp_error_handler(struct ata_port *ap); | |||
1555 | #ifdef CONFIG_ATA_SFF | 1562 | #ifdef CONFIG_ATA_SFF |
1556 | 1563 | ||
1557 | extern const struct ata_port_operations ata_sff_port_ops; | 1564 | extern const struct ata_port_operations ata_sff_port_ops; |
1558 | extern const struct ata_port_operations ata_bmdma_port_ops; | ||
1559 | extern const struct ata_port_operations ata_bmdma32_port_ops; | 1565 | extern const struct ata_port_operations ata_bmdma32_port_ops; |
1560 | 1566 | ||
1561 | /* PIO only, sg_tablesize and dma_boundary limits can be removed */ | 1567 | /* PIO only, sg_tablesize and dma_boundary limits can be removed */ |
@@ -1564,11 +1570,6 @@ extern const struct ata_port_operations ata_bmdma32_port_ops; | |||
1564 | .sg_tablesize = LIBATA_MAX_PRD, \ | 1570 | .sg_tablesize = LIBATA_MAX_PRD, \ |
1565 | .dma_boundary = ATA_DMA_BOUNDARY | 1571 | .dma_boundary = ATA_DMA_BOUNDARY |
1566 | 1572 | ||
1567 | #define ATA_BMDMA_SHT(drv_name) \ | ||
1568 | ATA_BASE_SHT(drv_name), \ | ||
1569 | .sg_tablesize = LIBATA_MAX_PRD, \ | ||
1570 | .dma_boundary = ATA_DMA_BOUNDARY | ||
1571 | |||
1572 | extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device); | 1573 | extern void ata_sff_dev_select(struct ata_port *ap, unsigned int device); |
1573 | extern u8 ata_sff_check_status(struct ata_port *ap); | 1574 | extern u8 ata_sff_check_status(struct ata_port *ap); |
1574 | extern void ata_sff_pause(struct ata_port *ap); | 1575 | extern void ata_sff_pause(struct ata_port *ap); |
@@ -1593,7 +1594,7 @@ extern int ata_sff_hsm_move(struct ata_port *ap, struct ata_queued_cmd *qc, | |||
1593 | extern void ata_sff_queue_pio_task(struct ata_port *ap, unsigned long delay); | 1594 | extern void ata_sff_queue_pio_task(struct ata_port *ap, unsigned long delay); |
1594 | extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc); | 1595 | extern unsigned int ata_sff_qc_issue(struct ata_queued_cmd *qc); |
1595 | extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc); | 1596 | extern bool ata_sff_qc_fill_rtf(struct ata_queued_cmd *qc); |
1596 | extern unsigned int ata_sff_host_intr(struct ata_port *ap, | 1597 | extern unsigned int ata_sff_port_intr(struct ata_port *ap, |
1597 | struct ata_queued_cmd *qc); | 1598 | struct ata_queued_cmd *qc); |
1598 | extern irqreturn_t ata_sff_interrupt(int irq, void *dev_instance); | 1599 | extern irqreturn_t ata_sff_interrupt(int irq, void *dev_instance); |
1599 | extern void ata_sff_lost_interrupt(struct ata_port *ap); | 1600 | extern void ata_sff_lost_interrupt(struct ata_port *ap); |
@@ -1625,11 +1626,24 @@ extern int ata_pci_sff_init_one(struct pci_dev *pdev, | |||
1625 | struct scsi_host_template *sht, void *host_priv, int hflags); | 1626 | struct scsi_host_template *sht, void *host_priv, int hflags); |
1626 | #endif /* CONFIG_PCI */ | 1627 | #endif /* CONFIG_PCI */ |
1627 | 1628 | ||
1629 | #ifdef CONFIG_ATA_BMDMA | ||
1630 | |||
1631 | extern const struct ata_port_operations ata_bmdma_port_ops; | ||
1632 | |||
1633 | #define ATA_BMDMA_SHT(drv_name) \ | ||
1634 | ATA_BASE_SHT(drv_name), \ | ||
1635 | .sg_tablesize = LIBATA_MAX_PRD, \ | ||
1636 | .dma_boundary = ATA_DMA_BOUNDARY | ||
1637 | |||
1628 | extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc); | 1638 | extern void ata_bmdma_qc_prep(struct ata_queued_cmd *qc); |
1629 | extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc); | 1639 | extern unsigned int ata_bmdma_qc_issue(struct ata_queued_cmd *qc); |
1630 | extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc); | 1640 | extern void ata_bmdma_dumb_qc_prep(struct ata_queued_cmd *qc); |
1641 | extern unsigned int ata_bmdma_port_intr(struct ata_port *ap, | ||
1642 | struct ata_queued_cmd *qc); | ||
1643 | extern irqreturn_t ata_bmdma_interrupt(int irq, void *dev_instance); | ||
1631 | extern void ata_bmdma_error_handler(struct ata_port *ap); | 1644 | extern void ata_bmdma_error_handler(struct ata_port *ap); |
1632 | extern void ata_bmdma_post_internal_cmd(struct ata_queued_cmd *qc); | 1645 | extern void ata_bmdma_post_internal_cmd(struct ata_queued_cmd *qc); |
1646 | extern void ata_bmdma_irq_clear(struct ata_port *ap); | ||
1633 | extern void ata_bmdma_setup(struct ata_queued_cmd *qc); | 1647 | extern void ata_bmdma_setup(struct ata_queued_cmd *qc); |
1634 | extern void ata_bmdma_start(struct ata_queued_cmd *qc); | 1648 | extern void ata_bmdma_start(struct ata_queued_cmd *qc); |
1635 | extern void ata_bmdma_stop(struct ata_queued_cmd *qc); | 1649 | extern void ata_bmdma_stop(struct ata_queued_cmd *qc); |
@@ -1640,7 +1654,15 @@ extern int ata_bmdma_port_start32(struct ata_port *ap); | |||
1640 | #ifdef CONFIG_PCI | 1654 | #ifdef CONFIG_PCI |
1641 | extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev); | 1655 | extern int ata_pci_bmdma_clear_simplex(struct pci_dev *pdev); |
1642 | extern void ata_pci_bmdma_init(struct ata_host *host); | 1656 | extern void ata_pci_bmdma_init(struct ata_host *host); |
1657 | extern int ata_pci_bmdma_prepare_host(struct pci_dev *pdev, | ||
1658 | const struct ata_port_info * const * ppi, | ||
1659 | struct ata_host **r_host); | ||
1660 | extern int ata_pci_bmdma_init_one(struct pci_dev *pdev, | ||
1661 | const struct ata_port_info * const * ppi, | ||
1662 | struct scsi_host_template *sht, | ||
1663 | void *host_priv, int hflags); | ||
1643 | #endif /* CONFIG_PCI */ | 1664 | #endif /* CONFIG_PCI */ |
1665 | #endif /* CONFIG_ATA_BMDMA */ | ||
1644 | 1666 | ||
1645 | /** | 1667 | /** |
1646 | * ata_sff_busy_wait - Wait for a port status register | 1668 | * ata_sff_busy_wait - Wait for a port status register |
diff --git a/include/linux/nodemask.h b/include/linux/nodemask.h index 8a8f1d09c133..dba35e413371 100644 --- a/include/linux/nodemask.h +++ b/include/linux/nodemask.h | |||
@@ -66,8 +66,6 @@ | |||
66 | * int num_online_nodes() Number of online Nodes | 66 | * int num_online_nodes() Number of online Nodes |
67 | * int num_possible_nodes() Number of all possible Nodes | 67 | * int num_possible_nodes() Number of all possible Nodes |
68 | * | 68 | * |
69 | * int node_random(mask) Random node with set bit in mask | ||
70 | * | ||
71 | * int node_online(node) Is some node online? | 69 | * int node_online(node) Is some node online? |
72 | * int node_possible(node) Is some node possible? | 70 | * int node_possible(node) Is some node possible? |
73 | * | 71 | * |
@@ -432,10 +430,6 @@ static inline void node_set_offline(int nid) | |||
432 | node_clear_state(nid, N_ONLINE); | 430 | node_clear_state(nid, N_ONLINE); |
433 | nr_online_nodes = num_node_state(N_ONLINE); | 431 | nr_online_nodes = num_node_state(N_ONLINE); |
434 | } | 432 | } |
435 | |||
436 | #define node_random(mask) __node_random(&(mask)) | ||
437 | extern int __node_random(const nodemask_t *maskp); | ||
438 | |||
439 | #else | 433 | #else |
440 | 434 | ||
441 | static inline int node_state(int node, enum node_states state) | 435 | static inline int node_state(int node, enum node_states state) |
@@ -466,8 +460,6 @@ static inline int num_node_state(enum node_states state) | |||
466 | 460 | ||
467 | #define node_set_online(node) node_set_state((node), N_ONLINE) | 461 | #define node_set_online(node) node_set_state((node), N_ONLINE) |
468 | #define node_set_offline(node) node_clear_state((node), N_ONLINE) | 462 | #define node_set_offline(node) node_clear_state((node), N_ONLINE) |
469 | |||
470 | static inline int node_random(const nodemask_t mask) { return 0; } | ||
471 | #endif | 463 | #endif |
472 | 464 | ||
473 | #define node_online_map node_states[N_ONLINE] | 465 | #define node_online_map node_states[N_ONLINE] |
diff --git a/include/linux/pci.h b/include/linux/pci.h index a327322a33ab..6a471aba3b07 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -311,7 +311,8 @@ struct pci_dev { | |||
311 | unsigned int is_virtfn:1; | 311 | unsigned int is_virtfn:1; |
312 | unsigned int reset_fn:1; | 312 | unsigned int reset_fn:1; |
313 | unsigned int is_hotplug_bridge:1; | 313 | unsigned int is_hotplug_bridge:1; |
314 | unsigned int aer_firmware_first:1; | 314 | unsigned int __aer_firmware_first_valid:1; |
315 | unsigned int __aer_firmware_first:1; | ||
315 | pci_dev_flags_t dev_flags; | 316 | pci_dev_flags_t dev_flags; |
316 | atomic_t enable_cnt; /* pci_enable_device has been called */ | 317 | atomic_t enable_cnt; /* pci_enable_device has been called */ |
317 | 318 | ||
diff --git a/include/linux/quota.h b/include/linux/quota.h index 7126a15467f1..94c1f03b50eb 100644 --- a/include/linux/quota.h +++ b/include/linux/quota.h | |||
@@ -174,8 +174,7 @@ enum { | |||
174 | #include <linux/rwsem.h> | 174 | #include <linux/rwsem.h> |
175 | #include <linux/spinlock.h> | 175 | #include <linux/spinlock.h> |
176 | #include <linux/wait.h> | 176 | #include <linux/wait.h> |
177 | #include <linux/percpu.h> | 177 | #include <linux/percpu_counter.h> |
178 | #include <linux/smp.h> | ||
179 | 178 | ||
180 | #include <linux/dqblk_xfs.h> | 179 | #include <linux/dqblk_xfs.h> |
181 | #include <linux/dqblk_v1.h> | 180 | #include <linux/dqblk_v1.h> |
@@ -254,6 +253,7 @@ enum { | |||
254 | 253 | ||
255 | struct dqstats { | 254 | struct dqstats { |
256 | int stat[_DQST_DQSTAT_LAST]; | 255 | int stat[_DQST_DQSTAT_LAST]; |
256 | struct percpu_counter counter[_DQST_DQSTAT_LAST]; | ||
257 | }; | 257 | }; |
258 | 258 | ||
259 | extern struct dqstats *dqstats_pcpu; | 259 | extern struct dqstats *dqstats_pcpu; |
@@ -261,20 +261,12 @@ extern struct dqstats dqstats; | |||
261 | 261 | ||
262 | static inline void dqstats_inc(unsigned int type) | 262 | static inline void dqstats_inc(unsigned int type) |
263 | { | 263 | { |
264 | #ifdef CONFIG_SMP | 264 | percpu_counter_inc(&dqstats.counter[type]); |
265 | per_cpu_ptr(dqstats_pcpu, smp_processor_id())->stat[type]++; | ||
266 | #else | ||
267 | dqstats.stat[type]++; | ||
268 | #endif | ||
269 | } | 265 | } |
270 | 266 | ||
271 | static inline void dqstats_dec(unsigned int type) | 267 | static inline void dqstats_dec(unsigned int type) |
272 | { | 268 | { |
273 | #ifdef CONFIG_SMP | 269 | percpu_counter_dec(&dqstats.counter[type]); |
274 | per_cpu_ptr(dqstats_pcpu, smp_processor_id())->stat[type]--; | ||
275 | #else | ||
276 | dqstats.stat[type]--; | ||
277 | #endif | ||
278 | } | 270 | } |
279 | 271 | ||
280 | #define DQ_MOD_B 0 /* dquot modified since read */ | 272 | #define DQ_MOD_B 0 /* dquot modified since read */ |
@@ -332,8 +324,8 @@ struct dquot_operations { | |||
332 | 324 | ||
333 | /* Operations handling requests from userspace */ | 325 | /* Operations handling requests from userspace */ |
334 | struct quotactl_ops { | 326 | struct quotactl_ops { |
335 | int (*quota_on)(struct super_block *, int, int, char *, int); | 327 | int (*quota_on)(struct super_block *, int, int, char *); |
336 | int (*quota_off)(struct super_block *, int, int); | 328 | int (*quota_off)(struct super_block *, int); |
337 | int (*quota_sync)(struct super_block *, int, int); | 329 | int (*quota_sync)(struct super_block *, int, int); |
338 | int (*get_info)(struct super_block *, int, struct if_dqinfo *); | 330 | int (*get_info)(struct super_block *, int, struct if_dqinfo *); |
339 | int (*set_info)(struct super_block *, int, struct if_dqinfo *); | 331 | int (*set_info)(struct super_block *, int, struct if_dqinfo *); |
diff --git a/include/linux/quotaops.h b/include/linux/quotaops.h index e38ae53f3529..aa36793b48bd 100644 --- a/include/linux/quotaops.h +++ b/include/linux/quotaops.h | |||
@@ -53,6 +53,14 @@ int dquot_alloc_inode(const struct inode *inode); | |||
53 | int dquot_claim_space_nodirty(struct inode *inode, qsize_t number); | 53 | int dquot_claim_space_nodirty(struct inode *inode, qsize_t number); |
54 | void dquot_free_inode(const struct inode *inode); | 54 | void dquot_free_inode(const struct inode *inode); |
55 | 55 | ||
56 | int dquot_disable(struct super_block *sb, int type, unsigned int flags); | ||
57 | /* Suspend quotas on remount RO */ | ||
58 | static inline int dquot_suspend(struct super_block *sb, int type) | ||
59 | { | ||
60 | return dquot_disable(sb, type, DQUOT_SUSPENDED); | ||
61 | } | ||
62 | int dquot_resume(struct super_block *sb, int type); | ||
63 | |||
56 | int dquot_commit(struct dquot *dquot); | 64 | int dquot_commit(struct dquot *dquot); |
57 | int dquot_acquire(struct dquot *dquot); | 65 | int dquot_acquire(struct dquot *dquot); |
58 | int dquot_release(struct dquot *dquot); | 66 | int dquot_release(struct dquot *dquot); |
@@ -61,27 +69,25 @@ int dquot_mark_dquot_dirty(struct dquot *dquot); | |||
61 | 69 | ||
62 | int dquot_file_open(struct inode *inode, struct file *file); | 70 | int dquot_file_open(struct inode *inode, struct file *file); |
63 | 71 | ||
64 | int vfs_quota_on(struct super_block *sb, int type, int format_id, | 72 | int dquot_quota_on(struct super_block *sb, int type, int format_id, |
65 | char *path, int remount); | 73 | char *path); |
66 | int vfs_quota_enable(struct inode *inode, int type, int format_id, | 74 | int dquot_enable(struct inode *inode, int type, int format_id, |
67 | unsigned int flags); | 75 | unsigned int flags); |
68 | int vfs_quota_on_path(struct super_block *sb, int type, int format_id, | 76 | int dquot_quota_on_path(struct super_block *sb, int type, int format_id, |
69 | struct path *path); | 77 | struct path *path); |
70 | int vfs_quota_on_mount(struct super_block *sb, char *qf_name, | 78 | int dquot_quota_on_mount(struct super_block *sb, char *qf_name, |
71 | int format_id, int type); | 79 | int format_id, int type); |
72 | int vfs_quota_off(struct super_block *sb, int type, int remount); | 80 | int dquot_quota_off(struct super_block *sb, int type); |
73 | int vfs_quota_disable(struct super_block *sb, int type, unsigned int flags); | 81 | int dquot_quota_sync(struct super_block *sb, int type, int wait); |
74 | int vfs_quota_sync(struct super_block *sb, int type, int wait); | 82 | int dquot_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii); |
75 | int vfs_get_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii); | 83 | int dquot_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii); |
76 | int vfs_set_dqinfo(struct super_block *sb, int type, struct if_dqinfo *ii); | 84 | int dquot_get_dqblk(struct super_block *sb, int type, qid_t id, |
77 | int vfs_get_dqblk(struct super_block *sb, int type, qid_t id, | ||
78 | struct fs_disk_quota *di); | 85 | struct fs_disk_quota *di); |
79 | int vfs_set_dqblk(struct super_block *sb, int type, qid_t id, | 86 | int dquot_set_dqblk(struct super_block *sb, int type, qid_t id, |
80 | struct fs_disk_quota *di); | 87 | struct fs_disk_quota *di); |
81 | 88 | ||
82 | int __dquot_transfer(struct inode *inode, struct dquot **transfer_to); | 89 | int __dquot_transfer(struct inode *inode, struct dquot **transfer_to); |
83 | int dquot_transfer(struct inode *inode, struct iattr *iattr); | 90 | int dquot_transfer(struct inode *inode, struct iattr *iattr); |
84 | int vfs_dq_quota_on_remount(struct super_block *sb); | ||
85 | 91 | ||
86 | static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type) | 92 | static inline struct mem_dqinfo *sb_dqinfo(struct super_block *sb, int type) |
87 | { | 93 | { |
@@ -148,20 +154,7 @@ static inline unsigned sb_any_quota_active(struct super_block *sb) | |||
148 | * Operations supported for diskquotas. | 154 | * Operations supported for diskquotas. |
149 | */ | 155 | */ |
150 | extern const struct dquot_operations dquot_operations; | 156 | extern const struct dquot_operations dquot_operations; |
151 | extern const struct quotactl_ops vfs_quotactl_ops; | 157 | extern const struct quotactl_ops dquot_quotactl_ops; |
152 | |||
153 | #define sb_dquot_ops (&dquot_operations) | ||
154 | #define sb_quotactl_ops (&vfs_quotactl_ops) | ||
155 | |||
156 | /* Cannot be called inside a transaction */ | ||
157 | static inline int vfs_dq_off(struct super_block *sb, int remount) | ||
158 | { | ||
159 | int ret = -ENOSYS; | ||
160 | |||
161 | if (sb->s_qcop && sb->s_qcop->quota_off) | ||
162 | ret = sb->s_qcop->quota_off(sb, -1, remount); | ||
163 | return ret; | ||
164 | } | ||
165 | 158 | ||
166 | #else | 159 | #else |
167 | 160 | ||
@@ -206,12 +199,6 @@ static inline int sb_any_quota_active(struct super_block *sb) | |||
206 | return 0; | 199 | return 0; |
207 | } | 200 | } |
208 | 201 | ||
209 | /* | ||
210 | * NO-OP when quota not configured. | ||
211 | */ | ||
212 | #define sb_dquot_ops (NULL) | ||
213 | #define sb_quotactl_ops (NULL) | ||
214 | |||
215 | static inline void dquot_initialize(struct inode *inode) | 202 | static inline void dquot_initialize(struct inode *inode) |
216 | { | 203 | { |
217 | } | 204 | } |
@@ -229,16 +216,6 @@ static inline void dquot_free_inode(const struct inode *inode) | |||
229 | { | 216 | { |
230 | } | 217 | } |
231 | 218 | ||
232 | static inline int vfs_dq_off(struct super_block *sb, int remount) | ||
233 | { | ||
234 | return 0; | ||
235 | } | ||
236 | |||
237 | static inline int vfs_dq_quota_on_remount(struct super_block *sb) | ||
238 | { | ||
239 | return 0; | ||
240 | } | ||
241 | |||
242 | static inline int dquot_transfer(struct inode *inode, struct iattr *iattr) | 219 | static inline int dquot_transfer(struct inode *inode, struct iattr *iattr) |
243 | { | 220 | { |
244 | return 0; | 221 | return 0; |
@@ -265,6 +242,22 @@ static inline int dquot_claim_space_nodirty(struct inode *inode, qsize_t number) | |||
265 | return 0; | 242 | return 0; |
266 | } | 243 | } |
267 | 244 | ||
245 | static inline int dquot_disable(struct super_block *sb, int type, | ||
246 | unsigned int flags) | ||
247 | { | ||
248 | return 0; | ||
249 | } | ||
250 | |||
251 | static inline int dquot_suspend(struct super_block *sb, int type) | ||
252 | { | ||
253 | return 0; | ||
254 | } | ||
255 | |||
256 | static inline int dquot_resume(struct super_block *sb, int type) | ||
257 | { | ||
258 | return 0; | ||
259 | } | ||
260 | |||
268 | #define dquot_file_open generic_file_open | 261 | #define dquot_file_open generic_file_open |
269 | 262 | ||
270 | #endif /* CONFIG_QUOTA */ | 263 | #endif /* CONFIG_QUOTA */ |
diff --git a/include/linux/rio.h b/include/linux/rio.h index 19b5f227096e..bd6eb0ed34a7 100644 --- a/include/linux/rio.h +++ b/include/linux/rio.h | |||
@@ -88,11 +88,15 @@ union rio_pw_msg; | |||
88 | * @swpinfo: Switch port info | 88 | * @swpinfo: Switch port info |
89 | * @src_ops: Source operation capabilities | 89 | * @src_ops: Source operation capabilities |
90 | * @dst_ops: Destination operation capabilities | 90 | * @dst_ops: Destination operation capabilities |
91 | * @comp_tag: RIO component tag | ||
92 | * @phys_efptr: RIO device extended features pointer | ||
93 | * @em_efptr: RIO Error Management features pointer | ||
91 | * @dma_mask: Mask of bits of RIO address this device implements | 94 | * @dma_mask: Mask of bits of RIO address this device implements |
92 | * @rswitch: Pointer to &struct rio_switch if valid for this device | 95 | * @rswitch: Pointer to &struct rio_switch if valid for this device |
93 | * @driver: Driver claiming this device | 96 | * @driver: Driver claiming this device |
94 | * @dev: Device model device | 97 | * @dev: Device model device |
95 | * @riores: RIO resources this device owns | 98 | * @riores: RIO resources this device owns |
99 | * @pwcback: port-write callback function for this device | ||
96 | * @destid: Network destination ID | 100 | * @destid: Network destination ID |
97 | */ | 101 | */ |
98 | struct rio_dev { | 102 | struct rio_dev { |
@@ -222,6 +226,8 @@ struct rio_net { | |||
222 | * @add_entry: Callback for switch-specific route add function | 226 | * @add_entry: Callback for switch-specific route add function |
223 | * @get_entry: Callback for switch-specific route get function | 227 | * @get_entry: Callback for switch-specific route get function |
224 | * @clr_table: Callback for switch-specific clear route table function | 228 | * @clr_table: Callback for switch-specific clear route table function |
229 | * @set_domain: Callback for switch-specific domain setting function | ||
230 | * @get_domain: Callback for switch-specific domain get function | ||
225 | * @em_init: Callback for switch-specific error management initialization function | 231 | * @em_init: Callback for switch-specific error management initialization function |
226 | * @em_handle: Callback for switch-specific error management handler function | 232 | * @em_handle: Callback for switch-specific error management handler function |
227 | */ | 233 | */ |
diff --git a/include/linux/usb/audio-v2.h b/include/linux/usb/audio-v2.h index 2389f93a28b5..92f1d99f0f17 100644 --- a/include/linux/usb/audio-v2.h +++ b/include/linux/usb/audio-v2.h | |||
@@ -105,6 +105,22 @@ struct uac_as_header_descriptor_v2 { | |||
105 | __u8 iChannelNames; | 105 | __u8 iChannelNames; |
106 | } __attribute__((packed)); | 106 | } __attribute__((packed)); |
107 | 107 | ||
108 | /* 4.10.1.2 Class-Specific AS Isochronous Audio Data Endpoint Descriptor */ | ||
109 | |||
110 | struct uac2_iso_endpoint_descriptor { | ||
111 | __u8 bLength; /* in bytes: 8 */ | ||
112 | __u8 bDescriptorType; /* USB_DT_CS_ENDPOINT */ | ||
113 | __u8 bDescriptorSubtype; /* EP_GENERAL */ | ||
114 | __u8 bmAttributes; | ||
115 | __u8 bmControls; | ||
116 | __u8 bLockDelayUnits; | ||
117 | __le16 wLockDelay; | ||
118 | } __attribute__((packed)); | ||
119 | |||
120 | #define UAC2_CONTROL_PITCH (3 << 0) | ||
121 | #define UAC2_CONTROL_DATA_OVERRUN (3 << 2) | ||
122 | #define UAC2_CONTROL_DATA_UNDERRUN (3 << 4) | ||
123 | |||
108 | /* 6.1 Interrupt Data Message */ | 124 | /* 6.1 Interrupt Data Message */ |
109 | 125 | ||
110 | #define UAC2_INTERRUPT_DATA_MSG_VENDOR (1 << 0) | 126 | #define UAC2_INTERRUPT_DATA_MSG_VENDOR (1 << 0) |
diff --git a/include/linux/uuid.h b/include/linux/uuid.h new file mode 100644 index 000000000000..5b7efbfcee4e --- /dev/null +++ b/include/linux/uuid.h | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | * UUID/GUID definition | ||
3 | * | ||
4 | * Copyright (C) 2010, Intel Corp. | ||
5 | * Huang Ying <ying.huang@intel.com> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License version | ||
9 | * 2 as published by the Free Software Foundation; | ||
10 | * | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | ||
19 | */ | ||
20 | |||
21 | #ifndef _LINUX_UUID_H_ | ||
22 | #define _LINUX_UUID_H_ | ||
23 | |||
24 | #include <linux/types.h> | ||
25 | #include <linux/string.h> | ||
26 | |||
27 | typedef struct { | ||
28 | __u8 b[16]; | ||
29 | } uuid_le; | ||
30 | |||
31 | typedef struct { | ||
32 | __u8 b[16]; | ||
33 | } uuid_be; | ||
34 | |||
35 | #define UUID_LE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ | ||
36 | ((uuid_le) \ | ||
37 | {{ (a) & 0xff, ((a) >> 8) & 0xff, ((a) >> 16) & 0xff, ((a) >> 24) & 0xff, \ | ||
38 | (b) & 0xff, ((b) >> 8) & 0xff, \ | ||
39 | (c) & 0xff, ((c) >> 8) & 0xff, \ | ||
40 | (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) | ||
41 | |||
42 | #define UUID_BE(a, b, c, d0, d1, d2, d3, d4, d5, d6, d7) \ | ||
43 | ((uuid_be) \ | ||
44 | {{ ((a) >> 24) & 0xff, ((a) >> 16) & 0xff, ((a) >> 8) & 0xff, (a) & 0xff, \ | ||
45 | ((b) >> 8) & 0xff, (b) & 0xff, \ | ||
46 | ((c) >> 8) & 0xff, (c) & 0xff, \ | ||
47 | (d0), (d1), (d2), (d3), (d4), (d5), (d6), (d7) }}) | ||
48 | |||
49 | #define NULL_UUID_LE \ | ||
50 | UUID_LE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \ | ||
51 | 0x00, 0x00, 0x00, 0x00) | ||
52 | |||
53 | #define NULL_UUID_BE \ | ||
54 | UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \ | ||
55 | 0x00, 0x00, 0x00, 0x00) | ||
56 | |||
57 | static inline int uuid_le_cmp(const uuid_le u1, const uuid_le u2) | ||
58 | { | ||
59 | return memcmp(&u1, &u2, sizeof(uuid_le)); | ||
60 | } | ||
61 | |||
62 | static inline int uuid_be_cmp(const uuid_be u1, const uuid_be u2) | ||
63 | { | ||
64 | return memcmp(&u1, &u2, sizeof(uuid_be)); | ||
65 | } | ||
66 | |||
67 | extern void uuid_le_gen(uuid_le *u); | ||
68 | extern void uuid_be_gen(uuid_be *u); | ||
69 | |||
70 | #endif | ||