diff options
author | Len Brown <len.brown@intel.com> | 2005-07-30 01:55:32 -0400 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2005-07-30 01:55:32 -0400 |
commit | adbedd34244e2b054557002817f979a9b004a405 (patch) | |
tree | 78e4a524e84f8b3e23ae8b49ac689048584e4668 /include | |
parent | d6ac1a7910d22626bc77e73db091e00b810715f4 (diff) | |
parent | b0825488a642cadcf39709961dde61440cb0731c (diff) |
merge 2.6.13-rc4 with ACPI's to-linus tree
Diffstat (limited to 'include')
-rw-r--r-- | include/asm-arm/bitops.h | 5 | ||||
-rw-r--r-- | include/asm-generic/sections.h | 1 | ||||
-rw-r--r-- | include/asm-i386/bitops.h | 53 | ||||
-rw-r--r-- | include/asm-i386/smp.h | 3 | ||||
-rw-r--r-- | include/asm-um/vm86.h | 6 | ||||
-rw-r--r-- | include/asm-x86_64/bitops.h | 3 | ||||
-rw-r--r-- | include/asm-x86_64/bug.h | 13 | ||||
-rw-r--r-- | include/asm-x86_64/desc.h | 1 | ||||
-rw-r--r-- | include/asm-x86_64/ipi.h | 45 | ||||
-rw-r--r-- | include/asm-x86_64/irq.h | 2 | ||||
-rw-r--r-- | include/asm-x86_64/msr.h | 2 | ||||
-rw-r--r-- | include/asm-x86_64/pgtable.h | 2 | ||||
-rw-r--r-- | include/asm-x86_64/smp.h | 6 | ||||
-rw-r--r-- | include/asm-x86_64/system.h | 7 | ||||
-rw-r--r-- | include/asm-x86_64/tlbflush.h | 9 | ||||
-rw-r--r-- | include/linux/input.h | 6 | ||||
-rw-r--r-- | include/linux/pci.h | 5 | ||||
-rw-r--r-- | include/linux/uinput.h | 5 | ||||
-rw-r--r-- | include/linux/usb_input.h | 25 | ||||
-rw-r--r-- | include/sound/core.h | 37 | ||||
-rw-r--r-- | include/sound/driver.h | 2 | ||||
-rw-r--r-- | include/sound/emu10k1.h | 1 | ||||
-rw-r--r-- | include/sound/version.h | 4 |
23 files changed, 140 insertions, 103 deletions
diff --git a/include/asm-arm/bitops.h b/include/asm-arm/bitops.h index c1adc6b3e86d..aad7aad026b3 100644 --- a/include/asm-arm/bitops.h +++ b/include/asm-arm/bitops.h | |||
@@ -229,6 +229,7 @@ extern int _find_next_zero_bit_be(const void * p, int size, int offset); | |||
229 | extern int _find_first_bit_be(const unsigned long *p, unsigned size); | 229 | extern int _find_first_bit_be(const unsigned long *p, unsigned size); |
230 | extern int _find_next_bit_be(const unsigned long *p, int size, int offset); | 230 | extern int _find_next_bit_be(const unsigned long *p, int size, int offset); |
231 | 231 | ||
232 | #ifndef CONFIG_SMP | ||
232 | /* | 233 | /* |
233 | * The __* form of bitops are non-atomic and may be reordered. | 234 | * The __* form of bitops are non-atomic and may be reordered. |
234 | */ | 235 | */ |
@@ -241,6 +242,10 @@ extern int _find_next_bit_be(const unsigned long *p, int size, int offset); | |||
241 | (__builtin_constant_p(nr) ? \ | 242 | (__builtin_constant_p(nr) ? \ |
242 | ____atomic_##name(nr, p) : \ | 243 | ____atomic_##name(nr, p) : \ |
243 | _##name##_be(nr,p)) | 244 | _##name##_be(nr,p)) |
245 | #else | ||
246 | #define ATOMIC_BITOP_LE(name,nr,p) _##name##_le(nr,p) | ||
247 | #define ATOMIC_BITOP_BE(name,nr,p) _##name##_be(nr,p) | ||
248 | #endif | ||
244 | 249 | ||
245 | #define NONATOMIC_BITOP(name,nr,p) \ | 250 | #define NONATOMIC_BITOP(name,nr,p) \ |
246 | (____nonatomic_##name(nr, p)) | 251 | (____nonatomic_##name(nr, p)) |
diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h index 195ccdc069e6..450eae22c39a 100644 --- a/include/asm-generic/sections.h +++ b/include/asm-generic/sections.h | |||
@@ -11,5 +11,6 @@ extern char _sinittext[], _einittext[]; | |||
11 | extern char _sextratext[] __attribute__((weak)); | 11 | extern char _sextratext[] __attribute__((weak)); |
12 | extern char _eextratext[] __attribute__((weak)); | 12 | extern char _eextratext[] __attribute__((weak)); |
13 | extern char _end[]; | 13 | extern char _end[]; |
14 | extern char __per_cpu_start[], __per_cpu_end[]; | ||
14 | 15 | ||
15 | #endif /* _ASM_GENERIC_SECTIONS_H_ */ | 16 | #endif /* _ASM_GENERIC_SECTIONS_H_ */ |
diff --git a/include/asm-i386/bitops.h b/include/asm-i386/bitops.h index 9db0b712d57a..ddf1739dc7fd 100644 --- a/include/asm-i386/bitops.h +++ b/include/asm-i386/bitops.h | |||
@@ -311,6 +311,20 @@ static inline int find_first_zero_bit(const unsigned long *addr, unsigned size) | |||
311 | int find_next_zero_bit(const unsigned long *addr, int size, int offset); | 311 | int find_next_zero_bit(const unsigned long *addr, int size, int offset); |
312 | 312 | ||
313 | /** | 313 | /** |
314 | * __ffs - find first bit in word. | ||
315 | * @word: The word to search | ||
316 | * | ||
317 | * Undefined if no bit exists, so code should check against 0 first. | ||
318 | */ | ||
319 | static inline unsigned long __ffs(unsigned long word) | ||
320 | { | ||
321 | __asm__("bsfl %1,%0" | ||
322 | :"=r" (word) | ||
323 | :"rm" (word)); | ||
324 | return word; | ||
325 | } | ||
326 | |||
327 | /** | ||
314 | * find_first_bit - find the first set bit in a memory region | 328 | * find_first_bit - find the first set bit in a memory region |
315 | * @addr: The address to start the search at | 329 | * @addr: The address to start the search at |
316 | * @size: The maximum size to search | 330 | * @size: The maximum size to search |
@@ -320,22 +334,15 @@ int find_next_zero_bit(const unsigned long *addr, int size, int offset); | |||
320 | */ | 334 | */ |
321 | static inline int find_first_bit(const unsigned long *addr, unsigned size) | 335 | static inline int find_first_bit(const unsigned long *addr, unsigned size) |
322 | { | 336 | { |
323 | int d0, d1; | 337 | int x = 0; |
324 | int res; | 338 | |
325 | 339 | while (x < size) { | |
326 | /* This looks at memory. Mark it volatile to tell gcc not to move it around */ | 340 | unsigned long val = *addr++; |
327 | __asm__ __volatile__( | 341 | if (val) |
328 | "xorl %%eax,%%eax\n\t" | 342 | return __ffs(val) + x; |
329 | "repe; scasl\n\t" | 343 | x += (sizeof(*addr)<<3); |
330 | "jz 1f\n\t" | 344 | } |
331 | "leal -4(%%edi),%%edi\n\t" | 345 | return x; |
332 | "bsfl (%%edi),%%eax\n" | ||
333 | "1:\tsubl %%ebx,%%edi\n\t" | ||
334 | "shll $3,%%edi\n\t" | ||
335 | "addl %%edi,%%eax" | ||
336 | :"=a" (res), "=&c" (d0), "=&D" (d1) | ||
337 | :"1" ((size + 31) >> 5), "2" (addr), "b" (addr) : "memory"); | ||
338 | return res; | ||
339 | } | 346 | } |
340 | 347 | ||
341 | /** | 348 | /** |
@@ -360,20 +367,6 @@ static inline unsigned long ffz(unsigned long word) | |||
360 | return word; | 367 | return word; |
361 | } | 368 | } |
362 | 369 | ||
363 | /** | ||
364 | * __ffs - find first bit in word. | ||
365 | * @word: The word to search | ||
366 | * | ||
367 | * Undefined if no bit exists, so code should check against 0 first. | ||
368 | */ | ||
369 | static inline unsigned long __ffs(unsigned long word) | ||
370 | { | ||
371 | __asm__("bsfl %1,%0" | ||
372 | :"=r" (word) | ||
373 | :"rm" (word)); | ||
374 | return word; | ||
375 | } | ||
376 | |||
377 | /* | 370 | /* |
378 | * fls: find last bit set. | 371 | * fls: find last bit set. |
379 | */ | 372 | */ |
diff --git a/include/asm-i386/smp.h b/include/asm-i386/smp.h index edad9b4712fa..a283738b80b3 100644 --- a/include/asm-i386/smp.h +++ b/include/asm-i386/smp.h | |||
@@ -37,9 +37,6 @@ extern int smp_num_siblings; | |||
37 | extern cpumask_t cpu_sibling_map[]; | 37 | extern cpumask_t cpu_sibling_map[]; |
38 | extern cpumask_t cpu_core_map[]; | 38 | extern cpumask_t cpu_core_map[]; |
39 | 39 | ||
40 | extern void smp_flush_tlb(void); | ||
41 | extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs); | ||
42 | extern void smp_invalidate_rcv(void); /* Process an NMI */ | ||
43 | extern void (*mtrr_hook) (void); | 40 | extern void (*mtrr_hook) (void); |
44 | extern void zap_low_mappings (void); | 41 | extern void zap_low_mappings (void); |
45 | extern void lock_ipi_call_lock(void); | 42 | extern void lock_ipi_call_lock(void); |
diff --git a/include/asm-um/vm86.h b/include/asm-um/vm86.h new file mode 100644 index 000000000000..7801f82de1f4 --- /dev/null +++ b/include/asm-um/vm86.h | |||
@@ -0,0 +1,6 @@ | |||
1 | #ifndef __UM_VM86_H | ||
2 | #define __UM_VM86_H | ||
3 | |||
4 | #include "asm/arch/vm86.h" | ||
5 | |||
6 | #endif | ||
diff --git a/include/asm-x86_64/bitops.h b/include/asm-x86_64/bitops.h index a31bb99be53f..05a0d374404b 100644 --- a/include/asm-x86_64/bitops.h +++ b/include/asm-x86_64/bitops.h | |||
@@ -348,8 +348,7 @@ static inline int sched_find_first_bit(const unsigned long *b) | |||
348 | return __ffs(b[0]); | 348 | return __ffs(b[0]); |
349 | if (b[1]) | 349 | if (b[1]) |
350 | return __ffs(b[1]) + 64; | 350 | return __ffs(b[1]) + 64; |
351 | if (b[2]) | 351 | return __ffs(b[2]) + 128; |
352 | return __ffs(b[2]) + 128; | ||
353 | } | 352 | } |
354 | 353 | ||
355 | /** | 354 | /** |
diff --git a/include/asm-x86_64/bug.h b/include/asm-x86_64/bug.h index 3d2a666a5dd5..eed785667289 100644 --- a/include/asm-x86_64/bug.h +++ b/include/asm-x86_64/bug.h | |||
@@ -8,17 +8,24 @@ | |||
8 | * this frame. | 8 | * this frame. |
9 | */ | 9 | */ |
10 | struct bug_frame { | 10 | struct bug_frame { |
11 | unsigned char ud2[2]; | 11 | unsigned char ud2[2]; |
12 | unsigned char mov; | ||
12 | /* should use 32bit offset instead, but the assembler doesn't | 13 | /* should use 32bit offset instead, but the assembler doesn't |
13 | like it */ | 14 | like it */ |
14 | char *filename; | 15 | char *filename; |
16 | unsigned char ret; | ||
15 | unsigned short line; | 17 | unsigned short line; |
16 | } __attribute__((packed)); | 18 | } __attribute__((packed)); |
17 | 19 | ||
18 | #ifdef CONFIG_BUG | 20 | #ifdef CONFIG_BUG |
19 | #define HAVE_ARCH_BUG | 21 | #define HAVE_ARCH_BUG |
20 | #define BUG() \ | 22 | /* We turn the bug frame into valid instructions to not confuse |
21 | asm volatile("ud2 ; .quad %c1 ; .short %c0" :: \ | 23 | the disassembler. Thanks to Jan Beulich & Suresh Siddha |
24 | for nice instruction selection. | ||
25 | The magic numbers generate mov $64bitimm,%eax ; ret $offset. */ | ||
26 | #define BUG() \ | ||
27 | asm volatile( \ | ||
28 | "ud2 ; .byte 0xa3 ; .quad %c1 ; .byte 0xc2 ; .short %c0" :: \ | ||
22 | "i"(__LINE__), "i" (__stringify(__FILE__))) | 29 | "i"(__LINE__), "i" (__stringify(__FILE__))) |
23 | void out_of_line_bug(void); | 30 | void out_of_line_bug(void); |
24 | #else | 31 | #else |
diff --git a/include/asm-x86_64/desc.h b/include/asm-x86_64/desc.h index 6aefb9c0280d..c89b58bebee2 100644 --- a/include/asm-x86_64/desc.h +++ b/include/asm-x86_64/desc.h | |||
@@ -75,6 +75,7 @@ struct desc_ptr { | |||
75 | */ | 75 | */ |
76 | extern struct desc_struct default_ldt[]; | 76 | extern struct desc_struct default_ldt[]; |
77 | extern struct gate_struct idt_table[]; | 77 | extern struct gate_struct idt_table[]; |
78 | extern struct desc_ptr cpu_gdt_descr[]; | ||
78 | 79 | ||
79 | static inline void _set_gate(void *adr, unsigned type, unsigned long func, unsigned dpl, unsigned ist) | 80 | static inline void _set_gate(void *adr, unsigned type, unsigned long func, unsigned dpl, unsigned ist) |
80 | { | 81 | { |
diff --git a/include/asm-x86_64/ipi.h b/include/asm-x86_64/ipi.h index d1841847ed89..5e166b9d3bde 100644 --- a/include/asm-x86_64/ipi.h +++ b/include/asm-x86_64/ipi.h | |||
@@ -82,30 +82,27 @@ static inline void send_IPI_mask_sequence(cpumask_t mask, int vector) | |||
82 | */ | 82 | */ |
83 | local_irq_save(flags); | 83 | local_irq_save(flags); |
84 | 84 | ||
85 | for (query_cpu = 0; query_cpu < NR_CPUS; ++query_cpu) { | 85 | for_each_cpu_mask(query_cpu, mask) { |
86 | if (cpu_isset(query_cpu, mask)) { | 86 | /* |
87 | 87 | * Wait for idle. | |
88 | /* | 88 | */ |
89 | * Wait for idle. | 89 | apic_wait_icr_idle(); |
90 | */ | 90 | |
91 | apic_wait_icr_idle(); | 91 | /* |
92 | 92 | * prepare target chip field | |
93 | /* | 93 | */ |
94 | * prepare target chip field | 94 | cfg = __prepare_ICR2(x86_cpu_to_apicid[query_cpu]); |
95 | */ | 95 | apic_write_around(APIC_ICR2, cfg); |
96 | cfg = __prepare_ICR2(x86_cpu_to_apicid[query_cpu]); | 96 | |
97 | apic_write_around(APIC_ICR2, cfg); | 97 | /* |
98 | 98 | * program the ICR | |
99 | /* | 99 | */ |
100 | * program the ICR | 100 | cfg = __prepare_ICR(0, vector, APIC_DEST_PHYSICAL); |
101 | */ | 101 | |
102 | cfg = __prepare_ICR(0, vector, APIC_DEST_PHYSICAL); | 102 | /* |
103 | 103 | * Send the IPI. The write to APIC_ICR fires this off. | |
104 | /* | 104 | */ |
105 | * Send the IPI. The write to APIC_ICR fires this off. | 105 | apic_write_around(APIC_ICR, cfg); |
106 | */ | ||
107 | apic_write_around(APIC_ICR, cfg); | ||
108 | } | ||
109 | } | 106 | } |
110 | local_irq_restore(flags); | 107 | local_irq_restore(flags); |
111 | } | 108 | } |
diff --git a/include/asm-x86_64/irq.h b/include/asm-x86_64/irq.h index eb3b7aa9eb9f..4482657777bb 100644 --- a/include/asm-x86_64/irq.h +++ b/include/asm-x86_64/irq.h | |||
@@ -57,4 +57,6 @@ int handle_IRQ_event(unsigned int, struct pt_regs *, struct irqaction *); | |||
57 | extern void fixup_irqs(cpumask_t map); | 57 | extern void fixup_irqs(cpumask_t map); |
58 | #endif | 58 | #endif |
59 | 59 | ||
60 | #define __ARCH_HAS_DO_SOFTIRQ 1 | ||
61 | |||
60 | #endif /* _ASM_IRQ_H */ | 62 | #endif /* _ASM_IRQ_H */ |
diff --git a/include/asm-x86_64/msr.h b/include/asm-x86_64/msr.h index bc700232728d..ba15279a79d0 100644 --- a/include/asm-x86_64/msr.h +++ b/include/asm-x86_64/msr.h | |||
@@ -218,7 +218,7 @@ extern inline unsigned int cpuid_edx(unsigned int op) | |||
218 | #define MSR_K7_PERFCTR3 0xC0010007 | 218 | #define MSR_K7_PERFCTR3 0xC0010007 |
219 | #define MSR_K8_TOP_MEM1 0xC001001A | 219 | #define MSR_K8_TOP_MEM1 0xC001001A |
220 | #define MSR_K8_TOP_MEM2 0xC001001D | 220 | #define MSR_K8_TOP_MEM2 0xC001001D |
221 | #define MSR_K8_SYSCFG 0xC0000010 | 221 | #define MSR_K8_SYSCFG 0xC0010010 |
222 | 222 | ||
223 | /* K6 MSRs */ | 223 | /* K6 MSRs */ |
224 | #define MSR_K6_EFER 0xC0000080 | 224 | #define MSR_K6_EFER 0xC0000080 |
diff --git a/include/asm-x86_64/pgtable.h b/include/asm-x86_64/pgtable.h index 4eec176c3c39..4e167b5ea8f3 100644 --- a/include/asm-x86_64/pgtable.h +++ b/include/asm-x86_64/pgtable.h | |||
@@ -176,6 +176,8 @@ extern inline void pgd_clear (pgd_t * pgd) | |||
176 | (_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_PCD) | 176 | (_PAGE_PRESENT | _PAGE_USER | _PAGE_ACCESSED | _PAGE_PCD) |
177 | #define __PAGE_KERNEL_LARGE \ | 177 | #define __PAGE_KERNEL_LARGE \ |
178 | (__PAGE_KERNEL | _PAGE_PSE) | 178 | (__PAGE_KERNEL | _PAGE_PSE) |
179 | #define __PAGE_KERNEL_LARGE_EXEC \ | ||
180 | (__PAGE_KERNEL_EXEC | _PAGE_PSE) | ||
179 | 181 | ||
180 | #define MAKE_GLOBAL(x) __pgprot((x) | _PAGE_GLOBAL) | 182 | #define MAKE_GLOBAL(x) __pgprot((x) | _PAGE_GLOBAL) |
181 | 183 | ||
diff --git a/include/asm-x86_64/smp.h b/include/asm-x86_64/smp.h index aeb1b73e21e1..de8b57b2b62b 100644 --- a/include/asm-x86_64/smp.h +++ b/include/asm-x86_64/smp.h | |||
@@ -46,12 +46,12 @@ extern int pic_mode; | |||
46 | extern void lock_ipi_call_lock(void); | 46 | extern void lock_ipi_call_lock(void); |
47 | extern void unlock_ipi_call_lock(void); | 47 | extern void unlock_ipi_call_lock(void); |
48 | extern int smp_num_siblings; | 48 | extern int smp_num_siblings; |
49 | extern void smp_flush_tlb(void); | ||
50 | extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs); | ||
51 | extern void smp_send_reschedule(int cpu); | 49 | extern void smp_send_reschedule(int cpu); |
52 | extern void smp_invalidate_rcv(void); /* Process an NMI */ | ||
53 | extern void zap_low_mappings(void); | 50 | extern void zap_low_mappings(void); |
54 | void smp_stop_cpu(void); | 51 | void smp_stop_cpu(void); |
52 | extern int smp_call_function_single(int cpuid, void (*func) (void *info), | ||
53 | void *info, int retry, int wait); | ||
54 | |||
55 | extern cpumask_t cpu_sibling_map[NR_CPUS]; | 55 | extern cpumask_t cpu_sibling_map[NR_CPUS]; |
56 | extern cpumask_t cpu_core_map[NR_CPUS]; | 56 | extern cpumask_t cpu_core_map[NR_CPUS]; |
57 | extern u8 phys_proc_id[NR_CPUS]; | 57 | extern u8 phys_proc_id[NR_CPUS]; |
diff --git a/include/asm-x86_64/system.h b/include/asm-x86_64/system.h index 76165736e43a..8606e170a7dc 100644 --- a/include/asm-x86_64/system.h +++ b/include/asm-x86_64/system.h | |||
@@ -116,12 +116,12 @@ struct alt_instr { | |||
116 | /* | 116 | /* |
117 | * Alternative inline assembly with input. | 117 | * Alternative inline assembly with input. |
118 | * | 118 | * |
119 | * Pecularities: | 119 | * Peculiarities: |
120 | * No memory clobber here. | 120 | * No memory clobber here. |
121 | * Argument numbers start with 1. | 121 | * Argument numbers start with 1. |
122 | * Best is to use constraints that are fixed size (like (%1) ... "r") | 122 | * Best is to use constraints that are fixed size (like (%1) ... "r") |
123 | * If you use variable sized constraints like "m" or "g" in the | 123 | * If you use variable sized constraints like "m" or "g" in the |
124 | * replacement maake sure to pad to the worst case length. | 124 | * replacement make sure to pad to the worst case length. |
125 | */ | 125 | */ |
126 | #define alternative_input(oldinstr, newinstr, feature, input...) \ | 126 | #define alternative_input(oldinstr, newinstr, feature, input...) \ |
127 | asm volatile ("661:\n\t" oldinstr "\n662:\n" \ | 127 | asm volatile ("661:\n\t" oldinstr "\n662:\n" \ |
@@ -335,9 +335,6 @@ void cpu_idle_wait(void); | |||
335 | void disable_hlt(void); | 335 | void disable_hlt(void); |
336 | void enable_hlt(void); | 336 | void enable_hlt(void); |
337 | 337 | ||
338 | #define HAVE_EAT_KEY | ||
339 | void eat_key(void); | ||
340 | |||
341 | extern unsigned long arch_align_stack(unsigned long sp); | 338 | extern unsigned long arch_align_stack(unsigned long sp); |
342 | 339 | ||
343 | #endif | 340 | #endif |
diff --git a/include/asm-x86_64/tlbflush.h b/include/asm-x86_64/tlbflush.h index 061742382520..505b0cf906de 100644 --- a/include/asm-x86_64/tlbflush.h +++ b/include/asm-x86_64/tlbflush.h | |||
@@ -56,8 +56,9 @@ extern unsigned long pgkern_mask; | |||
56 | * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages | 56 | * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages |
57 | * - flush_tlb_pgtables(mm, start, end) flushes a range of page tables | 57 | * - flush_tlb_pgtables(mm, start, end) flushes a range of page tables |
58 | * | 58 | * |
59 | * ..but the x86_64 has somewhat limited tlb flushing capabilities, | 59 | * x86-64 can only flush individual pages or full VMs. For a range flush |
60 | * and page-granular flushes are available only on i486 and up. | 60 | * we always do the full VM. Might be worth trying if for a small |
61 | * range a few INVLPGs in a row are a win. | ||
61 | */ | 62 | */ |
62 | 63 | ||
63 | #ifndef CONFIG_SMP | 64 | #ifndef CONFIG_SMP |
@@ -115,7 +116,9 @@ static inline void flush_tlb_range(struct vm_area_struct * vma, unsigned long st | |||
115 | static inline void flush_tlb_pgtables(struct mm_struct *mm, | 116 | static inline void flush_tlb_pgtables(struct mm_struct *mm, |
116 | unsigned long start, unsigned long end) | 117 | unsigned long start, unsigned long end) |
117 | { | 118 | { |
118 | /* x86_64 does not keep any page table caches in TLB */ | 119 | /* x86_64 does not keep any page table caches in a software TLB. |
120 | The CPUs do in their hardware TLBs, but they are handled | ||
121 | by the normal TLB flushing algorithms. */ | ||
119 | } | 122 | } |
120 | 123 | ||
121 | #endif /* _X8664_TLBFLUSH_H */ | 124 | #endif /* _X8664_TLBFLUSH_H */ |
diff --git a/include/linux/input.h b/include/linux/input.h index b9cc0ac71f44..bdc53c6cc962 100644 --- a/include/linux/input.h +++ b/include/linux/input.h | |||
@@ -811,9 +811,9 @@ struct input_dev { | |||
811 | 811 | ||
812 | void *private; | 812 | void *private; |
813 | 813 | ||
814 | char *name; | 814 | const char *name; |
815 | char *phys; | 815 | const char *phys; |
816 | char *uniq; | 816 | const char *uniq; |
817 | struct input_id id; | 817 | struct input_id id; |
818 | 818 | ||
819 | unsigned long evbit[NBITS(EV_MAX)]; | 819 | unsigned long evbit[NBITS(EV_MAX)]; |
diff --git a/include/linux/pci.h b/include/linux/pci.h index 7ac14961ba22..8621cf42b46f 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h | |||
@@ -971,6 +971,8 @@ static inline int pci_enable_wake(struct pci_dev *dev, pci_power_t state, int en | |||
971 | 971 | ||
972 | #define isa_bridge ((struct pci_dev *)NULL) | 972 | #define isa_bridge ((struct pci_dev *)NULL) |
973 | 973 | ||
974 | #define pci_dma_burst_advice(pdev, strat, strategy_parameter) do { } while (0) | ||
975 | |||
974 | #else | 976 | #else |
975 | 977 | ||
976 | /* | 978 | /* |
@@ -985,9 +987,6 @@ static inline int pci_proc_domain(struct pci_bus *bus) | |||
985 | return 0; | 987 | return 0; |
986 | } | 988 | } |
987 | #endif | 989 | #endif |
988 | |||
989 | #define pci_dma_burst_advice(pdev, strat, strategy_parameter) do { } while (0) | ||
990 | |||
991 | #endif /* !CONFIG_PCI */ | 990 | #endif /* !CONFIG_PCI */ |
992 | 991 | ||
993 | /* these helpers provide future and backwards compatibility | 992 | /* these helpers provide future and backwards compatibility |
diff --git a/include/linux/uinput.h b/include/linux/uinput.h index 4c2c82336d10..84876077027f 100644 --- a/include/linux/uinput.h +++ b/include/linux/uinput.h | |||
@@ -42,8 +42,7 @@ struct uinput_request { | |||
42 | int code; /* UI_FF_UPLOAD, UI_FF_ERASE */ | 42 | int code; /* UI_FF_UPLOAD, UI_FF_ERASE */ |
43 | 43 | ||
44 | int retval; | 44 | int retval; |
45 | wait_queue_head_t waitq; | 45 | struct completion done; |
46 | int completed; | ||
47 | 46 | ||
48 | union { | 47 | union { |
49 | int effect_id; | 48 | int effect_id; |
@@ -62,7 +61,7 @@ struct uinput_device { | |||
62 | 61 | ||
63 | struct uinput_request *requests[UINPUT_NUM_REQUESTS]; | 62 | struct uinput_request *requests[UINPUT_NUM_REQUESTS]; |
64 | wait_queue_head_t requests_waitq; | 63 | wait_queue_head_t requests_waitq; |
65 | struct semaphore requests_sem; | 64 | spinlock_t requests_lock; |
66 | }; | 65 | }; |
67 | #endif /* __KERNEL__ */ | 66 | #endif /* __KERNEL__ */ |
68 | 67 | ||
diff --git a/include/linux/usb_input.h b/include/linux/usb_input.h new file mode 100644 index 000000000000..716e0cc16043 --- /dev/null +++ b/include/linux/usb_input.h | |||
@@ -0,0 +1,25 @@ | |||
1 | #ifndef __USB_INPUT_H | ||
2 | #define __USB_INPUT_H | ||
3 | |||
4 | /* | ||
5 | * Copyright (C) 2005 Dmitry Torokhov | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | ||
8 | * under the terms of the GNU General Public License version 2 as published by | ||
9 | * the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #include <linux/usb.h> | ||
13 | #include <linux/input.h> | ||
14 | #include <asm/byteorder.h> | ||
15 | |||
16 | static inline void | ||
17 | usb_to_input_id(const struct usb_device *dev, struct input_id *id) | ||
18 | { | ||
19 | id->bustype = BUS_USB; | ||
20 | id->vendor = le16_to_cpu(dev->descriptor.idVendor); | ||
21 | id->product = le16_to_cpu(dev->descriptor.idProduct); | ||
22 | id->version = le16_to_cpu(dev->descriptor.bcdDevice); | ||
23 | } | ||
24 | |||
25 | #endif | ||
diff --git a/include/sound/core.h b/include/sound/core.h index f8c4ef0aa352..38b357fc8958 100644 --- a/include/sound/core.h +++ b/include/sound/core.h | |||
@@ -126,25 +126,26 @@ struct snd_monitor_file { | |||
126 | struct snd_monitor_file *next; | 126 | struct snd_monitor_file *next; |
127 | }; | 127 | }; |
128 | 128 | ||
129 | struct snd_shutdown_f_ops; /* define it later */ | 129 | struct snd_shutdown_f_ops; /* define it later in init.c */ |
130 | 130 | ||
131 | /* main structure for soundcard */ | 131 | /* main structure for soundcard */ |
132 | 132 | ||
133 | struct _snd_card { | 133 | struct _snd_card { |
134 | int number; /* number of soundcard (index to snd_cards) */ | 134 | int number; /* number of soundcard (index to |
135 | snd_cards) */ | ||
135 | 136 | ||
136 | char id[16]; /* id string of this card */ | 137 | char id[16]; /* id string of this card */ |
137 | char driver[16]; /* driver name */ | 138 | char driver[16]; /* driver name */ |
138 | char shortname[32]; /* short name of this soundcard */ | 139 | char shortname[32]; /* short name of this soundcard */ |
139 | char longname[80]; /* name of this soundcard */ | 140 | char longname[80]; /* name of this soundcard */ |
140 | char mixername[80]; /* mixer name */ | 141 | char mixername[80]; /* mixer name */ |
141 | char components[80]; /* card components delimited with space */ | 142 | char components[80]; /* card components delimited with |
142 | 143 | space */ | |
143 | struct module *module; /* top-level module */ | 144 | struct module *module; /* top-level module */ |
144 | 145 | ||
145 | void *private_data; /* private data for soundcard */ | 146 | void *private_data; /* private data for soundcard */ |
146 | void (*private_free) (snd_card_t *card); /* callback for freeing of private data */ | 147 | void (*private_free) (snd_card_t *card); /* callback for freeing of |
147 | 148 | private data */ | |
148 | struct list_head devices; /* devices */ | 149 | struct list_head devices; /* devices */ |
149 | 150 | ||
150 | unsigned int last_numid; /* last used numeric ID */ | 151 | unsigned int last_numid; /* last used numeric ID */ |
@@ -160,7 +161,8 @@ struct _snd_card { | |||
160 | struct proc_dir_entry *proc_root_link; /* number link to real id */ | 161 | struct proc_dir_entry *proc_root_link; /* number link to real id */ |
161 | 162 | ||
162 | struct snd_monitor_file *files; /* all files associated to this card */ | 163 | struct snd_monitor_file *files; /* all files associated to this card */ |
163 | struct snd_shutdown_f_ops *s_f_ops; /* file operations in the shutdown state */ | 164 | struct snd_shutdown_f_ops *s_f_ops; /* file operations in the shutdown |
165 | state */ | ||
164 | spinlock_t files_lock; /* lock the files for this card */ | 166 | spinlock_t files_lock; /* lock the files for this card */ |
165 | int shutdown; /* this card is going down */ | 167 | int shutdown; /* this card is going down */ |
166 | wait_queue_head_t shutdown_sleep; | 168 | wait_queue_head_t shutdown_sleep; |
@@ -196,8 +198,6 @@ static inline void snd_power_unlock(snd_card_t *card) | |||
196 | up(&card->power_lock); | 198 | up(&card->power_lock); |
197 | } | 199 | } |
198 | 200 | ||
199 | int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file); | ||
200 | |||
201 | static inline unsigned int snd_power_get_state(snd_card_t *card) | 201 | static inline unsigned int snd_power_get_state(snd_card_t *card) |
202 | { | 202 | { |
203 | return card->power_state; | 203 | return card->power_state; |
@@ -208,6 +208,10 @@ static inline void snd_power_change_state(snd_card_t *card, unsigned int state) | |||
208 | card->power_state = state; | 208 | card->power_state = state; |
209 | wake_up(&card->power_sleep); | 209 | wake_up(&card->power_sleep); |
210 | } | 210 | } |
211 | |||
212 | /* init.c */ | ||
213 | int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file); | ||
214 | |||
211 | int snd_card_set_pm_callback(snd_card_t *card, | 215 | int snd_card_set_pm_callback(snd_card_t *card, |
212 | int (*suspend)(snd_card_t *, pm_message_t), | 216 | int (*suspend)(snd_card_t *, pm_message_t), |
213 | int (*resume)(snd_card_t *), | 217 | int (*resume)(snd_card_t *), |
@@ -238,15 +242,14 @@ static inline int snd_power_wait(snd_card_t *card, unsigned int state, struct fi | |||
238 | 242 | ||
239 | #endif /* CONFIG_PM */ | 243 | #endif /* CONFIG_PM */ |
240 | 244 | ||
241 | /* device.c */ | ||
242 | |||
243 | struct _snd_minor { | 245 | struct _snd_minor { |
244 | struct list_head list; /* list of all minors per card */ | 246 | struct list_head list; /* list of all minors per card */ |
245 | int number; /* minor number */ | 247 | int number; /* minor number */ |
246 | int device; /* device number */ | 248 | int device; /* device number */ |
247 | const char *comment; /* for /proc/asound/devices */ | 249 | const char *comment; /* for /proc/asound/devices */ |
248 | struct file_operations *f_ops; /* file operations */ | 250 | struct file_operations *f_ops; /* file operations */ |
249 | char name[0]; /* device name (keep at the end of structure) */ | 251 | char name[0]; /* device name (keep at the end of |
252 | structure) */ | ||
250 | }; | 253 | }; |
251 | 254 | ||
252 | typedef struct _snd_minor snd_minor_t; | 255 | typedef struct _snd_minor snd_minor_t; |
@@ -287,12 +290,12 @@ void snd_memory_init(void); | |||
287 | void snd_memory_done(void); | 290 | void snd_memory_done(void); |
288 | int snd_memory_info_init(void); | 291 | int snd_memory_info_init(void); |
289 | int snd_memory_info_done(void); | 292 | int snd_memory_info_done(void); |
290 | void *snd_hidden_kmalloc(size_t size, int flags); | 293 | void *snd_hidden_kmalloc(size_t size, unsigned int __nocast flags); |
291 | void *snd_hidden_kcalloc(size_t n, size_t size, int flags); | 294 | void *snd_hidden_kcalloc(size_t n, size_t size, unsigned int __nocast flags); |
292 | void snd_hidden_kfree(const void *obj); | 295 | void snd_hidden_kfree(const void *obj); |
293 | void *snd_hidden_vmalloc(unsigned long size); | 296 | void *snd_hidden_vmalloc(unsigned long size); |
294 | void snd_hidden_vfree(void *obj); | 297 | void snd_hidden_vfree(void *obj); |
295 | char *snd_hidden_kstrdup(const char *s, int flags); | 298 | char *snd_hidden_kstrdup(const char *s, unsigned int __nocast flags); |
296 | #define kmalloc(size, flags) snd_hidden_kmalloc(size, flags) | 299 | #define kmalloc(size, flags) snd_hidden_kmalloc(size, flags) |
297 | #define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags) | 300 | #define kcalloc(n, size, flags) snd_hidden_kcalloc(n, size, flags) |
298 | #define kfree(obj) snd_hidden_kfree(obj) | 301 | #define kfree(obj) snd_hidden_kfree(obj) |
@@ -411,7 +414,7 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) | |||
411 | printk(fmt ,##args) | 414 | printk(fmt ,##args) |
412 | #endif | 415 | #endif |
413 | /** | 416 | /** |
414 | * snd_assert - run-time assersion macro | 417 | * snd_assert - run-time assertion macro |
415 | * @expr: expression | 418 | * @expr: expression |
416 | * @args...: the action | 419 | * @args...: the action |
417 | * | 420 | * |
@@ -427,7 +430,7 @@ void snd_verbose_printd(const char *file, int line, const char *format, ...) | |||
427 | }\ | 430 | }\ |
428 | } while (0) | 431 | } while (0) |
429 | /** | 432 | /** |
430 | * snd_runtime_check - run-time assersion macro | 433 | * snd_runtime_check - run-time assertion macro |
431 | * @expr: expression | 434 | * @expr: expression |
432 | * @args...: the action | 435 | * @args...: the action |
433 | * | 436 | * |
diff --git a/include/sound/driver.h b/include/sound/driver.h index 948e9a1aebef..0d12456ec3ae 100644 --- a/include/sound/driver.h +++ b/include/sound/driver.h | |||
@@ -51,7 +51,7 @@ | |||
51 | #ifdef CONFIG_SND_DEBUG_MEMORY | 51 | #ifdef CONFIG_SND_DEBUG_MEMORY |
52 | #include <linux/slab.h> | 52 | #include <linux/slab.h> |
53 | #include <linux/vmalloc.h> | 53 | #include <linux/vmalloc.h> |
54 | void *snd_wrapper_kmalloc(size_t, int); | 54 | void *snd_wrapper_kmalloc(size_t, unsigned int __nocast); |
55 | #undef kmalloc | 55 | #undef kmalloc |
56 | void snd_wrapper_kfree(const void *); | 56 | void snd_wrapper_kfree(const void *); |
57 | #undef kfree | 57 | #undef kfree |
diff --git a/include/sound/emu10k1.h b/include/sound/emu10k1.h index c50b91958ff9..c2ef3f023687 100644 --- a/include/sound/emu10k1.h +++ b/include/sound/emu10k1.h | |||
@@ -1167,6 +1167,7 @@ int snd_emu10k1_create(snd_card_t * card, | |||
1167 | unsigned short extout_mask, | 1167 | unsigned short extout_mask, |
1168 | long max_cache_bytes, | 1168 | long max_cache_bytes, |
1169 | int enable_ir, | 1169 | int enable_ir, |
1170 | uint subsystem, | ||
1170 | emu10k1_t ** remu); | 1171 | emu10k1_t ** remu); |
1171 | 1172 | ||
1172 | int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); | 1173 | int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); |
diff --git a/include/sound/version.h b/include/sound/version.h index 46acfa8c9988..c085136f391f 100644 --- a/include/sound/version.h +++ b/include/sound/version.h | |||
@@ -1,3 +1,3 @@ | |||
1 | /* include/version.h. Generated by configure. */ | 1 | /* include/version.h. Generated by configure. */ |
2 | #define CONFIG_SND_VERSION "1.0.9" | 2 | #define CONFIG_SND_VERSION "1.0.9b" |
3 | #define CONFIG_SND_DATE " (Sun May 29 07:31:02 2005 UTC)" | 3 | #define CONFIG_SND_DATE " (Thu Jul 28 12:20:13 2005 UTC)" |