patch-2.3.20 linux/arch/ppc/amiga/config.c
Next file: linux/arch/ppc/amiga/ints.c
Previous file: linux/arch/ppc/amiga/chipram.c
Back to the patch index
Back to the overall index
- Lines: 106
- Date:
Thu Oct 7 10:17:08 1999
- Orig file:
v2.3.19/linux/arch/ppc/amiga/config.c
- Orig date:
Tue Aug 31 17:29:12 1999
diff -u --recursive --new-file v2.3.19/linux/arch/ppc/amiga/config.c linux/arch/ppc/amiga/config.c
@@ -1,13 +1,12 @@
#define m68k_debug_device debug_device
-#define m68k_num_memory num_memory
-#define m68k_memory memory
#include <linux/init.h>
/* machine dependent "kbd-reset" setup function */
-void (*kbd_reset_setup) (char *, int) __initdata = 0;
+void (*mach_kbd_reset_setup) (char *, int) __initdata = 0;
#include <asm/io.h>
+#include <asm/system.h>
/*
* linux/arch/m68k/amiga/config.c
@@ -41,6 +40,7 @@
#include <asm/machdep.h>
#include <linux/zorro.h>
+unsigned long powerup_PCI_present;
unsigned long amiga_model;
unsigned long amiga_eclock;
unsigned long amiga_masterclock;
@@ -61,7 +61,6 @@
/* amiga specific keyboard functions */
extern int amiga_keyb_init(void);
extern int amiga_kbdrate (struct kbd_repeat *);
-extern void amiga_kbd_reset_setup(char*, int);
/* amiga specific irq functions */
extern void amiga_init_IRQ (void);
extern void (*amiga_default_handler[]) (int, void *, struct pt_regs *);
@@ -137,8 +136,13 @@
switch (record->tag) {
case BI_AMIGA_MODEL:
- amiga_model = *data;
- break;
+ {
+ unsigned long d = *data;
+
+ powerup_PCI_present = d & 0x100;
+ amiga_model = d & 0xff;
+ }
+ break;
case BI_AMIGA_ECLOCK:
amiga_eclock = *data;
@@ -352,7 +356,6 @@
mach_sched_init = amiga_sched_init;
mach_keyb_init = amiga_keyb_init;
mach_kbdrate = amiga_kbdrate;
- kbd_reset_setup = amiga_kbd_reset_setup;
mach_init_IRQ = amiga_init_IRQ;
mach_default_handler = &amiga_default_handler;
#ifndef CONFIG_APUS
@@ -451,8 +454,7 @@
* Please don't change this to use ciaa, as it interferes with the
* SCSI code. We'll have to take a look at this later
*/
- request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, IRQ_FLG_LOCK,
- "timer", NULL);
+ request_irq(IRQ_AMIGA_CIAB_TA, timer_routine, 0, "timer", NULL);
/* start timer */
ciab.cra |= 0x11;
}
@@ -741,7 +743,7 @@
static void amiga_serial_putc(char c)
{
custom.serdat = (unsigned char)c | 0x100;
- iobarrier_rw ();
+ mb();
while (!(custom.serdatr & 0x2000))
;
}
@@ -921,3 +923,30 @@
return(len);
}
+
+#ifdef CONFIG_APUS
+int get_hardware_list(char *buffer)
+{
+ extern int get_cpuinfo(char *buffer);
+ int len = 0;
+ char model[80];
+ u_long mem;
+ int i;
+
+ if (mach_get_model)
+ mach_get_model(model);
+ else
+ strcpy(model, "Unknown PowerPC");
+
+ len += sprintf(buffer+len, "Model:\t\t%s\n", model);
+ len += get_cpuinfo(buffer+len);
+ for (mem = 0, i = 0; i < m68k_realnum_memory; i++)
+ mem += m68k_memory[i].size;
+ len += sprintf(buffer+len, "System Memory:\t%ldK\n", mem>>10);
+
+ if (mach_get_hardware_list)
+ len += mach_get_hardware_list(buffer+len);
+
+ return(len);
+}
+#endif
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)