diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-28 12:45:57 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-28 12:45:57 -0400 |
| commit | e945e849e18006c131fe59252ab920c6b5f7959c (patch) | |
| tree | a86b1a299c5cebed14889fb638cb6808417b5f4a /include | |
| parent | 77a50df2b14c8d3ee3c58c21c4a0e0157570df09 (diff) | |
| parent | 194f1a68b93e959ede6ec363db4714e630bdbb6a (diff) | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
sparc: video drivers: add facility level
sparc: tcx.c make tcx_init and tcx_exit static
sparc: ffb.c make ffb_init and ffb_exit static
sparc: cg14.c make cg14_init and cg15_exit static
sparc: bw2.c fix bw2_exit
sparc64: Fix accidental syscall restart on child return from clone/fork/vfork.
sparc64: Clean up handling of pt_regs trap type encoding.
sparc: Remove old style signal frame support.
sparc64: Kill bogus RT_ALIGNEDSZ macro from signal.c
sparc: sunzilog.c remove unused argument
sparc: fix drivers/video/tcx.c warning
sparc64: Kill unused local ISA bus layer.
input: Rewrite sparcspkr device probing.
sparc64: Do not ignore 'pmu' device ranges.
sparc64: Kill ISA_FLOPPY_WORKS code.
sparc64: Kill CONFIG_SPARC32_COMPAT
sparc64: Cleanups and corrections for arch/sparc64/Kconfig
sparc64: Fix wedged irq regression.
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-sparc/processor.h | 4 | ||||
| -rw-r--r-- | include/asm-sparc64/floppy.h | 84 | ||||
| -rw-r--r-- | include/asm-sparc64/isa.h | 47 | ||||
| -rw-r--r-- | include/asm-sparc64/ptrace.h | 23 | ||||
| -rw-r--r-- | include/asm-sparc64/thread_info.h | 6 |
5 files changed, 26 insertions, 138 deletions
diff --git a/include/asm-sparc/processor.h b/include/asm-sparc/processor.h index e3006979709b..8898efbbbe07 100644 --- a/include/asm-sparc/processor.h +++ b/include/asm-sparc/processor.h | |||
| @@ -1,5 +1,4 @@ | |||
| 1 | /* $Id: processor.h,v 1.83 2001/10/08 09:32:13 davem Exp $ | 1 | /* include/asm-sparc/processor.h |
| 2 | * include/asm-sparc/processor.h | ||
| 3 | * | 2 | * |
| 4 | * Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu) | 3 | * Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu) |
| 5 | */ | 4 | */ |
| @@ -65,7 +64,6 @@ struct thread_struct { | |||
| 65 | struct fpq fpqueue[16]; | 64 | struct fpq fpqueue[16]; |
| 66 | unsigned long flags; | 65 | unsigned long flags; |
| 67 | mm_segment_t current_ds; | 66 | mm_segment_t current_ds; |
| 68 | int new_signal; | ||
| 69 | }; | 67 | }; |
| 70 | 68 | ||
| 71 | #define SPARC_FLAG_KTHREAD 0x1 /* task is a kernel thread */ | 69 | #define SPARC_FLAG_KTHREAD 0x1 /* task is a kernel thread */ |
diff --git a/include/asm-sparc64/floppy.h b/include/asm-sparc64/floppy.h index c47f58d6c15c..ca19f80a9b7d 100644 --- a/include/asm-sparc64/floppy.h +++ b/include/asm-sparc64/floppy.h | |||
| @@ -293,7 +293,6 @@ static int sun_fd_eject(int drive) | |||
| 293 | 293 | ||
| 294 | #ifdef CONFIG_PCI | 294 | #ifdef CONFIG_PCI |
| 295 | #include <asm/ebus.h> | 295 | #include <asm/ebus.h> |
| 296 | #include <asm/isa.h> | ||
| 297 | #include <asm/ns87303.h> | 296 | #include <asm/ns87303.h> |
| 298 | 297 | ||
| 299 | static struct ebus_dma_info sun_pci_fd_ebus_dma; | 298 | static struct ebus_dma_info sun_pci_fd_ebus_dma; |
| @@ -558,82 +557,6 @@ static int __init ebus_fdthree_p(struct linux_ebus_device *edev) | |||
| 558 | } | 557 | } |
| 559 | #endif | 558 | #endif |
| 560 | 559 | ||
| 561 | #ifdef CONFIG_PCI | ||
| 562 | #undef ISA_FLOPPY_WORKS | ||
| 563 | |||
| 564 | #ifdef ISA_FLOPPY_WORKS | ||
| 565 | static unsigned long __init isa_floppy_init(void) | ||
| 566 | { | ||
| 567 | struct sparc_isa_bridge *isa_br; | ||
| 568 | struct sparc_isa_device *isa_dev = NULL; | ||
| 569 | |||
| 570 | for_each_isa(isa_br) { | ||
| 571 | for_each_isadev(isa_dev, isa_br) { | ||
| 572 | if (!strcmp(isa_dev->prom_node->name, "dma")) { | ||
| 573 | struct sparc_isa_device *child = | ||
| 574 | isa_dev->child; | ||
| 575 | |||
| 576 | while (child) { | ||
| 577 | if (!strcmp(child->prom_node->name, | ||
| 578 | "floppy")) { | ||
| 579 | isa_dev = child; | ||
| 580 | goto isa_done; | ||
| 581 | } | ||
| 582 | child = child->next; | ||
| 583 | } | ||
| 584 | } | ||
| 585 | } | ||
| 586 | } | ||
| 587 | isa_done: | ||
| 588 | if (!isa_dev) | ||
| 589 | return 0; | ||
| 590 | |||
| 591 | /* We could use DMA on devices behind the ISA bridge, but... | ||
| 592 | * | ||
| 593 | * There is a slight problem. Normally on x86 kit the x86 processor | ||
| 594 | * delays I/O port instructions when the ISA bus "dma in progress" | ||
| 595 | * signal is active. Well, sparc64 systems do not monitor this | ||
| 596 | * signal thus we would need to block all I/O port accesses in software | ||
| 597 | * when a dma transfer is active for some device. | ||
| 598 | */ | ||
| 599 | |||
| 600 | sun_fdc = (struct sun_flpy_controller *)isa_dev->resource.start; | ||
| 601 | FLOPPY_IRQ = isa_dev->irq; | ||
| 602 | |||
| 603 | sun_fdops.fd_inb = sun_pci_fd_inb; | ||
| 604 | sun_fdops.fd_outb = sun_pci_fd_outb; | ||
| 605 | |||
| 606 | can_use_virtual_dma = use_virtual_dma = 1; | ||
| 607 | sun_fdops.fd_enable_dma = sun_fd_enable_dma; | ||
| 608 | sun_fdops.fd_disable_dma = sun_fd_disable_dma; | ||
| 609 | sun_fdops.fd_set_dma_mode = sun_fd_set_dma_mode; | ||
| 610 | sun_fdops.fd_set_dma_addr = sun_fd_set_dma_addr; | ||
| 611 | sun_fdops.fd_set_dma_count = sun_fd_set_dma_count; | ||
| 612 | sun_fdops.get_dma_residue = sun_get_dma_residue; | ||
| 613 | |||
| 614 | sun_fdops.fd_request_irq = sun_fd_request_irq; | ||
| 615 | sun_fdops.fd_free_irq = sun_fd_free_irq; | ||
| 616 | |||
| 617 | /* Floppy eject is manual. Actually, could determine this | ||
| 618 | * via presence of 'manual' property in OBP node. | ||
| 619 | */ | ||
| 620 | sun_fdops.fd_eject = sun_pci_fd_eject; | ||
| 621 | |||
| 622 | fdc_status = (unsigned long) &sun_fdc->status_82077; | ||
| 623 | |||
| 624 | allowed_drive_mask = 0; | ||
| 625 | sun_floppy_types[0] = 0; | ||
| 626 | sun_floppy_types[1] = 4; | ||
| 627 | |||
| 628 | sun_pci_broken_drive = 1; | ||
| 629 | sun_fdops.fd_outb = sun_pci_fd_broken_outb; | ||
| 630 | |||
| 631 | return sun_floppy_types[0]; | ||
| 632 | } | ||
| 633 | #endif /* ISA_FLOPPY_WORKS */ | ||
| 634 | |||
| 635 | #endif | ||
| 636 | |||
| 637 | static unsigned long __init sun_floppy_init(void) | 560 | static unsigned long __init sun_floppy_init(void) |
| 638 | { | 561 | { |
| 639 | char state[128]; | 562 | char state[128]; |
| @@ -667,13 +590,8 @@ static unsigned long __init sun_floppy_init(void) | |||
| 667 | } | 590 | } |
| 668 | } | 591 | } |
| 669 | ebus_done: | 592 | ebus_done: |
| 670 | if (!edev) { | 593 | if (!edev) |
| 671 | #ifdef ISA_FLOPPY_WORKS | ||
| 672 | return isa_floppy_init(); | ||
| 673 | #else | ||
| 674 | return 0; | 594 | return 0; |
| 675 | #endif | ||
| 676 | } | ||
| 677 | 595 | ||
| 678 | state_prop = of_get_property(edev->prom_node, "status", NULL); | 596 | state_prop = of_get_property(edev->prom_node, "status", NULL); |
| 679 | if (state_prop && !strncmp(state_prop, "disabled", 8)) | 597 | if (state_prop && !strncmp(state_prop, "disabled", 8)) |
diff --git a/include/asm-sparc64/isa.h b/include/asm-sparc64/isa.h deleted file mode 100644 index ecd9290f78d4..000000000000 --- a/include/asm-sparc64/isa.h +++ /dev/null | |||
| @@ -1,47 +0,0 @@ | |||
| 1 | /* $Id: isa.h,v 1.1 2001/05/11 04:31:55 davem Exp $ | ||
| 2 | * isa.h: Sparc64 layer for PCI to ISA bridge devices. | ||
| 3 | * | ||
| 4 | * Copyright (C) 2001 David S. Miller (davem@redhat.com) | ||
| 5 | */ | ||
| 6 | |||
| 7 | #ifndef __SPARC64_ISA_H | ||
| 8 | #define __SPARC64_ISA_H | ||
| 9 | |||
| 10 | #include <asm/oplib.h> | ||
| 11 | #include <asm/prom.h> | ||
| 12 | #include <asm/of_device.h> | ||
| 13 | |||
| 14 | struct sparc_isa_bridge; | ||
| 15 | |||
| 16 | struct sparc_isa_device { | ||
| 17 | struct of_device ofdev; | ||
| 18 | struct sparc_isa_device *next; | ||
| 19 | struct sparc_isa_device *child; | ||
| 20 | struct sparc_isa_bridge *bus; | ||
| 21 | struct device_node *prom_node; | ||
| 22 | struct resource resource; | ||
| 23 | unsigned int irq; | ||
| 24 | }; | ||
| 25 | #define to_isa_device(d) container_of(d, struct sparc_isa_device, ofdev.dev) | ||
| 26 | |||
| 27 | struct sparc_isa_bridge { | ||
| 28 | struct of_device ofdev; | ||
| 29 | struct sparc_isa_bridge *next; | ||
| 30 | struct sparc_isa_device *devices; | ||
| 31 | struct pci_dev *self; | ||
| 32 | int index; | ||
| 33 | struct device_node *prom_node; | ||
| 34 | }; | ||
| 35 | #define to_isa_bridge(d) container_of(d, struct sparc_isa_bridge, ofdev.dev) | ||
| 36 | |||
| 37 | extern struct sparc_isa_bridge *isa_chain; | ||
| 38 | |||
| 39 | extern void isa_init(void); | ||
| 40 | |||
| 41 | #define for_each_isa(bus) \ | ||
| 42 | for((bus) = isa_chain; (bus); (bus) = (bus)->next) | ||
| 43 | |||
| 44 | #define for_each_isadev(dev, bus) \ | ||
| 45 | for((dev) = (bus)->devices; (dev); (dev) = (dev)->next) | ||
| 46 | |||
| 47 | #endif /* !(__SPARC64_ISA_H) */ | ||
diff --git a/include/asm-sparc64/ptrace.h b/include/asm-sparc64/ptrace.h index b4b951d570bb..714b81956f32 100644 --- a/include/asm-sparc64/ptrace.h +++ b/include/asm-sparc64/ptrace.h | |||
| @@ -1,4 +1,3 @@ | |||
| 1 | /* $Id: ptrace.h,v 1.14 2002/02/09 19:49:32 davem Exp $ */ | ||
| 2 | #ifndef _SPARC64_PTRACE_H | 1 | #ifndef _SPARC64_PTRACE_H |
| 3 | #define _SPARC64_PTRACE_H | 2 | #define _SPARC64_PTRACE_H |
| 4 | 3 | ||
| @@ -8,10 +7,15 @@ | |||
| 8 | * stack during a system call and basically all traps. | 7 | * stack during a system call and basically all traps. |
| 9 | */ | 8 | */ |
| 10 | 9 | ||
| 10 | /* This magic value must have the low 9 bits clear, | ||
| 11 | * as that is where we encode the %tt value, see below. | ||
| 12 | */ | ||
| 11 | #define PT_REGS_MAGIC 0x57ac6c00 | 13 | #define PT_REGS_MAGIC 0x57ac6c00 |
| 12 | 14 | ||
| 13 | #ifndef __ASSEMBLY__ | 15 | #ifndef __ASSEMBLY__ |
| 14 | 16 | ||
| 17 | #include <linux/types.h> | ||
| 18 | |||
| 15 | struct pt_regs { | 19 | struct pt_regs { |
| 16 | unsigned long u_regs[16]; /* globals and ins */ | 20 | unsigned long u_regs[16]; /* globals and ins */ |
| 17 | unsigned long tstate; | 21 | unsigned long tstate; |
| @@ -33,6 +37,23 @@ struct pt_regs { | |||
| 33 | unsigned int magic; | 37 | unsigned int magic; |
| 34 | }; | 38 | }; |
| 35 | 39 | ||
| 40 | static inline int pt_regs_trap_type(struct pt_regs *regs) | ||
| 41 | { | ||
| 42 | return regs->magic & 0x1ff; | ||
| 43 | } | ||
| 44 | |||
| 45 | static inline int pt_regs_clear_trap_type(struct pt_regs *regs) | ||
| 46 | { | ||
| 47 | return regs->magic &= ~0x1ff; | ||
| 48 | } | ||
| 49 | |||
| 50 | static inline bool pt_regs_is_syscall(struct pt_regs *regs) | ||
| 51 | { | ||
| 52 | int tt = pt_regs_trap_type(regs); | ||
| 53 | |||
| 54 | return (tt == 0x110 || tt == 0x111 || tt == 0x16d); | ||
| 55 | } | ||
| 56 | |||
| 36 | struct pt_regs32 { | 57 | struct pt_regs32 { |
| 37 | unsigned int psr; | 58 | unsigned int psr; |
| 38 | unsigned int pc; | 59 | unsigned int pc; |
diff --git a/include/asm-sparc64/thread_info.h b/include/asm-sparc64/thread_info.h index 98252cd44dd6..71e42d1a80d9 100644 --- a/include/asm-sparc64/thread_info.h +++ b/include/asm-sparc64/thread_info.h | |||
| @@ -1,5 +1,4 @@ | |||
| 1 | /* $Id: thread_info.h,v 1.1 2002/02/10 00:00:58 davem Exp $ | 1 | /* thread_info.h: sparc64 low-level thread information |
| 2 | * thread_info.h: sparc64 low-level thread information | ||
| 3 | * | 2 | * |
| 4 | * Copyright (C) 2002 David S. Miller (davem@redhat.com) | 3 | * Copyright (C) 2002 David S. Miller (davem@redhat.com) |
| 5 | */ | 4 | */ |
| @@ -223,7 +222,7 @@ register struct thread_info *current_thread_info_reg asm("g6"); | |||
| 223 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ | 222 | #define TIF_NEED_RESCHED 3 /* rescheduling necessary */ |
| 224 | #define TIF_PERFCTR 4 /* performance counters active */ | 223 | #define TIF_PERFCTR 4 /* performance counters active */ |
| 225 | #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */ | 224 | #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */ |
| 226 | #define TIF_NEWSIGNALS 6 /* wants new-style signals */ | 225 | /* flag bit 6 is available */ |
| 227 | #define TIF_32BIT 7 /* 32-bit binary */ | 226 | #define TIF_32BIT 7 /* 32-bit binary */ |
| 228 | /* flag bit 8 is available */ | 227 | /* flag bit 8 is available */ |
| 229 | #define TIF_SECCOMP 9 /* secure computing */ | 228 | #define TIF_SECCOMP 9 /* secure computing */ |
| @@ -242,7 +241,6 @@ register struct thread_info *current_thread_info_reg asm("g6"); | |||
| 242 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) | 241 | #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) |
| 243 | #define _TIF_PERFCTR (1<<TIF_PERFCTR) | 242 | #define _TIF_PERFCTR (1<<TIF_PERFCTR) |
| 244 | #define _TIF_UNALIGNED (1<<TIF_UNALIGNED) | 243 | #define _TIF_UNALIGNED (1<<TIF_UNALIGNED) |
| 245 | #define _TIF_NEWSIGNALS (1<<TIF_NEWSIGNALS) | ||
| 246 | #define _TIF_32BIT (1<<TIF_32BIT) | 244 | #define _TIF_32BIT (1<<TIF_32BIT) |
| 247 | #define _TIF_SECCOMP (1<<TIF_SECCOMP) | 245 | #define _TIF_SECCOMP (1<<TIF_SECCOMP) |
| 248 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) | 246 | #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) |
