diff options
Diffstat (limited to 'arch/m68k/mac')
-rw-r--r-- | arch/m68k/mac/Makefile | 2 | ||||
-rw-r--r-- | arch/m68k/mac/baboon.c | 26 | ||||
-rw-r--r-- | arch/m68k/mac/bootparse.c | 122 | ||||
-rw-r--r-- | arch/m68k/mac/config.c | 11 | ||||
-rw-r--r-- | arch/m68k/mac/debug.c | 41 | ||||
-rw-r--r-- | arch/m68k/mac/oss.c | 8 | ||||
-rw-r--r-- | arch/m68k/mac/psc.c | 4 | ||||
-rw-r--r-- | arch/m68k/mac/via.c | 2 |
8 files changed, 35 insertions, 181 deletions
diff --git a/arch/m68k/mac/Makefile b/arch/m68k/mac/Makefile index 1d265ba365ad..daebd80bdef0 100644 --- a/arch/m68k/mac/Makefile +++ b/arch/m68k/mac/Makefile | |||
@@ -2,5 +2,5 @@ | |||
2 | # Makefile for Linux arch/m68k/mac source directory | 2 | # Makefile for Linux arch/m68k/mac source directory |
3 | # | 3 | # |
4 | 4 | ||
5 | obj-y := config.o bootparse.o macints.o iop.o via.o oss.o psc.o \ | 5 | obj-y := config.o macints.o iop.o via.o oss.o psc.o \ |
6 | baboon.o macboing.o debug.o misc.o | 6 | baboon.o macboing.o debug.o misc.o |
diff --git a/arch/m68k/mac/baboon.c b/arch/m68k/mac/baboon.c index 673a1085984d..dae9c982aa89 100644 --- a/arch/m68k/mac/baboon.c +++ b/arch/m68k/mac/baboon.c | |||
@@ -23,9 +23,7 @@ | |||
23 | /* #define DEBUG_IRQS */ | 23 | /* #define DEBUG_IRQS */ |
24 | 24 | ||
25 | int baboon_present; | 25 | int baboon_present; |
26 | volatile struct baboon *baboon; | 26 | static volatile struct baboon *baboon; |
27 | |||
28 | irqreturn_t baboon_irq(int, void *); | ||
29 | 27 | ||
30 | #if 0 | 28 | #if 0 |
31 | extern int macide_ack_intr(struct ata_channel *); | 29 | extern int macide_ack_intr(struct ata_channel *); |
@@ -50,20 +48,10 @@ void __init baboon_init(void) | |||
50 | } | 48 | } |
51 | 49 | ||
52 | /* | 50 | /* |
53 | * Register the Baboon interrupt dispatcher on nubus slot $C. | ||
54 | */ | ||
55 | |||
56 | void __init baboon_register_interrupts(void) | ||
57 | { | ||
58 | request_irq(IRQ_NUBUS_C, baboon_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST, | ||
59 | "baboon", (void *) baboon); | ||
60 | } | ||
61 | |||
62 | /* | ||
63 | * Baboon interrupt handler. This works a lot like a VIA. | 51 | * Baboon interrupt handler. This works a lot like a VIA. |
64 | */ | 52 | */ |
65 | 53 | ||
66 | irqreturn_t baboon_irq(int irq, void *dev_id) | 54 | static irqreturn_t baboon_irq(int irq, void *dev_id) |
67 | { | 55 | { |
68 | int irq_bit, irq_num; | 56 | int irq_bit, irq_num; |
69 | unsigned char events; | 57 | unsigned char events; |
@@ -95,6 +83,16 @@ irqreturn_t baboon_irq(int irq, void *dev_id) | |||
95 | return IRQ_HANDLED; | 83 | return IRQ_HANDLED; |
96 | } | 84 | } |
97 | 85 | ||
86 | /* | ||
87 | * Register the Baboon interrupt dispatcher on nubus slot $C. | ||
88 | */ | ||
89 | |||
90 | void __init baboon_register_interrupts(void) | ||
91 | { | ||
92 | request_irq(IRQ_NUBUS_C, baboon_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST, | ||
93 | "baboon", (void *) baboon); | ||
94 | } | ||
95 | |||
98 | void baboon_irq_enable(int irq) { | 96 | void baboon_irq_enable(int irq) { |
99 | #ifdef DEBUG_IRQUSE | 97 | #ifdef DEBUG_IRQUSE |
100 | printk("baboon_irq_enable(%d)\n", irq); | 98 | printk("baboon_irq_enable(%d)\n", irq); |
diff --git a/arch/m68k/mac/bootparse.c b/arch/m68k/mac/bootparse.c deleted file mode 100644 index 36d223609823..000000000000 --- a/arch/m68k/mac/bootparse.c +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | #include <linux/string.h> | ||
2 | #include <linux/kernel.h> | ||
3 | #include <linux/sched.h> | ||
4 | #include <asm/irq.h> | ||
5 | #include <asm/setup.h> | ||
6 | #include <asm/bootinfo.h> | ||
7 | #include <asm/macintosh.h> | ||
8 | |||
9 | /* | ||
10 | * Booter vars | ||
11 | */ | ||
12 | |||
13 | int boothowto; | ||
14 | int _boothowto; | ||
15 | |||
16 | /* | ||
17 | * Called early to parse the environment (passed to us from the booter) | ||
18 | * into a bootinfo struct. Will die as soon as we have our own booter | ||
19 | */ | ||
20 | |||
21 | #define atol(x) simple_strtoul(x,NULL,0) | ||
22 | |||
23 | void parse_booter(char *env) | ||
24 | { | ||
25 | char *name; | ||
26 | char *value; | ||
27 | #if 0 | ||
28 | while(0 && *env) | ||
29 | #else | ||
30 | while(*env) | ||
31 | #endif | ||
32 | { | ||
33 | name=env; | ||
34 | value=name; | ||
35 | while(*value!='='&&*value) | ||
36 | value++; | ||
37 | if(*value=='=') | ||
38 | *value++=0; | ||
39 | env=value; | ||
40 | while(*env) | ||
41 | env++; | ||
42 | env++; | ||
43 | #if 0 | ||
44 | if(strcmp(name,"VIDEO_ADDR")==0) | ||
45 | mac_mch.videoaddr=atol(value); | ||
46 | if(strcmp(name,"ROW_BYTES")==0) | ||
47 | mac_mch.videorow=atol(value); | ||
48 | if(strcmp(name,"SCREEN_DEPTH")==0) | ||
49 | mac_mch.videodepth=atol(value); | ||
50 | if(strcmp(name,"DIMENSIONS")==0) | ||
51 | mac_mch.dimensions=atol(value); | ||
52 | #endif | ||
53 | if(strcmp(name,"BOOTTIME")==0) | ||
54 | mac_bi_data.boottime=atol(value); | ||
55 | if(strcmp(name,"GMTBIAS")==0) | ||
56 | mac_bi_data.gmtbias=atol(value); | ||
57 | if(strcmp(name,"BOOTERVER")==0) | ||
58 | mac_bi_data.bootver=atol(value); | ||
59 | if(strcmp(name,"MACOS_VIDEO")==0) | ||
60 | mac_bi_data.videological=atol(value); | ||
61 | if(strcmp(name,"MACOS_SCC")==0) | ||
62 | mac_bi_data.sccbase=atol(value); | ||
63 | if(strcmp(name,"MACHINEID")==0) | ||
64 | mac_bi_data.id=atol(value); | ||
65 | if(strcmp(name,"MEMSIZE")==0) | ||
66 | mac_bi_data.memsize=atol(value); | ||
67 | if(strcmp(name,"SERIAL_MODEM_FLAGS")==0) | ||
68 | mac_bi_data.serialmf=atol(value); | ||
69 | if(strcmp(name,"SERIAL_MODEM_HSKICLK")==0) | ||
70 | mac_bi_data.serialhsk=atol(value); | ||
71 | if(strcmp(name,"SERIAL_MODEM_GPICLK")==0) | ||
72 | mac_bi_data.serialgpi=atol(value); | ||
73 | if(strcmp(name,"SERIAL_PRINT_FLAGS")==0) | ||
74 | mac_bi_data.printmf=atol(value); | ||
75 | if(strcmp(name,"SERIAL_PRINT_HSKICLK")==0) | ||
76 | mac_bi_data.printhsk=atol(value); | ||
77 | if(strcmp(name,"SERIAL_PRINT_GPICLK")==0) | ||
78 | mac_bi_data.printgpi=atol(value); | ||
79 | if(strcmp(name,"PROCESSOR")==0) | ||
80 | mac_bi_data.cpuid=atol(value); | ||
81 | if(strcmp(name,"ROMBASE")==0) | ||
82 | mac_bi_data.rombase=atol(value); | ||
83 | if(strcmp(name,"TIMEDBRA")==0) | ||
84 | mac_bi_data.timedbra=atol(value); | ||
85 | if(strcmp(name,"ADBDELAY")==0) | ||
86 | mac_bi_data.adbdelay=atol(value); | ||
87 | } | ||
88 | #if 0 /* XXX: TODO with m68k_mach_* */ | ||
89 | /* Fill in the base stuff */ | ||
90 | boot_info.machtype=MACH_MAC; | ||
91 | /* Read this from the macinfo we got ! */ | ||
92 | /* boot_info.cputype=CPU_68020|FPUB_68881;*/ | ||
93 | /* boot_info.memory[0].addr=0;*/ | ||
94 | /* boot_info.memory[0].size=((mac_bi_data.id>>7)&31)<<20;*/ | ||
95 | boot_info.num_memory=1; /* On a MacII */ | ||
96 | boot_info.ramdisk_size=0; /* For now */ | ||
97 | *boot_info.command_line=0; | ||
98 | #endif | ||
99 | } | ||
100 | |||
101 | |||
102 | void print_booter(char *env) | ||
103 | { | ||
104 | char *name; | ||
105 | char *value; | ||
106 | while(*env) | ||
107 | { | ||
108 | name=env; | ||
109 | value=name; | ||
110 | while(*value!='='&&*value) | ||
111 | value++; | ||
112 | if(*value=='=') | ||
113 | *value++=0; | ||
114 | env=value; | ||
115 | while(*env) | ||
116 | env++; | ||
117 | env++; | ||
118 | printk("%s=%s\n", name,value); | ||
119 | } | ||
120 | } | ||
121 | |||
122 | |||
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c index ad3e3bacae39..c45e18449f32 100644 --- a/arch/m68k/mac/config.c +++ b/arch/m68k/mac/config.c | |||
@@ -46,7 +46,6 @@ | |||
46 | /* Mac bootinfo struct */ | 46 | /* Mac bootinfo struct */ |
47 | 47 | ||
48 | struct mac_booter_data mac_bi_data; | 48 | struct mac_booter_data mac_bi_data; |
49 | int mac_bisize = sizeof mac_bi_data; | ||
50 | 49 | ||
51 | /* New m68k bootinfo stuff and videobase */ | 50 | /* New m68k bootinfo stuff and videobase */ |
52 | 51 | ||
@@ -55,10 +54,8 @@ extern struct mem_info m68k_memory[NUM_MEMINFO]; | |||
55 | 54 | ||
56 | extern struct mem_info m68k_ramdisk; | 55 | extern struct mem_info m68k_ramdisk; |
57 | 56 | ||
58 | void *mac_env; /* Loaded by the boot asm */ | ||
59 | |||
60 | /* The phys. video addr. - might be bogus on some machines */ | 57 | /* The phys. video addr. - might be bogus on some machines */ |
61 | unsigned long mac_orig_videoaddr; | 58 | static unsigned long mac_orig_videoaddr; |
62 | 59 | ||
63 | /* Mac specific timer functions */ | 60 | /* Mac specific timer functions */ |
64 | extern unsigned long mac_gettimeoffset(void); | 61 | extern unsigned long mac_gettimeoffset(void); |
@@ -79,6 +76,8 @@ extern void mac_mksound(unsigned int, unsigned int); | |||
79 | extern void nubus_sweep_video(void); | 76 | extern void nubus_sweep_video(void); |
80 | 77 | ||
81 | static void mac_get_model(char *str); | 78 | static void mac_get_model(char *str); |
79 | static void mac_identify(void); | ||
80 | static void mac_report_hardware(void); | ||
82 | 81 | ||
83 | static void __init mac_sched_init(irq_handler_t vector) | 82 | static void __init mac_sched_init(irq_handler_t vector) |
84 | { | 83 | { |
@@ -765,7 +764,7 @@ static struct mac_model mac_data_table[] = { | |||
765 | } | 764 | } |
766 | }; | 765 | }; |
767 | 766 | ||
768 | void __init mac_identify(void) | 767 | static void __init mac_identify(void) |
769 | { | 768 | { |
770 | struct mac_model *m; | 769 | struct mac_model *m; |
771 | 770 | ||
@@ -821,7 +820,7 @@ void __init mac_identify(void) | |||
821 | baboon_init(); | 820 | baboon_init(); |
822 | } | 821 | } |
823 | 822 | ||
824 | void __init mac_report_hardware(void) | 823 | static void __init mac_report_hardware(void) |
825 | { | 824 | { |
826 | printk(KERN_INFO "Apple Macintosh %s\n", macintosh_config->name); | 825 | printk(KERN_INFO "Apple Macintosh %s\n", macintosh_config->name); |
827 | } | 826 | } |
diff --git a/arch/m68k/mac/debug.c b/arch/m68k/mac/debug.c index e8a57138b4a6..2165740786a5 100644 --- a/arch/m68k/mac/debug.c +++ b/arch/m68k/mac/debug.c | |||
@@ -51,6 +51,8 @@ extern void mac_serial_print(const char *); | |||
51 | static int peng, line; | 51 | static int peng, line; |
52 | #endif | 52 | #endif |
53 | 53 | ||
54 | #if 0 | ||
55 | |||
54 | void mac_debugging_short(int pos, short num) | 56 | void mac_debugging_short(int pos, short num) |
55 | { | 57 | { |
56 | #ifdef DEBUG_SCREEN | 58 | #ifdef DEBUG_SCREEN |
@@ -125,6 +127,8 @@ void mac_debugging_long(int pos, long addr) | |||
125 | #endif | 127 | #endif |
126 | } | 128 | } |
127 | 129 | ||
130 | #endif /* 0 */ | ||
131 | |||
128 | #ifdef DEBUG_SERIAL | 132 | #ifdef DEBUG_SERIAL |
129 | /* | 133 | /* |
130 | * TODO: serial debug code | 134 | * TODO: serial debug code |
@@ -142,12 +146,6 @@ struct mac_SCC { | |||
142 | 146 | ||
143 | # define scc (*((volatile struct mac_SCC*)mac_bi_data.sccbase)) | 147 | # define scc (*((volatile struct mac_SCC*)mac_bi_data.sccbase)) |
144 | 148 | ||
145 | /* Flag that serial port is already initialized and used */ | ||
146 | int mac_SCC_init_done; | ||
147 | /* Can be set somewhere, if a SCC master reset has already be done and should | ||
148 | * not be repeated; used by kgdb */ | ||
149 | int mac_SCC_reset_done; | ||
150 | |||
151 | static int scc_port = -1; | 149 | static int scc_port = -1; |
152 | 150 | ||
153 | static struct console mac_console_driver = { | 151 | static struct console mac_console_driver = { |
@@ -171,8 +169,8 @@ static struct console mac_console_driver = { | |||
171 | * this driver if Mac. | 169 | * this driver if Mac. |
172 | */ | 170 | */ |
173 | 171 | ||
174 | void mac_debug_console_write(struct console *co, const char *str, | 172 | static void mac_debug_console_write(struct console *co, const char *str, |
175 | unsigned int count) | 173 | unsigned int count) |
176 | { | 174 | { |
177 | mac_serial_print(str); | 175 | mac_serial_print(str); |
178 | } | 176 | } |
@@ -209,8 +207,8 @@ static inline void mac_scca_out(char c) | |||
209 | scc.cha_a_data = c; | 207 | scc.cha_a_data = c; |
210 | } | 208 | } |
211 | 209 | ||
212 | void mac_sccb_console_write(struct console *co, const char *str, | 210 | static void mac_sccb_console_write(struct console *co, const char *str, |
213 | unsigned int count) | 211 | unsigned int count) |
214 | { | 212 | { |
215 | while (count--) { | 213 | while (count--) { |
216 | if (*str == '\n') | 214 | if (*str == '\n') |
@@ -219,8 +217,8 @@ void mac_sccb_console_write(struct console *co, const char *str, | |||
219 | } | 217 | } |
220 | } | 218 | } |
221 | 219 | ||
222 | void mac_scca_console_write(struct console *co, const char *str, | 220 | static void mac_scca_console_write(struct console *co, const char *str, |
223 | unsigned int count) | 221 | unsigned int count) |
224 | { | 222 | { |
225 | while (count--) { | 223 | while (count--) { |
226 | if (*str == '\n') | 224 | if (*str == '\n') |
@@ -265,14 +263,8 @@ void mac_scca_console_write(struct console *co, const char *str, | |||
265 | barrier(); \ | 263 | barrier(); \ |
266 | } while(0) | 264 | } while(0) |
267 | 265 | ||
268 | #ifndef CONFIG_SERIAL_CONSOLE | ||
269 | static void __init mac_init_scc_port(int cflag, int port) | 266 | static void __init mac_init_scc_port(int cflag, int port) |
270 | #else | ||
271 | void mac_init_scc_port(int cflag, int port) | ||
272 | #endif | ||
273 | { | 267 | { |
274 | extern int mac_SCC_reset_done; | ||
275 | |||
276 | /* | 268 | /* |
277 | * baud rates: 1200, 1800, 2400, 4800, 9600, 19.2k, 38.4k, 57.6k, 115.2k | 269 | * baud rates: 1200, 1800, 2400, 4800, 9600, 19.2k, 38.4k, 57.6k, 115.2k |
278 | */ | 270 | */ |
@@ -340,22 +332,9 @@ void mac_init_scc_port(int cflag, int port) | |||
340 | SCCA_WRITE(3, reg3 | 1); | 332 | SCCA_WRITE(3, reg3 | 1); |
341 | SCCA_WRITE(5, reg5 | 8); | 333 | SCCA_WRITE(5, reg5 | 8); |
342 | } | 334 | } |
343 | |||
344 | mac_SCC_reset_done = 1; | ||
345 | mac_SCC_init_done = 1; | ||
346 | } | 335 | } |
347 | #endif /* DEBUG_SERIAL */ | 336 | #endif /* DEBUG_SERIAL */ |
348 | 337 | ||
349 | void mac_init_scca_port(int cflag) | ||
350 | { | ||
351 | mac_init_scc_port(cflag, 0); | ||
352 | } | ||
353 | |||
354 | void mac_init_sccb_port(int cflag) | ||
355 | { | ||
356 | mac_init_scc_port(cflag, 1); | ||
357 | } | ||
358 | |||
359 | static int __init mac_debug_setup(char *arg) | 338 | static int __init mac_debug_setup(char *arg) |
360 | { | 339 | { |
361 | if (!MACH_IS_MAC) | 340 | if (!MACH_IS_MAC) |
diff --git a/arch/m68k/mac/oss.c b/arch/m68k/mac/oss.c index 3c943d2ec570..43d83e054b8e 100644 --- a/arch/m68k/mac/oss.c +++ b/arch/m68k/mac/oss.c | |||
@@ -30,8 +30,8 @@ | |||
30 | int oss_present; | 30 | int oss_present; |
31 | volatile struct mac_oss *oss; | 31 | volatile struct mac_oss *oss; |
32 | 32 | ||
33 | irqreturn_t oss_irq(int, void *); | 33 | static irqreturn_t oss_irq(int, void *); |
34 | irqreturn_t oss_nubus_irq(int, void *); | 34 | static irqreturn_t oss_nubus_irq(int, void *); |
35 | 35 | ||
36 | extern irqreturn_t via1_irq(int, void *); | 36 | extern irqreturn_t via1_irq(int, void *); |
37 | extern irqreturn_t mac_scc_dispatch(int, void *); | 37 | extern irqreturn_t mac_scc_dispatch(int, void *); |
@@ -92,7 +92,7 @@ void __init oss_nubus_init(void) | |||
92 | * and SCSI; everything else is routed to its own autovector IRQ. | 92 | * and SCSI; everything else is routed to its own autovector IRQ. |
93 | */ | 93 | */ |
94 | 94 | ||
95 | irqreturn_t oss_irq(int irq, void *dev_id) | 95 | static irqreturn_t oss_irq(int irq, void *dev_id) |
96 | { | 96 | { |
97 | int events; | 97 | int events; |
98 | 98 | ||
@@ -126,7 +126,7 @@ irqreturn_t oss_irq(int irq, void *dev_id) | |||
126 | * Unlike the VIA/RBV this is on its own autovector interrupt level. | 126 | * Unlike the VIA/RBV this is on its own autovector interrupt level. |
127 | */ | 127 | */ |
128 | 128 | ||
129 | irqreturn_t oss_nubus_irq(int irq, void *dev_id) | 129 | static irqreturn_t oss_nubus_irq(int irq, void *dev_id) |
130 | { | 130 | { |
131 | int events, irq_bit, i; | 131 | int events, irq_bit, i; |
132 | 132 | ||
diff --git a/arch/m68k/mac/psc.c b/arch/m68k/mac/psc.c index d66f723b17c3..f84a4dd64f94 100644 --- a/arch/m68k/mac/psc.c +++ b/arch/m68k/mac/psc.c | |||
@@ -36,7 +36,7 @@ irqreturn_t psc_irq(int, void *); | |||
36 | * Debugging dump, used in various places to see what's going on. | 36 | * Debugging dump, used in various places to see what's going on. |
37 | */ | 37 | */ |
38 | 38 | ||
39 | void psc_debug_dump(void) | 39 | static void psc_debug_dump(void) |
40 | { | 40 | { |
41 | int i; | 41 | int i; |
42 | 42 | ||
@@ -55,7 +55,7 @@ void psc_debug_dump(void) | |||
55 | * expanded to cover what I think are the other 7 channels. | 55 | * expanded to cover what I think are the other 7 channels. |
56 | */ | 56 | */ |
57 | 57 | ||
58 | void psc_dma_die_die_die(void) | 58 | static void psc_dma_die_die_die(void) |
59 | { | 59 | { |
60 | int i; | 60 | int i; |
61 | 61 | ||
diff --git a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c index fa485df4160e..f3b27d04a31f 100644 --- a/arch/m68k/mac/via.c +++ b/arch/m68k/mac/via.c | |||
@@ -45,7 +45,7 @@ volatile long *via_memory_bogon=(long *)&via_memory_bogon; | |||
45 | int rbv_present; | 45 | int rbv_present; |
46 | int via_alt_mapping; | 46 | int via_alt_mapping; |
47 | EXPORT_SYMBOL(via_alt_mapping); | 47 | EXPORT_SYMBOL(via_alt_mapping); |
48 | __u8 rbv_clear; | 48 | static __u8 rbv_clear; |
49 | 49 | ||
50 | /* | 50 | /* |
51 | * Globals for accessing the VIA chip registers without having to | 51 | * Globals for accessing the VIA chip registers without having to |