]> Pileus Git - ~andy/linux/blobdiff - arch/m68k/mac/config.c
m68k/mac: fix powerbook 150 adb_type
[~andy/linux] / arch / m68k / mac / config.c
index 1c16b1baf8dbf9e7b03f22cd663192c83aa07cf7..b20b1318462cb190d67ab62700c81312fbb0ecf2 100644 (file)
@@ -71,6 +71,31 @@ static void mac_get_model(char *str);
 static void mac_identify(void);
 static void mac_report_hardware(void);
 
+#ifdef CONFIG_EARLY_PRINTK
+asmlinkage void __init mac_early_print(const char *s, unsigned n);
+
+static void __init mac_early_cons_write(struct console *con,
+                                 const char *s, unsigned n)
+{
+       mac_early_print(s, n);
+}
+
+static struct console __initdata mac_early_cons = {
+       .name  = "early",
+       .write = mac_early_cons_write,
+       .flags = CON_PRINTBUFFER | CON_BOOT,
+       .index = -1
+};
+
+int __init mac_unregister_early_cons(void)
+{
+       /* mac_early_print can't be used after init sections are discarded */
+       return unregister_console(&mac_early_cons);
+}
+
+late_initcall(mac_unregister_early_cons);
+#endif
+
 static void __init mac_sched_init(irq_handler_t vector)
 {
        via_init_clock(vector);
@@ -164,6 +189,10 @@ void __init config_mac(void)
        mach_beep = mac_mksound;
 #endif
 
+#ifdef CONFIG_EARLY_PRINTK
+       register_console(&mac_early_cons);
+#endif
+
        /*
         * Determine hardware present
         */
@@ -332,6 +361,15 @@ static struct mac_model mac_data_table[] = {
                .scc_type       = MAC_SCC_II,
                .nubus_type     = MAC_NUBUS,
                .floppy_type    = MAC_FLOPPY_SWIM_ADDR2,
+       }, {
+               .ident          = MAC_MODEL_CCLII,
+               .name           = "Color Classic II",
+               .adb_type       = MAC_ADB_CUDA,
+               .via_type       = MAC_VIA_IIci,
+               .scsi_type      = MAC_SCSI_OLD,
+               .scc_type       = MAC_SCC_II,
+               .nubus_type     = MAC_NUBUS,
+               .floppy_type    = MAC_FLOPPY_SWIM_ADDR2,
        },
 
        /*
@@ -556,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,
@@ -636,7 +674,7 @@ static struct mac_model mac_data_table[] = {
        }, {
                .ident          = MAC_MODEL_PB150,
                .name           = "PowerBook 150",
-               .adb_type       = MAC_ADB_PB1,
+               .adb_type       = MAC_ADB_PB2,
                .via_type       = MAC_VIA_IIci,
                .scsi_type      = MAC_SCSI_OLD,
                .ide_type       = MAC_IDE_PB,
@@ -855,8 +893,14 @@ static void __init mac_identify(void)
                scc_b_rsrcs[1].start = scc_b_rsrcs[1].end = IRQ_MAC_SCC_B;
                break;
        default:
-               scc_a_rsrcs[1].start = scc_a_rsrcs[1].end = IRQ_MAC_SCC;
-               scc_b_rsrcs[1].start = scc_b_rsrcs[1].end = IRQ_MAC_SCC;
+               /* On non-PSC machines, the serial ports share an IRQ. */
+               if (macintosh_config->ident == MAC_MODEL_IIFX) {
+                       scc_a_rsrcs[1].start = scc_a_rsrcs[1].end = IRQ_MAC_SCC;
+                       scc_b_rsrcs[1].start = scc_b_rsrcs[1].end = IRQ_MAC_SCC;
+               } else {
+                       scc_a_rsrcs[1].start = scc_a_rsrcs[1].end = IRQ_AUTO_4;
+                       scc_b_rsrcs[1].start = scc_b_rsrcs[1].end = IRQ_AUTO_4;
+               }
                break;
        }