aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2005-07-30 01:55:32 -0400
committerLen Brown <len.brown@intel.com>2005-07-30 01:55:32 -0400
commitadbedd34244e2b054557002817f979a9b004a405 (patch)
tree78e4a524e84f8b3e23ae8b49ac689048584e4668 /include
parentd6ac1a7910d22626bc77e73db091e00b810715f4 (diff)
parentb0825488a642cadcf39709961dde61440cb0731c (diff)
merge 2.6.13-rc4 with ACPI's to-linus tree
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/bitops.h5
-rw-r--r--include/asm-generic/sections.h1
-rw-r--r--include/asm-i386/bitops.h53
-rw-r--r--include/asm-i386/smp.h3
-rw-r--r--include/asm-um/vm86.h6
-rw-r--r--include/asm-x86_64/bitops.h3
-rw-r--r--include/asm-x86_64/bug.h13
-rw-r--r--include/asm-x86_64/desc.h1
-rw-r--r--include/asm-x86_64/ipi.h45
-rw-r--r--include/asm-x86_64/irq.h2
-rw-r--r--include/asm-x86_64/msr.h2
-rw-r--r--include/asm-x86_64/pgtable.h2
-rw-r--r--include/asm-x86_64/smp.h6
-rw-r--r--include/asm-x86_64/system.h7
-rw-r--r--include/asm-x86_64/tlbflush.h9
-rw-r--r--include/linux/input.h6
-rw-r--r--include/linux/pci.h5
-rw-r--r--include/linux/uinput.h5
-rw-r--r--include/linux/usb_input.h25
-rw-r--r--include/sound/core.h37
-rw-r--r--include/sound/driver.h2
-rw-r--r--include/sound/emu10k1.h1
-rw-r--r--include/sound/version.h4
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);
229extern int _find_first_bit_be(const unsigned long *p, unsigned size); 229extern int _find_first_bit_be(const unsigned long *p, unsigned size);
230extern int _find_next_bit_be(const unsigned long *p, int size, int offset); 230extern 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[];
11extern char _sextratext[] __attribute__((weak)); 11extern char _sextratext[] __attribute__((weak));
12extern char _eextratext[] __attribute__((weak)); 12extern char _eextratext[] __attribute__((weak));
13extern char _end[]; 13extern char _end[];
14extern 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)
311int find_next_zero_bit(const unsigned long *addr, int size, int offset); 311int 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 */
319static 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 */
321static inline int find_first_bit(const unsigned long *addr, unsigned size) 335static 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 */
369static 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;
37extern cpumask_t cpu_sibling_map[]; 37extern cpumask_t cpu_sibling_map[];
38extern cpumask_t cpu_core_map[]; 38extern cpumask_t cpu_core_map[];
39 39
40extern void smp_flush_tlb(void);
41extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs);
42extern void smp_invalidate_rcv(void); /* Process an NMI */
43extern void (*mtrr_hook) (void); 40extern void (*mtrr_hook) (void);
44extern void zap_low_mappings (void); 41extern void zap_low_mappings (void);
45extern void lock_ipi_call_lock(void); 42extern 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 */
10struct bug_frame { 10struct 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__)))
23void out_of_line_bug(void); 30void 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 */
76extern struct desc_struct default_ldt[]; 76extern struct desc_struct default_ldt[];
77extern struct gate_struct idt_table[]; 77extern struct gate_struct idt_table[];
78extern struct desc_ptr cpu_gdt_descr[];
78 79
79static inline void _set_gate(void *adr, unsigned type, unsigned long func, unsigned dpl, unsigned ist) 80static 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 *);
57extern void fixup_irqs(cpumask_t map); 57extern 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;
46extern void lock_ipi_call_lock(void); 46extern void lock_ipi_call_lock(void);
47extern void unlock_ipi_call_lock(void); 47extern void unlock_ipi_call_lock(void);
48extern int smp_num_siblings; 48extern int smp_num_siblings;
49extern void smp_flush_tlb(void);
50extern void smp_message_irq(int cpl, void *dev_id, struct pt_regs *regs);
51extern void smp_send_reschedule(int cpu); 49extern void smp_send_reschedule(int cpu);
52extern void smp_invalidate_rcv(void); /* Process an NMI */
53extern void zap_low_mappings(void); 50extern void zap_low_mappings(void);
54void smp_stop_cpu(void); 51void smp_stop_cpu(void);
52extern int smp_call_function_single(int cpuid, void (*func) (void *info),
53 void *info, int retry, int wait);
54
55extern cpumask_t cpu_sibling_map[NR_CPUS]; 55extern cpumask_t cpu_sibling_map[NR_CPUS];
56extern cpumask_t cpu_core_map[NR_CPUS]; 56extern cpumask_t cpu_core_map[NR_CPUS];
57extern u8 phys_proc_id[NR_CPUS]; 57extern 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);
335void disable_hlt(void); 335void disable_hlt(void);
336void enable_hlt(void); 336void enable_hlt(void);
337 337
338#define HAVE_EAT_KEY
339void eat_key(void);
340
341extern unsigned long arch_align_stack(unsigned long sp); 338extern 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
115static inline void flush_tlb_pgtables(struct mm_struct *mm, 116static 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
16static inline void
17usb_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
129struct snd_shutdown_f_ops; /* define it later */ 129struct snd_shutdown_f_ops; /* define it later in init.c */
130 130
131/* main structure for soundcard */ 131/* main structure for soundcard */
132 132
133struct _snd_card { 133struct _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
199int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file);
200
201static inline unsigned int snd_power_get_state(snd_card_t *card) 201static 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 */
213int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file);
214
211int snd_card_set_pm_callback(snd_card_t *card, 215int 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
243struct _snd_minor { 245struct _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
252typedef struct _snd_minor snd_minor_t; 255typedef struct _snd_minor snd_minor_t;
@@ -287,12 +290,12 @@ void snd_memory_init(void);
287void snd_memory_done(void); 290void snd_memory_done(void);
288int snd_memory_info_init(void); 291int snd_memory_info_init(void);
289int snd_memory_info_done(void); 292int snd_memory_info_done(void);
290void *snd_hidden_kmalloc(size_t size, int flags); 293void *snd_hidden_kmalloc(size_t size, unsigned int __nocast flags);
291void *snd_hidden_kcalloc(size_t n, size_t size, int flags); 294void *snd_hidden_kcalloc(size_t n, size_t size, unsigned int __nocast flags);
292void snd_hidden_kfree(const void *obj); 295void snd_hidden_kfree(const void *obj);
293void *snd_hidden_vmalloc(unsigned long size); 296void *snd_hidden_vmalloc(unsigned long size);
294void snd_hidden_vfree(void *obj); 297void snd_hidden_vfree(void *obj);
295char *snd_hidden_kstrdup(const char *s, int flags); 298char *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>
54void *snd_wrapper_kmalloc(size_t, int); 54void *snd_wrapper_kmalloc(size_t, unsigned int __nocast);
55#undef kmalloc 55#undef kmalloc
56void snd_wrapper_kfree(const void *); 56void 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
1172int snd_emu10k1_pcm(emu10k1_t * emu, int device, snd_pcm_t ** rpcm); 1173int 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)"