aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/mac/config.c2
-rw-r--r--arch/m68k/mac/macints.c12
-rw-r--r--arch/m68k/mac/via.c43
3 files changed, 24 insertions, 33 deletions
diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
index 55db101dd36d..12e564c62957 100644
--- a/arch/m68k/mac/config.c
+++ b/arch/m68k/mac/config.c
@@ -594,7 +594,7 @@ static struct mac_model mac_data_table[] = {
594 .ident = MAC_MODEL_TV, 594 .ident = MAC_MODEL_TV,
595 .name = "TV", 595 .name = "TV",
596 .adb_type = MAC_ADB_CUDA, 596 .adb_type = MAC_ADB_CUDA,
597 .via_type = MAC_VIA_QUADRA, 597 .via_type = MAC_VIA_IIci,
598 .scsi_type = MAC_SCSI_OLD, 598 .scsi_type = MAC_SCSI_OLD,
599 .scc_type = MAC_SCC_II, 599 .scc_type = MAC_SCC_II,
600 .nubus_type = MAC_NUBUS, 600 .nubus_type = MAC_NUBUS,
diff --git a/arch/m68k/mac/macints.c b/arch/m68k/mac/macints.c
index 6c9ad9bbcc96..41dd164aac27 100644
--- a/arch/m68k/mac/macints.c
+++ b/arch/m68k/mac/macints.c
@@ -42,6 +42,18 @@
42 * 42 *
43 * 6 - off switch (?) 43 * 6 - off switch (?)
44 * 44 *
45 * Machines with Quadra-like VIA hardware, except PSC and PMU machines, support
46 * an alternate interrupt mapping, as used by A/UX. It spreads ethernet and
47 * sound out to their own autovector IRQs and gives VIA1 a higher priority:
48 *
49 * 1 - unused (?)
50 *
51 * 3 - on-board SONIC
52 *
53 * 5 - Apple Sound Chip (ASC)
54 *
55 * 6 - VIA1
56 *
45 * For OSS Macintoshes (IIfx only at this point): 57 * For OSS Macintoshes (IIfx only at this point):
46 * 58 *
47 * 3 - Nubus interrupt 59 * 3 - Nubus interrupt
diff --git a/arch/m68k/mac/via.c b/arch/m68k/mac/via.c
index 974c3e9ac7f3..642b44615f78 100644
--- a/arch/m68k/mac/via.c
+++ b/arch/m68k/mac/via.c
@@ -194,38 +194,17 @@ void __init via_init(void)
194 if (oss_present) 194 if (oss_present)
195 return; 195 return;
196 196
197 /* Some machines support an alternate IRQ mapping that spreads */ 197 if ((macintosh_config->via_type == MAC_VIA_QUADRA) &&
198 /* Ethernet and Sound out to their own autolevel IRQs and moves */ 198 (macintosh_config->adb_type != MAC_ADB_PB1) &&
199 /* VIA1 to level 6. A/UX uses this mapping and we do too. Note */ 199 (macintosh_config->adb_type != MAC_ADB_PB2) &&
200 /* that the IIfx emulates this alternate mapping using the OSS. */ 200 (macintosh_config->ident != MAC_MODEL_C660) &&
201 201 (macintosh_config->ident != MAC_MODEL_Q840)) {
202 via_alt_mapping = 0; 202 via_alt_mapping = 1;
203 if (macintosh_config->via_type == MAC_VIA_QUADRA) 203 via1[vDirB] |= 0x40;
204 switch (macintosh_config->ident) { 204 via1[vBufB] &= ~0x40;
205 case MAC_MODEL_C660: 205 } else {
206 case MAC_MODEL_Q840: 206 via_alt_mapping = 0;
207 /* not applicable */ 207 }
208 break;
209 case MAC_MODEL_P588:
210 case MAC_MODEL_TV:
211 case MAC_MODEL_PB140:
212 case MAC_MODEL_PB145:
213 case MAC_MODEL_PB160:
214 case MAC_MODEL_PB165:
215 case MAC_MODEL_PB165C:
216 case MAC_MODEL_PB170:
217 case MAC_MODEL_PB180:
218 case MAC_MODEL_PB180C:
219 case MAC_MODEL_PB190:
220 case MAC_MODEL_PB520:
221 /* not yet tested */
222 break;
223 default:
224 via_alt_mapping = 1;
225 via1[vDirB] |= 0x40;
226 via1[vBufB] &= ~0x40;
227 break;
228 }
229 208
230 /* 209 /*
231 * Now initialize VIA2. For RBV we just kill all interrupts; 210 * Now initialize VIA2. For RBV we just kill all interrupts;