]> 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 c247de02bc7e2fe0c49cc09522f75b9f4d0b3a67..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
         */
@@ -565,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,
@@ -645,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,
@@ -864,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;
        }