diff options
Diffstat (limited to 'include/asm-cris/arch-v10')
-rw-r--r-- | include/asm-cris/arch-v10/Kbuild | 1 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/ide.h | 91 | ||||
-rw-r--r-- | include/asm-cris/arch-v10/ptrace.h | 4 |
3 files changed, 4 insertions, 92 deletions
diff --git a/include/asm-cris/arch-v10/Kbuild b/include/asm-cris/arch-v10/Kbuild index 60e7e1b73ce..7a192e1290b 100644 --- a/include/asm-cris/arch-v10/Kbuild +++ b/include/asm-cris/arch-v10/Kbuild | |||
@@ -1,4 +1,3 @@ | |||
1 | header-y += ptrace.h | ||
2 | header-y += user.h | 1 | header-y += user.h |
3 | header-y += svinto.h | 2 | header-y += svinto.h |
4 | header-y += sv_addr_ag.h | 3 | header-y += sv_addr_ag.h |
diff --git a/include/asm-cris/arch-v10/ide.h b/include/asm-cris/arch-v10/ide.h deleted file mode 100644 index 5366e623932..00000000000 --- a/include/asm-cris/arch-v10/ide.h +++ /dev/null | |||
@@ -1,91 +0,0 @@ | |||
1 | /* | ||
2 | * linux/include/asm-cris/ide.h | ||
3 | * | ||
4 | * Copyright (C) 2000, 2001, 2002 Axis Communications AB | ||
5 | * | ||
6 | * Authors: Bjorn Wesen | ||
7 | * | ||
8 | */ | ||
9 | |||
10 | /* | ||
11 | * This file contains the ETRAX 100LX specific IDE code. | ||
12 | */ | ||
13 | |||
14 | #ifndef __ASMCRIS_IDE_H | ||
15 | #define __ASMCRIS_IDE_H | ||
16 | |||
17 | #ifdef __KERNEL__ | ||
18 | |||
19 | #include <asm/arch/svinto.h> | ||
20 | #include <asm/io.h> | ||
21 | #include <asm-generic/ide_iops.h> | ||
22 | |||
23 | |||
24 | /* ETRAX 100 can support 4 IDE busses on the same pins (serialized) */ | ||
25 | |||
26 | #define MAX_HWIFS 4 | ||
27 | |||
28 | static inline int ide_default_irq(unsigned long base) | ||
29 | { | ||
30 | /* all IDE busses share the same IRQ, number 4. | ||
31 | * this has the side-effect that ide-probe.c will cluster our 4 interfaces | ||
32 | * together in a hwgroup, and will serialize accesses. this is good, because | ||
33 | * we can't access more than one interface at the same time on ETRAX100. | ||
34 | */ | ||
35 | return 4; | ||
36 | } | ||
37 | |||
38 | static inline unsigned long ide_default_io_base(int index) | ||
39 | { | ||
40 | /* we have no real I/O base address per interface, since all go through the | ||
41 | * same register. but in a bitfield in that register, we have the i/f number. | ||
42 | * so we can use the io_base to remember that bitfield. | ||
43 | */ | ||
44 | static const unsigned long io_bases[MAX_HWIFS] = { | ||
45 | IO_FIELD(R_ATA_CTRL_DATA, sel, 0), | ||
46 | IO_FIELD(R_ATA_CTRL_DATA, sel, 1), | ||
47 | IO_FIELD(R_ATA_CTRL_DATA, sel, 2), | ||
48 | IO_FIELD(R_ATA_CTRL_DATA, sel, 3) | ||
49 | }; | ||
50 | return io_bases[index]; | ||
51 | } | ||
52 | |||
53 | /* this is called once for each interface, to setup the port addresses. data_port is the result | ||
54 | * of the ide_default_io_base call above. ctrl_port will be 0, but that is don't care for us. | ||
55 | */ | ||
56 | |||
57 | static inline void ide_init_hwif_ports(hw_regs_t *hw, unsigned long data_port, unsigned long ctrl_port, int *irq) | ||
58 | { | ||
59 | int i; | ||
60 | |||
61 | /* fill in ports for ATA addresses 0 to 7 */ | ||
62 | for (i = 0; i <= 7; i++) { | ||
63 | hw->io_ports_array[i] = data_port | | ||
64 | IO_FIELD(R_ATA_CTRL_DATA, addr, i) | | ||
65 | IO_STATE(R_ATA_CTRL_DATA, cs0, active); | ||
66 | } | ||
67 | |||
68 | /* the IDE control register is at ATA address 6, with CS1 active instead of CS0 */ | ||
69 | hw->io_ports.ctl_addr = data_port | | ||
70 | IO_FIELD(R_ATA_CTRL_DATA, addr, 6) | | ||
71 | IO_STATE(R_ATA_CTRL_DATA, cs1, active); | ||
72 | |||
73 | /* whats this for ? */ | ||
74 | hw->io_ports.irq_addr = 0; | ||
75 | } | ||
76 | |||
77 | static inline void ide_init_default_hwifs(void) | ||
78 | { | ||
79 | hw_regs_t hw; | ||
80 | int index; | ||
81 | |||
82 | for(index = 0; index < MAX_HWIFS; index++) { | ||
83 | ide_init_hwif_ports(&hw, ide_default_io_base(index), 0, NULL); | ||
84 | hw.irq = ide_default_irq(ide_default_io_base(index)); | ||
85 | ide_register_hw(&hw, NULL); | ||
86 | } | ||
87 | } | ||
88 | |||
89 | #endif /* __KERNEL__ */ | ||
90 | |||
91 | #endif /* __ASMCRIS_IDE_H */ | ||
diff --git a/include/asm-cris/arch-v10/ptrace.h b/include/asm-cris/arch-v10/ptrace.h index fb14c5ee37f..2f464eab3a5 100644 --- a/include/asm-cris/arch-v10/ptrace.h +++ b/include/asm-cris/arch-v10/ptrace.h | |||
@@ -106,10 +106,14 @@ struct switch_stack { | |||
106 | unsigned long return_ip; /* ip that _resume will return to */ | 106 | unsigned long return_ip; /* ip that _resume will return to */ |
107 | }; | 107 | }; |
108 | 108 | ||
109 | #ifdef __KERNEL__ | ||
110 | |||
109 | /* bit 8 is user-mode flag */ | 111 | /* bit 8 is user-mode flag */ |
110 | #define user_mode(regs) (((regs)->dccr & 0x100) != 0) | 112 | #define user_mode(regs) (((regs)->dccr & 0x100) != 0) |
111 | #define instruction_pointer(regs) ((regs)->irp) | 113 | #define instruction_pointer(regs) ((regs)->irp) |
112 | #define profile_pc(regs) instruction_pointer(regs) | 114 | #define profile_pc(regs) instruction_pointer(regs) |
113 | extern void show_regs(struct pt_regs *); | 115 | extern void show_regs(struct pt_regs *); |
114 | 116 | ||
117 | #endif /* __KERNEL__ */ | ||
118 | |||
115 | #endif | 119 | #endif |