1 | eturn 0;
|
---|
2 | diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
|
---|
3 | index ebdb85c..f67a33c7 100644
|
---|
4 | --- a/arch/x86/kernel/early-quirks.c
|
---|
5 | +++ b/arch/x86/kernel/early-quirks.c
|
---|
6 | @@ -145,15 +145,10 @@ static void __init ati_bugs(int num, int slot, int func)
|
---|
7 |
|
---|
8 | static u32 __init ati_sbx00_rev(int num, int slot, int func)
|
---|
9 | {
|
---|
10 | - u32 old, d;
|
---|
11 | + u32 d;
|
---|
12 |
|
---|
13 | - d = read_pci_config(num, slot, func, 0x70);
|
---|
14 | - old = d;
|
---|
15 | - d &= ~(1<<8);
|
---|
16 | - write_pci_config(num, slot, func, 0x70, d);
|
---|
17 | d = read_pci_config(num, slot, func, 0x8);
|
---|
18 | d &= 0xff;
|
---|
19 | - write_pci_config(num, slot, func, 0x70, old);
|
---|
20 |
|
---|
21 | return d;
|
---|
22 | }
|
---|
23 | @@ -162,11 +157,19 @@ static void __init ati_bugs_contd(int num, int slot, int func)
|
---|
24 | {
|
---|
25 | u32 d, rev;
|
---|
26 |
|
---|
27 | - if (acpi_use_timer_override)
|
---|
28 | + rev = ati_sbx00_rev(num, slot, func);
|
---|
29 | + if (rev >= 0x40)
|
---|
30 | + acpi_fix_pin2_polarity = 1;
|
---|
31 | +
|
---|
32 | + /*
|
---|
33 | + * SB600: revisions 0x11, 0x12, 0x13, 0x14, ...
|
---|
34 | + * SB700: revisions 0x39, 0x3a, ...
|
---|
35 | + * SB800: revisions 0x40, 0x41, ...
|
---|
36 | + */
|
---|
37 | + if (rev >= 0x39)
|
---|
38 | return;
|
---|
39 |
|
---|
40 | - rev = ati_sbx00_rev(num, slot, func);
|
---|
41 | - if (rev > 0x13)
|
---|
42 | + if (acpi_use_timer_override)
|
---|
43 | return;
|
---|
44 |
|
---|
45 | /* check for IRQ0 interrupt swap */
|
---|
46 | diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
|
---|
47 | index 7fd318b..e2395bf 100644
|
---|
48 | --- a/arch/x86/kernel/head_32.S
|
---|
49 | +++ b/arch/x86/kernel/head_32.S
|
---|
50 | @@ -328,7 +328,7 @@ ENTRY(startup_32_smp)
|
---|
51 | /*
|
---|
52 | * Enable paging
|
---|
53 | */
|
---|
54 | - movl $pa(swapper_pg_dir),%eax
|
---|
55 | + movl pa(initial_page_table), %eax
|
---|
56 | movl %eax,%cr3 /* set the page table pointer.. */
|
---|
57 | movl %cr0,%eax
|
---|
58 | orl $X86_CR0_PG,%eax
|
---|
59 | @@ -608,6 +608,8 @@ ignore_int:
|
---|
60 | .align 4
|
---|
61 | ENTRY(initial_code)
|
---|
62 | .long i386_start_kernel
|
---|
63 | +ENTRY(initial_page_table)
|
---|
64 | + .long pa(swapper_pg_dir)
|
---|
65 |
|
---|
66 | /*
|
---|
67 | * BSS section
|
---|
68 | @@ -623,6 +625,10 @@ ENTRY(swapper_pg_dir)
|
---|
69 | #endif
|
---|
70 | swapper_pg_fixmap:
|
---|
71 | .fill 1024,4,0
|
---|
72 | +#ifdef CONFIG_X86_TRAMPOLINE
|
---|
73 | +ENTRY(trampoline_pg_dir)
|
---|
74 | + .fill 1024,4,0
|
---|
75 | +#endif
|
---|
76 | ENTRY(empty_zero_page)
|
---|
77 | .fill 4096,1,0
|
---|
78 |
|
---|
79 | diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
|
---|
80 | index 241c5b2..9ae9b0b 100644
|
---|
81 | --- a/arch/x86/kernel/hpet.c
|
---|
82 | +++ b/arch/x86/kernel/hpet.c
|
---|
83 | @@ -498,7 +498,7 @@ static int hpet_assign_irq(struct hpet_dev *dev)
|
---|
84 | {
|
---|
85 | unsigned int irq;
|
---|
86 |
|
---|
87 | - irq = create_irq();
|
---|
88 | + irq = create_irq_nr(0, -1);
|
---|
89 | if (!irq)
|
---|
90 | return -EINVAL;
|
---|