]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
m68k/mac: enable via_alt_mapping on performa 580
authorFinn Thain <fthain@telegraphics.com.au>
Sun, 23 Oct 2011 14:11:16 +0000 (01:11 +1100)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Sun, 20 Nov 2011 09:34:38 +0000 (10:34 +0100)
Enable via_alt_mapping on the Performa 588 and tidy up related documentation.

I'm betting that remapped IRQs work just fine on the Performa 580 series since it works on the LC 630 and the logic board part numbers are reputedly the same.

And the consensus seems to be that the Mac TV is essentially a Performa 550, not dissimilar to the Performa 520, so set the via_type accordingly.

Signed-off-by: Finn Thain <fthain@telegraphics.com.au>
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/mac/config.c
arch/m68k/mac/macints.c
arch/m68k/mac/via.c

index 55db101dd36dae34e70a670888386064b0f50740..12e564c62957abedd9e2b92adf0318dee9adb1c4 100644 (file)
@@ -594,7 +594,7 @@ static struct mac_model mac_data_table[] = {
                .ident          = MAC_MODEL_TV,
                .name           = "TV",
                .adb_type       = MAC_ADB_CUDA,
-               .via_type       = MAC_VIA_QUADRA,
+               .via_type       = MAC_VIA_IIci,
                .scsi_type      = MAC_SCSI_OLD,
                .scc_type       = MAC_SCC_II,
                .nubus_type     = MAC_NUBUS,
index 6c9ad9bbcc96cad661cd341eec2b714f320cdab1..41dd164aac2765dc1d77077c1819e0c312a4bbdd 100644 (file)
  *
  *     6       - off switch (?)
  *
+ * Machines with Quadra-like VIA hardware, except PSC and PMU machines, support
+ * an alternate interrupt mapping, as used by A/UX. It spreads ethernet and
+ * sound out to their own autovector IRQs and gives VIA1 a higher priority:
+ *
+ *     1       - unused (?)
+ *
+ *     3       - on-board SONIC
+ *
+ *     5       - Apple Sound Chip (ASC)
+ *
+ *     6       - VIA1
+ *
  * For OSS Macintoshes (IIfx only at this point):
  *
  *     3       - Nubus interrupt
index 974c3e9ac7f3a3af5dbb7ac4b6e282c62d1099ea..642b44615f785a7e6389737de2fe41b8c96d54a1 100644 (file)
@@ -194,38 +194,17 @@ void __init via_init(void)
        if (oss_present)
                return;
 
-       /* Some machines support an alternate IRQ mapping that spreads  */
-       /* Ethernet and Sound out to their own autolevel IRQs and moves */
-       /* VIA1 to level 6. A/UX uses this mapping and we do too.  Note */
-       /* that the IIfx emulates this alternate mapping using the OSS. */
-
-       via_alt_mapping = 0;
-       if (macintosh_config->via_type == MAC_VIA_QUADRA)
-               switch (macintosh_config->ident) {
-               case MAC_MODEL_C660:
-               case MAC_MODEL_Q840:
-                       /* not applicable */
-                       break;
-               case MAC_MODEL_P588:
-               case MAC_MODEL_TV:
-               case MAC_MODEL_PB140:
-               case MAC_MODEL_PB145:
-               case MAC_MODEL_PB160:
-               case MAC_MODEL_PB165:
-               case MAC_MODEL_PB165C:
-               case MAC_MODEL_PB170:
-               case MAC_MODEL_PB180:
-               case MAC_MODEL_PB180C:
-               case MAC_MODEL_PB190:
-               case MAC_MODEL_PB520:
-                       /* not yet tested */
-                       break;
-               default:
-                       via_alt_mapping = 1;
-                       via1[vDirB] |= 0x40;
-                       via1[vBufB] &= ~0x40;
-                       break;
-               }
+       if ((macintosh_config->via_type == MAC_VIA_QUADRA) &&
+           (macintosh_config->adb_type != MAC_ADB_PB1) &&
+           (macintosh_config->adb_type != MAC_ADB_PB2) &&
+           (macintosh_config->ident    != MAC_MODEL_C660) &&
+           (macintosh_config->ident    != MAC_MODEL_Q840)) {
+               via_alt_mapping = 1;
+               via1[vDirB] |= 0x40;
+               via1[vBufB] &= ~0x40;
+       } else {
+               via_alt_mapping = 0;
+       }
 
        /*
         * Now initialize VIA2. For RBV we just kill all interrupts;