diff options
45 files changed, 229 insertions, 131 deletions
diff --git a/Documentation/DocBook/kernel-api.tmpl b/Documentation/DocBook/kernel-api.tmpl index eb42bf9847cb..ec7c498b69fc 100644 --- a/Documentation/DocBook/kernel-api.tmpl +++ b/Documentation/DocBook/kernel-api.tmpl | |||
@@ -704,14 +704,23 @@ X!Idrivers/video/console/fonts.c | |||
704 | 704 | ||
705 | <chapter id="splice"> | 705 | <chapter id="splice"> |
706 | <title>splice API</title> | 706 | <title>splice API</title> |
707 | <para>) | 707 | <para> |
708 | splice is a method for moving blocks of data around inside the | 708 | splice is a method for moving blocks of data around inside the |
709 | kernel, without continually transferring it between the kernel | 709 | kernel, without continually transferring them between the kernel |
710 | and user space. | 710 | and user space. |
711 | </para> | 711 | </para> |
712 | !Iinclude/linux/splice.h | 712 | !Iinclude/linux/splice.h |
713 | !Ffs/splice.c | 713 | !Ffs/splice.c |
714 | </chapter> | 714 | </chapter> |
715 | 715 | ||
716 | <chapter id="pipes"> | ||
717 | <title>pipes API</title> | ||
718 | <para> | ||
719 | Pipe interfaces are all for in-kernel (builtin image) use. | ||
720 | They are not exported for use by modules. | ||
721 | </para> | ||
722 | !Iinclude/linux/pipe_fs_i.h | ||
723 | !Ffs/pipe.c | ||
724 | </chapter> | ||
716 | 725 | ||
717 | </book> | 726 | </book> |
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index fb80e9ffea68..1156653338fe 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -30,6 +30,7 @@ the beginning of each description states the restrictions within which a | |||
30 | parameter is applicable: | 30 | parameter is applicable: |
31 | 31 | ||
32 | ACPI ACPI support is enabled. | 32 | ACPI ACPI support is enabled. |
33 | AGP AGP (Accelerated Graphics Port) is enabled. | ||
33 | ALSA ALSA sound support is enabled. | 34 | ALSA ALSA sound support is enabled. |
34 | APIC APIC support is enabled. | 35 | APIC APIC support is enabled. |
35 | APM Advanced Power Management support is enabled. | 36 | APM Advanced Power Management support is enabled. |
@@ -227,6 +228,12 @@ and is between 256 and 4096 characters. It is defined in the file | |||
227 | to assume that this machine's pmtimer latches its value | 228 | to assume that this machine's pmtimer latches its value |
228 | and always returns good values. | 229 | and always returns good values. |
229 | 230 | ||
231 | agp= [AGP] | ||
232 | { off | try_unsupported } | ||
233 | off: disable AGP support | ||
234 | try_unsupported: try to drive unsupported chipsets | ||
235 | (may crash computer or cause data corruption) | ||
236 | |||
230 | enable_timer_pin_1 [i386,x86-64] | 237 | enable_timer_pin_1 [i386,x86-64] |
231 | Enable PIN 1 of APIC timer | 238 | Enable PIN 1 of APIC timer |
232 | Can be useful to work around chipset bugs | 239 | Can be useful to work around chipset bugs |
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 85016313bd11..c8569e862c6b 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig | |||
@@ -341,6 +341,7 @@ config ARCH_PXA | |||
341 | select ARCH_MTD_XIP | 341 | select ARCH_MTD_XIP |
342 | select GENERIC_GPIO | 342 | select GENERIC_GPIO |
343 | select GENERIC_TIME | 343 | select GENERIC_TIME |
344 | select GENERIC_CLOCKEVENTS | ||
344 | help | 345 | help |
345 | Support for Intel's PXA2XX processor line. | 346 | Support for Intel's PXA2XX processor line. |
346 | 347 | ||
diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c index 1b76d87fa335..9746e5293249 100644 --- a/arch/arm/kernel/smp.c +++ b/arch/arm/kernel/smp.c | |||
@@ -630,7 +630,7 @@ void smp_send_stop(void) | |||
630 | /* | 630 | /* |
631 | * not supported here | 631 | * not supported here |
632 | */ | 632 | */ |
633 | int __init setup_profiling_timer(unsigned int multiplier) | 633 | int setup_profiling_timer(unsigned int multiplier) |
634 | { | 634 | { |
635 | return -EINVAL; | 635 | return -EINVAL; |
636 | } | 636 | } |
diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c index f2114bcf09d5..8ad47619c079 100644 --- a/arch/arm/kernel/traps.c +++ b/arch/arm/kernel/traps.c | |||
@@ -352,10 +352,8 @@ asmlinkage void __exception do_undefinstr(struct pt_regs *regs) | |||
352 | 352 | ||
353 | asmlinkage void do_unexp_fiq (struct pt_regs *regs) | 353 | asmlinkage void do_unexp_fiq (struct pt_regs *regs) |
354 | { | 354 | { |
355 | #ifndef CONFIG_IGNORE_FIQ | ||
356 | printk("Hmm. Unexpected FIQ received, but trying to continue\n"); | 355 | printk("Hmm. Unexpected FIQ received, but trying to continue\n"); |
357 | printk("You may have a hardware problem...\n"); | 356 | printk("You may have a hardware problem...\n"); |
358 | #endif | ||
359 | } | 357 | } |
360 | 358 | ||
361 | /* | 359 | /* |
diff --git a/arch/arm/mach-sa1100/jornada720.c b/arch/arm/mach-sa1100/jornada720.c index 64067cd58d36..52ac37d1e23a 100644 --- a/arch/arm/mach-sa1100/jornada720.c +++ b/arch/arm/mach-sa1100/jornada720.c | |||
@@ -3,6 +3,7 @@ | |||
3 | * | 3 | * |
4 | * HP Jornada720 init code | 4 | * HP Jornada720 init code |
5 | * | 5 | * |
6 | * Copyright (C) 2007 Kristoffer Ericson <Kristoffer.Ericson@gmail.com> | ||
6 | * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl> | 7 | * Copyright (C) 2006 Filip Zyzniewski <filip.zyzniewski@tefnet.pl> |
7 | * Copyright (C) 2005 Michael Gernoth <michael@gernoth.net> | 8 | * Copyright (C) 2005 Michael Gernoth <michael@gernoth.net> |
8 | * | 9 | * |
@@ -220,14 +221,16 @@ static struct platform_device sa1111_device = { | |||
220 | .resource = sa1111_resources, | 221 | .resource = sa1111_resources, |
221 | }; | 222 | }; |
222 | 223 | ||
223 | static struct platform_device jornada720_mcu_device = { | 224 | static struct platform_device jornada_ssp_device = { |
224 | .name = "jornada720_mcu", | 225 | .name = "jornada_ssp", |
225 | .id = -1, | 226 | .id = -1, |
226 | }; | 227 | }; |
227 | 228 | ||
228 | static struct platform_device *devices[] __initdata = { | 229 | static struct platform_device *devices[] __initdata = { |
229 | &sa1111_device, | 230 | &sa1111_device, |
230 | &jornada720_mcu_device, | 231 | #ifdef CONFIG_SA1100_JORNADA720_SSP |
232 | &jornada_ssp_device, | ||
233 | #endif | ||
231 | &s1d13xxxfb_device, | 234 | &s1d13xxxfb_device, |
232 | }; | 235 | }; |
233 | 236 | ||
@@ -236,19 +239,19 @@ static int __init jornada720_init(void) | |||
236 | int ret = -ENODEV; | 239 | int ret = -ENODEV; |
237 | 240 | ||
238 | if (machine_is_jornada720()) { | 241 | if (machine_is_jornada720()) { |
239 | GPDR |= GPIO_GPIO20; | 242 | /* we want to use gpio20 as input to drive the clock of our uart 3 */ |
240 | /* oscillator setup (line 116 of HP's doc) */ | 243 | GPDR |= GPIO_GPIO20; /* Clear gpio20 pin as input */ |
241 | TUCR = TUCR_VAL; | 244 | TUCR = TUCR_VAL; |
242 | /* resetting SA1111 (line 118 of HP's doc) */ | 245 | GPSR = GPIO_GPIO20; /* start gpio20 pin */ |
243 | GPSR = GPIO_GPIO20; | ||
244 | udelay(1); | 246 | udelay(1); |
245 | GPCR = GPIO_GPIO20; | 247 | GPCR = GPIO_GPIO20; /* stop gpio20 */ |
246 | udelay(1); | 248 | udelay(1); |
247 | GPSR = GPIO_GPIO20; | 249 | GPSR = GPIO_GPIO20; /* restart gpio20 */ |
248 | udelay(20); | 250 | udelay(20); /* give it some time to restart */ |
249 | 251 | ||
250 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); | 252 | ret = platform_add_devices(devices, ARRAY_SIZE(devices)); |
251 | } | 253 | } |
254 | |||
252 | return ret; | 255 | return ret; |
253 | } | 256 | } |
254 | 257 | ||
@@ -345,7 +348,7 @@ static void __init jornada720_mach_init(void) | |||
345 | } | 348 | } |
346 | 349 | ||
347 | MACHINE_START(JORNADA720, "HP Jornada 720") | 350 | MACHINE_START(JORNADA720, "HP Jornada 720") |
348 | /* Maintainer: Michael Gernoth <michael@gernoth.net> */ | 351 | /* Maintainer: Kristoffer Ericson <Kristoffer.Ericson@gmail.com> */ |
349 | .phys_io = 0x80000000, | 352 | .phys_io = 0x80000000, |
350 | .io_pg_offst = ((0xf8000000) >> 18) & 0xfffc, | 353 | .io_pg_offst = ((0xf8000000) >> 18) & 0xfffc, |
351 | .boot_params = 0xc0000100, | 354 | .boot_params = 0xc0000100, |
diff --git a/arch/arm/mach-sa1100/jornada720_ssp.c b/arch/arm/mach-sa1100/jornada720_ssp.c index 0a45e1ac8ad6..395c39bed7d8 100644 --- a/arch/arm/mach-sa1100/jornada720_ssp.c +++ b/arch/arm/mach-sa1100/jornada720_ssp.c | |||
@@ -161,7 +161,7 @@ static int __init jornada_ssp_probe(struct platform_device *dev) | |||
161 | ret = jornada_ssp_inout(GETBRIGHTNESS); | 161 | ret = jornada_ssp_inout(GETBRIGHTNESS); |
162 | 162 | ||
163 | /* seems like it worked, just feed it with TxDummy to get rid of data */ | 163 | /* seems like it worked, just feed it with TxDummy to get rid of data */ |
164 | if (ret == TxDummy) | 164 | if (ret == TXDUMMY) |
165 | jornada_ssp_inout(TXDUMMY); | 165 | jornada_ssp_inout(TXDUMMY); |
166 | 166 | ||
167 | jornada_ssp_end(); | 167 | jornada_ssp_end(); |
diff --git a/arch/blackfin/Makefile b/arch/blackfin/Makefile index 1b75672dfc8f..20841663270f 100644 --- a/arch/blackfin/Makefile +++ b/arch/blackfin/Makefile | |||
@@ -24,6 +24,8 @@ machine-$(CONFIG_BF533) := bf533 | |||
24 | machine-$(CONFIG_BF534) := bf537 | 24 | machine-$(CONFIG_BF534) := bf537 |
25 | machine-$(CONFIG_BF536) := bf537 | 25 | machine-$(CONFIG_BF536) := bf537 |
26 | machine-$(CONFIG_BF537) := bf537 | 26 | machine-$(CONFIG_BF537) := bf537 |
27 | machine-$(CONFIG_BF542) := bf548 | ||
28 | machine-$(CONFIG_BF544) := bf548 | ||
27 | machine-$(CONFIG_BF548) := bf548 | 29 | machine-$(CONFIG_BF548) := bf548 |
28 | machine-$(CONFIG_BF549) := bf548 | 30 | machine-$(CONFIG_BF549) := bf548 |
29 | machine-$(CONFIG_BF561) := bf561 | 31 | machine-$(CONFIG_BF561) := bf561 |
@@ -36,6 +38,8 @@ cpu-$(CONFIG_BF533) := bf533 | |||
36 | cpu-$(CONFIG_BF534) := bf534 | 38 | cpu-$(CONFIG_BF534) := bf534 |
37 | cpu-$(CONFIG_BF536) := bf536 | 39 | cpu-$(CONFIG_BF536) := bf536 |
38 | cpu-$(CONFIG_BF537) := bf537 | 40 | cpu-$(CONFIG_BF537) := bf537 |
41 | cpu-$(CONFIG_BF542) := bf542 | ||
42 | cpu-$(CONFIG_BF544) := bf544 | ||
39 | cpu-$(CONFIG_BF548) := bf548 | 43 | cpu-$(CONFIG_BF548) := bf548 |
40 | cpu-$(CONFIG_BF549) := bf549 | 44 | cpu-$(CONFIG_BF549) := bf549 |
41 | cpu-$(CONFIG_BF561) := bf561 | 45 | cpu-$(CONFIG_BF561) := bf561 |
diff --git a/arch/blackfin/kernel/dma-mapping.c b/arch/blackfin/kernel/dma-mapping.c index ea48d5b13f11..94d7b119b71e 100644 --- a/arch/blackfin/kernel/dma-mapping.c +++ b/arch/blackfin/kernel/dma-mapping.c | |||
@@ -160,7 +160,8 @@ dma_map_sg(struct device *dev, struct scatterlist *sg, int nents, | |||
160 | BUG_ON(direction == DMA_NONE); | 160 | BUG_ON(direction == DMA_NONE); |
161 | 161 | ||
162 | for (i = 0; i < nents; i++, sg++) { | 162 | for (i = 0; i < nents; i++, sg++) { |
163 | sg->dma_address = page_address(sg->page) + sg->offset; | 163 | sg->dma_address = (dma_addr_t)(page_address(sg->page) + |
164 | sg->offset); | ||
164 | 165 | ||
165 | invalidate_dcache_range(sg_dma_address(sg), | 166 | invalidate_dcache_range(sg_dma_address(sg), |
166 | sg_dma_address(sg) + | 167 | sg_dma_address(sg) + |
diff --git a/arch/blackfin/kernel/setup.c b/arch/blackfin/kernel/setup.c index f59dcee7bae3..88f221b89b33 100644 --- a/arch/blackfin/kernel/setup.c +++ b/arch/blackfin/kernel/setup.c | |||
@@ -402,11 +402,7 @@ void __init setup_arch(char **cmdline_p) | |||
402 | if (l1_length > L1_DATA_A_LENGTH) | 402 | if (l1_length > L1_DATA_A_LENGTH) |
403 | panic("L1 data memory overflow\n"); | 403 | panic("L1 data memory overflow\n"); |
404 | 404 | ||
405 | #ifdef BF561_FAMILY | ||
406 | _bfin_swrst = bfin_read_SICA_SWRST(); | ||
407 | #else | ||
408 | _bfin_swrst = bfin_read_SWRST(); | 405 | _bfin_swrst = bfin_read_SWRST(); |
409 | #endif | ||
410 | 406 | ||
411 | /* Copy atomic sequences to their fixed location, and sanity check that | 407 | /* Copy atomic sequences to their fixed location, and sanity check that |
412 | these locations are the ones that we advertise to userspace. */ | 408 | these locations are the ones that we advertise to userspace. */ |
@@ -429,6 +425,7 @@ void __init setup_arch(char **cmdline_p) | |||
429 | BUG_ON((char *)&atomic_xor32 - (char *)&fixed_code_start | 425 | BUG_ON((char *)&atomic_xor32 - (char *)&fixed_code_start |
430 | != ATOMIC_XOR32 - FIXED_CODE_START); | 426 | != ATOMIC_XOR32 - FIXED_CODE_START); |
431 | 427 | ||
428 | init_exception_vectors(); | ||
432 | bf53x_cache_init(); | 429 | bf53x_cache_init(); |
433 | } | 430 | } |
434 | 431 | ||
diff --git a/arch/blackfin/kernel/traps.c b/arch/blackfin/kernel/traps.c index 3909f5b35536..8766bd612b47 100644 --- a/arch/blackfin/kernel/traps.c +++ b/arch/blackfin/kernel/traps.c | |||
@@ -140,7 +140,7 @@ asmlinkage void trap_c(struct pt_regs *fp) | |||
140 | #ifdef CONFIG_KGDB | 140 | #ifdef CONFIG_KGDB |
141 | # define CHK_DEBUGGER_TRAP() \ | 141 | # define CHK_DEBUGGER_TRAP() \ |
142 | do { \ | 142 | do { \ |
143 | CHK_DEBUGGER(trapnr, sig, info.si_code, fp); \ | 143 | CHK_DEBUGGER(trapnr, sig, info.si_code, fp, ); \ |
144 | } while (0) | 144 | } while (0) |
145 | # define CHK_DEBUGGER_TRAP_MAYBE() \ | 145 | # define CHK_DEBUGGER_TRAP_MAYBE() \ |
146 | do { \ | 146 | do { \ |
diff --git a/arch/blackfin/kernel/vmlinux.lds.S b/arch/blackfin/kernel/vmlinux.lds.S index d06f860f4790..fb53780247bc 100644 --- a/arch/blackfin/kernel/vmlinux.lds.S +++ b/arch/blackfin/kernel/vmlinux.lds.S | |||
@@ -32,6 +32,7 @@ | |||
32 | #include <asm-generic/vmlinux.lds.h> | 32 | #include <asm-generic/vmlinux.lds.h> |
33 | #include <asm/mem_map.h> | 33 | #include <asm/mem_map.h> |
34 | #include <asm/page.h> | 34 | #include <asm/page.h> |
35 | #include <asm/thread_info.h> | ||
35 | 36 | ||
36 | OUTPUT_FORMAT("elf32-bfin") | 37 | OUTPUT_FORMAT("elf32-bfin") |
37 | ENTRY(__start) | 38 | ENTRY(__start) |
@@ -64,8 +65,12 @@ SECTIONS | |||
64 | 65 | ||
65 | .data : | 66 | .data : |
66 | { | 67 | { |
67 | . = ALIGN(PAGE_SIZE); | 68 | /* make sure the init_task is aligned to the |
69 | * kernel thread size so we can locate the kernel | ||
70 | * stack properly and quickly. | ||
71 | */ | ||
68 | __sdata = .; | 72 | __sdata = .; |
73 | . = ALIGN(THREAD_SIZE); | ||
69 | *(.data.init_task) | 74 | *(.data.init_task) |
70 | DATA_DATA | 75 | DATA_DATA |
71 | CONSTRUCTORS | 76 | CONSTRUCTORS |
@@ -73,14 +78,14 @@ SECTIONS | |||
73 | . = ALIGN(32); | 78 | . = ALIGN(32); |
74 | *(.data.cacheline_aligned) | 79 | *(.data.cacheline_aligned) |
75 | 80 | ||
76 | . = ALIGN(PAGE_SIZE); | 81 | . = ALIGN(THREAD_SIZE); |
77 | __edata = .; | 82 | __edata = .; |
78 | } | 83 | } |
79 | 84 | ||
80 | . = ALIGN(PAGE_SIZE); | ||
81 | ___init_begin = .; | 85 | ___init_begin = .; |
82 | .init : | 86 | .init : |
83 | { | 87 | { |
88 | . = ALIGN(PAGE_SIZE); | ||
84 | __sinittext = .; | 89 | __sinittext = .; |
85 | *(.init.text) | 90 | *(.init.text) |
86 | __einittext = .; | 91 | __einittext = .; |
@@ -153,10 +158,9 @@ SECTIONS | |||
153 | __ebss_b_l1 = .; | 158 | __ebss_b_l1 = .; |
154 | } | 159 | } |
155 | 160 | ||
156 | . = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1); | 161 | ___init_end = LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1); |
157 | ___init_end = ALIGN(PAGE_SIZE); | ||
158 | 162 | ||
159 | .bss ___init_end : | 163 | .bss LOADADDR(.data_b_l1) + SIZEOF(.data_b_l1) : |
160 | { | 164 | { |
161 | . = ALIGN(4); | 165 | . = ALIGN(4); |
162 | ___bss_start = .; | 166 | ___bss_start = .; |
diff --git a/arch/blackfin/mach-bf561/head.S b/arch/blackfin/mach-bf561/head.S index 2f08bcb2dded..38650a628980 100644 --- a/arch/blackfin/mach-bf561/head.S +++ b/arch/blackfin/mach-bf561/head.S | |||
@@ -440,15 +440,15 @@ ENTRY(_bfin_reset) | |||
440 | SSYNC; | 440 | SSYNC; |
441 | 441 | ||
442 | /* make sure SYSCR is set to use BMODE */ | 442 | /* make sure SYSCR is set to use BMODE */ |
443 | P0.h = hi(SICA_SYSCR); | 443 | P0.h = hi(SYSCR); |
444 | P0.l = lo(SICA_SYSCR); | 444 | P0.l = lo(SYSCR); |
445 | R0.l = 0x20; | 445 | R0.l = 0x20; /* on BF561, disable core b */ |
446 | W[P0] = R0.l; | 446 | W[P0] = R0.l; |
447 | SSYNC; | 447 | SSYNC; |
448 | 448 | ||
449 | /* issue a system soft reset */ | 449 | /* issue a system soft reset */ |
450 | P1.h = hi(SICA_SWRST); | 450 | P1.h = hi(SWRST); |
451 | P1.l = lo(SICA_SWRST); | 451 | P1.l = lo(SWRST); |
452 | R1.l = 0x0007; | 452 | R1.l = 0x0007; |
453 | W[P1] = R1; | 453 | W[P1] = R1; |
454 | SSYNC; | 454 | SSYNC; |
diff --git a/arch/blackfin/mach-common/cacheinit.S b/arch/blackfin/mach-common/cacheinit.S index 9d475623b724..5be6b975ae4a 100644 --- a/arch/blackfin/mach-common/cacheinit.S +++ b/arch/blackfin/mach-common/cacheinit.S | |||
@@ -60,6 +60,9 @@ ENDPROC(_bfin_write_IMEM_CONTROL) | |||
60 | 60 | ||
61 | #if defined(CONFIG_BLKFIN_DCACHE) | 61 | #if defined(CONFIG_BLKFIN_DCACHE) |
62 | ENTRY(_bfin_write_DMEM_CONTROL) | 62 | ENTRY(_bfin_write_DMEM_CONTROL) |
63 | P0.l = (DMEM_CONTROL & 0xFFFF); | ||
64 | P0.h = (DMEM_CONTROL >> 16); | ||
65 | |||
63 | CLI R1; | 66 | CLI R1; |
64 | SSYNC; /* SSYNC required before writing to DMEM_CONTROL. */ | 67 | SSYNC; /* SSYNC required before writing to DMEM_CONTROL. */ |
65 | .align 8; | 68 | .align 8; |
diff --git a/arch/blackfin/mach-common/ints-priority-dc.c b/arch/blackfin/mach-common/ints-priority-dc.c index 6b9fd03ce835..660f881b620a 100644 --- a/arch/blackfin/mach-common/ints-priority-dc.c +++ b/arch/blackfin/mach-common/ints-priority-dc.c | |||
@@ -358,26 +358,10 @@ static void bf561_demux_gpio_irq(unsigned int inta_irq, | |||
358 | 358 | ||
359 | #endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ | 359 | #endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ |
360 | 360 | ||
361 | /* | 361 | void __init init_exception_vectors(void) |
362 | * This function should be called during kernel startup to initialize | ||
363 | * the BFin IRQ handling routines. | ||
364 | */ | ||
365 | int __init init_arch_irq(void) | ||
366 | { | 362 | { |
367 | int irq; | ||
368 | unsigned long ilat = 0; | ||
369 | /* Disable all the peripheral intrs - page 4-29 HW Ref manual */ | ||
370 | bfin_write_SICA_IMASK0(SIC_UNMASK_ALL); | ||
371 | bfin_write_SICA_IMASK1(SIC_UNMASK_ALL); | ||
372 | SSYNC(); | 363 | SSYNC(); |
373 | 364 | ||
374 | bfin_write_SICA_IWR0(IWR_ENABLE_ALL); | ||
375 | bfin_write_SICA_IWR1(IWR_ENABLE_ALL); | ||
376 | |||
377 | local_irq_disable(); | ||
378 | |||
379 | init_exception_buff(); | ||
380 | |||
381 | #ifndef CONFIG_KGDB | 365 | #ifndef CONFIG_KGDB |
382 | bfin_write_EVT0(evt_emulation); | 366 | bfin_write_EVT0(evt_emulation); |
383 | #endif | 367 | #endif |
@@ -395,6 +379,27 @@ int __init init_arch_irq(void) | |||
395 | bfin_write_EVT14(evt14_softirq); | 379 | bfin_write_EVT14(evt14_softirq); |
396 | bfin_write_EVT15(evt_system_call); | 380 | bfin_write_EVT15(evt_system_call); |
397 | CSYNC(); | 381 | CSYNC(); |
382 | } | ||
383 | |||
384 | /* | ||
385 | * This function should be called during kernel startup to initialize | ||
386 | * the BFin IRQ handling routines. | ||
387 | */ | ||
388 | int __init init_arch_irq(void) | ||
389 | { | ||
390 | int irq; | ||
391 | unsigned long ilat = 0; | ||
392 | /* Disable all the peripheral intrs - page 4-29 HW Ref manual */ | ||
393 | bfin_write_SICA_IMASK0(SIC_UNMASK_ALL); | ||
394 | bfin_write_SICA_IMASK1(SIC_UNMASK_ALL); | ||
395 | SSYNC(); | ||
396 | |||
397 | bfin_write_SICA_IWR0(IWR_ENABLE_ALL); | ||
398 | bfin_write_SICA_IWR1(IWR_ENABLE_ALL); | ||
399 | |||
400 | local_irq_disable(); | ||
401 | |||
402 | init_exception_buff(); | ||
398 | 403 | ||
399 | for (irq = 0; irq <= SYS_IRQS; irq++) { | 404 | for (irq = 0; irq <= SYS_IRQS; irq++) { |
400 | if (irq <= IRQ_CORETMR) | 405 | if (irq <= IRQ_CORETMR) |
diff --git a/arch/blackfin/mach-common/ints-priority-sc.c b/arch/blackfin/mach-common/ints-priority-sc.c index 28a878c3577a..4708023fe716 100644 --- a/arch/blackfin/mach-common/ints-priority-sc.c +++ b/arch/blackfin/mach-common/ints-priority-sc.c | |||
@@ -579,8 +579,12 @@ static unsigned int bfin_gpio_irq_startup(unsigned int irq) | |||
579 | u16 gpionr = irq - IRQ_PA0; | 579 | u16 gpionr = irq - IRQ_PA0; |
580 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; | 580 | u8 pint_val = irq2pint_lut[irq - SYS_IRQS]; |
581 | 581 | ||
582 | if (pint_val == IRQ_NOT_AVAIL) | 582 | if (pint_val == IRQ_NOT_AVAIL) { |
583 | printk(KERN_ERR | ||
584 | "GPIO IRQ %d :Not in PINT Assign table " | ||
585 | "Reconfigure Interrupt to Port Assignemt\n", irq); | ||
583 | return -ENODEV; | 586 | return -ENODEV; |
587 | } | ||
584 | 588 | ||
585 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { | 589 | if (!(gpio_enabled[gpio_bank(gpionr)] & gpio_bit(gpionr))) { |
586 | ret = gpio_request(gpionr, NULL); | 590 | ret = gpio_request(gpionr, NULL); |
@@ -713,6 +717,29 @@ static void bfin_demux_gpio_irq(unsigned int intb_irq, | |||
713 | } | 717 | } |
714 | #endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ | 718 | #endif /* CONFIG_IRQCHIP_DEMUX_GPIO */ |
715 | 719 | ||
720 | void __init init_exception_vectors(void) | ||
721 | { | ||
722 | SSYNC(); | ||
723 | |||
724 | #ifndef CONFIG_KGDB | ||
725 | bfin_write_EVT0(evt_emulation); | ||
726 | #endif | ||
727 | bfin_write_EVT2(evt_evt2); | ||
728 | bfin_write_EVT3(trap); | ||
729 | bfin_write_EVT5(evt_ivhw); | ||
730 | bfin_write_EVT6(evt_timer); | ||
731 | bfin_write_EVT7(evt_evt7); | ||
732 | bfin_write_EVT8(evt_evt8); | ||
733 | bfin_write_EVT9(evt_evt9); | ||
734 | bfin_write_EVT10(evt_evt10); | ||
735 | bfin_write_EVT11(evt_evt11); | ||
736 | bfin_write_EVT12(evt_evt12); | ||
737 | bfin_write_EVT13(evt_evt13); | ||
738 | bfin_write_EVT14(evt14_softirq); | ||
739 | bfin_write_EVT15(evt_system_call); | ||
740 | CSYNC(); | ||
741 | } | ||
742 | |||
716 | /* | 743 | /* |
717 | * This function should be called during kernel startup to initialize | 744 | * This function should be called during kernel startup to initialize |
718 | * the BFin IRQ handling routines. | 745 | * the BFin IRQ handling routines. |
@@ -733,29 +760,10 @@ int __init init_arch_irq(void) | |||
733 | bfin_write_SIC_IMASK(SIC_UNMASK_ALL); | 760 | bfin_write_SIC_IMASK(SIC_UNMASK_ALL); |
734 | bfin_write_SIC_IWR(IWR_ENABLE_ALL); | 761 | bfin_write_SIC_IWR(IWR_ENABLE_ALL); |
735 | #endif | 762 | #endif |
736 | |||
737 | SSYNC(); | 763 | SSYNC(); |
738 | 764 | ||
739 | local_irq_disable(); | 765 | local_irq_disable(); |
740 | 766 | ||
741 | #ifndef CONFIG_KGDB | ||
742 | bfin_write_EVT0(evt_emulation); | ||
743 | #endif | ||
744 | bfin_write_EVT2(evt_evt2); | ||
745 | bfin_write_EVT3(trap); | ||
746 | bfin_write_EVT5(evt_ivhw); | ||
747 | bfin_write_EVT6(evt_timer); | ||
748 | bfin_write_EVT7(evt_evt7); | ||
749 | bfin_write_EVT8(evt_evt8); | ||
750 | bfin_write_EVT9(evt_evt9); | ||
751 | bfin_write_EVT10(evt_evt10); | ||
752 | bfin_write_EVT11(evt_evt11); | ||
753 | bfin_write_EVT12(evt_evt12); | ||
754 | bfin_write_EVT13(evt_evt13); | ||
755 | bfin_write_EVT14(evt14_softirq); | ||
756 | bfin_write_EVT15(evt_system_call); | ||
757 | CSYNC(); | ||
758 | |||
759 | #if defined(CONFIG_IRQCHIP_DEMUX_GPIO) && defined(CONFIG_BF54x) | 767 | #if defined(CONFIG_IRQCHIP_DEMUX_GPIO) && defined(CONFIG_BF54x) |
760 | #ifdef CONFIG_PINTx_REASSIGN | 768 | #ifdef CONFIG_PINTx_REASSIGN |
761 | pint[0]->assign = CONFIG_PINT0_ASSIGN; | 769 | pint[0]->assign = CONFIG_PINT0_ASSIGN; |
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig index 36c7b9682aa6..21aa4fc5f8ef 100644 --- a/arch/ia64/Kconfig +++ b/arch/ia64/Kconfig | |||
@@ -425,6 +425,9 @@ config COMPAT | |||
425 | depends on IA32_SUPPORT | 425 | depends on IA32_SUPPORT |
426 | default y | 426 | default y |
427 | 427 | ||
428 | config COMPAT_FOR_U64_ALIGNMENT | ||
429 | def_bool COMPAT | ||
430 | |||
428 | config IA64_MCA_RECOVERY | 431 | config IA64_MCA_RECOVERY |
429 | tristate "MCA recovery from errors other than TLB." | 432 | tristate "MCA recovery from errors other than TLB." |
430 | 433 | ||
diff --git a/arch/ia64/hp/common/sba_iommu.c b/arch/ia64/hp/common/sba_iommu.c index cd4adf52f174..e980e7aa2306 100644 --- a/arch/ia64/hp/common/sba_iommu.c +++ b/arch/ia64/hp/common/sba_iommu.c | |||
@@ -2015,9 +2015,14 @@ acpi_sba_ioc_add(struct acpi_device *device) | |||
2015 | return 0; | 2015 | return 0; |
2016 | } | 2016 | } |
2017 | 2017 | ||
2018 | static const struct acpi_device_id hp_ioc_iommu_device_ids[] = { | ||
2019 | {"HWP0001", 0}, | ||
2020 | {"HWP0004", 0}, | ||
2021 | {"", 0}, | ||
2022 | }; | ||
2018 | static struct acpi_driver acpi_sba_ioc_driver = { | 2023 | static struct acpi_driver acpi_sba_ioc_driver = { |
2019 | .name = "IOC IOMMU Driver", | 2024 | .name = "IOC IOMMU Driver", |
2020 | .ids = "HWP0001,HWP0004", | 2025 | .ids = hp_ioc_iommu_device_ids, |
2021 | .ops = { | 2026 | .ops = { |
2022 | .add = acpi_sba_ioc_add, | 2027 | .add = acpi_sba_ioc_add, |
2023 | }, | 2028 | }, |
diff --git a/arch/ia64/hp/sim/simscsi.c b/arch/ia64/hp/sim/simscsi.c index bb87682bbb1b..64248b58f63f 100644 --- a/arch/ia64/hp/sim/simscsi.c +++ b/arch/ia64/hp/sim/simscsi.c | |||
@@ -101,7 +101,7 @@ simscsi_interrupt (unsigned long val) | |||
101 | { | 101 | { |
102 | struct scsi_cmnd *sc; | 102 | struct scsi_cmnd *sc; |
103 | 103 | ||
104 | while ((sc = queue[rd].sc) != 0) { | 104 | while ((sc = queue[rd].sc) != NULL) { |
105 | atomic_dec(&num_reqs); | 105 | atomic_dec(&num_reqs); |
106 | queue[rd].sc = NULL; | 106 | queue[rd].sc = NULL; |
107 | if (DBG) | 107 | if (DBG) |
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index c6ede8780ded..3d45d24a9d61 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c | |||
@@ -741,16 +741,15 @@ int __init acpi_boot_init(void) | |||
741 | 741 | ||
742 | int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) | 742 | int acpi_gsi_to_irq(u32 gsi, unsigned int *irq) |
743 | { | 743 | { |
744 | int vector; | 744 | int tmp; |
745 | 745 | ||
746 | if (has_8259 && gsi < 16) | 746 | if (has_8259 && gsi < 16) |
747 | *irq = isa_irq_to_vector(gsi); | 747 | *irq = isa_irq_to_vector(gsi); |
748 | else { | 748 | else { |
749 | vector = gsi_to_vector(gsi); | 749 | tmp = gsi_to_irq(gsi); |
750 | if (vector == -1) | 750 | if (tmp == -1) |
751 | return -1; | 751 | return -1; |
752 | 752 | *irq = tmp; | |
753 | *irq = vector; | ||
754 | } | 753 | } |
755 | return 0; | 754 | return 0; |
756 | } | 755 | } |
diff --git a/arch/ia64/kernel/irq_ia64.c b/arch/ia64/kernel/irq_ia64.c index fcb77338cc09..9386b955eed1 100644 --- a/arch/ia64/kernel/irq_ia64.c +++ b/arch/ia64/kernel/irq_ia64.c | |||
@@ -145,6 +145,9 @@ static int __bind_irq_vector(int irq, int vector, cpumask_t domain) | |||
145 | int cpu; | 145 | int cpu; |
146 | struct irq_cfg *cfg = &irq_cfg[irq]; | 146 | struct irq_cfg *cfg = &irq_cfg[irq]; |
147 | 147 | ||
148 | BUG_ON((unsigned)irq >= NR_IRQS); | ||
149 | BUG_ON((unsigned)vector >= IA64_NUM_VECTORS); | ||
150 | |||
148 | cpus_and(mask, domain, cpu_online_map); | 151 | cpus_and(mask, domain, cpu_online_map); |
149 | if (cpus_empty(mask)) | 152 | if (cpus_empty(mask)) |
150 | return -EINVAL; | 153 | return -EINVAL; |
@@ -286,7 +289,7 @@ static int __init parse_vector_domain(char *arg) | |||
286 | vector_domain_type = VECTOR_DOMAIN_PERCPU; | 289 | vector_domain_type = VECTOR_DOMAIN_PERCPU; |
287 | no_int_routing = 1; | 290 | no_int_routing = 1; |
288 | } | 291 | } |
289 | return 1; | 292 | return 0; |
290 | } | 293 | } |
291 | early_param("vector", parse_vector_domain); | 294 | early_param("vector", parse_vector_domain); |
292 | #else | 295 | #else |
diff --git a/arch/x86_64/Kconfig b/arch/x86_64/Kconfig index 45f82ae6d389..ffa036406289 100644 --- a/arch/x86_64/Kconfig +++ b/arch/x86_64/Kconfig | |||
@@ -765,6 +765,9 @@ config COMPAT | |||
765 | depends on IA32_EMULATION | 765 | depends on IA32_EMULATION |
766 | default y | 766 | default y |
767 | 767 | ||
768 | config COMPAT_FOR_U64_ALIGNMENT | ||
769 | def_bool COMPAT | ||
770 | |||
768 | config SYSVIPC_COMPAT | 771 | config SYSVIPC_COMPAT |
769 | bool | 772 | bool |
770 | depends on COMPAT && SYSVIPC | 773 | depends on COMPAT && SYSVIPC |
diff --git a/block/Kconfig b/block/Kconfig index ca2ef4e08497..2484e0e9d89c 100644 --- a/block/Kconfig +++ b/block/Kconfig | |||
@@ -49,8 +49,6 @@ config LSF | |||
49 | 49 | ||
50 | If unsure, say Y. | 50 | If unsure, say Y. |
51 | 51 | ||
52 | endif # BLOCK | ||
53 | |||
54 | config BLK_DEV_BSG | 52 | config BLK_DEV_BSG |
55 | bool "Block layer SG support v4 (EXPERIMENTAL)" | 53 | bool "Block layer SG support v4 (EXPERIMENTAL)" |
56 | depends on EXPERIMENTAL | 54 | depends on EXPERIMENTAL |
@@ -64,4 +62,6 @@ config BLK_DEV_BSG | |||
64 | protocols (e.g. Task Management Functions and SMP in Serial | 62 | protocols (e.g. Task Management Functions and SMP in Serial |
65 | Attached SCSI). | 63 | Attached SCSI). |
66 | 64 | ||
65 | endif # BLOCK | ||
66 | |||
67 | source block/Kconfig.iosched | 67 | source block/Kconfig.iosched |
diff --git a/block/blktrace.c b/block/blktrace.c index 20c3e22587b5..20fa034ea4a2 100644 --- a/block/blktrace.c +++ b/block/blktrace.c | |||
@@ -41,7 +41,7 @@ static void trace_note(struct blk_trace *bt, pid_t pid, int action, | |||
41 | const int cpu = smp_processor_id(); | 41 | const int cpu = smp_processor_id(); |
42 | 42 | ||
43 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; | 43 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; |
44 | t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); | 44 | t->time = cpu_clock(cpu) - per_cpu(blk_trace_cpu_offset, cpu); |
45 | t->device = bt->dev; | 45 | t->device = bt->dev; |
46 | t->action = action; | 46 | t->action = action; |
47 | t->pid = pid; | 47 | t->pid = pid; |
@@ -159,7 +159,7 @@ void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes, | |||
159 | 159 | ||
160 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; | 160 | t->magic = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION; |
161 | t->sequence = ++(*sequence); | 161 | t->sequence = ++(*sequence); |
162 | t->time = sched_clock() - per_cpu(blk_trace_cpu_offset, cpu); | 162 | t->time = cpu_clock(cpu) - per_cpu(blk_trace_cpu_offset, cpu); |
163 | t->sector = sector; | 163 | t->sector = sector; |
164 | t->bytes = bytes; | 164 | t->bytes = bytes; |
165 | t->action = what; | 165 | t->action = what; |
@@ -488,17 +488,17 @@ void blk_trace_shutdown(struct request_queue *q) | |||
488 | } | 488 | } |
489 | 489 | ||
490 | /* | 490 | /* |
491 | * Average offset over two calls to sched_clock() with a gettimeofday() | 491 | * Average offset over two calls to cpu_clock() with a gettimeofday() |
492 | * in the middle | 492 | * in the middle |
493 | */ | 493 | */ |
494 | static void blk_check_time(unsigned long long *t) | 494 | static void blk_check_time(unsigned long long *t, int this_cpu) |
495 | { | 495 | { |
496 | unsigned long long a, b; | 496 | unsigned long long a, b; |
497 | struct timeval tv; | 497 | struct timeval tv; |
498 | 498 | ||
499 | a = sched_clock(); | 499 | a = cpu_clock(this_cpu); |
500 | do_gettimeofday(&tv); | 500 | do_gettimeofday(&tv); |
501 | b = sched_clock(); | 501 | b = cpu_clock(this_cpu); |
502 | 502 | ||
503 | *t = tv.tv_sec * 1000000000 + tv.tv_usec * 1000; | 503 | *t = tv.tv_sec * 1000000000 + tv.tv_usec * 1000; |
504 | *t -= (a + b) / 2; | 504 | *t -= (a + b) / 2; |
@@ -510,16 +510,16 @@ static void blk_check_time(unsigned long long *t) | |||
510 | static void blk_trace_check_cpu_time(void *data) | 510 | static void blk_trace_check_cpu_time(void *data) |
511 | { | 511 | { |
512 | unsigned long long *t; | 512 | unsigned long long *t; |
513 | int cpu = get_cpu(); | 513 | int this_cpu = get_cpu(); |
514 | 514 | ||
515 | t = &per_cpu(blk_trace_cpu_offset, cpu); | 515 | t = &per_cpu(blk_trace_cpu_offset, this_cpu); |
516 | 516 | ||
517 | /* | 517 | /* |
518 | * Just call it twice, hopefully the second call will be cache hot | 518 | * Just call it twice, hopefully the second call will be cache hot |
519 | * and a little more precise | 519 | * and a little more precise |
520 | */ | 520 | */ |
521 | blk_check_time(t); | 521 | blk_check_time(t, this_cpu); |
522 | blk_check_time(t); | 522 | blk_check_time(t, this_cpu); |
523 | 523 | ||
524 | put_cpu(); | 524 | put_cpu(); |
525 | } | 525 | } |
diff --git a/drivers/char/agp/Kconfig b/drivers/char/agp/Kconfig index a9f9c48c2424..713533d8a86e 100644 --- a/drivers/char/agp/Kconfig +++ b/drivers/char/agp/Kconfig | |||
@@ -50,7 +50,7 @@ config AGP_ATI | |||
50 | 50 | ||
51 | config AGP_AMD | 51 | config AGP_AMD |
52 | tristate "AMD Irongate, 761, and 762 chipset support" | 52 | tristate "AMD Irongate, 761, and 762 chipset support" |
53 | depends on AGP && X86_32 | 53 | depends on AGP && (X86_32 || ALPHA) |
54 | help | 54 | help |
55 | This option gives you AGP support for the GLX component of | 55 | This option gives you AGP support for the GLX component of |
56 | X on AMD Irongate, 761, and 762 chipsets. | 56 | X on AMD Irongate, 761, and 762 chipsets. |
diff --git a/drivers/char/agp/ati-agp.c b/drivers/char/agp/ati-agp.c index 780e59e588ad..da7513d7b4e7 100644 --- a/drivers/char/agp/ati-agp.c +++ b/drivers/char/agp/ati-agp.c | |||
@@ -123,21 +123,16 @@ static int ati_create_gatt_pages(int nr_tables) | |||
123 | 123 | ||
124 | for (i = 0; i < nr_tables; i++) { | 124 | for (i = 0; i < nr_tables; i++) { |
125 | entry = kzalloc(sizeof(struct ati_page_map), GFP_KERNEL); | 125 | entry = kzalloc(sizeof(struct ati_page_map), GFP_KERNEL); |
126 | tables[i] = entry; | ||
126 | if (entry == NULL) { | 127 | if (entry == NULL) { |
127 | while (i > 0) { | ||
128 | kfree(tables[i-1]); | ||
129 | i--; | ||
130 | } | ||
131 | kfree(tables); | ||
132 | retval = -ENOMEM; | 128 | retval = -ENOMEM; |
133 | break; | 129 | break; |
134 | } | 130 | } |
135 | tables[i] = entry; | ||
136 | retval = ati_create_page_map(entry); | 131 | retval = ati_create_page_map(entry); |
137 | if (retval != 0) | 132 | if (retval != 0) |
138 | break; | 133 | break; |
139 | } | 134 | } |
140 | ati_generic_private.num_tables = nr_tables; | 135 | ati_generic_private.num_tables = i; |
141 | ati_generic_private.gatt_pages = tables; | 136 | ati_generic_private.gatt_pages = tables; |
142 | 137 | ||
143 | if (retval != 0) | 138 | if (retval != 0) |
diff --git a/drivers/char/agp/generic.c b/drivers/char/agp/generic.c index d535c406b319..3db4f4076ed4 100644 --- a/drivers/char/agp/generic.c +++ b/drivers/char/agp/generic.c | |||
@@ -1170,7 +1170,6 @@ void *agp_generic_alloc_page(struct agp_bridge_data *bridge) | |||
1170 | map_page_into_agp(page); | 1170 | map_page_into_agp(page); |
1171 | 1171 | ||
1172 | get_page(page); | 1172 | get_page(page); |
1173 | SetPageLocked(page); | ||
1174 | atomic_inc(&agp_bridge->current_memory_agp); | 1173 | atomic_inc(&agp_bridge->current_memory_agp); |
1175 | return page_address(page); | 1174 | return page_address(page); |
1176 | } | 1175 | } |
@@ -1187,7 +1186,6 @@ void agp_generic_destroy_page(void *addr) | |||
1187 | page = virt_to_page(addr); | 1186 | page = virt_to_page(addr); |
1188 | unmap_page_from_agp(page); | 1187 | unmap_page_from_agp(page); |
1189 | put_page(page); | 1188 | put_page(page); |
1190 | unlock_page(page); | ||
1191 | free_page((unsigned long)addr); | 1189 | free_page((unsigned long)addr); |
1192 | atomic_dec(&agp_bridge->current_memory_agp); | 1190 | atomic_dec(&agp_bridge->current_memory_agp); |
1193 | } | 1191 | } |
diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c index a1240603912c..294cdbf4d44d 100644 --- a/drivers/char/agp/intel-agp.c +++ b/drivers/char/agp/intel-agp.c | |||
@@ -20,7 +20,9 @@ | |||
20 | #define PCI_DEVICE_ID_INTEL_82965G_IG 0x29A2 | 20 | #define PCI_DEVICE_ID_INTEL_82965G_IG 0x29A2 |
21 | #define PCI_DEVICE_ID_INTEL_82965GM_HB 0x2A00 | 21 | #define PCI_DEVICE_ID_INTEL_82965GM_HB 0x2A00 |
22 | #define PCI_DEVICE_ID_INTEL_82965GM_IG 0x2A02 | 22 | #define PCI_DEVICE_ID_INTEL_82965GM_IG 0x2A02 |
23 | #define PCI_DEVICE_ID_INTEL_82965GME_HB 0x2A10 | ||
23 | #define PCI_DEVICE_ID_INTEL_82965GME_IG 0x2A12 | 24 | #define PCI_DEVICE_ID_INTEL_82965GME_IG 0x2A12 |
25 | #define PCI_DEVICE_ID_INTEL_82945GME_HB 0x27AC | ||
24 | #define PCI_DEVICE_ID_INTEL_82945GME_IG 0x27AE | 26 | #define PCI_DEVICE_ID_INTEL_82945GME_IG 0x27AE |
25 | #define PCI_DEVICE_ID_INTEL_G33_HB 0x29C0 | 27 | #define PCI_DEVICE_ID_INTEL_G33_HB 0x29C0 |
26 | #define PCI_DEVICE_ID_INTEL_G33_IG 0x29C2 | 28 | #define PCI_DEVICE_ID_INTEL_G33_IG 0x29C2 |
@@ -33,7 +35,8 @@ | |||
33 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965G_1_HB || \ | 35 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965G_1_HB || \ |
34 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965Q_HB || \ | 36 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965Q_HB || \ |
35 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965G_HB || \ | 37 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965G_HB || \ |
36 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GM_HB) | 38 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GM_HB || \ |
39 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82965GME_HB) | ||
37 | 40 | ||
38 | #define IS_G33 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G33_HB || \ | 41 | #define IS_G33 (agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_G33_HB || \ |
39 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \ | 42 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_Q35_HB || \ |
@@ -213,7 +216,6 @@ static void *i8xx_alloc_pages(void) | |||
213 | } | 216 | } |
214 | global_flush_tlb(); | 217 | global_flush_tlb(); |
215 | get_page(page); | 218 | get_page(page); |
216 | SetPageLocked(page); | ||
217 | atomic_inc(&agp_bridge->current_memory_agp); | 219 | atomic_inc(&agp_bridge->current_memory_agp); |
218 | return page_address(page); | 220 | return page_address(page); |
219 | } | 221 | } |
@@ -229,7 +231,6 @@ static void i8xx_destroy_pages(void *addr) | |||
229 | change_page_attr(page, 4, PAGE_KERNEL); | 231 | change_page_attr(page, 4, PAGE_KERNEL); |
230 | global_flush_tlb(); | 232 | global_flush_tlb(); |
231 | put_page(page); | 233 | put_page(page); |
232 | unlock_page(page); | ||
233 | __free_pages(page, 2); | 234 | __free_pages(page, 2); |
234 | atomic_dec(&agp_bridge->current_memory_agp); | 235 | atomic_dec(&agp_bridge->current_memory_agp); |
235 | } | 236 | } |
@@ -527,6 +528,7 @@ static void intel_i830_init_gtt_entries(void) | |||
527 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB || | 528 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB || |
528 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945G_HB || | 529 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945G_HB || |
529 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GM_HB || | 530 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GM_HB || |
531 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GME_HB || | ||
530 | IS_I965 || IS_G33) | 532 | IS_I965 || IS_G33) |
531 | gtt_entries = MB(48) - KB(size); | 533 | gtt_entries = MB(48) - KB(size); |
532 | else | 534 | else |
@@ -538,6 +540,7 @@ static void intel_i830_init_gtt_entries(void) | |||
538 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB || | 540 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82915GM_HB || |
539 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945G_HB || | 541 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945G_HB || |
540 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GM_HB || | 542 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GM_HB || |
543 | agp_bridge->dev->device == PCI_DEVICE_ID_INTEL_82945GME_HB || | ||
541 | IS_I965 || IS_G33) | 544 | IS_I965 || IS_G33) |
542 | gtt_entries = MB(64) - KB(size); | 545 | gtt_entries = MB(64) - KB(size); |
543 | else | 546 | else |
@@ -1848,9 +1851,9 @@ static const struct intel_driver_description { | |||
1848 | NULL, &intel_915_driver }, | 1851 | NULL, &intel_915_driver }, |
1849 | { PCI_DEVICE_ID_INTEL_82945G_HB, PCI_DEVICE_ID_INTEL_82945G_IG, 0, "945G", | 1852 | { PCI_DEVICE_ID_INTEL_82945G_HB, PCI_DEVICE_ID_INTEL_82945G_IG, 0, "945G", |
1850 | NULL, &intel_915_driver }, | 1853 | NULL, &intel_915_driver }, |
1851 | { PCI_DEVICE_ID_INTEL_82945GM_HB, PCI_DEVICE_ID_INTEL_82945GM_IG, 1, "945GM", | 1854 | { PCI_DEVICE_ID_INTEL_82945GM_HB, PCI_DEVICE_ID_INTEL_82945GM_IG, 0, "945GM", |
1852 | NULL, &intel_915_driver }, | 1855 | NULL, &intel_915_driver }, |
1853 | { PCI_DEVICE_ID_INTEL_82945GM_HB, PCI_DEVICE_ID_INTEL_82945GME_IG, 0, "945GME", | 1856 | { PCI_DEVICE_ID_INTEL_82945GME_HB, PCI_DEVICE_ID_INTEL_82945GME_IG, 0, "945GME", |
1854 | NULL, &intel_915_driver }, | 1857 | NULL, &intel_915_driver }, |
1855 | { PCI_DEVICE_ID_INTEL_82946GZ_HB, PCI_DEVICE_ID_INTEL_82946GZ_IG, 0, "946GZ", | 1858 | { PCI_DEVICE_ID_INTEL_82946GZ_HB, PCI_DEVICE_ID_INTEL_82946GZ_IG, 0, "946GZ", |
1856 | NULL, &intel_i965_driver }, | 1859 | NULL, &intel_i965_driver }, |
@@ -1860,9 +1863,9 @@ static const struct intel_driver_description { | |||
1860 | NULL, &intel_i965_driver }, | 1863 | NULL, &intel_i965_driver }, |
1861 | { PCI_DEVICE_ID_INTEL_82965G_HB, PCI_DEVICE_ID_INTEL_82965G_IG, 0, "965G", | 1864 | { PCI_DEVICE_ID_INTEL_82965G_HB, PCI_DEVICE_ID_INTEL_82965G_IG, 0, "965G", |
1862 | NULL, &intel_i965_driver }, | 1865 | NULL, &intel_i965_driver }, |
1863 | { PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GM_IG, 1, "965GM", | 1866 | { PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GM_IG, 0, "965GM", |
1864 | NULL, &intel_i965_driver }, | 1867 | NULL, &intel_i965_driver }, |
1865 | { PCI_DEVICE_ID_INTEL_82965GM_HB, PCI_DEVICE_ID_INTEL_82965GME_IG, 0, "965GME/GLE", | 1868 | { PCI_DEVICE_ID_INTEL_82965GME_HB, PCI_DEVICE_ID_INTEL_82965GME_IG, 0, "965GME/GLE", |
1866 | NULL, &intel_i965_driver }, | 1869 | NULL, &intel_i965_driver }, |
1867 | { PCI_DEVICE_ID_INTEL_7505_0, 0, 0, "E7505", &intel_7505_driver, NULL }, | 1870 | { PCI_DEVICE_ID_INTEL_7505_0, 0, 0, "E7505", &intel_7505_driver, NULL }, |
1868 | { PCI_DEVICE_ID_INTEL_7205_0, 0, 0, "E7205", &intel_7505_driver, NULL }, | 1871 | { PCI_DEVICE_ID_INTEL_7205_0, 0, 0, "E7205", &intel_7505_driver, NULL }, |
@@ -2051,11 +2054,13 @@ static struct pci_device_id agp_intel_pci_table[] = { | |||
2051 | ID(PCI_DEVICE_ID_INTEL_82915GM_HB), | 2054 | ID(PCI_DEVICE_ID_INTEL_82915GM_HB), |
2052 | ID(PCI_DEVICE_ID_INTEL_82945G_HB), | 2055 | ID(PCI_DEVICE_ID_INTEL_82945G_HB), |
2053 | ID(PCI_DEVICE_ID_INTEL_82945GM_HB), | 2056 | ID(PCI_DEVICE_ID_INTEL_82945GM_HB), |
2057 | ID(PCI_DEVICE_ID_INTEL_82945GME_HB), | ||
2054 | ID(PCI_DEVICE_ID_INTEL_82946GZ_HB), | 2058 | ID(PCI_DEVICE_ID_INTEL_82946GZ_HB), |
2055 | ID(PCI_DEVICE_ID_INTEL_82965G_1_HB), | 2059 | ID(PCI_DEVICE_ID_INTEL_82965G_1_HB), |
2056 | ID(PCI_DEVICE_ID_INTEL_82965Q_HB), | 2060 | ID(PCI_DEVICE_ID_INTEL_82965Q_HB), |
2057 | ID(PCI_DEVICE_ID_INTEL_82965G_HB), | 2061 | ID(PCI_DEVICE_ID_INTEL_82965G_HB), |
2058 | ID(PCI_DEVICE_ID_INTEL_82965GM_HB), | 2062 | ID(PCI_DEVICE_ID_INTEL_82965GM_HB), |
2063 | ID(PCI_DEVICE_ID_INTEL_82965GME_HB), | ||
2059 | ID(PCI_DEVICE_ID_INTEL_G33_HB), | 2064 | ID(PCI_DEVICE_ID_INTEL_G33_HB), |
2060 | ID(PCI_DEVICE_ID_INTEL_Q35_HB), | 2065 | ID(PCI_DEVICE_ID_INTEL_Q35_HB), |
2061 | ID(PCI_DEVICE_ID_INTEL_Q33_HB), | 2066 | ID(PCI_DEVICE_ID_INTEL_Q33_HB), |
diff --git a/drivers/char/agp/sgi-agp.c b/drivers/char/agp/sgi-agp.c index cda608c42bea..98cf8abb3e57 100644 --- a/drivers/char/agp/sgi-agp.c +++ b/drivers/char/agp/sgi-agp.c | |||
@@ -51,7 +51,6 @@ static void *sgi_tioca_alloc_page(struct agp_bridge_data *bridge) | |||
51 | return NULL; | 51 | return NULL; |
52 | 52 | ||
53 | get_page(page); | 53 | get_page(page); |
54 | SetPageLocked(page); | ||
55 | atomic_inc(&agp_bridge->current_memory_agp); | 54 | atomic_inc(&agp_bridge->current_memory_agp); |
56 | return page_address(page); | 55 | return page_address(page); |
57 | } | 56 | } |
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig index da1647869f91..1842f523c23d 100644 --- a/drivers/i2c/busses/Kconfig +++ b/drivers/i2c/busses/Kconfig | |||
@@ -92,9 +92,9 @@ config I2C_AU1550 | |||
92 | 92 | ||
93 | config I2C_BLACKFIN_TWI | 93 | config I2C_BLACKFIN_TWI |
94 | tristate "Blackfin TWI I2C support" | 94 | tristate "Blackfin TWI I2C support" |
95 | depends on BF534 || BF536 || BF537 | 95 | depends on BF534 || BF536 || BF537 || BF54x |
96 | help | 96 | help |
97 | This is the TWI I2C device driver for Blackfin 534/536/537. | 97 | This is the TWI I2C device driver for Blackfin 534/536/537/54x. |
98 | This driver can also be built as a module. If so, the module | 98 | This driver can also be built as a module. If so, the module |
99 | will be called i2c-bfin-twi. | 99 | will be called i2c-bfin-twi. |
100 | 100 | ||
diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index adef447f23ea..5ce632ca6815 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig | |||
@@ -21,7 +21,7 @@ if SERIO | |||
21 | config SERIO_I8042 | 21 | config SERIO_I8042 |
22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 | 22 | tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 |
23 | default y | 23 | default y |
24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K | 24 | depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && !M68K && !BFIN |
25 | ---help--- | 25 | ---help--- |
26 | i8042 is the chip over which the standard AT keyboard and PS/2 | 26 | i8042 is the chip over which the standard AT keyboard and PS/2 |
27 | mouse are connected to the computer. If you use these devices, | 27 | mouse are connected to the computer. If you use these devices, |
diff --git a/drivers/net/bfin_mac.c b/drivers/net/bfin_mac.c index 9a08d656f1ce..2bb97d464689 100644 --- a/drivers/net/bfin_mac.c +++ b/drivers/net/bfin_mac.c | |||
@@ -798,6 +798,7 @@ static void bf537mac_shutdown(struct net_device *dev) | |||
798 | */ | 798 | */ |
799 | static int bf537mac_open(struct net_device *dev) | 799 | static int bf537mac_open(struct net_device *dev) |
800 | { | 800 | { |
801 | int retval; | ||
801 | pr_debug("%s: %s\n", dev->name, __FUNCTION__); | 802 | pr_debug("%s: %s\n", dev->name, __FUNCTION__); |
802 | 803 | ||
803 | /* | 804 | /* |
@@ -811,7 +812,10 @@ static int bf537mac_open(struct net_device *dev) | |||
811 | } | 812 | } |
812 | 813 | ||
813 | /* initial rx and tx list */ | 814 | /* initial rx and tx list */ |
814 | desc_list_init(); | 815 | retval = desc_list_init(); |
816 | |||
817 | if (retval) | ||
818 | return retval; | ||
815 | 819 | ||
816 | bf537mac_setphy(dev); | 820 | bf537mac_setphy(dev); |
817 | setup_system_regs(dev); | 821 | setup_system_regs(dev); |
diff --git a/drivers/rtc/rtc-bfin.c b/drivers/rtc/rtc-bfin.c index 260ead959918..1aa709dda0d6 100644 --- a/drivers/rtc/rtc-bfin.c +++ b/drivers/rtc/rtc-bfin.c | |||
@@ -1,6 +1,6 @@ | |||
1 | /* | 1 | /* |
2 | * Blackfin On-Chip Real Time Clock Driver | 2 | * Blackfin On-Chip Real Time Clock Driver |
3 | * Supports BF531/BF532/BF533/BF534/BF536/BF537 | 3 | * Supports BF53[123]/BF53[467]/BF54[2489] |
4 | * | 4 | * |
5 | * Copyright 2004-2007 Analog Devices Inc. | 5 | * Copyright 2004-2007 Analog Devices Inc. |
6 | * | 6 | * |
@@ -255,7 +255,7 @@ void generic_pipe_buf_get(struct pipe_inode_info *pipe, struct pipe_buffer *buf) | |||
255 | 255 | ||
256 | /** | 256 | /** |
257 | * generic_pipe_buf_confirm - verify contents of the pipe buffer | 257 | * generic_pipe_buf_confirm - verify contents of the pipe buffer |
258 | * @pipe: the pipe that the buffer belongs to | 258 | * @info: the pipe that the buffer belongs to |
259 | * @buf: the buffer to confirm | 259 | * @buf: the buffer to confirm |
260 | * | 260 | * |
261 | * Description: | 261 | * Description: |
diff --git a/fs/quota.c b/fs/quota.c index e6577ac15a6c..99b24b52bfc8 100644 --- a/fs/quota.c +++ b/fs/quota.c | |||
@@ -387,7 +387,7 @@ asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special, qid_t | |||
387 | return ret; | 387 | return ret; |
388 | } | 388 | } |
389 | 389 | ||
390 | #if defined(CONFIG_X86_64) || defined(CONFIG_IA64) | 390 | #if defined(CONFIG_COMPAT_FOR_U64_ALIGNMENT) |
391 | /* | 391 | /* |
392 | * This code works only for 32 bit quota tools over 64 bit OS (x86_64, ia64) | 392 | * This code works only for 32 bit quota tools over 64 bit OS (x86_64, ia64) |
393 | * and is necessary due to alignment problems. | 393 | * and is necessary due to alignment problems. |
diff --git a/fs/splice.c b/fs/splice.c index 0a0973218084..c010a72ca2d2 100644 --- a/fs/splice.c +++ b/fs/splice.c | |||
@@ -164,7 +164,7 @@ static const struct pipe_buf_operations user_page_pipe_buf_ops = { | |||
164 | * @spd: data to fill | 164 | * @spd: data to fill |
165 | * | 165 | * |
166 | * Description: | 166 | * Description: |
167 | * @spd contains a map of pages and len/offset tupples, a long with | 167 | * @spd contains a map of pages and len/offset tuples, along with |
168 | * the struct pipe_buf_operations associated with these pages. This | 168 | * the struct pipe_buf_operations associated with these pages. This |
169 | * function will link that data to the pipe. | 169 | * function will link that data to the pipe. |
170 | * | 170 | * |
@@ -1000,7 +1000,7 @@ static long do_splice_to(struct file *in, loff_t *ppos, | |||
1000 | * Description: | 1000 | * Description: |
1001 | * This is a special case helper to splice directly between two | 1001 | * This is a special case helper to splice directly between two |
1002 | * points, without requiring an explicit pipe. Internally an allocated | 1002 | * points, without requiring an explicit pipe. Internally an allocated |
1003 | * pipe is cached in the process, and reused during the life time of | 1003 | * pipe is cached in the process, and reused during the lifetime of |
1004 | * that process. | 1004 | * that process. |
1005 | * | 1005 | * |
1006 | */ | 1006 | */ |
diff --git a/include/asm-arm/arch-mxc/uncompress.h b/include/asm-arm/arch-mxc/uncompress.h index ec5787d0e78c..42cc0cb3fefd 100644 --- a/include/asm-arm/arch-mxc/uncompress.h +++ b/include/asm-arm/arch-mxc/uncompress.h | |||
@@ -26,7 +26,6 @@ | |||
26 | #define __MXC_BOOT_UNCOMPRESS | 26 | #define __MXC_BOOT_UNCOMPRESS |
27 | 27 | ||
28 | #include <asm/hardware.h> | 28 | #include <asm/hardware.h> |
29 | #include <asm/processor.h> | ||
30 | 29 | ||
31 | #define UART(x) (*(volatile unsigned long *)(serial_port + (x))) | 30 | #define UART(x) (*(volatile unsigned long *)(serial_port + (x))) |
32 | 31 | ||
@@ -62,7 +61,7 @@ static void putc(int ch) | |||
62 | } | 61 | } |
63 | 62 | ||
64 | while (!(UART(USR2) & USR2_TXFE)) | 63 | while (!(UART(USR2) & USR2_TXFE)) |
65 | cpu_relax(); | 64 | barrier(); |
66 | 65 | ||
67 | UART(TXR) = ch; | 66 | UART(TXR) = ch; |
68 | } | 67 | } |
diff --git a/include/asm-blackfin/bfin-global.h b/include/asm-blackfin/bfin-global.h index c4d6cbbf96d4..a970781a0f98 100644 --- a/include/asm-blackfin/bfin-global.h +++ b/include/asm-blackfin/bfin-global.h | |||
@@ -61,6 +61,7 @@ extern void bfin_dcache_init(void); | |||
61 | extern int read_iloc(void); | 61 | extern int read_iloc(void); |
62 | extern int bfin_console_init(void); | 62 | extern int bfin_console_init(void); |
63 | extern asmlinkage void lower_to_irq14(void); | 63 | extern asmlinkage void lower_to_irq14(void); |
64 | extern void init_exception_vectors(void); | ||
64 | extern void init_dma(void); | 65 | extern void init_dma(void); |
65 | extern void program_IAR(void); | 66 | extern void program_IAR(void); |
66 | extern void evt14_softirq(void); | 67 | extern void evt14_softirq(void); |
diff --git a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h b/include/asm-blackfin/mach-bf548/cdefBF54x_base.h index 98d35a929116..cdf29e75ea59 100644 --- a/include/asm-blackfin/mach-bf548/cdefBF54x_base.h +++ b/include/asm-blackfin/mach-bf548/cdefBF54x_base.h | |||
@@ -242,6 +242,39 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
242 | #define bfin_read_TWI0_RCV_DATA16() bfin_read16(TWI0_RCV_DATA16) | 242 | #define bfin_read_TWI0_RCV_DATA16() bfin_read16(TWI0_RCV_DATA16) |
243 | #define bfin_write_TWI0_RCV_DATA16(val) bfin_write16(TWI0_RCV_DATA16, val) | 243 | #define bfin_write_TWI0_RCV_DATA16(val) bfin_write16(TWI0_RCV_DATA16, val) |
244 | 244 | ||
245 | #define bfin_read_TWI_CLKDIV() bfin_read16(TWI0_CLKDIV) | ||
246 | #define bfin_write_TWI_CLKDIV(val) bfin_write16(TWI0_CLKDIV, val) | ||
247 | #define bfin_read_TWI_CONTROL() bfin_read16(TWI0_CONTROL) | ||
248 | #define bfin_write_TWI_CONTROL(val) bfin_write16(TWI0_CONTROL, val) | ||
249 | #define bfin_read_TWI_SLAVE_CTRL() bfin_read16(TWI0_SLAVE_CTRL) | ||
250 | #define bfin_write_TWI_SLAVE_CTRL(val) bfin_write16(TWI0_SLAVE_CTRL, val) | ||
251 | #define bfin_read_TWI_SLAVE_STAT() bfin_read16(TWI0_SLAVE_STAT) | ||
252 | #define bfin_write_TWI_SLAVE_STAT(val) bfin_write16(TWI0_SLAVE_STAT, val) | ||
253 | #define bfin_read_TWI_SLAVE_ADDR() bfin_read16(TWI0_SLAVE_ADDR) | ||
254 | #define bfin_write_TWI_SLAVE_ADDR(val) bfin_write16(TWI0_SLAVE_ADDR, val) | ||
255 | #define bfin_read_TWI_MASTER_CTL() bfin_read16(TWI0_MASTER_CTRL) | ||
256 | #define bfin_write_TWI_MASTER_CTL(val) bfin_write16(TWI0_MASTER_CTRL, val) | ||
257 | #define bfin_read_TWI_MASTER_STAT() bfin_read16(TWI0_MASTER_STAT) | ||
258 | #define bfin_write_TWI_MASTER_STAT(val) bfin_write16(TWI0_MASTER_STAT, val) | ||
259 | #define bfin_read_TWI_MASTER_ADDR() bfin_read16(TWI0_MASTER_ADDR) | ||
260 | #define bfin_write_TWI_MASTER_ADDR(val) bfin_write16(TWI0_MASTER_ADDR, val) | ||
261 | #define bfin_read_TWI_INT_STAT() bfin_read16(TWI0_INT_STAT) | ||
262 | #define bfin_write_TWI_INT_STAT(val) bfin_write16(TWI0_INT_STAT, val) | ||
263 | #define bfin_read_TWI_INT_MASK() bfin_read16(TWI0_INT_MASK) | ||
264 | #define bfin_write_TWI_INT_MASK(val) bfin_write16(TWI0_INT_MASK, val) | ||
265 | #define bfin_read_TWI_FIFO_CTL() bfin_read16(TWI0_FIFO_CTRL) | ||
266 | #define bfin_write_TWI_FIFO_CTL(val) bfin_write16(TWI0_FIFO_CTRL, val) | ||
267 | #define bfin_read_TWI_FIFO_STAT() bfin_read16(TWI0_FIFO_STAT) | ||
268 | #define bfin_write_TWI_FIFO_STAT(val) bfin_write16(TWI0_FIFO_STAT, val) | ||
269 | #define bfin_read_TWI_XMT_DATA8() bfin_read16(TWI0_XMT_DATA8) | ||
270 | #define bfin_write_TWI_XMT_DATA8(val) bfin_write16(TWI0_XMT_DATA8, val) | ||
271 | #define bfin_read_TWI_XMT_DATA16() bfin_read16(TWI0_XMT_DATA16) | ||
272 | #define bfin_write_TWI_XMT_DATA16(val) bfin_write16(TWI0_XMT_DATA16, val) | ||
273 | #define bfin_read_TWI_RCV_DATA8() bfin_read16(TWI0_RCV_DATA8) | ||
274 | #define bfin_write_TWI_RCV_DATA8(val) bfin_write16(TWI0_RCV_DATA8, val) | ||
275 | #define bfin_read_TWI_RCV_DATA16() bfin_read16(TWI0_RCV_DATA16) | ||
276 | #define bfin_write_TWI_RCV_DATA16(val) bfin_write16(TWI0_RCV_DATA16, val) | ||
277 | |||
245 | /* SPORT0 is not defined in the shared file because it is not available on the ADSP-BF542 and ADSP-BF544 bfin_read_()rocessors */ | 278 | /* SPORT0 is not defined in the shared file because it is not available on the ADSP-BF542 and ADSP-BF544 bfin_read_()rocessors */ |
246 | 279 | ||
247 | /* SPORT1 Registers */ | 280 | /* SPORT1 Registers */ |
diff --git a/include/asm-blackfin/mach-bf548/irq.h b/include/asm-blackfin/mach-bf548/irq.h index 0b3325bb1fff..e548d3cd81e3 100644 --- a/include/asm-blackfin/mach-bf548/irq.h +++ b/include/asm-blackfin/mach-bf548/irq.h | |||
@@ -112,6 +112,7 @@ Events (highest priority) EMU 0 | |||
112 | #define IRQ_ATAPI_TX BFIN_IRQ(44) /* ATAPI TX (DMA11) Interrupt */ | 112 | #define IRQ_ATAPI_TX BFIN_IRQ(44) /* ATAPI TX (DMA11) Interrupt */ |
113 | #define IRQ_TWI0 BFIN_IRQ(45) /* TWI0 Interrupt */ | 113 | #define IRQ_TWI0 BFIN_IRQ(45) /* TWI0 Interrupt */ |
114 | #define IRQ_TWI1 BFIN_IRQ(46) /* TWI1 Interrupt */ | 114 | #define IRQ_TWI1 BFIN_IRQ(46) /* TWI1 Interrupt */ |
115 | #define IRQ_TWI IRQ_TWI0 /* TWI Interrupt */ | ||
115 | #define IRQ_CAN0_RX BFIN_IRQ(47) /* CAN0 Receive Interrupt */ | 116 | #define IRQ_CAN0_RX BFIN_IRQ(47) /* CAN0 Receive Interrupt */ |
116 | #define IRQ_CAN0_TX BFIN_IRQ(48) /* CAN0 Transmit Interrupt */ | 117 | #define IRQ_CAN0_TX BFIN_IRQ(48) /* CAN0 Transmit Interrupt */ |
117 | #define IRQ_MDMAS2 BFIN_IRQ(49) /* MDMA Stream 2 Interrupt */ | 118 | #define IRQ_MDMAS2 BFIN_IRQ(49) /* MDMA Stream 2 Interrupt */ |
diff --git a/include/asm-blackfin/mach-bf561/cdefBF561.h b/include/asm-blackfin/mach-bf561/cdefBF561.h index 1a8ec9e46922..6e87ab269ffe 100644 --- a/include/asm-blackfin/mach-bf561/cdefBF561.h +++ b/include/asm-blackfin/mach-bf561/cdefBF561.h | |||
@@ -81,6 +81,12 @@ static __inline__ void bfin_write_VR_CTL(unsigned int val) | |||
81 | #define bfin_write_PLL_LOCKCNT(val) bfin_write16(PLL_LOCKCNT,val) | 81 | #define bfin_write_PLL_LOCKCNT(val) bfin_write16(PLL_LOCKCNT,val) |
82 | #define bfin_read_CHIPID() bfin_read32(CHIPID) | 82 | #define bfin_read_CHIPID() bfin_read32(CHIPID) |
83 | 83 | ||
84 | /* For MMR's that are reserved on Core B, set up defines to better integrate with other ports */ | ||
85 | #define bfin_read_SWRST() bfin_read_SICA_SWRST() | ||
86 | #define bfin_write_SWRST() bfin_write_SICA_SWRST() | ||
87 | #define bfin_read_SYSCR() bfin_read_SICA_SYSCR() | ||
88 | #define bfin_write_SYSCR() bfin_write_SICA_SYSCR() | ||
89 | |||
84 | /* System Reset and Interrupt Controller registers for core A (0xFFC0 0100-0xFFC0 01FF) */ | 90 | /* System Reset and Interrupt Controller registers for core A (0xFFC0 0100-0xFFC0 01FF) */ |
85 | #define bfin_read_SICA_SWRST() bfin_read16(SICA_SWRST) | 91 | #define bfin_read_SICA_SWRST() bfin_read16(SICA_SWRST) |
86 | #define bfin_write_SICA_SWRST(val) bfin_write16(SICA_SWRST,val) | 92 | #define bfin_write_SICA_SWRST(val) bfin_write16(SICA_SWRST,val) |
diff --git a/include/asm-blackfin/mach-bf561/defBF561.h b/include/asm-blackfin/mach-bf561/defBF561.h index 89150ecb909d..0f2dc6e6335b 100644 --- a/include/asm-blackfin/mach-bf561/defBF561.h +++ b/include/asm-blackfin/mach-bf561/defBF561.h | |||
@@ -52,6 +52,10 @@ | |||
52 | #define PLL_LOCKCNT 0xFFC00010 /* PLL Lock Count register (16-bit) */ | 52 | #define PLL_LOCKCNT 0xFFC00010 /* PLL Lock Count register (16-bit) */ |
53 | #define CHIPID 0xFFC00014 /* Chip ID Register */ | 53 | #define CHIPID 0xFFC00014 /* Chip ID Register */ |
54 | 54 | ||
55 | /* For MMR's that are reserved on Core B, set up defines to better integrate with other ports */ | ||
56 | #define SWRST SICA_SWRST | ||
57 | #define SYSCR SICA_SYSCR | ||
58 | |||
55 | /* System Reset and Interrupt Controller registers for core A (0xFFC0 0100-0xFFC0 01FF) */ | 59 | /* System Reset and Interrupt Controller registers for core A (0xFFC0 0100-0xFFC0 01FF) */ |
56 | #define SICA_SWRST 0xFFC00100 /* Software Reset register */ | 60 | #define SICA_SWRST 0xFFC00100 /* Software Reset register */ |
57 | #define SICA_SYSCR 0xFFC00104 /* System Reset Configuration register */ | 61 | #define SICA_SYSCR 0xFFC00104 /* System Reset Configuration register */ |
diff --git a/include/asm-blackfin/thread_info.h b/include/asm-blackfin/thread_info.h index fa8f08cf283e..34d3c2eec949 100644 --- a/include/asm-blackfin/thread_info.h +++ b/include/asm-blackfin/thread_info.h | |||
@@ -39,6 +39,11 @@ | |||
39 | */ | 39 | */ |
40 | #define ALIGN_PAGE_MASK 0xffffe000 | 40 | #define ALIGN_PAGE_MASK 0xffffe000 |
41 | 41 | ||
42 | /* | ||
43 | * Size of kernel stack for each process. This must be a power of 2... | ||
44 | */ | ||
45 | #define THREAD_SIZE 8192 /* 2 pages */ | ||
46 | |||
42 | #ifndef __ASSEMBLY__ | 47 | #ifndef __ASSEMBLY__ |
43 | 48 | ||
44 | typedef unsigned long mm_segment_t; | 49 | typedef unsigned long mm_segment_t; |
@@ -76,11 +81,6 @@ struct thread_info { | |||
76 | #define init_thread_info (init_thread_union.thread_info) | 81 | #define init_thread_info (init_thread_union.thread_info) |
77 | #define init_stack (init_thread_union.stack) | 82 | #define init_stack (init_thread_union.stack) |
78 | 83 | ||
79 | /* | ||
80 | * Size of kernel stack for each process. This must be a power of 2... | ||
81 | */ | ||
82 | #define THREAD_SIZE 8192 /* 2 pages */ | ||
83 | |||
84 | /* How to get the thread information struct from C */ | 84 | /* How to get the thread information struct from C */ |
85 | 85 | ||
86 | static inline struct thread_info *current_thread_info(void) | 86 | static inline struct thread_info *current_thread_info(void) |
@@ -94,7 +94,7 @@ static inline struct thread_info *current_thread_info(void) | |||
94 | struct thread_info *ti; | 94 | struct thread_info *ti; |
95 | __asm__("%0 = sp;": "=&d"(ti): | 95 | __asm__("%0 = sp;": "=&d"(ti): |
96 | ); | 96 | ); |
97 | return (struct thread_info *)((long)ti & ~8191UL); | 97 | return (struct thread_info *)((long)ti & ~((long)THREAD_SIZE-1)); |
98 | } | 98 | } |
99 | 99 | ||
100 | /* thread information allocation */ | 100 | /* thread information allocation */ |
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index a1c96d9ee720..b126c6f68e27 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -483,8 +483,8 @@ struct request_queue | |||
483 | #define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ | 483 | #define QUEUE_FLAG_CLUSTER 0 /* cluster several segments into 1 */ |
484 | #define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ | 484 | #define QUEUE_FLAG_QUEUED 1 /* uses generic tag queueing */ |
485 | #define QUEUE_FLAG_STOPPED 2 /* queue is stopped */ | 485 | #define QUEUE_FLAG_STOPPED 2 /* queue is stopped */ |
486 | #define QUEUE_FLAG_READFULL 3 /* write queue has been filled */ | 486 | #define QUEUE_FLAG_READFULL 3 /* read queue has been filled */ |
487 | #define QUEUE_FLAG_WRITEFULL 4 /* read queue has been filled */ | 487 | #define QUEUE_FLAG_WRITEFULL 4 /* write queue has been filled */ |
488 | #define QUEUE_FLAG_DEAD 5 /* queue being torn down */ | 488 | #define QUEUE_FLAG_DEAD 5 /* queue being torn down */ |
489 | #define QUEUE_FLAG_REENTER 6 /* Re-entrancy avoidance */ | 489 | #define QUEUE_FLAG_REENTER 6 /* Re-entrancy avoidance */ |
490 | #define QUEUE_FLAG_PLUGGED 7 /* queue is plugged */ | 490 | #define QUEUE_FLAG_PLUGGED 7 /* queue is plugged */ |
diff --git a/sound/soc/pxa/pxa2xx-ac97.c b/sound/soc/pxa/pxa2xx-ac97.c index 129d851b3151..dd14abcdf1bd 100644 --- a/sound/soc/pxa/pxa2xx-ac97.c +++ b/sound/soc/pxa/pxa2xx-ac97.c | |||
@@ -160,9 +160,9 @@ static void pxa2xx_ac97_cold_reset(struct snd_ac97 *ac97) | |||
160 | gsr_bits = 0; | 160 | gsr_bits = 0; |
161 | #ifdef CONFIG_PXA27x | 161 | #ifdef CONFIG_PXA27x |
162 | /* PXA27x Developers Manual section 13.5.2.2.1 */ | 162 | /* PXA27x Developers Manual section 13.5.2.2.1 */ |
163 | pxa_set_cken(1 << 31, 1); | 163 | pxa_set_cken(31, 1); |
164 | udelay(5); | 164 | udelay(5); |
165 | pxa_set_cken(1 << 31, 0); | 165 | pxa_set_cken(31, 0); |
166 | GCR = GCR_COLD_RST; | 166 | GCR = GCR_COLD_RST; |
167 | udelay(50); | 167 | udelay(50); |
168 | #else | 168 | #else |